From 53c576421f00322b434b805cc2cc74f49f09992a Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Tue, 20 Feb 2024 08:30:41 +0000 Subject: [PATCH 01/33] feat(i18n): manual routing --- packages/astro/src/core/app/index.ts | 10 +- packages/astro/src/core/app/types.ts | 4 +- packages/astro/src/core/build/generate.ts | 4 +- .../src/core/build/plugins/plugin-manifest.ts | 8 +- packages/astro/src/core/config/schema.ts | 18 +-- packages/astro/src/core/endpoint/index.ts | 2 +- packages/astro/src/core/errors/errors-data.ts | 12 ++ packages/astro/src/core/pipeline.ts | 2 +- packages/astro/src/core/render/context.ts | 4 +- packages/astro/src/core/render/core.ts | 2 +- .../astro/src/core/routing/manifest/create.ts | 6 +- packages/astro/src/i18n/index.ts | 111 ++++++++++++++++- packages/astro/src/i18n/middleware.ts | 92 +++++--------- packages/astro/src/virtual-modules/i18n.ts | 113 +++++++++++++++++- .../src/vite-plugin-astro-server/plugin.ts | 2 +- .../src/vite-plugin-astro-server/route.ts | 4 +- 16 files changed, 293 insertions(+), 101 deletions(-) diff --git a/packages/astro/src/core/app/index.ts b/packages/astro/src/core/app/index.ts index d3f287efd382..293dc99614f5 100644 --- a/packages/astro/src/core/app/index.ts +++ b/packages/astro/src/core/app/index.ts @@ -192,9 +192,9 @@ export class App { if ( this.#manifest.i18n && - (this.#manifest.i18n.routing === 'domains-prefix-always' || - this.#manifest.i18n.routing === 'domains-prefix-other-locales' || - this.#manifest.i18n.routing === 'domains-prefix-always-no-redirect') + (this.#manifest.i18n.strategy === 'domains-prefix-always' || + this.#manifest.i18n.strategy === 'domains-prefix-other-locales' || + this.#manifest.i18n.strategy === 'domains-prefix-always-no-redirect') ) { // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host let host = request.headers.get('X-Forwarded-Host'); @@ -419,7 +419,7 @@ export class App { env: this.#pipeline.env, mod: handler as any, locales: this.#manifest.i18n?.locales, - routing: this.#manifest.i18n?.routing, + strategy: this.#manifest.i18n?.strategy, defaultLocale: this.#manifest.i18n?.defaultLocale, }); } else { @@ -456,7 +456,7 @@ export class App { mod, env: this.#pipeline.env, locales: this.#manifest.i18n?.locales, - routing: this.#manifest.i18n?.routing, + strategy: this.#manifest.i18n?.strategy, defaultLocale: this.#manifest.i18n?.defaultLocale, }); } diff --git a/packages/astro/src/core/app/types.ts b/packages/astro/src/core/app/types.ts index 17b7c0872b0f..4ea5bae4e0e9 100644 --- a/packages/astro/src/core/app/types.ts +++ b/packages/astro/src/core/app/types.ts @@ -59,8 +59,8 @@ export type SSRManifest = { }; export type SSRManifestI18n = { - fallback?: Record; - routing: RoutingStrategies; + fallback: Record | undefined; + strategy: RoutingStrategies; locales: Locales; defaultLocale: string; domainLookupTable: Record; diff --git a/packages/astro/src/core/build/generate.ts b/packages/astro/src/core/build/generate.ts index b108da5f56c4..40470885a575 100644 --- a/packages/astro/src/core/build/generate.ts +++ b/packages/astro/src/core/build/generate.ts @@ -573,7 +573,7 @@ async function generatePath( env: pipeline.getEnvironment(), mod, locales: i18n?.locales, - routing: i18n?.routing, + strategy: i18n?.strategy, defaultLocale: i18n?.defaultLocale, }); @@ -659,7 +659,7 @@ function createBuildManifest( if (settings.config.i18n) { i18nManifest = { fallback: settings.config.i18n.fallback, - routing: settings.config.i18n.routing, + strategy: settings.config.i18n.strategy, defaultLocale: settings.config.i18n.defaultLocale, locales: settings.config.i18n.locales, domainLookupTable: {}, diff --git a/packages/astro/src/core/build/plugins/plugin-manifest.ts b/packages/astro/src/core/build/plugins/plugin-manifest.ts index 8b97651dbfbf..c197fd2949c8 100644 --- a/packages/astro/src/core/build/plugins/plugin-manifest.ts +++ b/packages/astro/src/core/build/plugins/plugin-manifest.ts @@ -239,9 +239,9 @@ function buildManifest( settings.config.experimental.i18nDomains && i18n && i18n.domains && - (i18n.routing === 'domains-prefix-always' || - i18n.routing === 'domains-prefix-other-locales' || - i18n.routing === 'domains-prefix-always-no-redirect') + (i18n.strategy === 'domains-prefix-always' || + i18n.strategy === 'domains-prefix-other-locales' || + i18n.strategy === 'domains-prefix-always-no-redirect') ) { for (const [locale, domainValue] of Object.entries(i18n.domains)) { domainLookupTable[domainValue] = normalizeTheLocale(locale); @@ -257,7 +257,7 @@ function buildManifest( if (settings.config.i18n) { i18nManifest = { fallback: settings.config.i18n.fallback, - routing: settings.config.i18n.routing, + strategy: settings.config.i18n.strategy, locales: settings.config.i18n.locales, defaultLocale: settings.config.i18n.defaultLocale, domainLookupTable, diff --git a/packages/astro/src/core/config/schema.ts b/packages/astro/src/core/config/schema.ts index e840f93a91cd..c7cf895a0e10 100644 --- a/packages/astro/src/core/config/schema.ts +++ b/packages/astro/src/core/config/schema.ts @@ -349,7 +349,7 @@ export const AstroConfigSchema = z.object({ .object({ prefixDefaultLocale: z.boolean().default(false), redirectToDefaultLocale: z.boolean().default(true), - strategy: z.enum(['pathname']).default('pathname'), + strategy: z.enum(['automatic', 'manual']).default('automatic'), }) .default({}) .refine( @@ -390,13 +390,13 @@ export const AstroConfigSchema = z.object({ } } - return { ...i18n, routing: strategy }; + return { ...i18n, strategy }; } return undefined; }) .superRefine((i18n, ctx) => { if (i18n) { - const { defaultLocale, locales: _locales, fallback, domains, routing } = i18n; + const { defaultLocale, locales: _locales, fallback, domains, strategy } = i18n; const locales = _locales.map((locale) => { if (typeof locale === 'string') { return locale; @@ -438,9 +438,9 @@ export const AstroConfigSchema = z.object({ const entries = Object.entries(domains); if (entries.length > 0) { if ( - routing !== 'domains-prefix-other-locales' && - routing !== 'domains-prefix-always-no-redirect' && - routing !== 'domains-prefix-always' + strategy !== 'domains-prefix-other-locales' && + strategy !== 'domains-prefix-always-no-redirect' && + strategy !== 'domains-prefix-always' ) { ctx.addIssue({ code: z.ZodIssueCode.custom, @@ -626,9 +626,9 @@ export function createRelativeSchema(cmd: string, fileProtocolRoot: string) { const { site, experimental, i18n, output } = configuration; if (experimental.i18nDomains) { if ( - i18n?.routing === 'domains-prefix-other-locales' || - i18n?.routing === 'domains-prefix-always-no-redirect' || - i18n?.routing === 'domains-prefix-always' + i18n?.strategy === 'domains-prefix-other-locales' || + i18n?.strategy === 'domains-prefix-always-no-redirect' || + i18n?.strategy === 'domains-prefix-always' ) { if (!site) { ctx.addIssue({ diff --git a/packages/astro/src/core/endpoint/index.ts b/packages/astro/src/core/endpoint/index.ts index e8264e881a9d..3dd3b52f7b25 100644 --- a/packages/astro/src/core/endpoint/index.ts +++ b/packages/astro/src/core/endpoint/index.ts @@ -151,7 +151,7 @@ export async function callEndpoint( props: ctx.props, site: env.site, adapterName: env.adapterName, - routingStrategy: ctx.routing, + routingStrategy: ctx.strategy, defaultLocale: ctx.defaultLocale, locales: ctx.locales, }); diff --git a/packages/astro/src/core/errors/errors-data.ts b/packages/astro/src/core/errors/errors-data.ts index c4ef4e4e31d4..03a26d491b9b 100644 --- a/packages/astro/src/core/errors/errors-data.ts +++ b/packages/astro/src/core/errors/errors-data.ts @@ -1030,6 +1030,18 @@ export const MissingIndexForInternationalization = { hint: (src: string) => `Create an index page (\`index.astro, index.md, etc.\`) in \`${src}\`.`, } satisfies ErrorData; +/** + * @docs + * @description + * + */ +export const IncorrectStrategy = { + name: 'IncorrectStrategy', + title: "You can't use the current function with the current strategy", + message: (functionName: string) => + `The function \`${functionName}\' can't be used because it can only be used when the \`i18n.routing.strategy\` is set to \`"manual"\`.`, +} satisfies ErrorData; + /** * @docs * @description diff --git a/packages/astro/src/core/pipeline.ts b/packages/astro/src/core/pipeline.ts index 88b8e800daaa..5ea82e622134 100644 --- a/packages/astro/src/core/pipeline.ts +++ b/packages/astro/src/core/pipeline.ts @@ -88,7 +88,7 @@ export class Pipeline { site: env.site, adapterName: env.adapterName, locales: renderContext.locales, - routingStrategy: renderContext.routing, + routingStrategy: renderContext.strategy, defaultLocale: renderContext.defaultLocale, }); diff --git a/packages/astro/src/core/render/context.ts b/packages/astro/src/core/render/context.ts index 8511942f348a..fb2b67bf2074 100644 --- a/packages/astro/src/core/render/context.ts +++ b/packages/astro/src/core/render/context.ts @@ -34,7 +34,7 @@ export interface RenderContext { locals?: object; locales: Locales | undefined; defaultLocale: string | undefined; - routing: RoutingStrategies | undefined; + strategy: RoutingStrategies | undefined; } export type CreateRenderContextArgs = Partial< @@ -66,7 +66,7 @@ export async function createRenderContext( params, props, locales: options.locales, - routing: options.routing, + strategy: options.strategy, defaultLocale: options.defaultLocale, }; diff --git a/packages/astro/src/core/render/core.ts b/packages/astro/src/core/render/core.ts index 1175f55d7bc3..e1e4839b9f0c 100644 --- a/packages/astro/src/core/render/core.ts +++ b/packages/astro/src/core/render/core.ts @@ -61,7 +61,7 @@ export async function renderPage({ mod, renderContext, env, cookies }: RenderPag locals: renderContext.locals ?? {}, locales: renderContext.locales, defaultLocale: renderContext.defaultLocale, - routingStrategy: renderContext.routing, + routingStrategy: renderContext.strategy, }); const response = await runtimeRenderPage( diff --git a/packages/astro/src/core/routing/manifest/create.ts b/packages/astro/src/core/routing/manifest/create.ts index 93b3770b1d60..2b1592baacbf 100644 --- a/packages/astro/src/core/routing/manifest/create.ts +++ b/packages/astro/src/core/routing/manifest/create.ts @@ -687,7 +687,7 @@ export function createRouteManifest( const i18n = settings.config.i18n; if (i18n) { // First we check if the user doesn't have an index page. - if (i18n.routing === 'pathname-prefix-always') { + if (i18n.strategy === 'pathname-prefix-always') { let index = routes.find((route) => route.route === '/'); if (!index) { let relativePath = path.relative( @@ -755,7 +755,7 @@ export function createRouteManifest( // Work done, now we start creating "fallback" routes based on the configuration - if (i18n.routing === 'pathname-prefix-always') { + if (i18n.strategy === 'pathname-prefix-always') { // we attempt to retrieve the index page of the default locale const defaultLocaleRoutes = routesByLocale.get(i18n.defaultLocale); if (defaultLocaleRoutes) { @@ -830,7 +830,7 @@ export function createRouteManifest( let route: string; if ( fallbackToLocale === i18n.defaultLocale && - i18n.routing === 'pathname-prefix-other-locales' + i18n.strategy === 'pathname-prefix-other-locales' ) { if (fallbackToRoute.pathname) { pathname = `/${fallbackFromLocale}${fallbackToRoute.pathname}`; diff --git a/packages/astro/src/i18n/index.ts b/packages/astro/src/i18n/index.ts index 4d66a56c3fc8..1fdb6cb02e9c 100644 --- a/packages/astro/src/i18n/index.ts +++ b/packages/astro/src/i18n/index.ts @@ -1,10 +1,28 @@ import { appendForwardSlash, joinPaths } from '@astrojs/internal-helpers/path'; -import type { AstroConfig, Locales } from '../@types/astro.js'; +import type { APIContext, AstroConfig, Locales, ValidRedirectStatus } from '../@types/astro.js'; import { shouldAppendForwardSlash } from '../core/build/util.js'; import { MissingLocale } from '../core/errors/errors-data.js'; import { AstroError } from '../core/errors/index.js'; import type { RoutingStrategies } from '../core/config/schema.js'; +// Checks if the pathname has any locale +export function pathHasLocale(pathname: string, locales: Locales): boolean { + const segments = pathname.split('/'); + for (const segment of segments) { + for (const locale of locales) { + if (typeof locale === 'string') { + if (normalizeTheLocale(segment) === normalizeTheLocale(locale)) { + return true; + } + } else if (segment === locale.path) { + return true; + } + } + } + + return false; +} + type GetLocaleRelativeUrl = GetLocaleOptions & { locale: string; base: string; @@ -244,3 +262,94 @@ class Unreachable extends Error { ); } } + +export type MiddlewarePayload = { + base: string; + locales: Locales; + trailingSlash: AstroConfig['trailingSlash']; + format: AstroConfig['build']['format']; + routing?: RoutingStrategies; + defaultLocale: string; + domains: Record | undefined; + fallback: Record | undefined; +}; + +export function redirectToDefaultLocale({ + trailingSlash, + format, + base, + defaultLocale, +}: MiddlewarePayload) { + return function (context: APIContext, statusCode?: ValidRedirectStatus) { + if (shouldAppendForwardSlash(trailingSlash, format)) { + return context.redirect(`${appendForwardSlash(joinPaths(base, defaultLocale))}`, statusCode); + } else { + return context.redirect(`${joinPaths(base, defaultLocale)}`, statusCode); + } + }; +} + +export function noFoundForNonLocaleRoute({ base, locales }: MiddlewarePayload) { + return function (context: APIContext, response?: Response) { + const url = context.url; + // We return a 404 if: + // - the current path isn't a root. e.g. / or / + // - the URL doesn't contain a locale + const isRoot = url.pathname === base + '/' || url.pathname === base; + if (!(isRoot || pathHasLocale(url.pathname, locales))) { + if (response) { + return new Response(null, { + status: 404, + headers: response.headers, + }); + } else { + return new Response(null, { + status: 404, + }); + } + } + + return undefined; + }; +} + +export type UseFallback = (context: APIContext, response: Response) => Response | undefined; +export function useFallback({ fallback, locales, defaultLocale, routing }: MiddlewarePayload) { + return function (context: APIContext, response: Response): Response | undefined { + if (response.status >= 300 && fallback) { + const url = new URL(response.url); + const fallbackKeys = fallback ? Object.keys(fallback) : []; + + // we split the URL using the `/`, and then check in the returned array we have the locale + const segments = url.pathname.split('/'); + const urlLocale = segments.find((segment) => { + for (const locale of locales) { + if (typeof locale === 'string') { + if (locale === segment) { + return true; + } + } else if (locale.path === segment) { + return true; + } + } + return false; + }); + + if (urlLocale && fallbackKeys.includes(urlLocale)) { + const fallbackLocale = fallback[urlLocale]; + // the user might have configured the locale using the granular locales, so we want to retrieve its corresponding path instead + const pathFallbackLocale = getPathByLocale(fallbackLocale, locales); + let newPathname: string; + // If a locale falls back to the default locale, we want to **remove** the locale because + // the default locale doesn't have a prefix + if (pathFallbackLocale === defaultLocale && routing === 'pathname-prefix-other-locales') { + newPathname = url.pathname.replace(`/${urlLocale}`, ``); + } else { + newPathname = url.pathname.replace(`/${urlLocale}`, `/${pathFallbackLocale}`); + } + + return context.redirect(newPathname); + } + } + }; +} diff --git a/packages/astro/src/i18n/middleware.ts b/packages/astro/src/i18n/middleware.ts index 73a43d471c25..ad0f0ead953a 100644 --- a/packages/astro/src/i18n/middleware.ts +++ b/packages/astro/src/i18n/middleware.ts @@ -1,44 +1,35 @@ -import { appendForwardSlash, joinPaths } from '@astrojs/internal-helpers/path'; -import type { - APIContext, - Locales, - MiddlewareHandler, - RouteData, - SSRManifest, -} from '../@types/astro.js'; +import type { APIContext, MiddlewareHandler, RouteData, SSRManifest } from '../@types/astro.js'; import type { PipelineHookFunction } from '../core/pipeline.js'; -import { getPathByLocale, normalizeTheLocale } from './index.js'; -import { shouldAppendForwardSlash } from '../core/build/util.js'; +import { + getPathByLocale, + type MiddlewarePayload, + normalizeTheLocale, + pathHasLocale, + redirectToDefaultLocale, + noFoundForNonLocaleRoute, +} from './index.js'; import { ROUTE_DATA_SYMBOL } from '../core/constants.js'; import type { SSRManifestI18n } from '../core/app/types.js'; const routeDataSymbol = Symbol.for(ROUTE_DATA_SYMBOL); -// Checks if the pathname has any locale, exception for the defaultLocale, which is ignored on purpose. -function pathnameHasLocale(pathname: string, locales: Locales): boolean { - const segments = pathname.split('/'); - for (const segment of segments) { - for (const locale of locales) { - if (typeof locale === 'string') { - if (normalizeTheLocale(segment) === normalizeTheLocale(locale)) { - return true; - } - } else if (segment === locale.path) { - return true; - } - } - } - - return false; -} - export function createI18nMiddleware( i18n: SSRManifest['i18n'], base: SSRManifest['base'], trailingSlash: SSRManifest['trailingSlash'], - buildFormat: SSRManifest['buildFormat'] + format: SSRManifest['buildFormat'] ): MiddlewareHandler { if (!i18n) return (_, next) => next(); + const payload: MiddlewarePayload = { + ...i18n, + trailingSlash, + base, + format, + domains: {}, + }; + + const _redirectToDefaultLocale = redirectToDefaultLocale(payload); + const _noFoundForNonLocaleRoute = noFoundForNonLocaleRoute(payload); const prefixAlways = ( url: URL, @@ -46,15 +37,11 @@ export function createI18nMiddleware( context: APIContext ): Response | undefined => { if (url.pathname === base + '/' || url.pathname === base) { - if (shouldAppendForwardSlash(trailingSlash, buildFormat)) { - return context.redirect(`${appendForwardSlash(joinPaths(base, i18n.defaultLocale))}`); - } else { - return context.redirect(`${joinPaths(base, i18n.defaultLocale)}`); - } + return _redirectToDefaultLocale(context); } // Astro can't know where the default locale is supposed to be, so it returns a 404 with no content. - else if (!pathnameHasLocale(url.pathname, i18n.locales)) { + else if (!pathHasLocale(url.pathname, i18n.locales)) { return new Response(null, { status: 404, headers: response.headers, @@ -84,28 +71,6 @@ export function createI18nMiddleware( return undefined; }; - /** - * We return a 404 if: - * - the current path isn't a root. e.g. / or / - * - the URL doesn't contain a locale - * @param url - * @param response - */ - const prefixAlwaysNoRedirect = (url: URL, response: Response): Response | undefined => { - // We return a 404 if: - // - the current path isn't a root. e.g. / or / - // - the URL doesn't contain a locale - const isRoot = url.pathname === base + '/' || url.pathname === base; - if (!(isRoot || pathnameHasLocale(url.pathname, i18n.locales))) { - return new Response(null, { - status: 404, - headers: response.headers, - }); - } - - return undefined; - }; - return async (context, next) => { const routeData: RouteData | undefined = Reflect.get(context.request, routeDataSymbol); // If the route we're processing is not a page, then we ignore it @@ -115,11 +80,11 @@ export function createI18nMiddleware( const currentLocale = context.currentLocale; const url = context.url; - const { locales, defaultLocale, fallback, routing } = i18n; + const { locales, defaultLocale, fallback, strategy } = i18n; const response = await next(); if (response instanceof Response) { - switch (i18n.routing) { + switch (i18n.strategy) { case 'domains-prefix-other-locales': { if (localeHasntDomain(i18n, currentLocale)) { const result = prefixOtherLocales(url, response); @@ -139,7 +104,7 @@ export function createI18nMiddleware( case 'domains-prefix-always-no-redirect': { if (localeHasntDomain(i18n, currentLocale)) { - const result = prefixAlwaysNoRedirect(url, response); + const result = _noFoundForNonLocaleRoute(context, response); if (result) { return result; } @@ -148,7 +113,7 @@ export function createI18nMiddleware( } case 'pathname-prefix-always-no-redirect': { - const result = prefixAlwaysNoRedirect(url, response); + const result = _noFoundForNonLocaleRoute(context, response); if (result) { return result; } @@ -198,7 +163,10 @@ export function createI18nMiddleware( let newPathname: string; // If a locale falls back to the default locale, we want to **remove** the locale because // the default locale doesn't have a prefix - if (pathFallbackLocale === defaultLocale && routing === 'pathname-prefix-other-locales') { + if ( + pathFallbackLocale === defaultLocale && + strategy === 'pathname-prefix-other-locales' + ) { newPathname = url.pathname.replace(`/${urlLocale}`, ``); } else { newPathname = url.pathname.replace(`/${urlLocale}`, `/${pathFallbackLocale}`); diff --git a/packages/astro/src/virtual-modules/i18n.ts b/packages/astro/src/virtual-modules/i18n.ts index f71068667787..8fffb438f9a1 100644 --- a/packages/astro/src/virtual-modules/i18n.ts +++ b/packages/astro/src/virtual-modules/i18n.ts @@ -1,15 +1,23 @@ import * as I18nInternals from '../i18n/index.js'; import type { I18nInternalConfig } from '../i18n/vite-plugin-i18n.js'; +import { AstroError } from '../core/errors/index.js'; +import { IncorrectStrategy } from '../core/errors/errors-data.js'; +import type { UseFallback } from '../i18n/index.js'; export { normalizeTheLocale, toCodes, toPaths } from '../i18n/index.js'; const { trailingSlash, format, site, i18n, isBuild } = // @ts-expect-error __ASTRO_INTERNAL_I18N_CONFIG__ as I18nInternalConfig; -const { defaultLocale, locales, routing, domains } = i18n!; +const { defaultLocale, locales, strategy, domains, fallback } = i18n!; const base = import.meta.env.BASE_URL; export type GetLocaleOptions = I18nInternals.GetLocaleOptions; +const noop = (method: string) => + function () { + throw new AstroError({ ...IncorrectStrategy, message: IncorrectStrategy.message(method) }); + }; + /** * @param locale A locale * @param path An optional path to add after the `locale`. @@ -40,7 +48,7 @@ export const getRelativeLocaleUrl = (locale: string, path?: string, options?: Ge format, defaultLocale, locales, - routing, + routing: strategy, domains, ...options, }); @@ -80,7 +88,7 @@ export const getAbsoluteLocaleUrl = (locale: string, path?: string, options?: Ge site, defaultLocale, locales, - routing, + routing: strategy, domains, isBuild, ...options, @@ -100,7 +108,7 @@ export const getRelativeLocaleUrlList = (path?: string, options?: GetLocaleOptio format, defaultLocale, locales, - routing, + routing: strategy, domains, ...options, }); @@ -120,7 +128,7 @@ export const getAbsoluteLocaleUrlList = (path?: string, options?: GetLocaleOptio format, defaultLocale, locales, - routing, + routing: strategy, domains, isBuild, ...options, @@ -188,3 +196,98 @@ export const getPathByLocale = (locale: string) => I18nInternals.getPathByLocale * ``` */ export const getLocaleByPath = (path: string) => I18nInternals.getLocaleByPath(path, locales); + +/** + * A function that can be used to check if the current path contains a configured locale. + * + * @param path The path that maps to a locale + * @returns Whether the `path` has the locale + * + * ## Example + * + * Given the following configuration: + * + * ```js + * // astro.config.mjs + * + * export default defineConfig({ + * i18n: { + * locales: [ + * { codes: ["it-VT", "it"], path: "italiano" }, + * "es" + * ] + * } + * }) + * ``` + * + * Here's some use cases: + * + * ```js + * import { pathHasLocale } from "astro:i18n"; + * getLocaleByPath("italiano"); // returns `true` + * getLocaleByPath("es"); // returns `true` + * getLocaleByPath("it-VT"); // returns `false` + * ``` + */ +export const pathHasLocale = (path: string) => I18nInternals.pathHasLocale(path, locales); + +/** + * + * This function returns a redirect to the default locale configured in the + * + * @param {APIContext} context The context passed to the middleware + * @param {ValidRedirectStatus?} statusCode An optional status code for the redirect. + */ +export const redirectToDefaultLocale = + i18n?.routing?.strategy === 'manual' + ? I18nInternals.redirectToDefaultLocale({ + base, + trailingSlash, + format, + defaultLocale, + locales, + routing: strategy, + domains, + fallback, + }) + : noop('redirectToDefaultLocale'); + +/** + * + * Use this function to return a 404 when: + * - the current path isn't a root. e.g. / or / + * - the URL doesn't contain a locale + * + * When a `Response` is passed, the new `Response` emitted by this function will contain the same headers of the original response. + * + * @param {APIContext} context The context passed to the middleware + * @param {Response?} response An optional `Response` in case you're handling a `Response` coming from the `next` function. + * + */ +export const noFoundForNonLocaleRoute = + i18n?.routing?.strategy === 'manual' + ? I18nInternals.noFoundForNonLocaleRoute({ + base, + trailingSlash, + format, + defaultLocale, + locales, + routing: strategy, + domains, + fallback, + }) + : noop('noFoundForNonLocaleRoute'); + +export const useFallback: UseFallback = + i18n?.routing?.strategy === 'manual' + ? I18nInternals.useFallback({ + base, + trailingSlash, + format, + defaultLocale, + locales, + routing: strategy, + domains, + fallback, + }) + : noop('useFallback'); diff --git a/packages/astro/src/vite-plugin-astro-server/plugin.ts b/packages/astro/src/vite-plugin-astro-server/plugin.ts index ba33c3ebd44b..31ee15bcfa64 100644 --- a/packages/astro/src/vite-plugin-astro-server/plugin.ts +++ b/packages/astro/src/vite-plugin-astro-server/plugin.ts @@ -118,7 +118,7 @@ export function createDevelopmentManifest(settings: AstroSettings): SSRManifest if (settings.config.i18n) { i18nManifest = { fallback: settings.config.i18n.fallback, - routing: settings.config.i18n.routing, + strategy: settings.config.i18n.strategy, defaultLocale: settings.config.i18n.defaultLocale, locales: settings.config.i18n.locales, domainLookupTable: {}, diff --git a/packages/astro/src/vite-plugin-astro-server/route.ts b/packages/astro/src/vite-plugin-astro-server/route.ts index 0cc8a819326d..206fe012030a 100644 --- a/packages/astro/src/vite-plugin-astro-server/route.ts +++ b/packages/astro/src/vite-plugin-astro-server/route.ts @@ -246,7 +246,7 @@ export async function handleRoute({ mod, route, locales: manifest.i18n?.locales, - routing: manifest.i18n?.routing, + strategy: manifest.i18n?.strategy, defaultLocale: manifest.i18n?.defaultLocale, }); } else { @@ -303,7 +303,7 @@ export async function handleRoute({ mod, env, locales: i18n?.locales, - routing: i18n?.routing, + strategy: i18n?.strategy, defaultLocale: i18n?.defaultLocale, }); } From 659a6c02b8b7748145cd56247faaf1ea0cb2711d Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Thu, 22 Feb 2024 12:11:49 +0000 Subject: [PATCH 02/33] one more function --- packages/astro/src/core/config/schema.ts | 2 +- packages/astro/src/i18n/index.ts | 10 +++- packages/astro/src/i18n/middleware.ts | 54 +++++++++++----------- packages/astro/src/virtual-modules/i18n.ts | 24 +++++++--- 4 files changed, 54 insertions(+), 36 deletions(-) diff --git a/packages/astro/src/core/config/schema.ts b/packages/astro/src/core/config/schema.ts index 0d735e4421a2..4945afd3ed1a 100644 --- a/packages/astro/src/core/config/schema.ts +++ b/packages/astro/src/core/config/schema.ts @@ -357,7 +357,7 @@ export const AstroConfigSchema = z.object({ .optional() .superRefine((i18n, ctx) => { if (i18n) { - const { defaultLocale, locales: _locales, fallback, domains, strategy } = i18n; + const { defaultLocale, locales: _locales, fallback, domains } = i18n; const locales = _locales.map((locale) => { if (typeof locale === 'string') { return locale; diff --git a/packages/astro/src/i18n/index.ts b/packages/astro/src/i18n/index.ts index 1b7e085d2365..d76b06b50bcb 100644 --- a/packages/astro/src/i18n/index.ts +++ b/packages/astro/src/i18n/index.ts @@ -5,9 +5,15 @@ import { MissingLocale } from '../core/errors/errors-data.js'; import { AstroError } from '../core/errors/index.js'; import type { RoutingStrategies } from './utils.js'; +export function requestHasLocale(locales: Locales) { + return function (context: APIContext) { + return pathHasLocale(context.url.pathname, locales); + }; +} + // Checks if the pathname has any locale -export function pathHasLocale(pathname: string, locales: Locales): boolean { - const segments = pathname.split('/'); +export function pathHasLocale(path: string, locales: Locales): boolean { + const segments = path.split('/'); for (const segment of segments) { for (const locale of locales) { if (typeof locale === 'string') { diff --git a/packages/astro/src/i18n/middleware.ts b/packages/astro/src/i18n/middleware.ts index 9ea4109f5daf..d763a2845ad8 100644 --- a/packages/astro/src/i18n/middleware.ts +++ b/packages/astro/src/i18n/middleware.ts @@ -1,7 +1,12 @@ -import { appendForwardSlash, joinPaths } from '@astrojs/internal-helpers/path'; -import type { APIContext, Locales, MiddlewareHandler, SSRManifest } from '../@types/astro.js'; -import { getPathByLocale, normalizeTheLocale } from './index.js'; -import { shouldAppendForwardSlash } from '../core/build/util.js'; +import type { APIContext, MiddlewareHandler, SSRManifest } from '../@types/astro.js'; +import { + getPathByLocale, + type MiddlewarePayload, + noFoundForNonLocaleRoute, + normalizeTheLocale, + requestHasLocale, + redirectToDefaultLocale, +} from './index.js'; import type { SSRManifestI18n } from '../core/app/types.js'; import { ROUTE_TYPE_HEADER } from '../core/constants.js'; @@ -22,18 +27,16 @@ export function createI18nMiddleware( const _redirectToDefaultLocale = redirectToDefaultLocale(payload); const _noFoundForNonLocaleRoute = noFoundForNonLocaleRoute(payload); + const _requestHasLocale = requestHasLocale(payload.locales); - const prefixAlways = ( - url: URL, - response: Response, - context: APIContext - ): Response | undefined => { + const prefixAlways = (response: Response, context: APIContext): Response | undefined => { + const url = context.url; if (url.pathname === base + '/' || url.pathname === base) { return _redirectToDefaultLocale(context); } // Astro can't know where the default locale is supposed to be, so it returns a 404 with no content. - else if (!pathHasLocale(url.pathname, i18n.locales)) { + else if (!_requestHasLocale(context)) { return new Response(null, { status: 404, headers: response.headers, @@ -111,7 +114,7 @@ export function createI18nMiddleware( } case 'pathname-prefix-always': { - const result = prefixAlways(url, response, context); + const result = prefixAlways(response, context); if (result) { return result; } @@ -119,7 +122,7 @@ export function createI18nMiddleware( } case 'domains-prefix-always': { if (localeHasntDomain(i18n, currentLocale)) { - const result = prefixAlways(url, response, context); + const result = prefixAlways(response, context); if (result) { return result; } @@ -146,21 +149,18 @@ export function createI18nMiddleware( return false; }); - if (urlLocale && fallbackKeys.includes(urlLocale)) { - const fallbackLocale = fallback[urlLocale]; - // the user might have configured the locale using the granular locales, so we want to retrieve its corresponding path instead - const pathFallbackLocale = getPathByLocale(fallbackLocale, locales); - let newPathname: string; - // If a locale falls back to the default locale, we want to **remove** the locale because - // the default locale doesn't have a prefix - if ( - pathFallbackLocale === defaultLocale && - strategy === 'pathname-prefix-other-locales' - ) { - newPathname = url.pathname.replace(`/${urlLocale}`, ``); - } else { - newPathname = url.pathname.replace(`/${urlLocale}`, `/${pathFallbackLocale}`); - } + if (urlLocale && fallbackKeys.includes(urlLocale)) { + const fallbackLocale = fallback[urlLocale]; + // the user might have configured the locale using the granular locales, so we want to retrieve its corresponding path instead + const pathFallbackLocale = getPathByLocale(fallbackLocale, locales); + let newPathname: string; + // If a locale falls back to the default locale, we want to **remove** the locale because + // the default locale doesn't have a prefix + if (pathFallbackLocale === defaultLocale && strategy === 'pathname-prefix-other-locales') { + newPathname = url.pathname.replace(`/${urlLocale}`, ``); + } else { + newPathname = url.pathname.replace(`/${urlLocale}`, `/${pathFallbackLocale}`); + } return context.redirect(newPathname); } diff --git a/packages/astro/src/virtual-modules/i18n.ts b/packages/astro/src/virtual-modules/i18n.ts index 2bbf0eb8a7fb..788c0413548c 100644 --- a/packages/astro/src/virtual-modules/i18n.ts +++ b/packages/astro/src/virtual-modules/i18n.ts @@ -9,10 +9,10 @@ export { normalizeTheLocale, toCodes, toPaths } from '../i18n/index.js'; const { trailingSlash, format, site, i18n, isBuild } = // @ts-expect-error __ASTRO_INTERNAL_I18N_CONFIG__ as I18nInternalConfig; -const { defaultLocale, locales, strategy, domains, fallback } = i18n!; +const { defaultLocale, locales, domains, fallback } = i18n!; const base = import.meta.env.BASE_URL; -const routing = toRoutingStrategy(i18n!); +const strategy = toRoutingStrategy(i18n!); export type GetLocaleOptions = I18nInternals.GetLocaleOptions; @@ -51,7 +51,7 @@ export const getRelativeLocaleUrl = (locale: string, path?: string, options?: Ge format, defaultLocale, locales, - strategy: routing: strategy, + strategy, domains, ...options, }); @@ -91,7 +91,7 @@ export const getAbsoluteLocaleUrl = (locale: string, path?: string, options?: Ge site, defaultLocale, locales, - strategy: routing: strategy, + strategy, domains, isBuild, ...options, @@ -111,7 +111,7 @@ export const getRelativeLocaleUrlList = (path?: string, options?: GetLocaleOptio format, defaultLocale, locales, - strategy: routing: strategy, + strategy, domains, ...options, }); @@ -131,7 +131,7 @@ export const getAbsoluteLocaleUrlList = (path?: string, options?: GetLocaleOptio format, defaultLocale, locales, - strategy: routing: strategy, + strategy, domains, isBuild, ...options, @@ -281,6 +281,18 @@ export const noFoundForNonLocaleRoute = }) : noop('noFoundForNonLocaleRoute'); +/** + * Checks whether the current URL contains a configured locale. Internally, this function will use `APIContext#url.pathname` + * + * @param {APIContext} context The context passed to the middleware + * + * + */ +export const requestHasLocale = + i18n?.routing?.strategy === 'manual' + ? I18nInternals.requestHasLocale(locales) + : noop('requestHasLocale'); + export const useFallback: UseFallback = i18n?.routing?.strategy === 'manual' ? I18nInternals.useFallback({ From 247eafda10cc8a68ff047a9900e1ef0c7c1a2925 Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Thu, 22 Feb 2024 13:23:26 +0000 Subject: [PATCH 03/33] different typing --- packages/astro/src/@types/astro.ts | 122 +++++++++--------- packages/astro/src/core/base-pipeline.ts | 10 +- packages/astro/src/core/config/schema.ts | 33 ++--- packages/astro/src/core/errors/errors-data.ts | 2 +- packages/astro/src/i18n/utils.ts | 33 +++-- packages/astro/src/virtual-modules/i18n.ts | 10 +- 6 files changed, 111 insertions(+), 99 deletions(-) diff --git a/packages/astro/src/@types/astro.ts b/packages/astro/src/@types/astro.ts index 53b4f28893e1..2b7b6c5ea31b 100644 --- a/packages/astro/src/@types/astro.ts +++ b/packages/astro/src/@types/astro.ts @@ -1474,66 +1474,68 @@ export interface AstroUserConfig { * * Controls the routing strategy to determine your site URLs. Set this based on your folder/URL path configuration for your default language. */ - routing?: { - /** - * @docs - * @name i18n.routing.prefixDefaultLocale - * @kind h4 - * @type {boolean} - * @default `false` - * @version 3.7.0 - * @description - * - * When `false`, only non-default languages will display a language prefix. - * The `defaultLocale` will not show a language prefix and content files do not exist in a localized folder. - * URLs will be of the form `example.com/[locale]/content/` for all non-default languages, but `example.com/content/` for the default locale. - * - * When `true`, all URLs will display a language prefix. - * URLs will be of the form `example.com/[locale]/content/` for every route, including the default language. - * Localized folders are used for every language, including the default. - */ - prefixDefaultLocale?: boolean; - - /** - * @docs - * @name i18n.routing.redirectToDefaultLocale - * @kind h4 - * @type {boolean} - * @default `true` - * @version 4.2.0 - * @description - * - * Configures whether or not the home URL (`/`) generated by `src/pages/index.astro` - * will redirect to `/[defaultLocale]` when `prefixDefaultLocale: true` is set. - * - * Set `redirectToDefaultLocale: false` to disable this automatic redirection at the root of your site: - * ```js - * // astro.config.mjs - * export default defineConfig({ - * i18n:{ - * defaultLocale: "en", - * locales: ["en", "fr"], - * routing: { - * prefixDefaultLocale: true, - * redirectToDefaultLocale: false - * } - * } - * }) - *``` - * */ - redirectToDefaultLocale?: boolean; - - /** - * @name i18n.routing.strategy - * @type {"pathname"} - * @default `"pathname"` - * @version 3.7.0 - * @description - * - * - `"pathname": The strategy is applied to the pathname of the URLs - */ - strategy?: 'pathname'; - }; + routing?: + | 'manual' + | { + /** + * @docs + * @name i18n.routing.prefixDefaultLocale + * @kind h4 + * @type {boolean} + * @default `false` + * @version 3.7.0 + * @description + * + * When `false`, only non-default languages will display a language prefix. + * The `defaultLocale` will not show a language prefix and content files do not exist in a localized folder. + * URLs will be of the form `example.com/[locale]/content/` for all non-default languages, but `example.com/content/` for the default locale. + * + * When `true`, all URLs will display a language prefix. + * URLs will be of the form `example.com/[locale]/content/` for every route, including the default language. + * Localized folders are used for every language, including the default. + */ + prefixDefaultLocale?: boolean; + + /** + * @docs + * @name i18n.routing.redirectToDefaultLocale + * @kind h4 + * @type {boolean} + * @default `true` + * @version 4.2.0 + * @description + * + * Configures whether or not the home URL (`/`) generated by `src/pages/index.astro` + * will redirect to `/[defaultLocale]` when `prefixDefaultLocale: true` is set. + * + * Set `redirectToDefaultLocale: false` to disable this automatic redirection at the root of your site: + * ```js + * // astro.config.mjs + * export default defineConfig({ + * i18n:{ + * defaultLocale: "en", + * locales: ["en", "fr"], + * routing: { + * prefixDefaultLocale: true, + * redirectToDefaultLocale: false + * } + * } + * }) + *``` + * */ + redirectToDefaultLocale?: boolean; + + /** + * @name i18n.routing.strategy + * @type {"pathname"} + * @default `"pathname"` + * @version 3.7.0 + * @description + * + * - `"pathname": The strategy is applied to the pathname of the URLs + */ + strategy?: 'pathname'; + }; /** * @name i18n.domains diff --git a/packages/astro/src/core/base-pipeline.ts b/packages/astro/src/core/base-pipeline.ts index 139ee9485811..cd4e52cba7a8 100644 --- a/packages/astro/src/core/base-pipeline.ts +++ b/packages/astro/src/core/base-pipeline.ts @@ -47,9 +47,13 @@ export abstract class Pipeline { */ readonly site = manifest.site ) { - this.internalMiddleware = [ - createI18nMiddleware(i18n, manifest.base, manifest.trailingSlash, manifest.buildFormat), - ]; + this.internalMiddleware = []; + // we do use our middleware only if the user isn't using the manual setup + if (i18n?.strategy !== 'manual') { + this.internalMiddleware.push( + createI18nMiddleware(i18n, manifest.base, manifest.trailingSlash, manifest.buildFormat) + ); + } } abstract headElements(routeData: RouteData): Promise | HeadElements; diff --git a/packages/astro/src/core/config/schema.ts b/packages/astro/src/core/config/schema.ts index 4945afd3ed1a..d1f8665571fc 100644 --- a/packages/astro/src/core/config/schema.ts +++ b/packages/astro/src/core/config/schema.ts @@ -338,21 +338,24 @@ export const AstroConfigSchema = z.object({ .optional(), fallback: z.record(z.string(), z.string()).optional(), routing: z - .object({ - prefixDefaultLocale: z.boolean().default(false), - redirectToDefaultLocale: z.boolean().default(true), - strategy: z.enum(['automatic', 'manual']).default('automatic'), - }) - .default({}) - .refine( - ({ prefixDefaultLocale, redirectToDefaultLocale }) => { - return !(prefixDefaultLocale === false && redirectToDefaultLocale === false); - }, - { - message: - 'The option `i18n.redirectToDefaultLocale` is only useful when the `i18n.prefixDefaultLocale` is set to `true`. Remove the option `i18n.redirectToDefaultLocale`, or change its value to `true`.', - } - ), + .enum(['manual']) + .or( + z + .object({ + prefixDefaultLocale: z.boolean().default(false), + redirectToDefaultLocale: z.boolean().default(true), + }) + .refine( + ({ prefixDefaultLocale, redirectToDefaultLocale }) => { + return !(prefixDefaultLocale === false && redirectToDefaultLocale === false); + }, + { + message: + 'The option `i18n.redirectToDefaultLocale` is only useful when the `i18n.prefixDefaultLocale` is set to `true`. Remove the option `i18n.redirectToDefaultLocale`, or change its value to `true`.', + } + ) + ) + .default({}), }) .optional() .superRefine((i18n, ctx) => { diff --git a/packages/astro/src/core/errors/errors-data.ts b/packages/astro/src/core/errors/errors-data.ts index 83d9751defb3..bfa4efc47195 100644 --- a/packages/astro/src/core/errors/errors-data.ts +++ b/packages/astro/src/core/errors/errors-data.ts @@ -1033,7 +1033,7 @@ export const MissingIndexForInternationalization = { /** * @docs * @description - * + * Some internationalization functions can't be exposed unless the default routing is disabled */ export const IncorrectStrategy = { name: 'IncorrectStrategy', diff --git a/packages/astro/src/i18n/utils.ts b/packages/astro/src/i18n/utils.ts index d3dddba1f8c5..b45c37ee7186 100644 --- a/packages/astro/src/i18n/utils.ts +++ b/packages/astro/src/i18n/utils.ts @@ -191,6 +191,7 @@ export function computeCurrentLocale( } export type RoutingStrategies = + | 'manual' | 'pathname-prefix-always' | 'pathname-prefix-other-locales' | 'pathname-prefix-always-no-redirect' @@ -201,25 +202,29 @@ export function toRoutingStrategy(i18n: NonNullable) { let { routing, domains } = i18n; let strategy: RoutingStrategies; const hasDomains = domains ? Object.keys(domains).length > 0 : false; - if (!hasDomains) { - if (routing?.prefixDefaultLocale === true) { - if (routing.redirectToDefaultLocale) { - strategy = 'pathname-prefix-always'; + if (routing === 'manual') { + strategy = 'manual'; + } else { + if (!hasDomains) { + if (routing?.prefixDefaultLocale === true) { + if (routing.redirectToDefaultLocale) { + strategy = 'pathname-prefix-always'; + } else { + strategy = 'pathname-prefix-always-no-redirect'; + } } else { - strategy = 'pathname-prefix-always-no-redirect'; + strategy = 'pathname-prefix-other-locales'; } } else { - strategy = 'pathname-prefix-other-locales'; - } - } else { - if (routing?.prefixDefaultLocale === true) { - if (routing.redirectToDefaultLocale) { - strategy = 'domains-prefix-always'; + if (routing?.prefixDefaultLocale === true) { + if (routing.redirectToDefaultLocale) { + strategy = 'domains-prefix-always'; + } else { + strategy = 'domains-prefix-always-no-redirect'; + } } else { - strategy = 'domains-prefix-always-no-redirect'; + strategy = 'domains-prefix-other-locales'; } - } else { - strategy = 'domains-prefix-other-locales'; } } diff --git a/packages/astro/src/virtual-modules/i18n.ts b/packages/astro/src/virtual-modules/i18n.ts index 788c0413548c..2e6d92189924 100644 --- a/packages/astro/src/virtual-modules/i18n.ts +++ b/packages/astro/src/virtual-modules/i18n.ts @@ -242,7 +242,7 @@ export const pathHasLocale = (path: string) => I18nInternals.pathHasLocale(path, * @param {ValidRedirectStatus?} statusCode An optional status code for the redirect. */ export const redirectToDefaultLocale = - i18n?.routing?.strategy === 'manual' + i18n?.routing === 'manual' ? I18nInternals.redirectToDefaultLocale({ base, trailingSlash, @@ -268,7 +268,7 @@ export const redirectToDefaultLocale = * */ export const noFoundForNonLocaleRoute = - i18n?.routing?.strategy === 'manual' + i18n?.routing === 'manual' ? I18nInternals.noFoundForNonLocaleRoute({ base, trailingSlash, @@ -289,12 +289,10 @@ export const noFoundForNonLocaleRoute = * */ export const requestHasLocale = - i18n?.routing?.strategy === 'manual' - ? I18nInternals.requestHasLocale(locales) - : noop('requestHasLocale'); + i18n?.routing === 'manual' ? I18nInternals.requestHasLocale(locales) : noop('requestHasLocale'); export const useFallback: UseFallback = - i18n?.routing?.strategy === 'manual' + i18n?.routing === 'manual' ? I18nInternals.useFallback({ base, trailingSlash, From 9e95b0f6837a7fff8ef7101192ae18ed4744834e Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Tue, 27 Feb 2024 08:34:12 +0000 Subject: [PATCH 04/33] tests --- packages/astro/src/core/base-pipeline.ts | 2 +- packages/astro/src/i18n/index.ts | 21 ++- packages/astro/src/i18n/middleware.ts | 5 +- packages/astro/src/virtual-modules/i18n.ts | 45 ++++++ .../astro.config.mjs | 14 ++ .../package.json | 8 + .../src/middleware.js | 10 ++ .../src/pages/en/blog/[id].astro | 18 +++ .../src/pages/en/start.astro | 8 + .../src/pages/index.astro | 8 + .../src/pages/pt/blog/[id].astro | 18 +++ .../src/pages/pt/start.astro | 12 ++ .../src/pages/spanish/index.astro | 14 ++ .../i18n-routing-manual/astro.config.mjs | 14 ++ .../fixtures/i18n-routing-manual/package.json | 8 + .../i18n-routing-manual/src/middleware.js | 20 +++ .../src/pages/en/blog/[id].astro | 18 +++ .../src/pages/en/blog/index.astro | 8 + .../src/pages/en/index.astro | 8 + .../src/pages/en/start.astro | 8 + .../i18n-routing-manual/src/pages/help.astro | 11 ++ .../i18n-routing-manual/src/pages/index.astro | 8 + .../src/pages/pt/blog/[id].astro | 18 +++ .../src/pages/pt/start.astro | 12 ++ .../src/pages/spanish/index.astro | 14 ++ .../astro/test/i18n-routing-manual.test.js | 147 ++++++++++++++++++ packages/astro/test/i18n-routing.test.js | 1 - pnpm-lock.yaml | 12 ++ 28 files changed, 485 insertions(+), 5 deletions(-) create mode 100644 packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/astro.config.mjs create mode 100644 packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/package.json create mode 100644 packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/src/middleware.js create mode 100644 packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/src/pages/en/blog/[id].astro create mode 100644 packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/src/pages/en/start.astro create mode 100644 packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/src/pages/index.astro create mode 100644 packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/src/pages/pt/blog/[id].astro create mode 100644 packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/src/pages/pt/start.astro create mode 100644 packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/src/pages/spanish/index.astro create mode 100644 packages/astro/test/fixtures/i18n-routing-manual/astro.config.mjs create mode 100644 packages/astro/test/fixtures/i18n-routing-manual/package.json create mode 100644 packages/astro/test/fixtures/i18n-routing-manual/src/middleware.js create mode 100644 packages/astro/test/fixtures/i18n-routing-manual/src/pages/en/blog/[id].astro create mode 100644 packages/astro/test/fixtures/i18n-routing-manual/src/pages/en/blog/index.astro create mode 100644 packages/astro/test/fixtures/i18n-routing-manual/src/pages/en/index.astro create mode 100644 packages/astro/test/fixtures/i18n-routing-manual/src/pages/en/start.astro create mode 100644 packages/astro/test/fixtures/i18n-routing-manual/src/pages/help.astro create mode 100644 packages/astro/test/fixtures/i18n-routing-manual/src/pages/index.astro create mode 100644 packages/astro/test/fixtures/i18n-routing-manual/src/pages/pt/blog/[id].astro create mode 100644 packages/astro/test/fixtures/i18n-routing-manual/src/pages/pt/start.astro create mode 100644 packages/astro/test/fixtures/i18n-routing-manual/src/pages/spanish/index.astro create mode 100644 packages/astro/test/i18n-routing-manual.test.js diff --git a/packages/astro/src/core/base-pipeline.ts b/packages/astro/src/core/base-pipeline.ts index cd4e52cba7a8..f3ea4706899f 100644 --- a/packages/astro/src/core/base-pipeline.ts +++ b/packages/astro/src/core/base-pipeline.ts @@ -48,7 +48,7 @@ export abstract class Pipeline { readonly site = manifest.site ) { this.internalMiddleware = []; - // we do use our middleware only if the user isn't using the manual setup + // We do use our middleware only if the user isn't using the manual setup if (i18n?.strategy !== 'manual') { this.internalMiddleware.push( createI18nMiddleware(i18n, manifest.base, manifest.trailingSlash, manifest.buildFormat) diff --git a/packages/astro/src/i18n/index.ts b/packages/astro/src/i18n/index.ts index d76b06b50bcb..db460b1d302a 100644 --- a/packages/astro/src/i18n/index.ts +++ b/packages/astro/src/i18n/index.ts @@ -1,9 +1,17 @@ import { appendForwardSlash, joinPaths } from '@astrojs/internal-helpers/path'; -import type { APIContext, AstroConfig, Locales, ValidRedirectStatus } from '../@types/astro.js'; +import type { + APIContext, + AstroConfig, + Locales, + SSRManifest, + ValidRedirectStatus, +} from '../@types/astro.js'; import { shouldAppendForwardSlash } from '../core/build/util.js'; import { MissingLocale } from '../core/errors/errors-data.js'; import { AstroError } from '../core/errors/index.js'; -import type { RoutingStrategies } from './utils.js'; +import { type RoutingStrategies, toRoutingStrategy } from './utils.js'; +import type { AstroUserConfig } from '../../config.js'; +import { createI18nMiddleware } from './middleware.js'; export function requestHasLocale(locales: Locales) { return function (context: APIContext) { @@ -359,3 +367,12 @@ export function useFallback({ fallback, locales, defaultLocale, routing }: Middl } }; } + +export function createMiddleware( + i18nManifest: SSRManifest['i18n'], + base: SSRManifest['base'], + trailingSlash: SSRManifest['trailingSlash'], + format: SSRManifest['buildFormat'] +) { + return createI18nMiddleware(i18nManifest, base, trailingSlash, format); +} diff --git a/packages/astro/src/i18n/middleware.ts b/packages/astro/src/i18n/middleware.ts index d763a2845ad8..c327c532263f 100644 --- a/packages/astro/src/i18n/middleware.ts +++ b/packages/astro/src/i18n/middleware.ts @@ -24,7 +24,6 @@ export function createI18nMiddleware( format, domains: {}, }; - const _redirectToDefaultLocale = redirectToDefaultLocale(payload); const _noFoundForNonLocaleRoute = noFoundForNonLocaleRoute(payload); const _requestHasLocale = requestHasLocale(payload.locales); @@ -78,6 +77,10 @@ export function createI18nMiddleware( const { locales, defaultLocale, fallback, strategy } = i18n; switch (i18n.strategy) { + // NOTE: theoretically, we should never hit this code path + case 'manual': { + return response; + } case 'domains-prefix-other-locales': { if (localeHasntDomain(i18n, currentLocale)) { const result = prefixOtherLocales(url, response); diff --git a/packages/astro/src/virtual-modules/i18n.ts b/packages/astro/src/virtual-modules/i18n.ts index 2e6d92189924..2094b40df739 100644 --- a/packages/astro/src/virtual-modules/i18n.ts +++ b/packages/astro/src/virtual-modules/i18n.ts @@ -4,6 +4,8 @@ import { toRoutingStrategy } from '../i18n/utils.js'; import { AstroError } from '../core/errors/index.js'; import { IncorrectStrategy } from '../core/errors/errors-data.js'; import type { UseFallback } from '../i18n/index.js'; +import type { SSRManifest } from '../core/app/types.js'; +import type { AstroConfig } from '../@types/astro.js'; export { normalizeTheLocale, toCodes, toPaths } from '../i18n/index.js'; const { trailingSlash, format, site, i18n, isBuild } = @@ -304,3 +306,46 @@ export const useFallback: UseFallback = fallback, }) : noop('useFallback'); + +/** + * @param {AstroConfig['i18n']} customOptions + * + * A function that allows to programmatically create the Astro i18n middleware. + * + * This is use useful when you still want to use the default i18n logic, but add only few exceptions to your website. + * + * ## Examples + * + * ```js + * // middleware.js + * import { middleware } from "astro:i18n"; + * import { sequence, defineMiddleware } from "astro:middleware"; + * + * const customLogic = defineMiddleware(async (context, next) => { + * const response = await next(); + * + * // Custom logic after resolving the response. + * // It's possible to catch the response coming from Astro i18n middleware. + * + * return response; + * }); + * + * export const onRequest = sequence(customLogic, middleware({ + * locales: ["en", "es"] + * })) + * + * ``` + */ +export const middleware = + i18n?.routing === 'manual' + ? (customOptions?: NonNullable) => { + const manifest: SSRManifest['i18n'] = { + strategy: toRoutingStrategy(customOptions ?? i18n), + defaultLocale: customOptions?.defaultLocale ?? i18n.defaultLocale, + fallback: customOptions?.fallback ?? i18n.fallback, + locales: customOptions?.locales ?? i18n.locales, + domainLookupTable: {}, + }; + return I18nInternals.createMiddleware(manifest, base, trailingSlash, format); + } + : noop('middleware'); diff --git a/packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/astro.config.mjs b/packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/astro.config.mjs new file mode 100644 index 000000000000..0638988f063b --- /dev/null +++ b/packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/astro.config.mjs @@ -0,0 +1,14 @@ +import { defineConfig} from "astro/config"; + +export default defineConfig({ + i18n: { + defaultLocale: 'en', + locales: [ + 'en', 'pt', 'it', { + path: "spanish", + codes: ["es", "es-ar"] + } + ], + routing: "manual" + } +}) diff --git a/packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/package.json b/packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/package.json new file mode 100644 index 000000000000..a930a3cf329c --- /dev/null +++ b/packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/package.json @@ -0,0 +1,8 @@ +{ + "name": "@test/i18n-manual-with-default", + "version": "0.0.0", + "private": true, + "dependencies": { + "astro": "workspace:*" + } +} diff --git a/packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/src/middleware.js b/packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/src/middleware.js new file mode 100644 index 000000000000..df88d1e51a54 --- /dev/null +++ b/packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/src/middleware.js @@ -0,0 +1,10 @@ +import { defineMiddleware, sequence } from 'astro:middleware'; +import { middleware } from 'astro:i18n'; + +const customLogic = defineMiddleware(async (context, next) => { + const response = await next(); + + return response; +}); + +export const onRequest = sequence(customLogic, middleware()); diff --git a/packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/src/pages/en/blog/[id].astro b/packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/src/pages/en/blog/[id].astro new file mode 100644 index 000000000000..97b41230d6e9 --- /dev/null +++ b/packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/src/pages/en/blog/[id].astro @@ -0,0 +1,18 @@ +--- +export function getStaticPaths() { + return [ + {params: {id: '1'}, props: { content: "Hello world" }}, + {params: {id: '2'}, props: { content: "Eat Something" }}, + {params: {id: '3'}, props: { content: "How are you?" }}, + ]; +} +const { content } = Astro.props; +--- + + + Astro + + +{content} + + diff --git a/packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/src/pages/en/start.astro b/packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/src/pages/en/start.astro new file mode 100644 index 000000000000..d9f61aa025c1 --- /dev/null +++ b/packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/src/pages/en/start.astro @@ -0,0 +1,8 @@ + + + Astro + + +Hello + + diff --git a/packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/src/pages/index.astro b/packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/src/pages/index.astro new file mode 100644 index 000000000000..05faf7b0bcce --- /dev/null +++ b/packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/src/pages/index.astro @@ -0,0 +1,8 @@ + + + Astro + + + Hello + + diff --git a/packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/src/pages/pt/blog/[id].astro b/packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/src/pages/pt/blog/[id].astro new file mode 100644 index 000000000000..e37f83a30243 --- /dev/null +++ b/packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/src/pages/pt/blog/[id].astro @@ -0,0 +1,18 @@ +--- +export function getStaticPaths() { + return [ + {params: {id: '1'}, props: { content: "Hola mundo" }}, + {params: {id: '2'}, props: { content: "Eat Something" }}, + {params: {id: '3'}, props: { content: "How are you?" }}, + ]; +} +const { content } = Astro.props; +--- + + + Astro + + +{content} + + diff --git a/packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/src/pages/pt/start.astro b/packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/src/pages/pt/start.astro new file mode 100644 index 000000000000..9a37428ca626 --- /dev/null +++ b/packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/src/pages/pt/start.astro @@ -0,0 +1,12 @@ +--- +const currentLocale = Astro.currentLocale; +--- + + + Astro + + +Hola +Current Locale: {currentLocale ? currentLocale : "none"} + + diff --git a/packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/src/pages/spanish/index.astro b/packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/src/pages/spanish/index.astro new file mode 100644 index 000000000000..a36031be6ec0 --- /dev/null +++ b/packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/src/pages/spanish/index.astro @@ -0,0 +1,14 @@ +--- +const currentLocale = Astro.currentLocale; + +--- + + + + Astro + + +Hola. +Current Locale: {currentLocale ? currentLocale : "none"} + + diff --git a/packages/astro/test/fixtures/i18n-routing-manual/astro.config.mjs b/packages/astro/test/fixtures/i18n-routing-manual/astro.config.mjs new file mode 100644 index 000000000000..0638988f063b --- /dev/null +++ b/packages/astro/test/fixtures/i18n-routing-manual/astro.config.mjs @@ -0,0 +1,14 @@ +import { defineConfig} from "astro/config"; + +export default defineConfig({ + i18n: { + defaultLocale: 'en', + locales: [ + 'en', 'pt', 'it', { + path: "spanish", + codes: ["es", "es-ar"] + } + ], + routing: "manual" + } +}) diff --git a/packages/astro/test/fixtures/i18n-routing-manual/package.json b/packages/astro/test/fixtures/i18n-routing-manual/package.json new file mode 100644 index 000000000000..b79591a69645 --- /dev/null +++ b/packages/astro/test/fixtures/i18n-routing-manual/package.json @@ -0,0 +1,8 @@ +{ + "name": "@test/i18n-routing-manual", + "version": "0.0.0", + "private": true, + "dependencies": { + "astro": "workspace:*" + } +} diff --git a/packages/astro/test/fixtures/i18n-routing-manual/src/middleware.js b/packages/astro/test/fixtures/i18n-routing-manual/src/middleware.js new file mode 100644 index 000000000000..29634e3ffea1 --- /dev/null +++ b/packages/astro/test/fixtures/i18n-routing-manual/src/middleware.js @@ -0,0 +1,20 @@ +import { defineMiddleware } from 'astro:middleware'; +import { redirectToDefaultLocale, requestHasLocale } from 'astro:i18n'; + +const allowList = new Set(['/help', '/help/']); + +export const onRequest = defineMiddleware(async (context, next) => { + if (allowList.has(context.url.pathname)) { + return await next(); + } + if (requestHasLocale(context)) { + return await next(); + } + + if (context.url.pathname === '/') { + return redirectToDefaultLocale(context); + } + return new Response(null, { + status: 404, + }); +}); diff --git a/packages/astro/test/fixtures/i18n-routing-manual/src/pages/en/blog/[id].astro b/packages/astro/test/fixtures/i18n-routing-manual/src/pages/en/blog/[id].astro new file mode 100644 index 000000000000..97b41230d6e9 --- /dev/null +++ b/packages/astro/test/fixtures/i18n-routing-manual/src/pages/en/blog/[id].astro @@ -0,0 +1,18 @@ +--- +export function getStaticPaths() { + return [ + {params: {id: '1'}, props: { content: "Hello world" }}, + {params: {id: '2'}, props: { content: "Eat Something" }}, + {params: {id: '3'}, props: { content: "How are you?" }}, + ]; +} +const { content } = Astro.props; +--- + + + Astro + + +{content} + + diff --git a/packages/astro/test/fixtures/i18n-routing-manual/src/pages/en/blog/index.astro b/packages/astro/test/fixtures/i18n-routing-manual/src/pages/en/blog/index.astro new file mode 100644 index 000000000000..edb95dc8da71 --- /dev/null +++ b/packages/astro/test/fixtures/i18n-routing-manual/src/pages/en/blog/index.astro @@ -0,0 +1,8 @@ + + + Astro + + +Blog start + + diff --git a/packages/astro/test/fixtures/i18n-routing-manual/src/pages/en/index.astro b/packages/astro/test/fixtures/i18n-routing-manual/src/pages/en/index.astro new file mode 100644 index 000000000000..d9f61aa025c1 --- /dev/null +++ b/packages/astro/test/fixtures/i18n-routing-manual/src/pages/en/index.astro @@ -0,0 +1,8 @@ + + + Astro + + +Hello + + diff --git a/packages/astro/test/fixtures/i18n-routing-manual/src/pages/en/start.astro b/packages/astro/test/fixtures/i18n-routing-manual/src/pages/en/start.astro new file mode 100644 index 000000000000..d9f61aa025c1 --- /dev/null +++ b/packages/astro/test/fixtures/i18n-routing-manual/src/pages/en/start.astro @@ -0,0 +1,8 @@ + + + Astro + + +Hello + + diff --git a/packages/astro/test/fixtures/i18n-routing-manual/src/pages/help.astro b/packages/astro/test/fixtures/i18n-routing-manual/src/pages/help.astro new file mode 100644 index 000000000000..f0c02bccf29e --- /dev/null +++ b/packages/astro/test/fixtures/i18n-routing-manual/src/pages/help.astro @@ -0,0 +1,11 @@ +--- + +--- + + + Astro + + + Outside route + + diff --git a/packages/astro/test/fixtures/i18n-routing-manual/src/pages/index.astro b/packages/astro/test/fixtures/i18n-routing-manual/src/pages/index.astro new file mode 100644 index 000000000000..d9f61aa025c1 --- /dev/null +++ b/packages/astro/test/fixtures/i18n-routing-manual/src/pages/index.astro @@ -0,0 +1,8 @@ + + + Astro + + +Hello + + diff --git a/packages/astro/test/fixtures/i18n-routing-manual/src/pages/pt/blog/[id].astro b/packages/astro/test/fixtures/i18n-routing-manual/src/pages/pt/blog/[id].astro new file mode 100644 index 000000000000..e37f83a30243 --- /dev/null +++ b/packages/astro/test/fixtures/i18n-routing-manual/src/pages/pt/blog/[id].astro @@ -0,0 +1,18 @@ +--- +export function getStaticPaths() { + return [ + {params: {id: '1'}, props: { content: "Hola mundo" }}, + {params: {id: '2'}, props: { content: "Eat Something" }}, + {params: {id: '3'}, props: { content: "How are you?" }}, + ]; +} +const { content } = Astro.props; +--- + + + Astro + + +{content} + + diff --git a/packages/astro/test/fixtures/i18n-routing-manual/src/pages/pt/start.astro b/packages/astro/test/fixtures/i18n-routing-manual/src/pages/pt/start.astro new file mode 100644 index 000000000000..8e6455be4d76 --- /dev/null +++ b/packages/astro/test/fixtures/i18n-routing-manual/src/pages/pt/start.astro @@ -0,0 +1,12 @@ +--- +const currentLocale = Astro.currentLocale; +--- + + + Astro + + +Oi +Current Locale: {currentLocale ? currentLocale : "none"} + + diff --git a/packages/astro/test/fixtures/i18n-routing-manual/src/pages/spanish/index.astro b/packages/astro/test/fixtures/i18n-routing-manual/src/pages/spanish/index.astro new file mode 100644 index 000000000000..a36031be6ec0 --- /dev/null +++ b/packages/astro/test/fixtures/i18n-routing-manual/src/pages/spanish/index.astro @@ -0,0 +1,14 @@ +--- +const currentLocale = Astro.currentLocale; + +--- + + + + Astro + + +Hola. +Current Locale: {currentLocale ? currentLocale : "none"} + + diff --git a/packages/astro/test/i18n-routing-manual.test.js b/packages/astro/test/i18n-routing-manual.test.js new file mode 100644 index 000000000000..24f9c187e874 --- /dev/null +++ b/packages/astro/test/i18n-routing-manual.test.js @@ -0,0 +1,147 @@ +import { describe, it, before, after } from 'node:test'; +import assert from 'node:assert/strict'; +import { loadFixture } from './test-utils.js'; +import * as cheerio from 'cheerio'; +import testAdapter from './test-adapter.js'; + +// DEV +describe('Dev server manual routing', () => { + /** @type {import('./test-utils').Fixture} */ + let fixture; + /** @type {import('./test-utils').DevServer} */ + let devServer; + + before(async () => { + fixture = await loadFixture({ + root: './fixtures/i18n-routing-manual/', + }); + devServer = await fixture.startDevServer(); + }); + + after(async () => { + await devServer.stop(); + }); + + it('should redirect to the default locale when middleware calls the function for route /', async () => { + const response = await fixture.fetch('/'); + assert.equal(response.status, 200); + const text = await response.text(); + assert.equal(text.includes('Hello'), true); + }); + + it('should render a route that is not related to the i18n routing', async () => { + const response = await fixture.fetch('/help'); + assert.equal(response.status, 200); + const text = await response.text(); + assert.equal(text.includes('Outside route'), true); + }); + + it('should render a i18n route', async () => { + let response = await fixture.fetch('/en/blog'); + assert.equal(response.status, 200); + let text = await response.text(); + assert.equal(text.includes('Blog start'), true); + + response = await fixture.fetch('/pt/start'); + assert.equal(response.status, 200); + text = await response.text(); + assert.equal(text.includes('Oi'), true); + + response = await fixture.fetch('/spanish'); + assert.equal(response.status, 200); + text = await response.text(); + assert.equal(text.includes('Hola.'), true); + }); +}); + +// SSG +describe('SSG manual routing', () => { + /** @type {import('./test-utils').Fixture} */ + let fixture; + /** @type {import('./test-utils').DevServer} */ + let devServer; + + before(async () => { + fixture = await loadFixture({ + root: './fixtures/i18n-routing-manual/', + }); + await fixture.build(); + }); + + it('should redirect to the default locale when middleware calls the function for route /', async () => { + let html = await fixture.readFile('/index.html'); + assert.equal(html.includes('http-equiv="refresh'), true); + assert.equal(html.includes('url=/en'), true); + }); + + it('should render a route that is not related to the i18n routing', async () => { + let html = await fixture.readFile('/help/index.html'); + let $ = cheerio.load(html); + assert.equal($('body').text().includes('Outside route'), true); + }); + + it('should render a i18n route', async () => { + let html = await fixture.readFile('/en/blog/index.html'); + let $ = cheerio.load(html); + assert.equal($('body').text().includes('Blog start'), true); + + html = await fixture.readFile('/pt/start/index.html'); + $ = cheerio.load(html); + assert.equal($('body').text().includes('Oi'), true); + + html = await fixture.readFile('/spanish/index.html'); + $ = cheerio.load(html); + assert.equal($('body').text().includes('Hola.'), true); + }); +}); + +// SSR +describe('SSR manual routing', () => { + /** @type {import('./test-utils').Fixture} */ + let fixture; + let app; + + before(async () => { + fixture = await loadFixture({ + root: './fixtures/i18n-routing-manual/', + output: 'server', + adapter: testAdapter(), + }); + await fixture.build(); + app = await fixture.loadTestAdapterApp(); + }); + + it('should redirect to the default locale when middleware calls the function for route /', async () => { + let request = new Request('http://example.com/'); + let response = await app.render(request); + assert.equal(response.status, 302); + }); + + it('should render a route that is not related to the i18n routing', async () => { + let request = new Request('http://example.com/help'); + let response = await app.render(request); + assert.equal(response.status, 200); + const text = await response.text(); + assert.equal(text.includes('Outside route'), true); + }); + + it('should render a i18n route', async () => { + let request = new Request('http://example.com/en/blog'); + let response = await app.render(request); + assert.equal(response.status, 200); + let text = await response.text(); + assert.equal(text.includes('Blog start'), true); + + request = new Request('http://example.com/pt/start'); + response = await app.render(request); + assert.equal(response.status, 200); + text = await response.text(); + assert.equal(text.includes('Oi'), true); + + request = new Request('http://example.com/spanish'); + response = await app.render(request); + assert.equal(response.status, 200); + text = await response.text(); + assert.equal(text.includes('Hola.'), true); + }); +}); diff --git a/packages/astro/test/i18n-routing.test.js b/packages/astro/test/i18n-routing.test.js index 7287fc041c93..37d6409ee9c7 100644 --- a/packages/astro/test/i18n-routing.test.js +++ b/packages/astro/test/i18n-routing.test.js @@ -766,7 +766,6 @@ describe('[SSG] i18n routing', () => { it('should redirect to the index of the default locale', async () => { const html = await fixture.readFile('/index.html'); assert.equal(html.includes('http-equiv="refresh'), true); - assert.equal(html.includes('http-equiv="refresh'), true); assert.equal(html.includes('url=/new-site/en'), true); }); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0aac945ceb74..c977900e383b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2876,6 +2876,18 @@ importers: specifier: workspace:* version: link:../../.. + packages/astro/test/fixtures/i18n-routing-manual: + dependencies: + astro: + specifier: workspace:* + version: link:../../.. + + packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware: + dependencies: + astro: + specifier: workspace:* + version: link:../../.. + packages/astro/test/fixtures/i18n-routing-prefix-always: dependencies: astro: From 2eb86db168acfcf2d3f9473b40df57b56fb8e707 Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Mon, 4 Mar 2024 14:22:28 +0000 Subject: [PATCH 05/33] fix merge --- packages/astro/src/i18n/middleware.ts | 6 +- pnpm-lock.yaml | 1222 +++++++++++++++++++++---- 2 files changed, 1034 insertions(+), 194 deletions(-) diff --git a/packages/astro/src/i18n/middleware.ts b/packages/astro/src/i18n/middleware.ts index 6a3e0d1ee079..a52b79a89f5f 100644 --- a/packages/astro/src/i18n/middleware.ts +++ b/packages/astro/src/i18n/middleware.ts @@ -1,4 +1,3 @@ -import type { APIContext, MiddlewareHandler, SSRManifest } from '../@types/astro.js'; import { getPathByLocale, type MiddlewarePayload, @@ -7,12 +6,9 @@ import { requestHasLocale, redirectToDefaultLocale, } from './index.js'; -import { appendForwardSlash, joinPaths } from '@astrojs/internal-helpers/path'; -import type { APIContext, Locales, MiddlewareHandler, SSRManifest } from '../@types/astro.js'; +import type { APIContext, MiddlewareHandler, SSRManifest } from '../@types/astro.js'; import type { SSRManifestI18n } from '../core/app/types.js'; -import { shouldAppendForwardSlash } from '../core/build/util.js'; import { ROUTE_TYPE_HEADER } from '../core/constants.js'; -import { getPathByLocale, normalizeTheLocale } from './index.js'; export function createI18nMiddleware( i18n: SSRManifest['i18n'], diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c977900e383b..9d25da6f682b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,7 +8,7 @@ overrides: organize-imports-cli>ts-morph: ^19.0.0 tsconfig-resolver>type-fest: 3.0.0 -packageExtensionsChecksum: 2d0a8c56e33c7d11bb9ef3c997d67c33 +packageExtensionsChecksum: 43e9b7451c9943c617aef017ec172155 importers: @@ -134,7 +134,7 @@ importers: examples/basics: dependencies: astro: - specifier: ^4.4.2 + specifier: ^4.4.8 version: link:../../packages/astro examples/blog: @@ -149,13 +149,13 @@ importers: specifier: ^3.1.1 version: link:../../packages/integrations/sitemap astro: - specifier: ^4.4.2 + specifier: ^4.4.8 version: link:../../packages/astro examples/component: devDependencies: astro: - specifier: ^4.4.2 + specifier: ^4.4.8 version: link:../../packages/astro examples/framework-alpine: @@ -170,7 +170,7 @@ importers: specifier: ^3.13.3 version: 3.13.3 astro: - specifier: ^4.4.2 + specifier: ^4.4.8 version: link:../../packages/astro examples/framework-lit: @@ -182,7 +182,7 @@ importers: specifier: ^0.2.1 version: 0.2.1 astro: - specifier: ^4.4.2 + specifier: ^4.4.8 version: link:../../packages/astro lit: specifier: ^3.1.2 @@ -191,7 +191,7 @@ importers: examples/framework-multiple: dependencies: '@astrojs/preact': - specifier: ^3.1.0 + specifier: ^3.1.1 version: link:../../packages/integrations/preact '@astrojs/react': specifier: ^3.0.10 @@ -200,13 +200,13 @@ importers: specifier: ^4.0.1 version: link:../../packages/integrations/solid '@astrojs/svelte': - specifier: ^5.0.3 + specifier: ^5.2.0 version: link:../../packages/integrations/svelte '@astrojs/vue': specifier: ^4.0.8 version: link:../../packages/integrations/vue astro: - specifier: ^4.4.2 + specifier: ^4.4.8 version: link:../../packages/astro preact: specifier: ^10.19.2 @@ -230,13 +230,13 @@ importers: examples/framework-preact: dependencies: '@astrojs/preact': - specifier: ^3.1.0 + specifier: ^3.1.1 version: link:../../packages/integrations/preact '@preact/signals': specifier: ^1.2.1 version: 1.2.1(preact@10.19.3) astro: - specifier: ^4.4.2 + specifier: ^4.4.8 version: link:../../packages/astro preact: specifier: ^10.19.2 @@ -254,7 +254,7 @@ importers: specifier: ^18.2.15 version: 18.2.18 astro: - specifier: ^4.4.2 + specifier: ^4.4.8 version: link:../../packages/astro react: specifier: ^18.2.0 @@ -269,7 +269,7 @@ importers: specifier: ^4.0.1 version: link:../../packages/integrations/solid astro: - specifier: ^4.4.2 + specifier: ^4.4.8 version: link:../../packages/astro solid-js: specifier: ^1.8.5 @@ -278,10 +278,10 @@ importers: examples/framework-svelte: dependencies: '@astrojs/svelte': - specifier: ^5.0.3 + specifier: ^5.2.0 version: link:../../packages/integrations/svelte astro: - specifier: ^4.4.2 + specifier: ^4.4.8 version: link:../../packages/astro svelte: specifier: ^4.2.5 @@ -293,7 +293,7 @@ importers: specifier: ^4.0.8 version: link:../../packages/integrations/vue astro: - specifier: ^4.4.2 + specifier: ^4.4.8 version: link:../../packages/astro vue: specifier: ^3.3.8 @@ -302,25 +302,25 @@ importers: examples/hackernews: dependencies: '@astrojs/node': - specifier: ^8.2.0 + specifier: ^8.2.3 version: link:../../packages/integrations/node astro: - specifier: ^4.4.2 + specifier: ^4.4.8 version: link:../../packages/astro examples/integration: devDependencies: astro: - specifier: ^4.4.2 + specifier: ^4.4.8 version: link:../../packages/astro examples/middleware: dependencies: '@astrojs/node': - specifier: ^8.2.0 + specifier: ^8.2.3 version: link:../../packages/integrations/node astro: - specifier: ^4.4.2 + specifier: ^4.4.8 version: link:../../packages/astro html-minifier: specifier: ^4.0.0 @@ -333,31 +333,31 @@ importers: examples/minimal: dependencies: astro: - specifier: ^4.4.2 + specifier: ^4.4.8 version: link:../../packages/astro examples/non-html-pages: dependencies: astro: - specifier: ^4.4.2 + specifier: ^4.4.8 version: link:../../packages/astro examples/portfolio: dependencies: astro: - specifier: ^4.4.2 + specifier: ^4.4.8 version: link:../../packages/astro examples/ssr: dependencies: '@astrojs/node': - specifier: ^8.2.0 + specifier: ^8.2.3 version: link:../../packages/integrations/node '@astrojs/svelte': - specifier: ^5.0.3 + specifier: ^5.2.0 version: link:../../packages/integrations/svelte astro: - specifier: ^4.4.2 + specifier: ^4.4.8 version: link:../../packages/astro svelte: specifier: ^4.2.5 @@ -366,7 +366,7 @@ importers: examples/starlog: dependencies: astro: - specifier: ^4.4.2 + specifier: ^4.4.8 version: link:../../packages/astro sass: specifier: ^1.69.5 @@ -378,13 +378,13 @@ importers: examples/view-transitions: devDependencies: '@astrojs/node': - specifier: ^8.2.0 + specifier: ^8.2.3 version: link:../../packages/integrations/node '@astrojs/tailwind': specifier: ^5.1.0 version: link:../../packages/integrations/tailwind astro: - specifier: ^4.4.2 + specifier: ^4.4.8 version: link:../../packages/astro examples/with-markdoc: @@ -393,7 +393,7 @@ importers: specifier: ^0.9.0 version: link:../../packages/integrations/markdoc astro: - specifier: ^4.4.2 + specifier: ^4.4.8 version: link:../../packages/astro examples/with-markdown-plugins: @@ -402,7 +402,7 @@ importers: specifier: ^4.2.1 version: link:../../packages/markdown/remark astro: - specifier: ^4.4.2 + specifier: ^4.4.8 version: link:../../packages/astro hast-util-select: specifier: ^6.0.2 @@ -423,7 +423,7 @@ importers: examples/with-markdown-shiki: dependencies: astro: - specifier: ^4.4.2 + specifier: ^4.4.8 version: link:../../packages/astro examples/with-mdx: @@ -432,10 +432,10 @@ importers: specifier: ^2.1.1 version: link:../../packages/integrations/mdx '@astrojs/preact': - specifier: ^3.1.0 + specifier: ^3.1.1 version: link:../../packages/integrations/preact astro: - specifier: ^4.4.2 + specifier: ^4.4.8 version: link:../../packages/astro preact: specifier: ^10.19.2 @@ -444,13 +444,13 @@ importers: examples/with-nanostores: dependencies: '@astrojs/preact': - specifier: ^3.1.0 + specifier: ^3.1.1 version: link:../../packages/integrations/preact '@nanostores/preact': specifier: ^0.5.0 version: 0.5.0(nanostores@0.9.5)(preact@10.19.3) astro: - specifier: ^4.4.2 + specifier: ^4.4.8 version: link:../../packages/astro nanostores: specifier: ^0.9.5 @@ -471,7 +471,7 @@ importers: specifier: ^1.6.3 version: 1.6.4 astro: - specifier: ^4.4.2 + specifier: ^4.4.8 version: link:../../packages/astro autoprefixer: specifier: ^10.4.15 @@ -489,11 +489,11 @@ importers: examples/with-vitest: dependencies: astro: - specifier: ^4.4.2 + specifier: ^4.4.8 version: link:../../packages/astro vitest: - specifier: ^1.2.2 - version: 1.2.2(@types/node@18.19.4) + specifier: ^1.3.1 + version: 1.3.1(@types/node@18.19.4) packages/astro: dependencies: @@ -565,7 +565,7 @@ importers: version: 3.0.0 debug: specifier: ^4.3.4 - version: 4.3.4 + version: 4.3.4(supports-color@8.1.1) deterministic-object-hash: specifier: ^2.0.1 version: 2.0.2 @@ -675,11 +675,11 @@ importers: specifier: ^6.0.1 version: 6.0.1 vite: - specifier: ^5.1.2 - version: 5.1.2(@types/node@18.19.4)(sass@1.69.6) + specifier: ^5.1.4 + version: 5.1.4(@types/node@18.19.4)(sass@1.69.6) vitefu: specifier: ^0.2.5 - version: 0.2.5(vite@5.1.2) + version: 0.2.5(vite@5.1.4) which-pm: specifier: ^2.1.1 version: 2.1.1 @@ -2327,6 +2327,12 @@ importers: specifier: ^10.19.2 version: 10.19.3 + packages/astro/test/fixtures/build-readonly-file: + dependencies: + astro: + specifier: workspace:* + version: link:../../.. + packages/astro/test/fixtures/client-address: dependencies: astro: @@ -2876,6 +2882,12 @@ importers: specifier: workspace:* version: link:../../.. + packages/astro/test/fixtures/i18n-routing-fallback-index: + dependencies: + astro: + specifier: workspace:* + version: link:../../.. + packages/astro/test/fixtures/i18n-routing-manual: dependencies: astro: @@ -3800,6 +3812,160 @@ importers: packages/create-astro/test/fixtures/not-empty: {} + packages/db: + dependencies: + '@libsql/client': + specifier: ^0.4.3 + version: 0.4.3 + async-listen: + specifier: ^3.0.1 + version: 3.0.1 + deep-diff: + specifier: ^1.0.2 + version: 1.0.2 + drizzle-orm: + specifier: ^0.28.6 + version: 0.28.6(@libsql/client@0.4.3) + kleur: + specifier: ^4.1.5 + version: 4.1.5 + nanoid: + specifier: ^5.0.1 + version: 5.0.1 + open: + specifier: ^10.0.3 + version: 10.0.3 + ora: + specifier: ^7.0.1 + version: 7.0.1 + prompts: + specifier: ^2.4.2 + version: 2.4.2 + yargs-parser: + specifier: ^21.1.1 + version: 21.1.1 + zod: + specifier: ^3.22.4 + version: 3.22.4 + devDependencies: + '@types/chai': + specifier: ^4.3.6 + version: 4.3.11 + '@types/deep-diff': + specifier: ^1.0.5 + version: 1.0.5 + '@types/diff': + specifier: ^5.0.8 + version: 5.0.9 + '@types/mocha': + specifier: ^10.0.2 + version: 10.0.6 + '@types/prompts': + specifier: ^2.4.8 + version: 2.4.9 + '@types/yargs-parser': + specifier: ^21.0.3 + version: 21.0.3 + astro: + specifier: workspace:* + version: link:../astro + astro-scripts: + specifier: workspace:* + version: link:../../scripts + chai: + specifier: ^4.3.10 + version: 4.4.1 + cheerio: + specifier: 1.0.0-rc.12 + version: 1.0.0-rc.12 + mocha: + specifier: ^10.2.0 + version: 10.2.0 + typescript: + specifier: ^5.2.2 + version: 5.2.2 + vite: + specifier: ^5.1.4 + version: 5.1.4(@types/node@18.19.4)(sass@1.69.6) + + packages/db/test/fixtures/basics: + dependencies: + '@astrojs/db': + specifier: workspace:* + version: link:../../.. + astro: + specifier: workspace:* + version: link:../../../../astro + + packages/db/test/fixtures/glob: + dependencies: + '@astrojs/db': + specifier: workspace:* + version: link:../../.. + astro: + specifier: workspace:* + version: link:../../../../astro + chokidar: + specifier: ^3.5.3 + version: 3.5.3 + drizzle-orm: + specifier: ^0.28.6 + version: 0.28.6(@libsql/client@0.4.3) + fast-glob: + specifier: ^3.3.2 + version: 3.3.2 + + packages/db/test/fixtures/recipes: + dependencies: + '@astrojs/db': + specifier: workspace:* + version: link:../../.. + astro: + specifier: workspace:* + version: link:../../../../astro + + packages/db/test/fixtures/ticketing-example: + dependencies: + '@astrojs/check': + specifier: ^0.5.5 + version: 0.5.5(prettier-plugin-astro@0.12.3)(prettier@3.1.1)(typescript@5.3.2) + '@astrojs/db': + specifier: workspace:* + version: link:../../.. + '@astrojs/node': + specifier: workspace:* + version: link:../../../../integrations/node + '@astrojs/react': + specifier: ^3.0.10 + version: link:../../../../integrations/react + '@types/react': + specifier: ^18.2.57 + version: 18.2.57 + '@types/react-dom': + specifier: ^18.2.19 + version: 18.2.19 + astro: + specifier: workspace:* + version: link:../../../../astro + open-props: + specifier: ^1.6.17 + version: 1.6.17 + react: + specifier: ^18.2.0 + version: 18.2.0 + react-dom: + specifier: ^18.2.0 + version: 18.2.0(react@18.2.0) + simple-stack-form: + specifier: ^0.1.10 + version: 0.1.10(astro@packages+astro)(zod@3.22.4) + typescript: + specifier: ^5.3.2 + version: 5.3.2 + zod: + specifier: ^3.22.4 + version: 3.22.4 + packages/integrations/alpinejs: devDependencies: '@playwright/test': @@ -3812,8 +3978,8 @@ importers: specifier: workspace:* version: link:../../../scripts vite: - specifier: ^5.1.2 - version: 5.1.2(@types/node@18.19.4)(sass@1.69.6) + specifier: ^5.1.4 + version: 5.1.4(@types/node@18.19.4)(sass@1.69.6) packages/integrations/alpinejs/test/fixtures/basics: dependencies: @@ -3945,8 +4111,8 @@ importers: specifier: ^0.16.4 version: 0.16.6 vite: - specifier: ^5.1.2 - version: 5.1.2(@types/node@18.19.4)(sass@1.69.6) + specifier: ^5.1.4 + version: 5.1.4(@types/node@18.19.4)(sass@1.69.6) packages/integrations/markdoc/test/fixtures/content-collections: dependencies: @@ -4171,8 +4337,8 @@ importers: specifier: ^11.0.4 version: 11.0.4 vite: - specifier: ^5.1.2 - version: 5.1.2(@types/node@18.19.4)(sass@1.69.6) + specifier: ^5.1.4 + version: 5.1.4(@types/node@18.19.4)(sass@1.69.6) packages/integrations/mdx/test/fixtures/css-head-mdx: dependencies: @@ -4438,6 +4604,15 @@ importers: specifier: workspace:* version: link:../../../../../astro + packages/integrations/node/test/fixtures/preview-headers: + dependencies: + '@astrojs/node': + specifier: workspace:* + version: link:../../.. + astro: + specifier: workspace:* + version: link:../../../../../astro + packages/integrations/node/test/fixtures/trailing-slash: dependencies: '@astrojs/node': @@ -4499,7 +4674,7 @@ importers: specifier: ^1.0.2 version: 1.0.2 preact-render-to-string: - specifier: ^6.3.1 + specifier: ~6.3.1 version: 6.3.1(preact@10.19.3) preact-ssr-prepass: specifier: ^1.2.1 @@ -4519,7 +4694,7 @@ importers: dependencies: '@vitejs/plugin-react': specifier: ^4.2.0 - version: 4.2.1(vite@5.1.2) + version: 4.2.1(vite@5.1.4) ultrahtml: specifier: ^1.3.0 version: 1.5.2 @@ -4546,8 +4721,8 @@ importers: specifier: ^18.1.0 version: 18.2.0(react@18.2.0) vite: - specifier: ^5.1.2 - version: 5.1.2(@types/node@18.19.4)(sass@1.69.6) + specifier: ^5.1.4 + version: 5.1.4(@types/node@18.19.4)(sass@1.69.6) packages/integrations/react/test/fixtures/react-component: dependencies: @@ -4648,9 +4823,9 @@ importers: dependencies: '@sveltejs/vite-plugin-svelte': specifier: ^3.0.0 - version: 3.0.1(svelte@4.2.8)(vite@5.1.2) + version: 3.0.1(svelte@4.2.8)(vite@5.1.4) svelte2tsx: - specifier: ^0.6.25 + specifier: ^0.6.27 version: 0.6.27(svelte@4.2.8)(typescript@5.2.2) devDependencies: astro: @@ -4663,8 +4838,8 @@ importers: specifier: ^4.2.5 version: 4.2.8 vite: - specifier: ^5.1.2 - version: 5.1.2(@types/node@18.19.4)(sass@1.69.6) + specifier: ^5.1.4 + version: 5.1.4(@types/node@18.19.4)(sass@1.69.6) packages/integrations/tailwind: dependencies: @@ -4688,8 +4863,8 @@ importers: specifier: ^3.3.5 version: 3.4.0 vite: - specifier: ^5.1.2 - version: 5.1.2(@types/node@18.19.4)(sass@1.69.6) + specifier: ^5.1.4 + version: 5.1.4(@types/node@18.19.4)(sass@1.69.6) packages/integrations/tailwind/test/fixtures/basic: dependencies: @@ -4924,10 +5099,10 @@ importers: dependencies: '@vitejs/plugin-vue': specifier: ^4.5.0 - version: 4.6.2(vite@5.1.2)(vue@3.4.3) + version: 4.6.2(vite@5.1.4)(vue@3.4.3) '@vitejs/plugin-vue-jsx': specifier: ^3.1.0 - version: 3.1.0(vite@5.1.2)(vue@3.4.3) + version: 3.1.0(vite@5.1.4)(vue@3.4.3) '@vue/babel-plugin-jsx': specifier: ^1.1.5 version: 1.1.5(@babel/core@7.23.7) @@ -4951,8 +5126,8 @@ importers: specifier: ^0.16.4 version: 0.16.6 vite: - specifier: ^5.1.2 - version: 5.1.2(@types/node@18.19.4)(sass@1.69.6) + specifier: ^5.1.4 + version: 5.1.4(@types/node@18.19.4)(sass@1.69.6) vue: specifier: ^3.3.8 version: 3.4.3(typescript@5.2.2) @@ -5115,7 +5290,7 @@ importers: version: 4.0.0 debug: specifier: ^4.3.4 - version: 4.3.4 + version: 4.3.4(supports-color@8.1.1) dlv: specifier: ^1.1.3 version: 1.1.3 @@ -5311,6 +5486,23 @@ packages: - prettier-plugin-astro dev: true + /@astrojs/check@0.5.5(prettier-plugin-astro@0.12.3)(prettier@3.1.1)(typescript@5.3.2): + resolution: {integrity: sha512-05LjyUB14Cv2mkLNqY4r2igI2eu0bq/HcKCfFNIoBPLyNW7VUDr9tciD9VJXXT3s0e6JHneIs6bQW5ipjmaRcw==} + hasBin: true + peerDependencies: + typescript: ^5.0.0 + dependencies: + '@astrojs/language-server': 2.7.6(prettier-plugin-astro@0.12.3)(prettier@3.1.1)(typescript@5.3.2) + chokidar: 3.5.3 + fast-glob: 3.3.2 + kleur: 4.1.5 + typescript: 5.3.2 + yargs: 17.7.2 + transitivePeerDependencies: + - prettier + - prettier-plugin-astro + dev: false + /@astrojs/cli-kit@0.2.5: resolution: {integrity: sha512-j6zpNUjtHJGEIKkTrTPvQD3G/sJUKyseJty42iVR3HqytzqHwLK165vptdT4NZKfZ082yLnUtsOXxRyIdfm/AQ==} dependencies: @@ -5330,7 +5522,6 @@ packages: /@astrojs/compiler@1.8.2: resolution: {integrity: sha512-o/ObKgtMzl8SlpIdzaxFnt7SATKPxu4oIP/1NL+HDJRzxfJcAkOTAb/ZKMRyULbz4q+1t2/DAebs2Z1QairkZw==} - dev: true /@astrojs/compiler@2.5.3: resolution: {integrity: sha512-jzj01BRv/fmo+9Mr2FhocywGzEYiyiP2GVHje1ziGNU6c97kwhYGsnvwMkHrncAy9T9Vi54cjaMK7UE4ClX4vA==} @@ -5371,6 +5562,40 @@ packages: - typescript dev: true + /@astrojs/language-server@2.7.6(prettier-plugin-astro@0.12.3)(prettier@3.1.1)(typescript@5.3.2): + resolution: {integrity: sha512-NhMSmMAuKBMXnvpfn9eYPR7R6zOasAjRb+ta8L+rCHHuKzUc0lBgAF5M6rx01FJqlpGqeqao13eYt4287Ze49g==} + hasBin: true + peerDependencies: + prettier: ^3.0.0 + prettier-plugin-astro: '>=0.11.0' + peerDependenciesMeta: + prettier: + optional: true + prettier-plugin-astro: + optional: true + dependencies: + '@astrojs/compiler': 2.5.3 + '@jridgewell/sourcemap-codec': 1.4.15 + '@volar/kit': 2.0.4(typescript@5.3.2) + '@volar/language-core': 2.0.4 + '@volar/language-server': 2.0.4 + '@volar/language-service': 2.0.4 + '@volar/typescript': 2.0.4 + fast-glob: 3.3.2 + prettier: 3.1.1 + prettier-plugin-astro: 0.12.3 + volar-service-css: 0.0.30(@volar/language-service@2.0.4) + volar-service-emmet: 0.0.30(@volar/language-service@2.0.4) + volar-service-html: 0.0.30(@volar/language-service@2.0.4) + volar-service-prettier: 0.0.30(@volar/language-service@2.0.4)(prettier@3.1.1) + volar-service-typescript: 0.0.30(@volar/language-service@2.0.4)(@volar/typescript@2.0.4) + volar-service-typescript-twoslash-queries: 0.0.30(@volar/language-service@2.0.4) + vscode-html-languageservice: 5.1.2 + vscode-uri: 3.0.8 + transitivePeerDependencies: + - typescript + dev: false + /@babel/code-frame@7.23.5: resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} engines: {node: '>=6.9.0'} @@ -5398,7 +5623,7 @@ packages: '@babel/traverse': 7.23.7 '@babel/types': 7.23.6 convert-source-map: 2.0.0 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -5757,7 +5982,7 @@ packages: '@babel/helper-split-export-declaration': 7.22.6 '@babel/parser': 7.23.6 '@babel/types': 7.23.6 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -6071,6 +6296,23 @@ packages: prettier: 2.8.8 dev: true + /@clack/core@0.3.4: + resolution: {integrity: sha512-H4hxZDXgHtWTwV3RAVenqcC4VbJZNegbBjlPvzOzCouXtS2y3sDvlO3IsbrPNWuLWPPlYVYPghQdSF64683Ldw==} + dependencies: + picocolors: 1.0.0 + sisteransi: 1.0.5 + dev: false + + /@clack/prompts@0.7.0: + resolution: {integrity: sha512-0MhX9/B4iL6Re04jPrttDm+BsP8y6mS7byuv0BvXgdXhbV5PdlsHt55dvNsuBCPZ7xq1oTAOOuotR9NFbQyMSA==} + dependencies: + '@clack/core': 0.3.4 + picocolors: 1.0.0 + sisteransi: 1.0.5 + dev: false + bundledDependencies: + - is-unicode-supported + /@colors/colors@1.5.0: resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} @@ -6465,17 +6707,14 @@ packages: resolution: {integrity: sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA==} dependencies: '@emmetio/scanner': 1.0.4 - dev: true /@emmetio/css-abbreviation@2.1.8: resolution: {integrity: sha512-s9yjhJ6saOO/uk1V74eifykk2CBYi01STTK3WlXWGOepyKa23ymJ053+DNQjpFcy1ingpaO7AxCcwLvHFY9tuw==} dependencies: '@emmetio/scanner': 1.0.4 - dev: true /@emmetio/scanner@1.0.4: resolution: {integrity: sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA==} - dev: true /@esbuild/aix-ppc64@0.19.11: resolution: {integrity: sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g==} @@ -6681,7 +6920,7 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) espree: 9.6.1 globals: 13.24.0 ignore: 5.3.0 @@ -6716,7 +6955,7 @@ packages: engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': 2.0.1 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -6778,6 +7017,114 @@ packages: resolution: {integrity: sha512-n5JEf16Wr4mdkRMZ8wMP/wN9/sHmTjRPbouXjJH371mZ2LEGDl72t8tEsMRNFerQN/QJtivOxqK1frdGa4QK5Q==} engines: {node: '>=10'} + /@libsql/client@0.4.3: + resolution: {integrity: sha512-AUYKnSPqAsFBVWBvmtrb4dG3pQlvTKT92eztAest9wQU2iJkabH8WzHLDb3dKFWKql7/kiCqvBQUVpozDwhekQ==} + dependencies: + '@libsql/core': 0.4.3 + '@libsql/hrana-client': 0.5.6 + js-base64: 3.7.7 + optionalDependencies: + libsql: 0.2.0 + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + dev: false + + /@libsql/core@0.4.3: + resolution: {integrity: sha512-r28iYBtaLBW9RRgXPFh6cGCsVI/rwRlOzSOpAu/1PVTm6EJ3t233pUf97jETVHU0vjdr1d8VvV6fKAvJkokqCw==} + dependencies: + js-base64: 3.7.7 + dev: false + + /@libsql/darwin-arm64@0.2.0: + resolution: {integrity: sha512-+qyT2W/n5CFH1YZWv2mxW4Fsoo4dX9Z9M/nvbQqZ7H84J8hVegvVAsIGYzcK8xAeMEcpU5yGKB1Y9NoDY4hOSQ==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@libsql/darwin-x64@0.2.0: + resolution: {integrity: sha512-hwmO2mF1n8oDHKFrUju6Jv+n9iFtTf5JUK+xlnIE3Td0ZwGC/O1R/Z/btZTd9nD+vsvakC8SJT7/Q6YlWIkhEw==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@libsql/hrana-client@0.5.6: + resolution: {integrity: sha512-mjQoAmejZ1atG+M3YR2ZW+rg6ceBByH/S/h17ZoYZkqbWrvohFhXyz2LFxj++ARMoY9m6w3RJJIRdJdmnEUlFg==} + dependencies: + '@libsql/isomorphic-fetch': 0.1.12 + '@libsql/isomorphic-ws': 0.1.5 + js-base64: 3.7.7 + node-fetch: 3.3.2 + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + dev: false + + /@libsql/isomorphic-fetch@0.1.12: + resolution: {integrity: sha512-MRo4UcmjAGAa3ac56LoD5OE13m2p0lu0VEtZC2NZMcogM/jc5fU9YtMQ3qbPjFJ+u2BBjFZgMPkQaLS1dlMhpg==} + dependencies: + '@types/node-fetch': 2.6.11 + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + dev: false + + /@libsql/isomorphic-ws@0.1.5: + resolution: {integrity: sha512-DtLWIH29onUYR00i0GlQ3UdcTRC6EP4u9w/h9LxpUZJWRMARk6dQwZ6Jkd+QdwVpuAOrdxt18v0K2uIYR3fwFg==} + dependencies: + '@types/ws': 8.5.10 + ws: 8.16.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: false + + /@libsql/linux-arm64-gnu@0.2.0: + resolution: {integrity: sha512-1w2lPXIYtnBaK5t/Ej5E8x7lPiE+jP3KATI/W4yei5Z/ONJh7jQW5PJ7sYU95vTME3hWEM1FXN6kvzcpFAte7w==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@libsql/linux-arm64-musl@0.2.0: + resolution: {integrity: sha512-lkblBEJ7xuNiWNjP8DDq0rqoWccszfkUS7Efh5EjJ+GDWdCBVfh08mPofIZg0fZVLWQCY3j+VZCG1qZfATBizg==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@libsql/linux-x64-gnu@0.2.0: + resolution: {integrity: sha512-+x/d289KeJydwOhhqSxKT+6MSQTCfLltzOpTzPccsvdt5fxg8CBi+gfvEJ4/XW23Sa+9bc7zodFP0i6MOlxX7w==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@libsql/linux-x64-musl@0.2.0: + resolution: {integrity: sha512-5Xn0c5A6vKf9D1ASpgk7mef//FuY7t5Lktj/eiU4n3ryxG+6WTpqstTittJUgepVjcleLPYxIhQAYeYwTYH1IQ==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@libsql/win32-x64-msvc@0.2.0: + resolution: {integrity: sha512-rpK+trBIpRST15m3cMYg5aPaX7kvCIottxY7jZPINkKAaScvfbn9yulU/iZUM9YtuK96Y1ZmvwyVIK/Y5DzoMQ==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + /@lit-labs/ssr-client@1.1.5: resolution: {integrity: sha512-rAXd2OsuxfGA579RiDS2YQSm1HreE8knQHj+fcMhGIPYenBoW4M70Yl8K3a35MSLlpQnnF//s2TPfkHFmy2RhA==} dependencies: @@ -6925,6 +7272,12 @@ packages: preact: 10.19.3 dev: false + /@neon-rs/load@0.0.4: + resolution: {integrity: sha512-kTPhdZyTQxB+2wpiRcFWrDcejc4JI6tkPuS7UZCG4l6Zvc5kU/gGQ/ozvHTh1XR5tS+UlfAfGuPajjzQjCiHCw==} + requiresBuild: true + dev: false + optional: true + /@nodelib/fs.scandir@2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -7088,7 +7441,7 @@ packages: '@prefresh/vite': 2.4.5(preact@10.19.3) '@rollup/pluginutils': 4.2.1 babel-plugin-transform-hook-names: 1.0.2 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) kolorist: 1.8.0 resolve: 1.22.8 transitivePeerDependencies: @@ -7259,7 +7612,7 @@ packages: solid-js: 1.8.7 dev: false - /@sveltejs/vite-plugin-svelte-inspector@2.0.0(@sveltejs/vite-plugin-svelte@3.0.1)(svelte@4.2.8)(vite@5.1.2): + /@sveltejs/vite-plugin-svelte-inspector@2.0.0(@sveltejs/vite-plugin-svelte@3.0.1)(svelte@4.2.8)(vite@5.1.4): resolution: {integrity: sha512-gjr9ZFg1BSlIpfZ4PRewigrvYmHWbDrq2uvvPB1AmTWKuM+dI1JXQSUu2pIrYLb/QncyiIGkFDFKTwJ0XqQZZg==} engines: {node: ^18.0.0 || >=20} peerDependencies: @@ -7270,15 +7623,15 @@ packages: vite: optional: true dependencies: - '@sveltejs/vite-plugin-svelte': 3.0.1(svelte@4.2.8)(vite@5.1.2) - debug: 4.3.4 + '@sveltejs/vite-plugin-svelte': 3.0.1(svelte@4.2.8)(vite@5.1.4) + debug: 4.3.4(supports-color@8.1.1) svelte: 4.2.8 - vite: 5.1.2(@types/node@18.19.4)(sass@1.69.6) + vite: 5.1.4(@types/node@18.19.4)(sass@1.69.6) transitivePeerDependencies: - supports-color dev: false - /@sveltejs/vite-plugin-svelte@3.0.1(svelte@4.2.8)(vite@5.1.2): + /@sveltejs/vite-plugin-svelte@3.0.1(svelte@4.2.8)(vite@5.1.4): resolution: {integrity: sha512-CGURX6Ps+TkOovK6xV+Y2rn8JKa8ZPUHPZ/NKgCxAmgBrXReavzFl8aOSCj3kQ1xqT7yGJj53hjcV/gqwDAaWA==} engines: {node: ^18.0.0 || >=20} peerDependencies: @@ -7288,15 +7641,15 @@ packages: vite: optional: true dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 2.0.0(@sveltejs/vite-plugin-svelte@3.0.1)(svelte@4.2.8)(vite@5.1.2) - debug: 4.3.4 + '@sveltejs/vite-plugin-svelte-inspector': 2.0.0(@sveltejs/vite-plugin-svelte@3.0.1)(svelte@4.2.8)(vite@5.1.4) + debug: 4.3.4(supports-color@8.1.1) deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.5 svelte: 4.2.8 svelte-hmr: 0.15.3(svelte@4.2.8) - vite: 5.1.2(@types/node@18.19.4)(sass@1.69.6) - vitefu: 0.2.5(vite@5.1.2) + vite: 5.1.4(@types/node@18.19.4)(sass@1.69.6) + vitefu: 0.2.5(vite@5.1.4) transitivePeerDependencies: - supports-color dev: false @@ -7399,6 +7752,10 @@ packages: dependencies: '@types/ms': 0.7.34 + /@types/deep-diff@1.0.5: + resolution: {integrity: sha512-PQyNSy1YMZU1hgZA5tTYfHPpUAo9Dorn1PZho2/budQLfqLu3JIP37JAavnwYpR1S2yFZTXa3hxaE4ifGW5jaA==} + dev: true + /@types/diff@5.0.9: resolution: {integrity: sha512-RWVEhh/zGXpAVF/ZChwNnv7r4rvqzJ7lYNSmZSVTxjV0PBLf6Qu7RNg+SUtkpzxmiNkjCx0Xn2tPp7FIkshJwQ==} dev: true @@ -7528,8 +7885,15 @@ packages: '@types/unist': 2.0.10 dev: false - /@types/node@12.20.55: - resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} + /@types/node-fetch@2.6.11: + resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==} + dependencies: + '@types/node': 18.19.4 + form-data: 4.0.0 + dev: false + + /@types/node@12.20.55: + resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} dev: true /@types/node@16.18.69: @@ -7575,6 +7939,12 @@ packages: dependencies: '@types/react': 18.2.46 + /@types/react-dom@18.2.19: + resolution: {integrity: sha512-aZvQL6uUbIJpjZk4U8JZGbau9KDeAwMfmhyWorxgBkqDIEf6ROjRozcmPIicqsUwPUjbkDfHKgGee1Lq65APcA==} + dependencies: + '@types/react': 18.2.57 + dev: false + /@types/react@18.2.46: resolution: {integrity: sha512-nNCvVBcZlvX4NU1nRRNV/mFl1nNRuTuslAJglQsq+8ldXe5Xv0Wd2f7WTE3jOxhLH2BFfiZGC6GCp+kHQbgG+w==} dependencies: @@ -7582,6 +7952,14 @@ packages: '@types/scheduler': 0.16.8 csstype: 3.1.3 + /@types/react@18.2.57: + resolution: {integrity: sha512-ZvQsktJgSYrQiMirAN60y4O/LRevIV8hUzSOSNB6gfR3/o3wCBFQx3sPwIYtuDMeiVgsSS3UzCV26tEzgnfvQw==} + dependencies: + '@types/prop-types': 15.7.11 + '@types/scheduler': 0.16.8 + csstype: 3.1.3 + dev: false + /@types/relateurl@0.2.33: resolution: {integrity: sha512-bTQCKsVbIdzLqZhLkF5fcJQreE4y1ro4DIyVrlDNSCJRRwHhB8Z+4zXXa8jN6eDvc2HbRsEYgbvrnGvi54EpSw==} dev: true @@ -7653,6 +8031,12 @@ packages: resolution: {integrity: sha512-M0ZefeDApctHbjqtATOiixiwafG7pXD3exxnjku4XmX9+2DmONGghv5Z8Pnm0lNLBZKvDQyuG+4pLkH2UkP5gg==} dev: true + /@types/ws@8.5.10: + resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} + dependencies: + '@types/node': 18.19.4 + dev: false + /@types/xml2js@0.4.14: resolution: {integrity: sha512-4YnrRemBShWRO2QjvUin8ESA41rH+9nQGLUGZV/1IDhi3SL9OhdpNC/MrulTWuptXKwhx/aDxE7toV0f/ypIXQ==} dependencies: @@ -7680,7 +8064,7 @@ packages: '@typescript-eslint/type-utils': 6.17.0(eslint@8.56.0)(typescript@5.2.2) '@typescript-eslint/utils': 6.17.0(eslint@8.56.0)(typescript@5.2.2) '@typescript-eslint/visitor-keys': 6.17.0 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) eslint: 8.56.0 graphemer: 1.4.0 ignore: 5.3.0 @@ -7706,7 +8090,7 @@ packages: '@typescript-eslint/types': 6.17.0 '@typescript-eslint/typescript-estree': 6.17.0(typescript@5.2.2) '@typescript-eslint/visitor-keys': 6.17.0 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) eslint: 8.56.0 typescript: 5.2.2 transitivePeerDependencies: @@ -7733,7 +8117,7 @@ packages: dependencies: '@typescript-eslint/typescript-estree': 6.17.0(typescript@5.2.2) '@typescript-eslint/utils': 6.17.0(eslint@8.56.0)(typescript@5.2.2) - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) eslint: 8.56.0 ts-api-utils: 1.0.3(typescript@5.2.2) typescript: 5.2.2 @@ -7757,7 +8141,7 @@ packages: dependencies: '@typescript-eslint/types': 6.17.0 '@typescript-eslint/visitor-keys': 6.17.0 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 @@ -7799,7 +8183,7 @@ packages: resolution: {integrity: sha512-kTwMUQ8xtAZaC4wb2XuLkPqFVBj2dNBueMQ89NWEuw87k2nLBbuafeG5cob/QEr6YduxIdTVUjix0MtC7mPlmg==} dependencies: '@typescript/vfs': 1.3.5 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) lz-string: 1.5.0 transitivePeerDependencies: - supports-color @@ -7808,7 +8192,7 @@ packages: /@typescript/vfs@1.3.4: resolution: {integrity: sha512-RbyJiaAGQPIcAGWFa3jAXSuAexU4BFiDRF1g3hy7LmRqfNpYlTQWGXjcrOaVZjJ8YkkpuwG0FcsYvtWQpd9igQ==} dependencies: - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color dev: true @@ -7816,7 +8200,7 @@ packages: /@typescript/vfs@1.3.5: resolution: {integrity: sha512-pI8Saqjupf9MfLw7w2+og+fmb0fZS0J6vsKXXrp4/PDXEFvntgzXmChCXC/KefZZS0YGS6AT8e0hGAJcTsdJlg==} dependencies: - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color dev: true @@ -7855,7 +8239,7 @@ packages: - supports-color dev: false - /@vitejs/plugin-react@4.2.1(vite@5.1.2): + /@vitejs/plugin-react@4.2.1(vite@5.1.4): resolution: {integrity: sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -7869,12 +8253,12 @@ packages: '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.23.7) '@types/babel__core': 7.20.5 react-refresh: 0.14.0 - vite: 5.1.2(@types/node@18.19.4)(sass@1.69.6) + vite: 5.1.4(@types/node@18.19.4)(sass@1.69.6) transitivePeerDependencies: - supports-color dev: false - /@vitejs/plugin-vue-jsx@3.1.0(vite@5.1.2)(vue@3.4.3): + /@vitejs/plugin-vue-jsx@3.1.0(vite@5.1.4)(vue@3.4.3): resolution: {integrity: sha512-w9M6F3LSEU5kszVb9An2/MmXNxocAnUb3WhRr8bHlimhDrXNt6n6D2nJQR3UXpGlZHh/EsgouOHCsM8V3Ln+WA==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -7887,13 +8271,13 @@ packages: '@babel/core': 7.23.7 '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.23.7) '@vue/babel-plugin-jsx': 1.1.5(@babel/core@7.23.7) - vite: 5.1.2(@types/node@18.19.4)(sass@1.69.6) + vite: 5.1.4(@types/node@18.19.4)(sass@1.69.6) vue: 3.4.3(typescript@5.2.2) transitivePeerDependencies: - supports-color dev: false - /@vitejs/plugin-vue@4.6.2(vite@5.1.2)(vue@3.4.3): + /@vitejs/plugin-vue@4.6.2(vite@5.1.4)(vue@3.4.3): resolution: {integrity: sha512-kqf7SGFoG+80aZG6Pf+gsZIVvGSCKE98JbiWqcCV9cThtg91Jav0yvYFC9Zb+jKetNGF6ZKeoaxgZfND21fWKw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -7903,42 +8287,42 @@ packages: vite: optional: true dependencies: - vite: 5.1.2(@types/node@18.19.4)(sass@1.69.6) + vite: 5.1.4(@types/node@18.19.4)(sass@1.69.6) vue: 3.4.3(typescript@5.2.2) dev: false - /@vitest/expect@1.2.2: - resolution: {integrity: sha512-3jpcdPAD7LwHUUiT2pZTj2U82I2Tcgg2oVPvKxhn6mDI2On6tfvPQTjAI4628GUGDZrCm4Zna9iQHm5cEexOAg==} + /@vitest/expect@1.3.1: + resolution: {integrity: sha512-xofQFwIzfdmLLlHa6ag0dPV8YsnKOCP1KdAeVVh34vSjN2dcUiXYCD9htu/9eM7t8Xln4v03U9HLxLpPlsXdZw==} dependencies: - '@vitest/spy': 1.2.2 - '@vitest/utils': 1.2.2 + '@vitest/spy': 1.3.1 + '@vitest/utils': 1.3.1 chai: 4.4.1 dev: false - /@vitest/runner@1.2.2: - resolution: {integrity: sha512-JctG7QZ4LSDXr5CsUweFgcpEvrcxOV1Gft7uHrvkQ+fsAVylmWQvnaAr/HDp3LAH1fztGMQZugIheTWjaGzYIg==} + /@vitest/runner@1.3.1: + resolution: {integrity: sha512-5FzF9c3jG/z5bgCnjr8j9LNq/9OxV2uEBAITOXfoe3rdZJTdO7jzThth7FXv/6b+kdY65tpRQB7WaKhNZwX+Kg==} dependencies: - '@vitest/utils': 1.2.2 + '@vitest/utils': 1.3.1 p-limit: 5.0.0 pathe: 1.1.2 dev: false - /@vitest/snapshot@1.2.2: - resolution: {integrity: sha512-SmGY4saEw1+bwE1th6S/cZmPxz/Q4JWsl7LvbQIky2tKE35US4gd0Mjzqfr84/4OD0tikGWaWdMja/nWL5NIPA==} + /@vitest/snapshot@1.3.1: + resolution: {integrity: sha512-EF++BZbt6RZmOlE3SuTPu/NfwBF6q4ABS37HHXzs2LUVPBLx2QoY/K0fKpRChSo8eLiuxcbCVfqKgx/dplCDuQ==} dependencies: magic-string: 0.30.7 pathe: 1.1.2 pretty-format: 29.7.0 dev: false - /@vitest/spy@1.2.2: - resolution: {integrity: sha512-k9Gcahssw8d7X3pSLq3e3XEu/0L78mUkCjivUqCQeXJm9clfXR/Td8+AP+VC1O6fKPIDLcHDTAmBOINVuv6+7g==} + /@vitest/spy@1.3.1: + resolution: {integrity: sha512-xAcW+S099ylC9VLU7eZfdT9myV67Nor9w9zhf0mGCYJSO+zM2839tOeROTdikOi/8Qeusffvxb/MyBSOja1Uig==} dependencies: tinyspy: 2.2.1 dev: false - /@vitest/utils@1.2.2: - resolution: {integrity: sha512-WKITBHLsBHlpjnDQahr+XK6RE7MiAsgrIkr0pGhQ9ygoxBfUeG0lUG5iLlzqjmKSlBv3+j5EGsriBzh+C3Tq9g==} + /@vitest/utils@1.3.1: + resolution: {integrity: sha512-d3Waie/299qqRyHTm2DjADeTaNdNSVsnwHPWrs20JMpjh6eiVq7ggggweO8rc4arhf6rRkWuHKwvxGvejUXZZQ==} dependencies: diff-sequences: 29.6.3 estree-walker: 3.0.3 @@ -7958,12 +8342,31 @@ packages: vscode-uri: 3.0.8 dev: true + /@volar/kit@2.0.4(typescript@5.3.2): + resolution: {integrity: sha512-USRx/o0jKz7o8+lEKWMxWqbqvC46XFrf3IE6CZBYzRo9kM7RERQLwUYaoT2bOcHt5DQWublpnTgdgHMm37Gysg==} + peerDependencies: + typescript: '*' + dependencies: + '@volar/language-service': 2.0.4 + '@volar/typescript': 2.0.4 + typesafe-path: 0.2.2 + typescript: 5.3.2 + vscode-languageserver-textdocument: 1.0.11 + vscode-uri: 3.0.8 + dev: false + /@volar/language-core@1.10.10: resolution: {integrity: sha512-nsV1o3AZ5n5jaEAObrS3MWLBWaGwUj/vAsc15FVNIv+DbpizQRISg9wzygsHBr56ELRH8r4K75vkYNMtsSNNWw==} dependencies: '@volar/source-map': 1.10.10 dev: true + /@volar/language-core@2.0.4: + resolution: {integrity: sha512-VhC8i03P0x9LKGLTBi81xNTNWm40yxQ/Iba8IpH+LFr+Yb7c/D7fF90Cvf31MzPDM4G5rjIOlCfs+eQKPBkwQw==} + dependencies: + '@volar/source-map': 2.0.4 + dev: false + /@volar/language-server@1.10.10: resolution: {integrity: sha512-F2PRBU+CRjT7L9qe8bjof/uz/LbAXVmgwNU2gOSX2y1bUl3E8DHmD0dB6pwIVublvkx+Ivg/0r3Z6oyxfPPruQ==} dependencies: @@ -7979,6 +8382,22 @@ packages: vscode-uri: 3.0.8 dev: true + /@volar/language-server@2.0.4: + resolution: {integrity: sha512-VnljhooQjT6RhmvwwJK9+3YYs2ovFmav4IVNHiQgnTMfiOiyABzcghwvJrJrI39rJDI6LNOWF7BYUJq7K07BKQ==} + dependencies: + '@volar/language-core': 2.0.4 + '@volar/language-service': 2.0.4 + '@volar/snapshot-document': 2.0.4 + '@volar/typescript': 2.0.4 + '@vscode/l10n': 0.0.16 + 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.11 + vscode-uri: 3.0.8 + dev: false + /@volar/language-service@1.10.10: resolution: {integrity: sha512-P4fiPWDI6fLGO6BghlksCVHs1nr9gvWAMDyma3Bca4aowxXusxjUVTsnJq0EVorIN5uIr1Xel4B/tNdXt/IKyw==} dependencies: @@ -7989,12 +8408,34 @@ packages: vscode-uri: 3.0.8 dev: true + /@volar/language-service@2.0.4: + resolution: {integrity: sha512-DoanyU9I9Nl85lUytDl8jgyk+nrUDR5CFNVMrxWXGXclP4WTqBayBgSFAeF1L/5AwP3MywmWoK4GLAEVvl8D+Q==} + dependencies: + '@volar/language-core': 2.0.4 + vscode-languageserver-protocol: 3.17.5 + vscode-languageserver-textdocument: 1.0.11 + vscode-uri: 3.0.8 + dev: false + + /@volar/snapshot-document@2.0.4: + resolution: {integrity: sha512-YzgdmvpdRFxiBFCOVWga67naAtbPtKmPaFtGnmxWx+KXrjGkpUXT/2tzeKn5FLdtoYV+DRTdpMdP/45ArnVwZQ==} + dependencies: + vscode-languageserver-protocol: 3.17.5 + vscode-languageserver-textdocument: 1.0.11 + dev: false + /@volar/source-map@1.10.10: resolution: {integrity: sha512-GVKjLnifV4voJ9F0vhP56p4+F3WGf+gXlRtjFZsv6v3WxBTWU3ZVeaRaEHJmWrcv5LXmoYYpk/SC25BKemPRkg==} dependencies: muggle-string: 0.3.1 dev: true + /@volar/source-map@2.0.4: + resolution: {integrity: sha512-BbxUinEMoJZqrHsSj1aBa0boCBnN3BoXnf7j9IBwjxosxGXOhCvqmH2L9raJemadaKjeVR8ZQLhV7AOhyoHt/Q==} + dependencies: + muggle-string: 0.4.1 + dev: false + /@volar/typescript@1.10.10: resolution: {integrity: sha512-4a2r5bdUub2m+mYVnLu2wt59fuoYWe7nf0uXtGHU8QQ5LDNfzAR0wK7NgDiQ9rcl2WT3fxT2AA9AylAwFtj50A==} dependencies: @@ -8002,6 +8443,13 @@ packages: path-browserify: 1.0.1 dev: true + /@volar/typescript@2.0.4: + resolution: {integrity: sha512-KF7yh7GIo4iWuAQOKf/ONeFHdQA+wFriitW8LtGZB4iOOT6MdlRlYNsRL8do7XxmXvsBKcs4jTMtGn+uZRwlWg==} + dependencies: + '@volar/language-core': 2.0.4 + path-browserify: 1.0.1 + dev: false + /@vscode/emmet-helper@2.9.2: resolution: {integrity: sha512-MaGuyW+fa13q3aYsluKqclmh62Hgp0BpKIqS66fCxfOaBcVQ1OnMQxRRgQUYnCkxFISAQlkJ0qWWPyXjro1Qrg==} dependencies: @@ -8010,11 +8458,13 @@ packages: vscode-languageserver-textdocument: 1.0.11 vscode-languageserver-types: 3.17.5 vscode-uri: 2.1.2 - dev: true /@vscode/l10n@0.0.16: resolution: {integrity: sha512-JT5CvrIYYCrmB+dCana8sUqJEcGB1ZDXNLMQ2+42bW995WmNoenijWMUdZfwmuQUTQcEVVIa2OecZzTYWUW9Cg==} - dev: true + + /@vscode/l10n@0.0.18: + resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==} + dev: false /@vue/babel-helper-vue-transform-on@1.1.5: resolution: {integrity: sha512-SgUymFpMoAyWeYWLAY+MkCK3QEROsiUnfaw5zxOVD/M64KQs8D/4oK6Q5omVA2hnvEOE0SCkH2TZxs/jnnUj7w==} @@ -8158,7 +8608,7 @@ packages: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} dependencies: - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -8166,7 +8616,7 @@ packages: resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==} engines: {node: '>= 14'} dependencies: - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color dev: false @@ -8200,6 +8650,11 @@ packages: string-width: 4.2.3 dev: false + /ansi-colors@4.1.1: + resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} + engines: {node: '>=6'} + dev: true + /ansi-colors@4.1.3: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} engines: {node: '>=6'} @@ -8329,7 +8784,6 @@ packages: /assertion-error@1.1.0: resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} - dev: false /astring@1.8.6: resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==} @@ -8367,6 +8821,11 @@ packages: ultrahtml: 0.1.3 dev: false + /async-listen@3.0.1: + resolution: {integrity: sha512-cWMaNwUJnf37C/S5TfCkk/15MwbPRwVYALA2jtjkbHjCmAPiDXyNJy2q3p1KAZzDLHAWyarUWSujUoHR4pEgrA==} + engines: {node: '>= 14'} + dev: false + /async-sema@3.1.1: resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} dev: false @@ -8608,6 +9067,10 @@ packages: wcwidth: 1.0.1 dev: true + /browser-stdout@1.3.1: + resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} + dev: true + /browserslist@4.22.2: resolution: {integrity: sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} @@ -8633,6 +9096,13 @@ packages: ieee754: 1.2.1 dev: false + /bundle-name@4.1.0: + resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} + engines: {node: '>=18'} + dependencies: + run-applescript: 7.0.0 + dev: false + /bytes@3.1.2: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} @@ -8684,7 +9154,6 @@ packages: /camelcase@6.3.0: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - dev: false /camelcase@7.0.1: resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} @@ -8712,7 +9181,6 @@ packages: loupe: 2.3.7 pathval: 1.1.1 type-detect: 4.0.8 - dev: false /chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} @@ -8758,7 +9226,6 @@ packages: resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} dependencies: get-func-name: 2.0.2 - dev: false /cheerio-select@2.1.0: resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} @@ -8866,6 +9333,14 @@ packages: wrap-ansi: 6.2.0 dev: true + /cliui@7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: true + /cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} @@ -8873,7 +9348,6 @@ packages: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - dev: true /clone@1.0.4: resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} @@ -9209,7 +9683,7 @@ packages: dependencies: ms: 2.0.0 - /debug@4.3.4: + /debug@4.3.4(supports-color@8.1.1): resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} peerDependencies: @@ -9219,6 +9693,7 @@ packages: optional: true dependencies: ms: 2.1.2 + supports-color: 8.1.1 /decamelize-keys@1.1.1: resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} @@ -9233,6 +9708,11 @@ packages: engines: {node: '>=0.10.0'} dev: true + /decamelize@4.0.0: + resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} + engines: {node: '>=10'} + dev: true + /decimal.js@10.4.3: resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} dev: true @@ -9254,12 +9734,15 @@ packages: resolution: {integrity: sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==} dev: false + /deep-diff@1.0.2: + resolution: {integrity: sha512-aWS3UIVH+NPGCD1kki+DCU9Dua032iSsO43LqQpcs4R3+dVv7tX0qBGjiVHJHjplsoUM2XRO/KB92glqc68awg==} + dev: false + /deep-eql@4.1.3: resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} engines: {node: '>=6'} dependencies: type-detect: 4.0.8 - dev: false /deep-extend@0.6.0: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} @@ -9276,6 +9759,19 @@ packages: engines: {node: '>=0.10.0'} dev: false + /default-browser-id@5.0.0: + resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} + engines: {node: '>=18'} + dev: false + + /default-browser@5.2.1: + resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} + engines: {node: '>=18'} + dependencies: + bundle-name: 4.1.0 + default-browser-id: 5.0.0 + dev: false + /defaults@1.0.4: resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} dependencies: @@ -9291,6 +9787,11 @@ packages: has-property-descriptors: 1.0.1 dev: true + /define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} + dev: false + /define-properties@1.2.1: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} @@ -9380,6 +9881,11 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: false + /diff@5.0.0: + resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==} + engines: {node: '>=0.3.1'} + dev: true + /diff@5.1.0: resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} engines: {node: '>=0.3.1'} @@ -9443,6 +9949,71 @@ packages: engines: {node: '>=10'} dev: true + /drizzle-orm@0.28.6(@libsql/client@0.4.3): + resolution: {integrity: sha512-yBe+F9htrlYER7uXgDJUQsTHFoIrI5yMm5A0bg0GiZ/kY5jNXTWoEy4KQtg35cE27sw1VbgzoMWHAgCckUUUww==} + peerDependencies: + '@aws-sdk/client-rds-data': '>=3' + '@cloudflare/workers-types': '>=3' + '@libsql/client': '*' + '@neondatabase/serverless': '>=0.1' + '@opentelemetry/api': ^1.4.1 + '@planetscale/database': '>=1' + '@types/better-sqlite3': '*' + '@types/pg': '*' + '@types/sql.js': '*' + '@vercel/postgres': '*' + better-sqlite3: '>=7' + bun-types: '*' + knex: '*' + kysely: '*' + mysql2: '>=2' + pg: '>=8' + postgres: '>=3' + sql.js: '>=1' + sqlite3: '>=5' + peerDependenciesMeta: + '@aws-sdk/client-rds-data': + optional: true + '@cloudflare/workers-types': + optional: true + '@libsql/client': + optional: true + '@neondatabase/serverless': + optional: true + '@opentelemetry/api': + optional: true + '@planetscale/database': + optional: true + '@types/better-sqlite3': + optional: true + '@types/pg': + optional: true + '@types/sql.js': + optional: true + '@vercel/postgres': + optional: true + better-sqlite3: + optional: true + bun-types: + optional: true + knex: + optional: true + kysely: + optional: true + mysql2: + optional: true + pg: + optional: true + postgres: + optional: true + sql.js: + optional: true + sqlite3: + optional: true + dependencies: + '@libsql/client': 0.4.3 + dev: false + /dset@3.1.3: resolution: {integrity: sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ==} engines: {node: '>=4'} @@ -9472,7 +10043,6 @@ packages: dependencies: '@emmetio/abbreviation': 2.3.3 '@emmetio/css-abbreviation': 2.1.8 - dev: true /emoji-regex@10.3.0: resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} @@ -9740,7 +10310,7 @@ packages: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 @@ -10063,6 +10633,11 @@ packages: rimraf: 3.0.2 dev: true + /flat@5.0.2: + resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + hasBin: true + dev: true + /flatted@3.2.9: resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} dev: true @@ -10126,6 +10701,15 @@ packages: universalify: 2.0.1 dev: true + /fs-extra@11.2.0: + resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} + engines: {node: '>=14.14'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + dev: false + /fs-extra@7.0.1: resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} engines: {node: '>=6 <7 || >=8'} @@ -10209,7 +10793,6 @@ packages: /get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - dev: true /get-east-asian-width@1.2.0: resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} @@ -10218,7 +10801,6 @@ packages: /get-func-name@2.0.2: resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} - dev: false /get-intrinsic@1.2.2: resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} @@ -10287,6 +10869,17 @@ packages: minipass: 7.0.4 path-scurry: 1.10.1 + /glob@7.2.0: + resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + /glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} dependencies: @@ -10693,7 +11286,6 @@ packages: /he@1.2.0: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true - dev: false /hosted-git-info@2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} @@ -10777,7 +11369,7 @@ packages: dependencies: '@tootallnate/once': 2.0.0 agent-base: 6.0.2 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color dev: true @@ -10787,7 +11379,7 @@ packages: engines: {node: '>= 6'} dependencies: agent-base: 6.0.2 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -10796,7 +11388,7 @@ packages: engines: {node: '>= 14'} dependencies: agent-base: 7.1.0 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color dev: false @@ -11066,6 +11658,11 @@ packages: engines: {node: '>=0.10.0'} dev: true + /is-plain-obj@2.1.0: + resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} + engines: {node: '>=8'} + dev: true + /is-plain-obj@4.1.0: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} @@ -11125,6 +11722,11 @@ packages: which-typed-array: 1.1.13 dev: true + /is-unicode-supported@0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} + dev: true + /is-unicode-supported@1.3.0: resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} engines: {node: '>=12'} @@ -11172,9 +11774,17 @@ packages: resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} hasBin: true + /js-base64@3.7.7: + resolution: {integrity: sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==} + dev: false + /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + /js-tokens@8.0.3: + resolution: {integrity: sha512-UfJMcSJc+SEXEl9lH/VLHSZbThQyLpw1vLO1Lb+j4RWDvG3N2f7yj3PVQA3cmkTBNldJ9eFnM+xEXxHIXrYiJw==} + dev: false + /js-yaml@3.14.1: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} hasBin: true @@ -11284,7 +11894,6 @@ packages: /jsonc-parser@2.3.1: resolution: {integrity: sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==} - dev: true /jsonc-parser@3.2.0: resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} @@ -11306,7 +11915,10 @@ packages: universalify: 2.0.1 optionalDependencies: graceful-fs: 4.2.11 - dev: true + + /just-map-values@3.2.0: + resolution: {integrity: sha512-TyqCKtK3NxiUgOjRYMIKURvBTHesi3XzomDY0QVPZ3rYzLCF+nNq5rSi0B/L5aOd/WMTZo6ukzA4wih4HUbrDg==} + dev: false /katex@0.16.9: resolution: {integrity: sha512-fsSYjWS0EEOwvy81j3vRA8TEAhQhKiqO+FQaKWp0m39qwOzHVBgAUBIXWj1pB+O2W3fIpNa6Y9KSKCVbfPhyAQ==} @@ -11345,6 +11957,25 @@ packages: type-check: 0.4.0 dev: true + /libsql@0.2.0: + resolution: {integrity: sha512-ELBRqhpJx5Dap0187zKQnntZyk4EjlDHSrjIVL8t+fQ5e8IxbQTeYgZgigMjB1EvrETdkm0Y0VxBGhzPQ+t0Jg==} + cpu: [x64, arm64] + os: [darwin, linux, win32] + requiresBuild: true + dependencies: + '@neon-rs/load': 0.0.4 + detect-libc: 2.0.2 + optionalDependencies: + '@libsql/darwin-arm64': 0.2.0 + '@libsql/darwin-x64': 0.2.0 + '@libsql/linux-arm64-gnu': 0.2.0 + '@libsql/linux-arm64-musl': 0.2.0 + '@libsql/linux-x64-gnu': 0.2.0 + '@libsql/linux-x64-musl': 0.2.0 + '@libsql/win32-x64-msvc': 0.2.0 + dev: false + optional: true + /lilconfig@2.1.0: resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} engines: {node: '>=10'} @@ -11495,6 +12126,14 @@ packages: resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} dev: true + /log-symbols@4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} + dependencies: + chalk: 4.1.2 + is-unicode-supported: 0.1.0 + dev: true + /log-symbols@5.1.0: resolution: {integrity: sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==} engines: {node: '>=12'} @@ -11527,7 +12166,6 @@ packages: resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} dependencies: get-func-name: 2.0.2 - dev: false /lower-case@1.1.4: resolution: {integrity: sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==} @@ -12231,7 +12869,7 @@ packages: resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} dependencies: '@types/debug': 4.1.12 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) decode-named-character-reference: 1.0.2 devlop: 1.1.0 micromark-core-commonmark: 2.0.0 @@ -12303,6 +12941,13 @@ packages: dependencies: brace-expansion: 1.1.11 + /minimatch@5.0.1: + resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==} + engines: {node: '>=10'} + dependencies: + brace-expansion: 2.0.1 + dev: true + /minimatch@7.4.6: resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==} engines: {node: '>=10'} @@ -12388,6 +13033,34 @@ packages: ufo: 1.4.0 dev: false + /mocha@10.2.0: + resolution: {integrity: sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==} + engines: {node: '>= 14.0.0'} + hasBin: true + dependencies: + ansi-colors: 4.1.1 + browser-stdout: 1.3.1 + chokidar: 3.5.3 + debug: 4.3.4(supports-color@8.1.1) + diff: 5.0.0 + escape-string-regexp: 4.0.0 + find-up: 5.0.0 + glob: 7.2.0 + he: 1.2.0 + js-yaml: 4.1.0 + log-symbols: 4.1.0 + minimatch: 5.0.1 + ms: 2.1.3 + nanoid: 3.3.3 + serialize-javascript: 6.0.0 + strip-json-comments: 3.1.1 + supports-color: 8.1.1 + workerpool: 6.2.1 + yargs: 16.2.0 + yargs-parser: 20.2.4 + yargs-unparser: 2.0.0 + dev: true + /mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} @@ -12411,6 +13084,10 @@ packages: resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==} dev: true + /muggle-string@0.4.1: + resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} + dev: false + /mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} dependencies: @@ -12418,11 +13095,23 @@ packages: object-assign: 4.1.1 thenify-all: 1.6.0 + /nanoid@3.3.3: + resolution: {integrity: sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: true + /nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + /nanoid@5.0.1: + resolution: {integrity: sha512-vWeVtV5Cw68aML/QaZvqN/3QQXc6fBfIieAlu05m7FZW2Dgb+3f0xc0TTxuJW+7u30t7iSDTV/j3kVI0oJqIfQ==} + engines: {node: ^18 || >=20} + hasBin: true + dev: false + /nanostores@0.9.5: resolution: {integrity: sha512-Z+p+g8E7yzaWwOe5gEUB2Ox0rCEeXWYIZWmYvw/ajNYX8DlXdMvMDj8DWfM/subqPAcsf8l8Td4iAwO1DeIIRQ==} engines: {node: ^16.0.0 || ^18.0.0 || >=20.0.0} @@ -12663,6 +13352,20 @@ packages: which-pm-runs: 1.1.0 dev: true + /open-props@1.6.17: + resolution: {integrity: sha512-6mp/gpLQz/ZwrGLz+i7tSJ3eWNLE1KxLXHO+b6xxRyZ1Alp4TgTcvHiQ89rC2IkvsU3/IRhpIJuxl7rRCwUzLA==} + dev: false + + /open@10.0.3: + resolution: {integrity: sha512-dtbI5oW7987hwC9qjJTyABldTaa19SuyJse1QboWv3b0qCcrrLNVDqBx1XgELAjh9QTVQaP/C5b1nhQebd1H2A==} + engines: {node: '>=18'} + dependencies: + default-browser: 5.2.1 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 + is-wsl: 3.1.0 + dev: false + /optionator@0.9.3: resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} engines: {node: '>= 0.8.0'} @@ -12869,7 +13572,6 @@ packages: /path-browserify@1.0.1: resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} - dev: true /path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} @@ -12936,7 +13638,6 @@ packages: /pathval@1.1.1: resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} - dev: false /periscopic@3.1.0: resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} @@ -13476,7 +14177,6 @@ packages: '@astrojs/compiler': 1.8.2 prettier: 3.1.1 sass-formatter: 0.7.8 - dev: true /prettier@2.8.8: resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} @@ -13488,7 +14188,6 @@ packages: resolution: {integrity: sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==} engines: {node: '>=14'} hasBin: true - dev: true /pretty-bytes@5.6.0: resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} @@ -13587,6 +14286,12 @@ packages: engines: {node: '>=8'} dev: true + /randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + dependencies: + safe-buffer: 5.2.1 + dev: true + /range-parser@1.2.1: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} engines: {node: '>= 0.6'} @@ -13954,12 +14659,10 @@ packages: /request-light@0.7.0: resolution: {integrity: sha512-lMbBMrDoxgsyO+yB3sDcrDuX85yYt7sS8BfQd11jtbW/z5ZWgLZRcEGLsLoYw7I0WSUGQBs8CC8ScIxkTX1+6Q==} - dev: true /require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} - dev: true /require-main-filename@2.0.0: resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} @@ -14067,6 +14770,11 @@ packages: resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} dev: true + /run-applescript@7.0.0: + resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} + engines: {node: '>=18'} + dev: false + /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: @@ -14074,7 +14782,6 @@ packages: /s.color@0.0.15: resolution: {integrity: sha512-AUNrbEUHeKY8XsYr/DYpl+qk5+aM+DChopnWOPEzn8YKzOhv4l2zH6LzZms3tOZP3wwdOyc0RmTciyi46HLIuA==} - dev: true /safe-array-concat@1.0.1: resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} @@ -14105,7 +14812,6 @@ packages: resolution: {integrity: sha512-7fI2a8THglflhhYis7k06eUf92VQuJoXzEs2KRP0r1bluFxKFvLx0Ns7c478oYGM0fPfrr846ZRWVi2MAgHt9Q==} dependencies: suf-log: 2.5.3 - dev: true /sass@1.69.6: resolution: {integrity: sha512-qbRr3k9JGHWXCvZU77SD2OTwUlC+gNT+61JOLcmLm+XqH4h/5D+p4IIsxvpkB89S9AwJOyb5+rWNpIucaFxSFQ==} @@ -14185,6 +14891,12 @@ packages: transitivePeerDependencies: - supports-color + /serialize-javascript@6.0.0: + resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==} + dependencies: + randombytes: 2.1.0 + dev: true + /seroval@0.15.1: resolution: {integrity: sha512-OPVtf0qmeC7RW+ScVX+7aOS+xoIM7pWcZ0jOWg2aTZigCydgRB04adfteBRbecZnnrO1WuGQ+C3tLeBBzX2zSQ==} engines: {node: '>=10'} @@ -14348,6 +15060,21 @@ packages: simple-concat: 1.0.1 dev: false + /simple-stack-form@0.1.10(astro@packages+astro)(zod@3.22.4): + resolution: {integrity: sha512-00eCXPhSbryGunR9N5+jkGLGVVExySwxmAThK/MIedwVCNkbOf16/PFdSha6JgpGhpQxcETr6uOc+Y0zg2GaMg==} + hasBin: true + peerDependencies: + astro: '*' + zod: ^3.22.4 + dependencies: + '@clack/prompts': 0.7.0 + astro: link:packages/astro + fs-extra: 11.2.0 + just-map-values: 3.2.0 + kleur: 4.1.5 + zod: 3.22.4 + dev: false + /simple-swizzle@0.2.2: resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} requiresBuild: true @@ -14655,10 +15382,10 @@ packages: engines: {node: '>=14.16'} dev: true - /strip-literal@1.3.0: - resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} + /strip-literal@2.0.0: + resolution: {integrity: sha512-f9vHgsCWBq2ugHAkGMiiYY+AYG0D/cbloKKg0nhaaaSNsujdGIpVXCNsrJpCKr5M0f4aI31mr13UjY6GAuXCKA==} dependencies: - acorn: 8.11.3 + js-tokens: 8.0.3 dev: false /strnum@1.0.5: @@ -14700,7 +15427,6 @@ packages: resolution: {integrity: sha512-KvC8OPjzdNOe+xQ4XWJV2whQA0aM1kGVczMQ8+dStAO6KfEB140JEVQ9dE76ONZ0/Ylf67ni4tILPJB41U0eow==} dependencies: s.color: 0.0.15 - dev: true /supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} @@ -14714,6 +15440,12 @@ packages: dependencies: has-flag: 4.0.0 + /supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + dependencies: + has-flag: 4.0.0 + /supports-hyperlinks@2.3.0: resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==} engines: {node: '>=8'} @@ -14740,9 +15472,6 @@ packages: peerDependencies: svelte: ^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0 typescript: ^4.9.4 || ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true dependencies: dedent-js: 1.0.1 pascal-case: 3.1.2 @@ -15151,7 +15880,6 @@ packages: /type-detect@4.0.8: resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} engines: {node: '>=4'} - dev: false /type-fest@0.13.1: resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} @@ -15235,19 +15963,23 @@ packages: /typesafe-path@0.2.2: resolution: {integrity: sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA==} - dev: true /typescript-auto-import-cache@0.3.2: resolution: {integrity: sha512-+laqe5SFL1vN62FPOOJSUDTZxtgsoOXjneYOXIpx5rQ4UMiN89NAtJLpqLqyebv9fgQ/IMeeTX+mQyRnwvJzvg==} dependencies: semver: 7.5.4 - dev: true /typescript@5.2.2: resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} engines: {node: '>=14.17'} hasBin: true + /typescript@5.3.2: + resolution: {integrity: sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==} + engines: {node: '>=14.17'} + hasBin: true + dev: false + /ufo@1.4.0: resolution: {integrity: sha512-Hhy+BhRBleFjpJ2vchUNN40qgkh0366FWJGqVLYBHev0vpHTrXSA0ryT+74UiW6KWsldNurQMKGqCm1M2zBciQ==} dev: false @@ -15460,7 +16192,6 @@ packages: /universalify@2.0.1: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} - dev: true /unpipe@1.0.0: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} @@ -15568,16 +16299,16 @@ packages: unist-util-stringify-position: 4.0.0 vfile-message: 4.0.2 - /vite-node@1.2.2(@types/node@18.19.4): - resolution: {integrity: sha512-1as4rDTgVWJO3n1uHmUYqq7nsFgINQ9u+mRcXpjeOMJUmviqNKjcZB7UfRZrlM7MjYXMKpuWp5oGkjaFLnjawg==} + /vite-node@1.3.1(@types/node@18.19.4): + resolution: {integrity: sha512-azbRrqRxlWTJEVbzInZCTchx0X69M/XPTCz4H+TLvlTcR/xH/3hkRqhOakT41fMJCMzXTu4UvegkZiEoJAWvng==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true dependencies: cac: 6.7.14 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) pathe: 1.1.2 picocolors: 1.0.0 - vite: 5.1.2(@types/node@18.19.4)(sass@1.69.6) + vite: 5.1.4(@types/node@18.19.4)(sass@1.69.6) transitivePeerDependencies: - '@types/node' - less @@ -15605,7 +16336,7 @@ packages: merge-anything: 5.1.7 solid-js: 1.8.7 solid-refresh: 0.5.3(solid-js@1.8.7) - vitefu: 0.2.5(vite@5.1.2) + vitefu: 0.2.5(vite@5.1.4) transitivePeerDependencies: - supports-color dev: false @@ -15633,8 +16364,8 @@ packages: svgo: 3.2.0 dev: false - /vite@5.1.2(@types/node@18.19.4)(sass@1.69.6): - resolution: {integrity: sha512-uwiFebQbTWRIGbCaTEBVAfKqgqKNKMJ2uPXsXeLIZxM8MVMjoS3j0cG8NrPxdDIadaWnPSjrkLWffLSC+uiP3Q==} + /vite@5.1.4(@types/node@18.19.4)(sass@1.69.6): + resolution: {integrity: sha512-n+MPqzq+d9nMVTKyewqw6kSt+R3CkvF9QAKY8obiQn8g1fwTscKxyfaYnC632HtBXAQGc1Yjomphwn1dtwGAHg==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -15669,7 +16400,7 @@ packages: optionalDependencies: fsevents: 2.3.3 - /vitefu@0.2.5(vite@5.1.2): + /vitefu@0.2.5(vite@5.1.4): resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} peerDependencies: vite: ^3.0.0 || ^4.0.0 || ^5.0.0 @@ -15677,18 +16408,18 @@ packages: vite: optional: true dependencies: - vite: 5.1.2(@types/node@18.19.4)(sass@1.69.6) + vite: 5.1.4(@types/node@18.19.4)(sass@1.69.6) dev: false - /vitest@1.2.2(@types/node@18.19.4): - resolution: {integrity: sha512-d5Ouvrnms3GD9USIK36KG8OZ5bEvKEkITFtnGv56HFaSlbItJuYr7hv2Lkn903+AvRAgSixiamozUVfORUekjw==} + /vitest@1.3.1(@types/node@18.19.4): + resolution: {integrity: sha512-/1QJqXs8YbCrfv/GPQ05wAZf2eakUPLPa18vkJAKE7RXOKfVHqMZZ1WlTjiwl6Gcn65M5vpNUB6EFLnEdRdEXQ==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': ^1.0.0 - '@vitest/ui': ^1.0.0 + '@vitest/browser': 1.3.1 + '@vitest/ui': 1.3.1 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -15706,26 +16437,25 @@ packages: optional: true dependencies: '@types/node': 18.19.4 - '@vitest/expect': 1.2.2 - '@vitest/runner': 1.2.2 - '@vitest/snapshot': 1.2.2 - '@vitest/spy': 1.2.2 - '@vitest/utils': 1.2.2 + '@vitest/expect': 1.3.1 + '@vitest/runner': 1.3.1 + '@vitest/snapshot': 1.3.1 + '@vitest/spy': 1.3.1 + '@vitest/utils': 1.3.1 acorn-walk: 8.3.2 - cac: 6.7.14 chai: 4.4.1 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) execa: 8.0.1 local-pkg: 0.5.0 magic-string: 0.30.7 pathe: 1.1.2 picocolors: 1.0.0 std-env: 3.7.0 - strip-literal: 1.3.0 + strip-literal: 2.0.0 tinybench: 2.6.0 tinypool: 0.8.2 - vite: 5.1.2(@types/node@18.19.4)(sass@1.69.6) - vite-node: 1.2.2(@types/node@18.19.4) + vite: 5.1.4(@types/node@18.19.4)(sass@1.69.6) + vite-node: 1.3.1(@types/node@18.19.4) why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -15750,6 +16480,19 @@ packages: vscode-uri: 3.0.8 dev: true + /volar-service-css@0.0.30(@volar/language-service@2.0.4): + resolution: {integrity: sha512-jui+1N0HBfjW43tRfhyZp0axhBee4997BRyX4os8xQm/7cjD2KjAuyz92nMIPRt1QDoG4/7uQT28xNhy0TPJTA==} + peerDependencies: + '@volar/language-service': ~2.0.1 + peerDependenciesMeta: + '@volar/language-service': + optional: true + dependencies: + '@volar/language-service': 2.0.4 + vscode-css-languageservice: 6.2.11 + vscode-uri: 3.0.8 + dev: false + /volar-service-emmet@0.0.16(@volar/language-service@1.10.10): resolution: {integrity: sha512-8sWWywzVJOD+PWDArOXDWbiRlM7+peydFhXJT71i4X1WPW32RyPxn6FypvciO+amqpfZP2rXfB9eibIJ+EofSQ==} peerDependencies: @@ -15763,6 +16506,19 @@ packages: volar-service-html: 0.0.16(@volar/language-service@1.10.10) dev: true + /volar-service-emmet@0.0.30(@volar/language-service@2.0.4): + resolution: {integrity: sha512-HEeIrmqQ/DTfuQDI9ER5+YReXXjE9f7W6MlBmn5biUuPyizVTGfuILN8pJhmYvmPHCA7qHhU7CJqwE9DAh9AJg==} + peerDependencies: + '@volar/language-service': ~2.0.1 + peerDependenciesMeta: + '@volar/language-service': + optional: true + dependencies: + '@volar/language-service': 2.0.4 + '@vscode/emmet-helper': 2.9.2 + volar-service-html: 0.0.30(@volar/language-service@2.0.4) + dev: false + /volar-service-html@0.0.16(@volar/language-service@1.10.10): resolution: {integrity: sha512-/oEXXgry++1CnTXQBUNf9B8MZfTlYZuJfZA7Zx9MN7WS4ZPxk3BFOdal/cXH6RNR2ruNEYr5QTW9rsqtoUscag==} peerDependencies: @@ -15776,6 +16532,19 @@ packages: vscode-uri: 3.0.8 dev: true + /volar-service-html@0.0.30(@volar/language-service@2.0.4): + resolution: {integrity: sha512-wW3TEeRTeHv/3mC8Ik6T62SwewMWFungb8ydyEK/2GDHEntBEG/J9wtuh01/J0kYqPerhlT9zhdGB6PGYHAGuA==} + peerDependencies: + '@volar/language-service': ~2.0.1 + peerDependenciesMeta: + '@volar/language-service': + optional: true + dependencies: + '@volar/language-service': 2.0.4 + vscode-html-languageservice: 5.1.2 + vscode-uri: 3.0.8 + dev: false + /volar-service-prettier@0.0.16(@volar/language-service@1.10.10)(prettier@3.1.1): resolution: {integrity: sha512-Kj2ZdwJGEvfYbsHW8Sjrew/7EB4PgRoas4f8yAJzUUVxIC/kvhUwLDxQc8+N2IibomN76asJGWe+i6VZZvgIkw==} peerDependencies: @@ -15791,6 +16560,22 @@ packages: prettier: 3.1.1 dev: true + /volar-service-prettier@0.0.30(@volar/language-service@2.0.4)(prettier@3.1.1): + resolution: {integrity: sha512-Qdc5Zc0y4hJmJbpIQ52cSDjs0uvVug/e2nuL/XZWPJM6Cr5/3RjjoRVKtDQbKItFYlGk+JH+LSXvwQeD5TXZqg==} + peerDependencies: + '@volar/language-service': ~2.0.1 + prettier: ^2.2 || ^3.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + prettier: + optional: true + dependencies: + '@volar/language-service': 2.0.4 + prettier: 3.1.1 + vscode-uri: 3.0.8 + dev: false + /volar-service-typescript-twoslash-queries@0.0.16(@volar/language-service@1.10.10): resolution: {integrity: sha512-0gPrkDTD2bMj2AnSNykOKhfmPnBFE2LS1lF3LWA7qu1ChRnJF0sodwCCbbeNYJ9+yth956ApoU1BVQ8UrMg+yw==} peerDependencies: @@ -15802,6 +16587,17 @@ packages: '@volar/language-service': 1.10.10 dev: true + /volar-service-typescript-twoslash-queries@0.0.30(@volar/language-service@2.0.4): + resolution: {integrity: sha512-ahj6woBxhkZu7icQR58x5TnUaS8ZRKn7a+UvY+andmiTWsOaSu85zj36+LPZgZQi1MG+BtjNwUjKoxtZiN51PA==} + peerDependencies: + '@volar/language-service': ~2.0.1 + peerDependenciesMeta: + '@volar/language-service': + optional: true + dependencies: + '@volar/language-service': 2.0.4 + dev: false + /volar-service-typescript@0.0.16(@volar/language-service@1.10.10)(@volar/typescript@1.10.10): resolution: {integrity: sha512-k/qFKM2oxs/3fhbr/vcBSHnCLZ1HN3Aeh+bGvV9Lc9qIhrNyCVsDFOUJN1Qp4dI72+Y+eFSIDCLHmFEZdsP2EA==} peerDependencies: @@ -15821,6 +16617,25 @@ packages: vscode-uri: 3.0.8 dev: true + /volar-service-typescript@0.0.30(@volar/language-service@2.0.4)(@volar/typescript@2.0.4): + resolution: {integrity: sha512-jA8c0Mhy9rgAsrgtwocK95Smws1M2E0MxlQ/SVo/rmOGH32cX9UGgI0IENWKa3yagp/khfoemOIQDz/KNhI3zg==} + peerDependencies: + '@volar/language-service': ~2.0.1 + '@volar/typescript': ~2.0.1 + peerDependenciesMeta: + '@volar/language-service': + optional: true + dependencies: + '@volar/language-service': 2.0.4 + '@volar/typescript': 2.0.4 + path-browserify: 1.0.1 + semver: 7.5.4 + typescript-auto-import-cache: 0.3.2 + vscode-languageserver-textdocument: 1.0.11 + vscode-nls: 5.2.0 + vscode-uri: 3.0.8 + dev: false + /vscode-css-languageservice@6.2.11: resolution: {integrity: sha512-qn49Wa6K94LnizpVxmlYrcPf1Cb36gq1nNueW0COhi4shylXBzET5wuDbH8ZWQlJD0HM5Mmnn7WE9vQVVs+ULA==} dependencies: @@ -15828,7 +16643,6 @@ packages: vscode-languageserver-textdocument: 1.0.11 vscode-languageserver-types: 3.17.5 vscode-uri: 3.0.8 - dev: true /vscode-html-languageservice@5.1.1: resolution: {integrity: sha512-JenrspIIG/Q+93R6G3L6HdK96itSisMynE0glURqHpQbL3dKAKzdm8L40lAHNkwJeBg+BBPpAshZKv/38onrTQ==} @@ -15839,36 +16653,39 @@ packages: vscode-uri: 3.0.8 dev: true + /vscode-html-languageservice@5.1.2: + resolution: {integrity: sha512-wkWfEx/IIR3s2P5yD4aTGHiOb8IAzFxgkSt1uSC3itJ4oDAm23yG7o0L29JljUdnXDDgLafPAvhv8A2I/8riHw==} + dependencies: + '@vscode/l10n': 0.0.18 + vscode-languageserver-textdocument: 1.0.11 + vscode-languageserver-types: 3.17.5 + vscode-uri: 3.0.8 + dev: false + /vscode-jsonrpc@8.2.0: resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} engines: {node: '>=14.0.0'} - dev: true /vscode-languageserver-protocol@3.17.5: resolution: {integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==} dependencies: vscode-jsonrpc: 8.2.0 vscode-languageserver-types: 3.17.5 - dev: true /vscode-languageserver-textdocument@1.0.11: resolution: {integrity: sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA==} - dev: true /vscode-languageserver-types@3.17.5: resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==} - dev: true /vscode-languageserver@9.0.1: resolution: {integrity: sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==} hasBin: true dependencies: vscode-languageserver-protocol: 3.17.5 - dev: true /vscode-nls@5.2.0: resolution: {integrity: sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==} - dev: true /vscode-oniguruma@1.7.0: resolution: {integrity: sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==} @@ -15880,11 +16697,9 @@ packages: /vscode-uri@2.1.2: resolution: {integrity: sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==} - dev: true /vscode-uri@3.0.8: resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} - dev: true /vue@3.4.3(typescript@5.2.2): resolution: {integrity: sha512-GjN+culMAGv/mUbkIv8zMKItno8npcj5gWlXkSxf1SPTQf8eJ4A+YfHIvQFyL1IfuJcMl3soA7SmN1fRxbf/wA==} @@ -16044,6 +16859,10 @@ packages: string-width: 5.1.2 dev: false + /workerpool@6.2.1: + resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==} + dev: true + /wrap-ansi@6.2.0: resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} engines: {node: '>=8'} @@ -16083,7 +16902,6 @@ packages: optional: true utf-8-validate: optional: true - dev: true /xml-name-validator@4.0.0: resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} @@ -16119,7 +16937,6 @@ packages: /y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} - dev: true /yallist@2.1.2: resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} @@ -16144,10 +16961,25 @@ packages: decamelize: 1.2.0 dev: true + /yargs-parser@20.2.4: + resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==} + engines: {node: '>=10'} + dev: true + /yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} + /yargs-unparser@2.0.0: + resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} + engines: {node: '>=10'} + dependencies: + camelcase: 6.3.0 + decamelize: 4.0.0 + flat: 5.0.2 + is-plain-obj: 2.1.0 + dev: true + /yargs@15.4.1: resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} engines: {node: '>=8'} @@ -16165,6 +16997,19 @@ packages: yargs-parser: 18.1.3 dev: true + /yargs@16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} + dependencies: + cliui: 7.0.4 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 20.2.4 + dev: true + /yargs@17.7.2: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} @@ -16176,7 +17021,6 @@ packages: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 21.1.1 - dev: true /yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} From b65f2d06f0c44a550507ee441727ee28b282ada0 Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Mon, 4 Mar 2024 14:37:43 +0000 Subject: [PATCH 06/33] throw error for missing middleware --- packages/astro/src/core/errors/errors-data.ts | 12 ++++++++++++ packages/astro/src/core/middleware/vite-plugin.ts | 6 ++++++ 2 files changed, 18 insertions(+) diff --git a/packages/astro/src/core/errors/errors-data.ts b/packages/astro/src/core/errors/errors-data.ts index d670681b66d3..c2da86df0d15 100644 --- a/packages/astro/src/core/errors/errors-data.ts +++ b/packages/astro/src/core/errors/errors-data.ts @@ -1054,6 +1054,18 @@ export const NoPrerenderedRoutesWithDomains = { `Static pages aren't yet supported with multiple domains. If you wish to enable this feature, you have to disable prerendering for the page ${component}`, } satisfies ErrorData; +/** + * @docs + * @description + * Astro throws an error if the user enables manual routing, but it doesn't have a middleware file. + */ +export const MissingMiddlewareForInternationalization = { + name: 'MissingMiddlewareForInternationalization', + title: 'Enabled manual internationalization routing without having a middleware.', + message: + "You enabled manual routing for internationalization via `i18n.routing: 'manual'`, but you must have a `middleware` file in order to use this feature.", +} satisfies ErrorData; + /** * @docs * @description diff --git a/packages/astro/src/core/middleware/vite-plugin.ts b/packages/astro/src/core/middleware/vite-plugin.ts index 64c039db7271..749473e1f6fa 100644 --- a/packages/astro/src/core/middleware/vite-plugin.ts +++ b/packages/astro/src/core/middleware/vite-plugin.ts @@ -6,6 +6,8 @@ import { addRollupInput } from '../build/add-rollup-input.js'; import type { BuildInternals } from '../build/internal.js'; import type { StaticBuildOptions } from '../build/types.js'; import { MIDDLEWARE_PATH_SEGMENT_NAME } from '../constants.js'; +import { MissingMiddlewareForInternationalization } from '../errors/errors-data.js'; +import { AstroError } from '../errors/index.js'; export const MIDDLEWARE_MODULE_ID = '\0astro-internal:middleware'; const NOOP_MIDDLEWARE = '\0noop-middleware'; @@ -43,6 +45,10 @@ export function vitePluginMiddleware({ settings }: { settings: AstroSettings }): } }, async load(id) { + if (!userMiddlewareIsPresent && settings.config.i18n?.routing === 'manual') { + throw new AstroError(MissingMiddlewareForInternationalization); + } + if (id === NOOP_MIDDLEWARE) { return 'export const onRequest = (_, next) => next()'; } else if (id === MIDDLEWARE_MODULE_ID) { From 5e7097cd6e8185aca078ae86bb21f244457935bf Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Mon, 4 Mar 2024 15:06:33 +0000 Subject: [PATCH 07/33] rename function --- packages/astro/src/i18n/index.ts | 2 +- packages/astro/src/i18n/middleware.ts | 4 ++-- packages/astro/src/virtual-modules/i18n.ts | 10 +++++----- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/astro/src/i18n/index.ts b/packages/astro/src/i18n/index.ts index db460b1d302a..1b8dc5480ffa 100644 --- a/packages/astro/src/i18n/index.ts +++ b/packages/astro/src/i18n/index.ts @@ -303,7 +303,7 @@ export function redirectToDefaultLocale({ }; } -export function noFoundForNonLocaleRoute({ base, locales }: MiddlewarePayload) { +export function notFound({ base, locales }: MiddlewarePayload) { return function (context: APIContext, response?: Response) { const url = context.url; // We return a 404 if: diff --git a/packages/astro/src/i18n/middleware.ts b/packages/astro/src/i18n/middleware.ts index a52b79a89f5f..2d192df6752b 100644 --- a/packages/astro/src/i18n/middleware.ts +++ b/packages/astro/src/i18n/middleware.ts @@ -1,7 +1,7 @@ import { getPathByLocale, type MiddlewarePayload, - noFoundForNonLocaleRoute, + notFound, normalizeTheLocale, requestHasLocale, redirectToDefaultLocale, @@ -25,7 +25,7 @@ export function createI18nMiddleware( domains: {}, }; const _redirectToDefaultLocale = redirectToDefaultLocale(payload); - const _noFoundForNonLocaleRoute = noFoundForNonLocaleRoute(payload); + const _noFoundForNonLocaleRoute = notFound(payload); const _requestHasLocale = requestHasLocale(payload.locales); const prefixAlways = (response: Response, context: APIContext): Response | undefined => { diff --git a/packages/astro/src/virtual-modules/i18n.ts b/packages/astro/src/virtual-modules/i18n.ts index 235cb7fed2b2..94f4f5197e03 100644 --- a/packages/astro/src/virtual-modules/i18n.ts +++ b/packages/astro/src/virtual-modules/i18n.ts @@ -269,9 +269,9 @@ export const redirectToDefaultLocale = * @param {Response?} response An optional `Response` in case you're handling a `Response` coming from the `next` function. * */ -export const noFoundForNonLocaleRoute = +export const notFound = i18n?.routing === 'manual' - ? I18nInternals.noFoundForNonLocaleRoute({ + ? I18nInternals.notFound({ base, trailingSlash, format, @@ -281,7 +281,7 @@ export const noFoundForNonLocaleRoute = domains, fallback, }) - : noop('noFoundForNonLocaleRoute'); + : noop('notFound'); /** * Checks whether the current URL contains a configured locale. Internally, this function will use `APIContext#url.pathname` @@ -338,9 +338,9 @@ export const useFallback: UseFallback = */ export const middleware = i18n?.routing === 'manual' - ? (customOptions?: NonNullable) => { + ? (customOptions?: Omit, 'routing'>) => { const manifest: SSRManifest['i18n'] = { - strategy: toRoutingStrategy(customOptions ?? i18n), + strategy: 'manual', defaultLocale: customOptions?.defaultLocale ?? i18n.defaultLocale, fallback: customOptions?.fallback ?? i18n.fallback, locales: customOptions?.locales ?? i18n.locales, From 3d14524ac4742035d99e5a65c49500632fed3416 Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Mon, 4 Mar 2024 15:33:27 +0000 Subject: [PATCH 08/33] fix conflicts --- packages/astro/src/i18n/index.ts | 6 +++-- packages/astro/src/i18n/middleware.ts | 32 +++++++++------------------ 2 files changed, 14 insertions(+), 24 deletions(-) diff --git a/packages/astro/src/i18n/index.ts b/packages/astro/src/i18n/index.ts index 1b8dc5480ffa..a1ae885b9fea 100644 --- a/packages/astro/src/i18n/index.ts +++ b/packages/astro/src/i18n/index.ts @@ -9,9 +9,9 @@ import type { import { shouldAppendForwardSlash } from '../core/build/util.js'; import { MissingLocale } from '../core/errors/errors-data.js'; import { AstroError } from '../core/errors/index.js'; -import { type RoutingStrategies, toRoutingStrategy } from './utils.js'; -import type { AstroUserConfig } from '../../config.js'; +import type { RoutingStrategies } from './utils.js'; import { createI18nMiddleware } from './middleware.js'; +import { REROUTE_DIRECTIVE_HEADER } from '../core/constants.js'; export function requestHasLocale(locales: Locales) { return function (context: APIContext) { @@ -305,6 +305,8 @@ export function redirectToDefaultLocale({ export function notFound({ base, locales }: MiddlewarePayload) { return function (context: APIContext, response?: Response) { + if (response?.headers.get(REROUTE_DIRECTIVE_HEADER) === 'no') return response; + const url = context.url; // We return a 404 if: // - the current path isn't a root. e.g. / or / diff --git a/packages/astro/src/i18n/middleware.ts b/packages/astro/src/i18n/middleware.ts index c7215b411b25..91246525b5e8 100644 --- a/packages/astro/src/i18n/middleware.ts +++ b/packages/astro/src/i18n/middleware.ts @@ -8,7 +8,7 @@ import { } from './index.js'; import type { APIContext, MiddlewareHandler, SSRManifest } from '../@types/astro.js'; import type { SSRManifestI18n } from '../core/app/types.js'; -import { REROUTE_DIRECTIVE_HEADER, ROUTE_TYPE_HEADER } from '../core/constants.js'; +import { ROUTE_TYPE_HEADER } from '../core/constants.js'; export function createI18nMiddleware( i18n: SSRManifest['i18n'], @@ -28,7 +28,7 @@ export function createI18nMiddleware( const _noFoundForNonLocaleRoute = notFound(payload); const _requestHasLocale = requestHasLocale(payload.locales); - const prefixAlways = (response: Response, context: APIContext): Response | undefined => { + const prefixAlways = (context: APIContext): Response | undefined => { const url = context.url; if (url.pathname === base + '/' || url.pathname === base) { return _redirectToDefaultLocale(context); @@ -36,14 +36,15 @@ export function createI18nMiddleware( // Astro can't know where the default locale is supposed to be, so it returns a 404. else if (!_requestHasLocale(context)) { - return _noFoundForNonLocaleRoute(response); + return _noFoundForNonLocaleRoute(context); } return undefined; }; - const prefixOtherLocales = (url: URL, response: Response): Response | undefined => { + const prefixOtherLocales = (context: APIContext, response: Response): Response | undefined => { let pathnameContainsDefaultLocale = false; + const url = context.url; for (const segment of url.pathname.split('/')) { if (normalizeTheLocale(segment) === normalizeTheLocale(i18n.defaultLocale)) { pathnameContainsDefaultLocale = true; @@ -53,7 +54,7 @@ export function createI18nMiddleware( if (pathnameContainsDefaultLocale) { const newLocation = url.pathname.replace(`/${i18n.defaultLocale}`, ''); response.headers.set('Location', newLocation); - return _noFoundForNonLocaleRoute(response); + return _noFoundForNonLocaleRoute(context); } return undefined; @@ -77,7 +78,7 @@ export function createI18nMiddleware( } case 'domains-prefix-other-locales': { if (localeHasntDomain(i18n, currentLocale)) { - const result = prefixOtherLocales(url, response); + const result = prefixOtherLocales(context, response); if (result) { return result; } @@ -85,7 +86,7 @@ export function createI18nMiddleware( break; } case 'pathname-prefix-other-locales': { - const result = prefixOtherLocales(url, response); + const result = prefixOtherLocales(context, response); if (result) { return result; } @@ -111,7 +112,7 @@ export function createI18nMiddleware( } case 'pathname-prefix-always': { - const result = prefixAlways(response, context); + const result = prefixAlways(context); if (result) { return result; } @@ -119,7 +120,7 @@ export function createI18nMiddleware( } case 'domains-prefix-always': { if (localeHasntDomain(i18n, currentLocale)) { - const result = prefixAlways(response, context); + const result = prefixAlways(context); if (result) { return result; } @@ -167,19 +168,6 @@ export function createI18nMiddleware( }; } -/** - * The i18n returns empty 404 responses in certain cases. - * Error-page-rerouting infra will attempt to render the 404.astro page, causing the middleware to run a second time. - * To avoid loops and overwriting the contents of `404.astro`, we allow error pages to pass through. - */ -function notFound(response: Response) { - if (response.headers.get(REROUTE_DIRECTIVE_HEADER) === 'no') return response; - return new Response(null, { - status: 404, - headers: response.headers, - }); -} - /** * Checks if the current locale doesn't belong to a configured domain * @param i18n From c5e02dc8c79009e1e1599e7d4363cfb7244c4f18 Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Mon, 4 Mar 2024 15:35:46 +0000 Subject: [PATCH 09/33] lock file update --- pnpm-lock.yaml | 80 +++++++++++++++++++++----------------------------- 1 file changed, 34 insertions(+), 46 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9d25da6f682b..d4b0bd3ce9c4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -134,7 +134,7 @@ importers: examples/basics: dependencies: astro: - specifier: ^4.4.8 + specifier: ^4.4.10 version: link:../../packages/astro examples/blog: @@ -149,13 +149,13 @@ importers: specifier: ^3.1.1 version: link:../../packages/integrations/sitemap astro: - specifier: ^4.4.8 + specifier: ^4.4.10 version: link:../../packages/astro examples/component: devDependencies: astro: - specifier: ^4.4.8 + specifier: ^4.4.10 version: link:../../packages/astro examples/framework-alpine: @@ -170,7 +170,7 @@ importers: specifier: ^3.13.3 version: 3.13.3 astro: - specifier: ^4.4.8 + specifier: ^4.4.10 version: link:../../packages/astro examples/framework-lit: @@ -182,7 +182,7 @@ importers: specifier: ^0.2.1 version: 0.2.1 astro: - specifier: ^4.4.8 + specifier: ^4.4.10 version: link:../../packages/astro lit: specifier: ^3.1.2 @@ -206,7 +206,7 @@ importers: specifier: ^4.0.8 version: link:../../packages/integrations/vue astro: - specifier: ^4.4.8 + specifier: ^4.4.10 version: link:../../packages/astro preact: specifier: ^10.19.2 @@ -236,7 +236,7 @@ importers: specifier: ^1.2.1 version: 1.2.1(preact@10.19.3) astro: - specifier: ^4.4.8 + specifier: ^4.4.10 version: link:../../packages/astro preact: specifier: ^10.19.2 @@ -254,7 +254,7 @@ importers: specifier: ^18.2.15 version: 18.2.18 astro: - specifier: ^4.4.8 + specifier: ^4.4.10 version: link:../../packages/astro react: specifier: ^18.2.0 @@ -269,7 +269,7 @@ importers: specifier: ^4.0.1 version: link:../../packages/integrations/solid astro: - specifier: ^4.4.8 + specifier: ^4.4.10 version: link:../../packages/astro solid-js: specifier: ^1.8.5 @@ -281,7 +281,7 @@ importers: specifier: ^5.2.0 version: link:../../packages/integrations/svelte astro: - specifier: ^4.4.8 + specifier: ^4.4.10 version: link:../../packages/astro svelte: specifier: ^4.2.5 @@ -293,7 +293,7 @@ importers: specifier: ^4.0.8 version: link:../../packages/integrations/vue astro: - specifier: ^4.4.8 + specifier: ^4.4.10 version: link:../../packages/astro vue: specifier: ^3.3.8 @@ -305,13 +305,13 @@ importers: specifier: ^8.2.3 version: link:../../packages/integrations/node astro: - specifier: ^4.4.8 + specifier: ^4.4.10 version: link:../../packages/astro examples/integration: devDependencies: astro: - specifier: ^4.4.8 + specifier: ^4.4.10 version: link:../../packages/astro examples/middleware: @@ -320,7 +320,7 @@ importers: specifier: ^8.2.3 version: link:../../packages/integrations/node astro: - specifier: ^4.4.8 + specifier: ^4.4.10 version: link:../../packages/astro html-minifier: specifier: ^4.0.0 @@ -333,19 +333,19 @@ importers: examples/minimal: dependencies: astro: - specifier: ^4.4.8 + specifier: ^4.4.10 version: link:../../packages/astro examples/non-html-pages: dependencies: astro: - specifier: ^4.4.8 + specifier: ^4.4.10 version: link:../../packages/astro examples/portfolio: dependencies: astro: - specifier: ^4.4.8 + specifier: ^4.4.10 version: link:../../packages/astro examples/ssr: @@ -357,7 +357,7 @@ importers: specifier: ^5.2.0 version: link:../../packages/integrations/svelte astro: - specifier: ^4.4.8 + specifier: ^4.4.10 version: link:../../packages/astro svelte: specifier: ^4.2.5 @@ -366,7 +366,7 @@ importers: examples/starlog: dependencies: astro: - specifier: ^4.4.8 + specifier: ^4.4.10 version: link:../../packages/astro sass: specifier: ^1.69.5 @@ -384,16 +384,16 @@ importers: specifier: ^5.1.0 version: link:../../packages/integrations/tailwind astro: - specifier: ^4.4.8 + specifier: ^4.4.10 version: link:../../packages/astro examples/with-markdoc: dependencies: '@astrojs/markdoc': - specifier: ^0.9.0 + specifier: ^0.9.1 version: link:../../packages/integrations/markdoc astro: - specifier: ^4.4.8 + specifier: ^4.4.10 version: link:../../packages/astro examples/with-markdown-plugins: @@ -402,7 +402,7 @@ importers: specifier: ^4.2.1 version: link:../../packages/markdown/remark astro: - specifier: ^4.4.8 + specifier: ^4.4.10 version: link:../../packages/astro hast-util-select: specifier: ^6.0.2 @@ -423,7 +423,7 @@ importers: examples/with-markdown-shiki: dependencies: astro: - specifier: ^4.4.8 + specifier: ^4.4.10 version: link:../../packages/astro examples/with-mdx: @@ -435,7 +435,7 @@ importers: specifier: ^3.1.1 version: link:../../packages/integrations/preact astro: - specifier: ^4.4.8 + specifier: ^4.4.10 version: link:../../packages/astro preact: specifier: ^10.19.2 @@ -450,7 +450,7 @@ importers: specifier: ^0.5.0 version: 0.5.0(nanostores@0.9.5)(preact@10.19.3) astro: - specifier: ^4.4.8 + specifier: ^4.4.10 version: link:../../packages/astro nanostores: specifier: ^0.9.5 @@ -471,7 +471,7 @@ importers: specifier: ^1.6.3 version: 1.6.4 astro: - specifier: ^4.4.8 + specifier: ^4.4.10 version: link:../../packages/astro autoprefixer: specifier: ^10.4.15 @@ -489,7 +489,7 @@ importers: examples/with-vitest: dependencies: astro: - specifier: ^4.4.8 + specifier: ^4.4.10 version: link:../../packages/astro vitest: specifier: ^1.3.1 @@ -2516,6 +2516,12 @@ importers: packages/astro/test/fixtures/core-image-deletion: dependencies: + '@astrojs/markdoc': + specifier: workspace:* + version: link:../../../../integrations/markdoc + '@astrojs/mdx': + specifier: workspace:* + version: link:../../../../integrations/mdx astro: specifier: workspace:* version: link:../../.. @@ -3897,24 +3903,6 @@ importers: specifier: workspace:* version: link:../../../../astro - packages/db/test/fixtures/glob: - dependencies: - '@astrojs/db': - specifier: workspace:* - version: link:../../.. - astro: - specifier: workspace:* - version: link:../../../../astro - chokidar: - specifier: ^3.5.3 - version: 3.5.3 - drizzle-orm: - specifier: ^0.28.6 - version: 0.28.6(@libsql/client@0.4.3) - fast-glob: - specifier: ^3.3.2 - version: 3.3.2 - packages/db/test/fixtures/recipes: dependencies: '@astrojs/db': From c6fcdc463d086f59ed1c6a661cc3a0f0da23545d Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Thu, 21 Mar 2024 14:47:46 +0000 Subject: [PATCH 10/33] fix options, error thrown and added tests --- .../astro/src/core/middleware/vite-plugin.ts | 10 +- packages/astro/src/virtual-modules/i18n.ts | 19 ++- .../package.json | 2 +- .../src/middleware.js | 14 +- .../src/pages/about.astro | 8 + .../src/pages/blog.astro | 8 + .../i18n-routing-manual/src/middleware.js | 1 + ...ing-manual-with-default-middleware.test.js | 147 ++++++++++++++++++ 8 files changed, 198 insertions(+), 11 deletions(-) create mode 100644 packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/src/pages/about.astro create mode 100644 packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/src/pages/blog.astro create mode 100644 packages/astro/test/i18n-routing-manual-with-default-middleware.test.js diff --git a/packages/astro/src/core/middleware/vite-plugin.ts b/packages/astro/src/core/middleware/vite-plugin.ts index 749473e1f6fa..4472e16c2cd9 100644 --- a/packages/astro/src/core/middleware/vite-plugin.ts +++ b/packages/astro/src/core/middleware/vite-plugin.ts @@ -45,13 +45,15 @@ export function vitePluginMiddleware({ settings }: { settings: AstroSettings }): } }, async load(id) { - if (!userMiddlewareIsPresent && settings.config.i18n?.routing === 'manual') { - throw new AstroError(MissingMiddlewareForInternationalization); - } - if (id === NOOP_MIDDLEWARE) { + if (!userMiddlewareIsPresent && settings.config.i18n?.routing === 'manual') { + throw new AstroError(MissingMiddlewareForInternationalization); + } return 'export const onRequest = (_, next) => next()'; } else if (id === MIDDLEWARE_MODULE_ID) { + if (!userMiddlewareIsPresent && settings.config.i18n?.routing === 'manual') { + throw new AstroError(MissingMiddlewareForInternationalization); + } // In the build, tell Vite to emit this file if (isCommandBuild) { this.emitFile({ diff --git a/packages/astro/src/virtual-modules/i18n.ts b/packages/astro/src/virtual-modules/i18n.ts index 94f4f5197e03..cd39c58a9e8b 100644 --- a/packages/astro/src/virtual-modules/i18n.ts +++ b/packages/astro/src/virtual-modules/i18n.ts @@ -307,6 +307,11 @@ export const useFallback: UseFallback = }) : noop('useFallback'); +// @ematipico: This is a helper type because, because I don't know how to extract from TS +type Options = { + prefixDefaultLocale?: boolean; + redirectToDefaultLocale?: boolean; +}; /** * @param {AstroConfig['i18n']} customOptions * @@ -338,12 +343,16 @@ export const useFallback: UseFallback = */ export const middleware = i18n?.routing === 'manual' - ? (customOptions?: Omit, 'routing'>) => { + ? (customOptions?: Options) => { const manifest: SSRManifest['i18n'] = { - strategy: 'manual', - defaultLocale: customOptions?.defaultLocale ?? i18n.defaultLocale, - fallback: customOptions?.fallback ?? i18n.fallback, - locales: customOptions?.locales ?? i18n.locales, + ...i18n, + fallback: undefined, + strategy: toRoutingStrategy({ + ...i18n, + // To review the types, I'm sure there's a way to extract the correct ones and make TS happy + // @ts-expect-error + routing: customOptions, + }), domainLookupTable: {}, }; return I18nInternals.createMiddleware(manifest, base, trailingSlash, format); diff --git a/packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/package.json b/packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/package.json index a930a3cf329c..8230d254b88d 100644 --- a/packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/package.json +++ b/packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/package.json @@ -1,5 +1,5 @@ { - "name": "@test/i18n-manual-with-default", + "name": "@test/i18n-manual-with-default-middleware", "version": "0.0.0", "private": true, "dependencies": { diff --git a/packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/src/middleware.js b/packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/src/middleware.js index df88d1e51a54..50a19de7d243 100644 --- a/packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/src/middleware.js +++ b/packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/src/middleware.js @@ -2,9 +2,21 @@ import { defineMiddleware, sequence } from 'astro:middleware'; import { middleware } from 'astro:i18n'; const customLogic = defineMiddleware(async (context, next) => { + const url = new URL(context.request.url); + if (url.pathname === '/about') { + return new Response('ABOUT ME', { + status: 200, + }); + } + const response = await next(); return response; }); -export const onRequest = sequence(customLogic, middleware()); +export const onRequest = sequence( + customLogic, + middleware({ + prefixDefaultLocale: true, + }) +); diff --git a/packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/src/pages/about.astro b/packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/src/pages/about.astro new file mode 100644 index 000000000000..b5cb264b5f34 --- /dev/null +++ b/packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/src/pages/about.astro @@ -0,0 +1,8 @@ + + + Astro + + + + + diff --git a/packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/src/pages/blog.astro b/packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/src/pages/blog.astro new file mode 100644 index 000000000000..f40d52dad178 --- /dev/null +++ b/packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/src/pages/blog.astro @@ -0,0 +1,8 @@ + + + Astro + + +Blog should not render + + diff --git a/packages/astro/test/fixtures/i18n-routing-manual/src/middleware.js b/packages/astro/test/fixtures/i18n-routing-manual/src/middleware.js index 29634e3ffea1..ef64547df7af 100644 --- a/packages/astro/test/fixtures/i18n-routing-manual/src/middleware.js +++ b/packages/astro/test/fixtures/i18n-routing-manual/src/middleware.js @@ -4,6 +4,7 @@ import { redirectToDefaultLocale, requestHasLocale } from 'astro:i18n'; const allowList = new Set(['/help', '/help/']); export const onRequest = defineMiddleware(async (context, next) => { + console.log('========== CALLED =========='); if (allowList.has(context.url.pathname)) { return await next(); } diff --git a/packages/astro/test/i18n-routing-manual-with-default-middleware.test.js b/packages/astro/test/i18n-routing-manual-with-default-middleware.test.js new file mode 100644 index 000000000000..02e0cea66776 --- /dev/null +++ b/packages/astro/test/i18n-routing-manual-with-default-middleware.test.js @@ -0,0 +1,147 @@ +import { describe, it, before, after } from 'node:test'; +import assert from 'node:assert/strict'; +import { loadFixture } from './test-utils.js'; +import * as cheerio from 'cheerio'; +import testAdapter from './test-adapter.js'; + +// DEV +describe('Dev server manual routing', () => { + /** @type {import('./test-utils').Fixture} */ + let fixture; + /** @type {import('./test-utils').DevServer} */ + let devServer; + + before(async () => { + fixture = await loadFixture({ + root: './fixtures/i18n-routing-manual-with-default-middleware/', + }); + devServer = await fixture.startDevServer(); + }); + + after(async () => { + await devServer.stop(); + }); + + it('should return a 404', async () => { + const response = await fixture.fetch('/blog'); + const text = await response.text(); + assert.equal(response.status, 404); + assert.equal(text.includes('Blog should not render'), false); + }); + + it('should return a 200 because the custom middleware allows it', async () => { + const response = await fixture.fetch('/about'); + assert.equal(response.status, 200); + const text = await response.text(); + assert.equal(text.includes('ABOUT ME'), true); + }); + // + // it('should render a i18n route', async () => { + // let response = await fixture.fetch('/en/blog'); + // assert.equal(response.status, 200); + // let text = await response.text(); + // assert.equal(text.includes('Blog start'), true); + // + // response = await fixture.fetch('/pt/start'); + // assert.equal(response.status, 200); + // text = await response.text(); + // assert.equal(text.includes('Oi'), true); + // + // response = await fixture.fetch('/spanish'); + // assert.equal(response.status, 200); + // text = await response.text(); + // assert.equal(text.includes('Hola.'), true); + // }); +}); +// +// // SSG +// describe('SSG manual routing', () => { +// /** @type {import('./test-utils').Fixture} */ +// let fixture; +// /** @type {import('./test-utils').DevServer} */ +// let devServer; +// +// before(async () => { +// fixture = await loadFixture({ +// root: './fixtures/i18n-routing-manual/', +// }); +// await fixture.build(); +// }); +// +// it('should redirect to the default locale when middleware calls the function for route /', async () => { +// let html = await fixture.readFile('/index.html'); +// assert.equal(html.includes('http-equiv="refresh'), true); +// assert.equal(html.includes('url=/en'), true); +// }); +// +// it('should render a route that is not related to the i18n routing', async () => { +// let html = await fixture.readFile('/help/index.html'); +// let $ = cheerio.load(html); +// assert.equal($('body').text().includes('Outside route'), true); +// }); +// +// it('should render a i18n route', async () => { +// let html = await fixture.readFile('/en/blog/index.html'); +// let $ = cheerio.load(html); +// assert.equal($('body').text().includes('Blog start'), true); +// +// html = await fixture.readFile('/pt/start/index.html'); +// $ = cheerio.load(html); +// assert.equal($('body').text().includes('Oi'), true); +// +// html = await fixture.readFile('/spanish/index.html'); +// $ = cheerio.load(html); +// assert.equal($('body').text().includes('Hola.'), true); +// }); +// }); +// +// // SSR +// describe('SSR manual routing', () => { +// /** @type {import('./test-utils').Fixture} */ +// let fixture; +// let app; +// +// before(async () => { +// fixture = await loadFixture({ +// root: './fixtures/i18n-routing-manual/', +// output: 'server', +// adapter: testAdapter(), +// }); +// await fixture.build(); +// app = await fixture.loadTestAdapterApp(); +// }); +// +// it('should redirect to the default locale when middleware calls the function for route /', async () => { +// let request = new Request('http://example.com/'); +// let response = await app.render(request); +// assert.equal(response.status, 302); +// }); +// +// it('should render a route that is not related to the i18n routing', async () => { +// let request = new Request('http://example.com/help'); +// let response = await app.render(request); +// assert.equal(response.status, 200); +// const text = await response.text(); +// assert.equal(text.includes('Outside route'), true); +// }); +// +// it('should render a i18n route', async () => { +// let request = new Request('http://example.com/en/blog'); +// let response = await app.render(request); +// assert.equal(response.status, 200); +// let text = await response.text(); +// assert.equal(text.includes('Blog start'), true); +// +// request = new Request('http://example.com/pt/start'); +// response = await app.render(request); +// assert.equal(response.status, 200); +// text = await response.text(); +// assert.equal(text.includes('Oi'), true); +// +// request = new Request('http://example.com/spanish'); +// response = await app.render(request); +// assert.equal(response.status, 200); +// text = await response.text(); +// assert.equal(text.includes('Hola.'), true); +// }); +// }); From 65c216bde5d9b9aba7fc880b8a465260eca9645f Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Mon, 25 Mar 2024 13:56:29 +0000 Subject: [PATCH 11/33] rebase --- ...ing-manual-with-default-middleware.test.js | 65 +- pnpm-lock.yaml | 1082 +++++++++-------- 2 files changed, 625 insertions(+), 522 deletions(-) diff --git a/packages/astro/test/i18n-routing-manual-with-default-middleware.test.js b/packages/astro/test/i18n-routing-manual-with-default-middleware.test.js index 02e0cea66776..a3780a4b645f 100644 --- a/packages/astro/test/i18n-routing-manual-with-default-middleware.test.js +++ b/packages/astro/test/i18n-routing-manual-with-default-middleware.test.js @@ -55,46 +55,31 @@ describe('Dev server manual routing', () => { }); // // // SSG -// describe('SSG manual routing', () => { -// /** @type {import('./test-utils').Fixture} */ -// let fixture; -// /** @type {import('./test-utils').DevServer} */ -// let devServer; -// -// before(async () => { -// fixture = await loadFixture({ -// root: './fixtures/i18n-routing-manual/', -// }); -// await fixture.build(); -// }); -// -// it('should redirect to the default locale when middleware calls the function for route /', async () => { -// let html = await fixture.readFile('/index.html'); -// assert.equal(html.includes('http-equiv="refresh'), true); -// assert.equal(html.includes('url=/en'), true); -// }); -// -// it('should render a route that is not related to the i18n routing', async () => { -// let html = await fixture.readFile('/help/index.html'); -// let $ = cheerio.load(html); -// assert.equal($('body').text().includes('Outside route'), true); -// }); -// -// it('should render a i18n route', async () => { -// let html = await fixture.readFile('/en/blog/index.html'); -// let $ = cheerio.load(html); -// assert.equal($('body').text().includes('Blog start'), true); -// -// html = await fixture.readFile('/pt/start/index.html'); -// $ = cheerio.load(html); -// assert.equal($('body').text().includes('Oi'), true); -// -// html = await fixture.readFile('/spanish/index.html'); -// $ = cheerio.load(html); -// assert.equal($('body').text().includes('Hola.'), true); -// }); -// }); -// +describe('SSG manual routing', () => { + /** @type {import('./test-utils').Fixture} */ + let fixture; + + before(async () => { + fixture = await loadFixture({ + root: './fixtures/i18n-routing-manual-with-default-middleware/', + }); + await fixture.build(); + }); + + it('should return a 404', async () => { + try { + await fixture.readFile('/blog.html'); + assert.fail(); + } catch (e) {} + }); + + it('should return a 200 because the custom middleware allows it', async () => { + let html = await fixture.readFile('/about/index.html'); + let $ = cheerio.load(html); + assert.equal($('body').text().includes('ABOUT ME'), true); + }); +}); + // // SSR // describe('SSR manual routing', () => { // /** @type {import('./test-utils').Fixture} */ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d4b0bd3ce9c4..cf956d4ed32b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,16 +14,16 @@ importers: .: dependencies: - '@biomejs/biome': - specifier: ^1.5.3 - version: 1.5.3 astro-benchmark: specifier: workspace:* version: link:benchmark devDependencies: '@astrojs/check': - specifier: ^0.3.1 - version: 0.3.4(prettier-plugin-astro@0.12.3)(prettier@3.1.1)(typescript@5.2.2) + specifier: ^0.5.8 + version: 0.5.8(prettier-plugin-astro@0.12.3)(prettier@3.1.1)(typescript@5.2.2) + '@biomejs/biome': + specifier: 1.5.3 + version: 1.5.3 '@changesets/changelog-github': specifier: ^0.4.8 version: 0.4.8 @@ -76,8 +76,8 @@ importers: specifier: ^0.2.9 version: 0.2.9 turbo: - specifier: ^1.10.12 - version: 1.11.2 + specifier: ^1.12.4 + version: 1.12.4 typescript: specifier: ~5.2.2 version: 5.2.2 @@ -134,13 +134,13 @@ importers: examples/basics: dependencies: astro: - specifier: ^4.4.10 + specifier: ^4.5.9 version: link:../../packages/astro examples/blog: dependencies: '@astrojs/mdx': - specifier: ^2.1.1 + specifier: ^2.2.1 version: link:../../packages/integrations/mdx '@astrojs/rss': specifier: ^4.0.5 @@ -149,13 +149,13 @@ importers: specifier: ^3.1.1 version: link:../../packages/integrations/sitemap astro: - specifier: ^4.4.10 + specifier: ^4.5.9 version: link:../../packages/astro examples/component: devDependencies: astro: - specifier: ^4.4.10 + specifier: ^4.5.9 version: link:../../packages/astro examples/framework-alpine: @@ -170,7 +170,7 @@ importers: specifier: ^3.13.3 version: 3.13.3 astro: - specifier: ^4.4.10 + specifier: ^4.5.9 version: link:../../packages/astro examples/framework-lit: @@ -182,7 +182,7 @@ importers: specifier: ^0.2.1 version: 0.2.1 astro: - specifier: ^4.4.10 + specifier: ^4.5.9 version: link:../../packages/astro lit: specifier: ^3.1.2 @@ -194,7 +194,7 @@ importers: specifier: ^3.1.1 version: link:../../packages/integrations/preact '@astrojs/react': - specifier: ^3.0.10 + specifier: ^3.1.0 version: link:../../packages/integrations/react '@astrojs/solid-js': specifier: ^4.0.1 @@ -203,10 +203,16 @@ importers: specifier: ^5.2.0 version: link:../../packages/integrations/svelte '@astrojs/vue': - specifier: ^4.0.8 + specifier: ^4.0.9 version: link:../../packages/integrations/vue + '@types/react': + specifier: ^18.2.37 + version: 18.2.57 + '@types/react-dom': + specifier: ^18.2.15 + version: 18.2.19 astro: - specifier: ^4.4.10 + specifier: ^4.5.9 version: link:../../packages/astro preact: specifier: ^10.19.2 @@ -236,7 +242,7 @@ importers: specifier: ^1.2.1 version: 1.2.1(preact@10.19.3) astro: - specifier: ^4.4.10 + specifier: ^4.5.9 version: link:../../packages/astro preact: specifier: ^10.19.2 @@ -245,7 +251,7 @@ importers: examples/framework-react: dependencies: '@astrojs/react': - specifier: ^3.0.10 + specifier: ^3.1.0 version: link:../../packages/integrations/react '@types/react': specifier: ^18.2.37 @@ -254,7 +260,7 @@ importers: specifier: ^18.2.15 version: 18.2.18 astro: - specifier: ^4.4.10 + specifier: ^4.5.9 version: link:../../packages/astro react: specifier: ^18.2.0 @@ -269,7 +275,7 @@ importers: specifier: ^4.0.1 version: link:../../packages/integrations/solid astro: - specifier: ^4.4.10 + specifier: ^4.5.9 version: link:../../packages/astro solid-js: specifier: ^1.8.5 @@ -281,7 +287,7 @@ importers: specifier: ^5.2.0 version: link:../../packages/integrations/svelte astro: - specifier: ^4.4.10 + specifier: ^4.5.9 version: link:../../packages/astro svelte: specifier: ^4.2.5 @@ -290,10 +296,10 @@ importers: examples/framework-vue: dependencies: '@astrojs/vue': - specifier: ^4.0.8 + specifier: ^4.0.9 version: link:../../packages/integrations/vue astro: - specifier: ^4.4.10 + specifier: ^4.5.9 version: link:../../packages/astro vue: specifier: ^3.3.8 @@ -302,25 +308,25 @@ importers: examples/hackernews: dependencies: '@astrojs/node': - specifier: ^8.2.3 + specifier: ^8.2.5 version: link:../../packages/integrations/node astro: - specifier: ^4.4.10 + specifier: ^4.5.9 version: link:../../packages/astro examples/integration: devDependencies: astro: - specifier: ^4.4.10 + specifier: ^4.5.9 version: link:../../packages/astro examples/middleware: dependencies: '@astrojs/node': - specifier: ^8.2.3 + specifier: ^8.2.5 version: link:../../packages/integrations/node astro: - specifier: ^4.4.10 + specifier: ^4.5.9 version: link:../../packages/astro html-minifier: specifier: ^4.0.0 @@ -333,31 +339,31 @@ importers: examples/minimal: dependencies: astro: - specifier: ^4.4.10 + specifier: ^4.5.9 version: link:../../packages/astro examples/non-html-pages: dependencies: astro: - specifier: ^4.4.10 + specifier: ^4.5.9 version: link:../../packages/astro examples/portfolio: dependencies: astro: - specifier: ^4.4.10 + specifier: ^4.5.9 version: link:../../packages/astro examples/ssr: dependencies: '@astrojs/node': - specifier: ^8.2.3 + specifier: ^8.2.5 version: link:../../packages/integrations/node '@astrojs/svelte': specifier: ^5.2.0 version: link:../../packages/integrations/svelte astro: - specifier: ^4.4.10 + specifier: ^4.5.9 version: link:../../packages/astro svelte: specifier: ^4.2.5 @@ -366,7 +372,7 @@ importers: examples/starlog: dependencies: astro: - specifier: ^4.4.10 + specifier: ^4.5.9 version: link:../../packages/astro sass: specifier: ^1.69.5 @@ -378,31 +384,31 @@ importers: examples/view-transitions: devDependencies: '@astrojs/node': - specifier: ^8.2.3 + specifier: ^8.2.5 version: link:../../packages/integrations/node '@astrojs/tailwind': specifier: ^5.1.0 version: link:../../packages/integrations/tailwind astro: - specifier: ^4.4.10 + specifier: ^4.5.9 version: link:../../packages/astro examples/with-markdoc: dependencies: '@astrojs/markdoc': - specifier: ^0.9.1 + specifier: ^0.9.2 version: link:../../packages/integrations/markdoc astro: - specifier: ^4.4.10 + specifier: ^4.5.9 version: link:../../packages/astro examples/with-markdown-plugins: dependencies: '@astrojs/markdown-remark': - specifier: ^4.2.1 + specifier: ^4.3.1 version: link:../../packages/markdown/remark astro: - specifier: ^4.4.10 + specifier: ^4.5.9 version: link:../../packages/astro hast-util-select: specifier: ^6.0.2 @@ -423,19 +429,19 @@ importers: examples/with-markdown-shiki: dependencies: astro: - specifier: ^4.4.10 + specifier: ^4.5.9 version: link:../../packages/astro examples/with-mdx: dependencies: '@astrojs/mdx': - specifier: ^2.1.1 + specifier: ^2.2.1 version: link:../../packages/integrations/mdx '@astrojs/preact': specifier: ^3.1.1 version: link:../../packages/integrations/preact astro: - specifier: ^4.4.10 + specifier: ^4.5.9 version: link:../../packages/astro preact: specifier: ^10.19.2 @@ -450,7 +456,7 @@ importers: specifier: ^0.5.0 version: 0.5.0(nanostores@0.9.5)(preact@10.19.3) astro: - specifier: ^4.4.10 + specifier: ^4.5.9 version: link:../../packages/astro nanostores: specifier: ^0.9.5 @@ -462,7 +468,7 @@ importers: examples/with-tailwindcss: dependencies: '@astrojs/mdx': - specifier: ^2.1.1 + specifier: ^2.2.1 version: link:../../packages/integrations/mdx '@astrojs/tailwind': specifier: ^5.1.0 @@ -471,7 +477,7 @@ importers: specifier: ^1.6.3 version: 1.6.4 astro: - specifier: ^4.4.10 + specifier: ^4.5.9 version: link:../../packages/astro autoprefixer: specifier: ^10.4.15 @@ -489,7 +495,7 @@ importers: examples/with-vitest: dependencies: astro: - specifier: ^4.4.10 + specifier: ^4.5.9 version: link:../../packages/astro vitest: specifier: ^1.3.1 @@ -498,8 +504,8 @@ importers: packages/astro: dependencies: '@astrojs/compiler': - specifier: ^2.5.3 - version: 2.5.3 + specifier: ^2.7.0 + version: 2.7.0 '@astrojs/internal-helpers': specifier: workspace:* version: link:../internal-helpers @@ -510,8 +516,8 @@ importers: specifier: workspace:* version: link:../telemetry '@babel/core': - specifier: ^7.23.3 - version: 7.23.7 + specifier: ^7.24.3 + version: 7.24.3 '@babel/generator': specifier: ^7.23.3 version: 7.23.6 @@ -520,16 +526,13 @@ importers: version: 7.23.6 '@babel/plugin-transform-react-jsx': specifier: ^7.22.5 - version: 7.23.4(@babel/core@7.23.7) + version: 7.23.4(@babel/core@7.24.3) '@babel/traverse': specifier: ^7.23.3 version: 7.23.7 '@babel/types': specifier: ^7.23.3 version: 7.23.6 - '@medv/finder': - specifier: ^3.1.0 - version: 3.1.0 '@types/babel__core': specifier: ^7.20.4 version: 7.20.5 @@ -620,9 +623,6 @@ importers: magic-string: specifier: ^0.30.3 version: 0.30.5 - mdast-util-to-hast: - specifier: 13.0.2 - version: 13.0.2 mime: specifier: ^3.0.0 version: 3.0.0 @@ -653,12 +653,9 @@ importers: semver: specifier: ^7.5.4 version: 7.5.4 - shikiji: - specifier: ^0.9.19 - version: 0.9.19 - shikiji-core: - specifier: ^0.9.19 - version: 0.9.19 + shiki: + specifier: ^1.1.2 + version: 1.1.2 string-width: specifier: ^7.0.0 version: 7.0.0 @@ -689,14 +686,17 @@ importers: zod: specifier: ^3.22.4 version: 3.22.4 + zod-to-json-schema: + specifier: ^3.22.4 + version: 3.22.4(zod@3.22.4) optionalDependencies: sharp: specifier: ^0.32.6 version: 0.32.6 devDependencies: '@astrojs/check': - specifier: ^0.3.1 - version: 0.3.4(prettier-plugin-astro@0.12.3)(prettier@3.1.1)(typescript@5.2.2) + specifier: ^0.5.8 + version: 0.5.8(prettier-plugin-astro@0.12.3)(prettier@3.1.1)(typescript@5.2.2) '@playwright/test': specifier: 1.40.0 version: 1.40.0 @@ -736,9 +736,6 @@ importers: '@types/dom-view-transitions': specifier: ^1.0.4 version: 1.0.4 - '@types/estree': - specifier: ^1.0.5 - version: 1.0.5 '@types/hast': specifier: ^3.0.3 version: 3.0.3 @@ -2708,6 +2705,12 @@ importers: specifier: workspace:* version: link:../../.. + packages/astro/test/fixtures/data-collections-schema: + dependencies: + astro: + specifier: workspace:* + version: link:../../.. + packages/astro/test/fixtures/debug-component: dependencies: astro: @@ -2732,6 +2735,12 @@ importers: specifier: workspace:* version: link:../../.. + packages/astro/test/fixtures/dynamic-route-collision: + dependencies: + astro: + specifier: workspace:* + version: link:../../.. + packages/astro/test/fixtures/entry-file-names: dependencies: '@astrojs/preact': @@ -3640,9 +3649,18 @@ importers: packages/astro/test/fixtures/streaming: dependencies: + '@astrojs/react': + specifier: workspace:* + version: link:../../../../integrations/react astro: specifier: workspace:* version: link:../../.. + react: + specifier: ^18.2.0 + version: 18.2.0 + react-dom: + specifier: ^18.2.0 + version: 18.2.0(react@18.2.0) packages/astro/test/fixtures/svelte-component: dependencies: @@ -3734,6 +3752,12 @@ importers: specifier: workspace:* version: link:../../.. + packages/astro/test/fixtures/virtual-routes: + dependencies: + astro: + specifier: workspace:* + version: link:../../.. + packages/astro/test/fixtures/vue-component: dependencies: '@astrojs/vue': @@ -3821,8 +3845,8 @@ importers: packages/db: dependencies: '@libsql/client': - specifier: ^0.4.3 - version: 0.4.3 + specifier: ^0.5.5 + version: 0.5.5 async-listen: specifier: ^3.0.1 version: 3.0.1 @@ -3830,8 +3854,11 @@ importers: specifier: ^1.0.2 version: 1.0.2 drizzle-orm: - specifier: ^0.28.6 - version: 0.28.6(@libsql/client@0.4.3) + specifier: ^0.30.2 + version: 0.30.2(@libsql/client@0.5.5) + github-slugger: + specifier: ^2.0.0 + version: 2.0.0 kleur: specifier: ^4.1.5 version: 4.1.5 @@ -3847,6 +3874,9 @@ importers: prompts: specifier: ^2.4.2 version: 2.4.2 + strip-ansi: + specifier: ^7.1.0 + version: 7.1.0 yargs-parser: specifier: ^21.1.1 version: 21.1.1 @@ -3903,6 +3933,51 @@ importers: specifier: workspace:* version: link:../../../../astro + packages/db/test/fixtures/error-handling: + dependencies: + '@astrojs/db': + specifier: workspace:* + version: link:../../.. + astro: + specifier: workspace:* + version: link:../../../../astro + + packages/db/test/fixtures/integration-only: + dependencies: + '@astrojs/db': + specifier: workspace:* + version: link:../../.. + astro: + specifier: workspace:* + version: link:../../../../astro + + packages/db/test/fixtures/integrations: + dependencies: + '@astrojs/db': + specifier: workspace:* + version: link:../../.. + astro: + specifier: workspace:* + version: link:../../../../astro + + packages/db/test/fixtures/no-apptoken: + dependencies: + '@astrojs/db': + specifier: workspace:* + version: link:../../.. + astro: + specifier: workspace:* + version: link:../../../../astro + + packages/db/test/fixtures/no-seed: + dependencies: + '@astrojs/db': + specifier: workspace:* + version: link:../../.. + astro: + specifier: workspace:* + version: link:../../../../astro + packages/db/test/fixtures/recipes: dependencies: '@astrojs/db': @@ -4307,8 +4382,8 @@ importers: specifier: ^5.0.0 version: 5.0.0 rehype-pretty-code: - specifier: ^0.10.2 - version: 0.10.2 + specifier: ^0.13.0 + version: 0.13.0 remark-math: specifier: ^6.0.0 version: 6.0.0 @@ -4648,7 +4723,7 @@ importers: dependencies: '@babel/plugin-transform-react-jsx': specifier: ^7.22.5 - version: 7.23.4(@babel/core@7.23.7) + version: 7.23.4(@babel/core@7.24.3) '@babel/plugin-transform-react-jsx-development': specifier: ^7.22.5 version: 7.22.5 @@ -4871,9 +4946,12 @@ importers: '@vercel/analytics': specifier: ^1.0.2 version: 1.1.1 + '@vercel/edge': + specifier: ^1.1.1 + version: 1.1.1 '@vercel/nft': - specifier: ^0.24.3 - version: 0.24.4 + specifier: ^0.26.4 + version: 0.26.4 esbuild: specifier: ^0.19.6 version: 0.19.11 @@ -4890,9 +4968,6 @@ importers: '@types/set-cookie-parser': specifier: ^2.4.6 version: 2.4.7 - '@vercel/edge': - specifier: ^1.1.1 - version: 1.1.1 astro: specifier: workspace:* version: link:../../astro @@ -5086,14 +5161,14 @@ importers: packages/integrations/vue: dependencies: '@vitejs/plugin-vue': - specifier: ^4.5.0 - version: 4.6.2(vite@5.1.4)(vue@3.4.3) + specifier: ^5.0.4 + version: 5.0.4(vite@5.1.4)(vue@3.4.3) '@vitejs/plugin-vue-jsx': specifier: ^3.1.0 version: 3.1.0(vite@5.1.4)(vue@3.4.3) '@vue/babel-plugin-jsx': specifier: ^1.1.5 - version: 1.1.5(@babel/core@7.23.7) + version: 1.1.5(@babel/core@7.24.3) '@vue/compiler-sfc': specifier: ^3.3.8 version: 3.4.3 @@ -5206,6 +5281,12 @@ importers: github-slugger: specifier: ^2.0.0 version: 2.0.0 + hast-util-from-html: + specifier: ^2.0.0 + version: 2.0.1 + hast-util-to-text: + specifier: ^4.0.0 + version: 4.0.0 import-meta-resolve: specifier: ^4.0.0 version: 4.0.0 @@ -5230,15 +5311,21 @@ importers: remark-smartypants: specifier: ^2.0.0 version: 2.0.0 - shikiji: - specifier: ^0.9.19 - version: 0.9.19 + shiki: + specifier: ^1.1.2 + version: 1.1.2 unified: specifier: ^11.0.4 version: 11.0.4 + unist-util-remove-position: + specifier: ^5.0.0 + version: 5.0.0 unist-util-visit: specifier: ^5.0.0 version: 5.0.0 + unist-util-visit-parents: + specifier: ^6.0.0 + version: 6.0.1 vfile: specifier: ^6.0.1 version: 6.0.1 @@ -5457,39 +5544,39 @@ packages: lite-youtube-embed: 0.2.0 dev: false - /@astrojs/check@0.3.4(prettier-plugin-astro@0.12.3)(prettier@3.1.1)(typescript@5.2.2): - resolution: {integrity: sha512-Wi4KwW38J3GCd/U6LH2UuU4uc4P/K1WYaqhoKm2o7rVoGhQfO+RWrSO26rUPRXYbmae8JugAgpCmsHC8bt5RlA==} + /@astrojs/check@0.5.5(prettier-plugin-astro@0.12.3)(prettier@3.1.1)(typescript@5.3.2): + resolution: {integrity: sha512-05LjyUB14Cv2mkLNqY4r2igI2eu0bq/HcKCfFNIoBPLyNW7VUDr9tciD9VJXXT3s0e6JHneIs6bQW5ipjmaRcw==} hasBin: true peerDependencies: typescript: ^5.0.0 dependencies: - '@astrojs/language-server': 2.5.5(prettier-plugin-astro@0.12.3)(prettier@3.1.1)(typescript@5.2.2) + '@astrojs/language-server': 2.7.6(prettier-plugin-astro@0.12.3)(prettier@3.1.1)(typescript@5.3.2) chokidar: 3.5.3 fast-glob: 3.3.2 kleur: 4.1.5 - typescript: 5.2.2 + typescript: 5.3.2 yargs: 17.7.2 transitivePeerDependencies: - prettier - prettier-plugin-astro - dev: true + dev: false - /@astrojs/check@0.5.5(prettier-plugin-astro@0.12.3)(prettier@3.1.1)(typescript@5.3.2): - resolution: {integrity: sha512-05LjyUB14Cv2mkLNqY4r2igI2eu0bq/HcKCfFNIoBPLyNW7VUDr9tciD9VJXXT3s0e6JHneIs6bQW5ipjmaRcw==} + /@astrojs/check@0.5.8(prettier-plugin-astro@0.12.3)(prettier@3.1.1)(typescript@5.2.2): + resolution: {integrity: sha512-O3lPUIwhlRtya8KcUDfB0+vBPgj/qVoNvTUhYTTDx0uEsHBbssO5RSFezw6KVBxps6zIR8+YAyOoRKPBhMB7KQ==} hasBin: true peerDependencies: typescript: ^5.0.0 dependencies: - '@astrojs/language-server': 2.7.6(prettier-plugin-astro@0.12.3)(prettier@3.1.1)(typescript@5.3.2) + '@astrojs/language-server': 2.8.4(prettier-plugin-astro@0.12.3)(prettier@3.1.1)(typescript@5.2.2) chokidar: 3.5.3 fast-glob: 3.3.2 kleur: 4.1.5 - typescript: 5.3.2 + typescript: 5.2.2 yargs: 17.7.2 transitivePeerDependencies: - prettier - prettier-plugin-astro - dev: false + dev: true /@astrojs/cli-kit@0.2.5: resolution: {integrity: sha512-j6zpNUjtHJGEIKkTrTPvQD3G/sJUKyseJty42iVR3HqytzqHwLK165vptdT4NZKfZ082yLnUtsOXxRyIdfm/AQ==} @@ -5511,11 +5598,11 @@ packages: /@astrojs/compiler@1.8.2: resolution: {integrity: sha512-o/ObKgtMzl8SlpIdzaxFnt7SATKPxu4oIP/1NL+HDJRzxfJcAkOTAb/ZKMRyULbz4q+1t2/DAebs2Z1QairkZw==} - /@astrojs/compiler@2.5.3: - resolution: {integrity: sha512-jzj01BRv/fmo+9Mr2FhocywGzEYiyiP2GVHje1ziGNU6c97kwhYGsnvwMkHrncAy9T9Vi54cjaMK7UE4ClX4vA==} + /@astrojs/compiler@2.7.0: + resolution: {integrity: sha512-XpC8MAaWjD1ff6/IfkRq/5k1EFj6zhCNqXRd5J43SVJEBj/Bsmizkm8N0xOYscGcDFQkRgEw6/eKnI5x/1l6aA==} - /@astrojs/language-server@2.5.5(prettier-plugin-astro@0.12.3)(prettier@3.1.1)(typescript@5.2.2): - resolution: {integrity: sha512-hk7a8S7bpf//BOA6mMjiYqi/eiYtGPfUfw59eVXdutdRFdwDHtu4jcsLu43ZaId56pAcE8qFjIvJxySvzcxiUA==} + /@astrojs/language-server@2.7.6(prettier-plugin-astro@0.12.3)(prettier@3.1.1)(typescript@5.3.2): + resolution: {integrity: sha512-NhMSmMAuKBMXnvpfn9eYPR7R6zOasAjRb+ta8L+rCHHuKzUc0lBgAF5M6rx01FJqlpGqeqao13eYt4287Ze49g==} hasBin: true peerDependencies: prettier: ^3.0.0 @@ -5526,32 +5613,30 @@ packages: prettier-plugin-astro: optional: true dependencies: - '@astrojs/compiler': 2.5.3 + '@astrojs/compiler': 2.7.0 '@jridgewell/sourcemap-codec': 1.4.15 - '@volar/kit': 1.10.10(typescript@5.2.2) - '@volar/language-core': 1.10.10 - '@volar/language-server': 1.10.10 - '@volar/language-service': 1.10.10 - '@volar/source-map': 1.10.10 - '@volar/typescript': 1.10.10 + '@volar/kit': 2.0.4(typescript@5.3.2) + '@volar/language-core': 2.0.4 + '@volar/language-server': 2.0.4 + '@volar/language-service': 2.0.4 + '@volar/typescript': 2.0.4 fast-glob: 3.3.2 - muggle-string: 0.3.1 prettier: 3.1.1 prettier-plugin-astro: 0.12.3 - volar-service-css: 0.0.16(@volar/language-service@1.10.10) - volar-service-emmet: 0.0.16(@volar/language-service@1.10.10) - volar-service-html: 0.0.16(@volar/language-service@1.10.10) - volar-service-prettier: 0.0.16(@volar/language-service@1.10.10)(prettier@3.1.1) - volar-service-typescript: 0.0.16(@volar/language-service@1.10.10)(@volar/typescript@1.10.10) - volar-service-typescript-twoslash-queries: 0.0.16(@volar/language-service@1.10.10) - vscode-html-languageservice: 5.1.1 + volar-service-css: 0.0.30(@volar/language-service@2.0.4) + volar-service-emmet: 0.0.30(@volar/language-service@2.0.4) + volar-service-html: 0.0.30(@volar/language-service@2.0.4) + volar-service-prettier: 0.0.30(@volar/language-service@2.0.4)(prettier@3.1.1) + volar-service-typescript: 0.0.30(@volar/language-service@2.0.4)(@volar/typescript@2.0.4) + volar-service-typescript-twoslash-queries: 0.0.30(@volar/language-service@2.0.4) + vscode-html-languageservice: 5.1.2 vscode-uri: 3.0.8 transitivePeerDependencies: - typescript - dev: true + dev: false - /@astrojs/language-server@2.7.6(prettier-plugin-astro@0.12.3)(prettier@3.1.1)(typescript@5.3.2): - resolution: {integrity: sha512-NhMSmMAuKBMXnvpfn9eYPR7R6zOasAjRb+ta8L+rCHHuKzUc0lBgAF5M6rx01FJqlpGqeqao13eYt4287Ze49g==} + /@astrojs/language-server@2.8.4(prettier-plugin-astro@0.12.3)(prettier@3.1.1)(typescript@5.2.2): + resolution: {integrity: sha512-sJH5vGTBkhgA8+hdhzX78UUp4cFz4Mt7xkEkevD188OS5bDMkaue6hK+dtXWM47mnrXFveXA2u38K7S+5+IRjA==} hasBin: true peerDependencies: prettier: ^3.0.0 @@ -5562,27 +5647,27 @@ packages: prettier-plugin-astro: optional: true dependencies: - '@astrojs/compiler': 2.5.3 + '@astrojs/compiler': 2.7.0 '@jridgewell/sourcemap-codec': 1.4.15 - '@volar/kit': 2.0.4(typescript@5.3.2) - '@volar/language-core': 2.0.4 - '@volar/language-server': 2.0.4 - '@volar/language-service': 2.0.4 - '@volar/typescript': 2.0.4 + '@volar/kit': 2.1.5(typescript@5.2.2) + '@volar/language-core': 2.1.5 + '@volar/language-server': 2.1.5 + '@volar/language-service': 2.1.5 + '@volar/typescript': 2.1.5 fast-glob: 3.3.2 prettier: 3.1.1 prettier-plugin-astro: 0.12.3 - volar-service-css: 0.0.30(@volar/language-service@2.0.4) - volar-service-emmet: 0.0.30(@volar/language-service@2.0.4) - volar-service-html: 0.0.30(@volar/language-service@2.0.4) - volar-service-prettier: 0.0.30(@volar/language-service@2.0.4)(prettier@3.1.1) - volar-service-typescript: 0.0.30(@volar/language-service@2.0.4)(@volar/typescript@2.0.4) - volar-service-typescript-twoslash-queries: 0.0.30(@volar/language-service@2.0.4) + volar-service-css: 0.0.34(@volar/language-service@2.1.5) + volar-service-emmet: 0.0.34(@volar/language-service@2.1.5) + volar-service-html: 0.0.34(@volar/language-service@2.1.5) + volar-service-prettier: 0.0.34(@volar/language-service@2.1.5)(prettier@3.1.1) + volar-service-typescript: 0.0.34(@volar/language-service@2.1.5) + volar-service-typescript-twoslash-queries: 0.0.34(@volar/language-service@2.1.5) vscode-html-languageservice: 5.1.2 vscode-uri: 3.0.8 transitivePeerDependencies: - typescript - dev: false + dev: true /@babel/code-frame@7.23.5: resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} @@ -5591,25 +5676,33 @@ packages: '@babel/highlight': 7.23.4 chalk: 2.4.2 + /@babel/code-frame@7.24.2: + resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.24.2 + picocolors: 1.0.0 + dev: false + /@babel/compat-data@7.23.5: resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==} engines: {node: '>=6.9.0'} dev: false - /@babel/core@7.23.7: - resolution: {integrity: sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==} + /@babel/core@7.24.3: + resolution: {integrity: sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.1 - '@babel/code-frame': 7.23.5 - '@babel/generator': 7.23.6 + '@babel/code-frame': 7.24.2 + '@babel/generator': 7.24.1 '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) - '@babel/helpers': 7.23.7 - '@babel/parser': 7.23.6 - '@babel/template': 7.22.15 - '@babel/traverse': 7.23.7 - '@babel/types': 7.23.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3) + '@babel/helpers': 7.24.1 + '@babel/parser': 7.24.1 + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.1 + '@babel/types': 7.24.0 convert-source-map: 2.0.0 debug: 4.3.4(supports-color@8.1.1) gensync: 1.0.0-beta.2 @@ -5629,6 +5722,16 @@ packages: jsesc: 2.5.2 dev: false + /@babel/generator@7.24.1: + resolution: {integrity: sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.0 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 2.5.2 + dev: false + /@babel/helper-annotate-as-pure@7.22.5: resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} @@ -5647,7 +5750,7 @@ packages: semver: 6.3.1 dev: false - /@babel/helper-create-class-features-plugin@7.23.7(@babel/core@7.23.7): + /@babel/helper-create-class-features-plugin@7.23.7(@babel/core@7.24.3): resolution: {integrity: sha512-xCoqR/8+BoNnXOY7RVSgv6X+o7pmT5q1d+gGcRlXYkI+9B31glE4jeejhKVpA04O1AtzOt7OSQ6VYKP5FcRl9g==} engines: {node: '>=6.9.0'} peerDependencies: @@ -5656,13 +5759,13 @@ packages: '@babel/core': optional: true dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.7) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.24.3) '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 @@ -5709,7 +5812,7 @@ packages: '@babel/types': 7.23.6 dev: false - /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.7): + /@babel/helper-module-transforms@7.23.3(@babel/core@7.24.3): resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} engines: {node: '>=6.9.0'} peerDependencies: @@ -5718,7 +5821,7 @@ packages: '@babel/core': optional: true dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.24.3 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-module-imports': 7.22.15 '@babel/helper-simple-access': 7.22.5 @@ -5738,7 +5841,7 @@ packages: engines: {node: '>=6.9.0'} dev: false - /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.7): + /@babel/helper-replace-supers@7.22.20(@babel/core@7.24.3): resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} engines: {node: '>=6.9.0'} peerDependencies: @@ -5747,7 +5850,7 @@ packages: '@babel/core': optional: true dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.24.3 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 @@ -5787,13 +5890,13 @@ packages: engines: {node: '>=6.9.0'} dev: false - /@babel/helpers@7.23.7: - resolution: {integrity: sha512-6AMnjCoC8wjqBzDHkuqpa7jAKwvMo4dC+lr/TFBz+ucfulO1XMpDnwWPGBNwClOKZ8h6xn5N81W/R5OrcKtCbQ==} + /@babel/helpers@7.24.1: + resolution: {integrity: sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.22.15 - '@babel/traverse': 7.23.7 - '@babel/types': 7.23.6 + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.1 + '@babel/types': 7.24.0 transitivePeerDependencies: - supports-color dev: false @@ -5806,6 +5909,16 @@ packages: chalk: 2.4.2 js-tokens: 4.0.0 + /@babel/highlight@7.24.2: + resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.22.20 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.0.0 + dev: false + /@babel/parser@7.23.6: resolution: {integrity: sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==} engines: {node: '>=6.0.0'} @@ -5813,7 +5926,15 @@ packages: dependencies: '@babel/types': 7.23.6 - /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.7): + /@babel/parser@7.24.1: + resolution: {integrity: sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.24.0 + dev: false + + /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.24.3): resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} engines: {node: '>=6.9.0'} peerDependencies: @@ -5822,11 +5943,11 @@ packages: '@babel/core': optional: true dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.22.5 dev: false - /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.23.7): + /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.24.3): resolution: {integrity: sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==} engines: {node: '>=6.9.0'} peerDependencies: @@ -5835,11 +5956,11 @@ packages: '@babel/core': optional: true dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.22.5 dev: false - /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.7): + /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.24.3): resolution: {integrity: sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==} engines: {node: '>=6.9.0'} peerDependencies: @@ -5848,8 +5969,8 @@ packages: '@babel/core': optional: true dependencies: - '@babel/core': 7.23.7 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) + '@babel/core': 7.24.3 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-simple-access': 7.22.5 dev: false @@ -5863,10 +5984,10 @@ packages: '@babel/core': optional: true dependencies: - '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.3) dev: false - /@babel/plugin-transform-react-jsx-self@7.23.3(@babel/core@7.23.7): + /@babel/plugin-transform-react-jsx-self@7.23.3(@babel/core@7.24.3): resolution: {integrity: sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==} engines: {node: '>=6.9.0'} peerDependencies: @@ -5875,11 +5996,11 @@ packages: '@babel/core': optional: true dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.22.5 dev: false - /@babel/plugin-transform-react-jsx-source@7.23.3(@babel/core@7.23.7): + /@babel/plugin-transform-react-jsx-source@7.23.3(@babel/core@7.24.3): resolution: {integrity: sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==} engines: {node: '>=6.9.0'} peerDependencies: @@ -5888,11 +6009,11 @@ packages: '@babel/core': optional: true dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.22.5 dev: false - /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.23.7): + /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.3): resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==} engines: {node: '>=6.9.0'} peerDependencies: @@ -5901,15 +6022,15 @@ packages: '@babel/core': optional: true dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.3) '@babel/types': 7.23.6 dev: false - /@babel/plugin-transform-typescript@7.23.6(@babel/core@7.23.7): + /@babel/plugin-transform-typescript@7.23.6(@babel/core@7.24.3): resolution: {integrity: sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==} engines: {node: '>=6.9.0'} peerDependencies: @@ -5918,14 +6039,14 @@ packages: '@babel/core': optional: true dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7) + '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.24.3) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.24.3) dev: false - /@babel/preset-typescript@7.23.3(@babel/core@7.23.7): + /@babel/preset-typescript@7.23.3(@babel/core@7.24.3): resolution: {integrity: sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==} engines: {node: '>=6.9.0'} peerDependencies: @@ -5934,12 +6055,12 @@ packages: '@babel/core': optional: true dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.24.3 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.23.7) + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.3) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.24.3) + '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.24.3) dev: false /@babel/runtime@7.23.7: @@ -5958,6 +6079,15 @@ packages: '@babel/types': 7.23.6 dev: false + /@babel/template@7.24.0: + resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.24.2 + '@babel/parser': 7.24.1 + '@babel/types': 7.24.0 + dev: false + /@babel/traverse@7.23.7: resolution: {integrity: sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==} engines: {node: '>=6.9.0'} @@ -5976,6 +6106,24 @@ packages: - supports-color dev: false + /@babel/traverse@7.24.1: + resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.24.2 + '@babel/generator': 7.24.1 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.24.1 + '@babel/types': 7.24.0 + debug: 4.3.4(supports-color@8.1.1) + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: false + /@babel/types@7.23.6: resolution: {integrity: sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==} engines: {node: '>=6.9.0'} @@ -5984,6 +6132,15 @@ packages: '@babel/helper-validator-identifier': 7.22.20 to-fast-properties: 2.0.0 + /@babel/types@7.24.0: + resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.23.4 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 + dev: false + /@biomejs/biome@1.5.3: resolution: {integrity: sha512-yvZCa/g3akwTaAQ7PCwPWDCkZs3Qa5ONg/fgOUT9e6wAWsPftCjLQFPXBeGxPK30yZSSpgEmRCfpGTmVbUjGgg==} engines: {node: '>=14.*'} @@ -5998,7 +6155,7 @@ packages: '@biomejs/cli-linux-x64-musl': 1.5.3 '@biomejs/cli-win32-arm64': 1.5.3 '@biomejs/cli-win32-x64': 1.5.3 - dev: false + dev: true /@biomejs/cli-darwin-arm64@1.5.3: resolution: {integrity: sha512-ImU7mh1HghEDyqNmxEZBoMPr8SxekkZuYcs+gynKlNW+TALQs7swkERiBLkG9NR0K1B3/2uVzlvYowXrmlW8hw==} @@ -6006,7 +6163,7 @@ packages: cpu: [arm64] os: [darwin] requiresBuild: true - dev: false + dev: true optional: true /@biomejs/cli-darwin-x64@1.5.3: @@ -6015,7 +6172,7 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true - dev: false + dev: true optional: true /@biomejs/cli-linux-arm64-musl@1.5.3: @@ -6024,7 +6181,7 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true - dev: false + dev: true optional: true /@biomejs/cli-linux-arm64@1.5.3: @@ -6033,7 +6190,7 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true - dev: false + dev: true optional: true /@biomejs/cli-linux-x64-musl@1.5.3: @@ -6042,7 +6199,7 @@ packages: cpu: [x64] os: [linux] requiresBuild: true - dev: false + dev: true optional: true /@biomejs/cli-linux-x64@1.5.3: @@ -6051,7 +6208,7 @@ packages: cpu: [x64] os: [linux] requiresBuild: true - dev: false + dev: true optional: true /@biomejs/cli-win32-arm64@1.5.3: @@ -6060,7 +6217,7 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true - dev: false + dev: true optional: true /@biomejs/cli-win32-x64@1.5.3: @@ -6069,7 +6226,7 @@ packages: cpu: [x64] os: [win32] requiresBuild: true - dev: false + dev: true optional: true /@builder.io/partytown@0.8.1: @@ -6984,6 +7141,15 @@ packages: '@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/trace-mapping': 0.3.20 + /@jridgewell/gen-mapping@0.3.5: + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.25 + dev: false + /@jridgewell/resolve-uri@3.1.1: resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} engines: {node: '>=6.0.0'} @@ -6992,6 +7158,11 @@ packages: resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} engines: {node: '>=6.0.0'} + /@jridgewell/set-array@1.2.1: + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + dev: false + /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} @@ -7001,40 +7172,46 @@ packages: '@jridgewell/resolve-uri': 3.1.1 '@jridgewell/sourcemap-codec': 1.4.15 + /@jridgewell/trace-mapping@0.3.25: + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + dev: false + /@jsdevtools/rehype-toc@3.0.2: resolution: {integrity: sha512-n5JEf16Wr4mdkRMZ8wMP/wN9/sHmTjRPbouXjJH371mZ2LEGDl72t8tEsMRNFerQN/QJtivOxqK1frdGa4QK5Q==} engines: {node: '>=10'} - /@libsql/client@0.4.3: - resolution: {integrity: sha512-AUYKnSPqAsFBVWBvmtrb4dG3pQlvTKT92eztAest9wQU2iJkabH8WzHLDb3dKFWKql7/kiCqvBQUVpozDwhekQ==} + /@libsql/client@0.5.5: + resolution: {integrity: sha512-fEFtFWKzf4GGlrndzAAPmDwRRXYmHADbDis9LS+63kn0ne2FQIjX5v55CdxHXYpcUJQCEmVmZkvo5/PtcsgVLA==} dependencies: - '@libsql/core': 0.4.3 + '@libsql/core': 0.5.6 '@libsql/hrana-client': 0.5.6 js-base64: 3.7.7 - optionalDependencies: - libsql: 0.2.0 + libsql: 0.3.10 transitivePeerDependencies: - bufferutil - encoding - utf-8-validate dev: false - /@libsql/core@0.4.3: - resolution: {integrity: sha512-r28iYBtaLBW9RRgXPFh6cGCsVI/rwRlOzSOpAu/1PVTm6EJ3t233pUf97jETVHU0vjdr1d8VvV6fKAvJkokqCw==} + /@libsql/core@0.5.6: + resolution: {integrity: sha512-3vicUAydq6jPth410n4AsHHm1n2psTwvkSf94nfJlSXutGSZsl0updn2N/mJBgqUHkbuFoWZtlMifF0SwBj1xQ==} dependencies: js-base64: 3.7.7 dev: false - /@libsql/darwin-arm64@0.2.0: - resolution: {integrity: sha512-+qyT2W/n5CFH1YZWv2mxW4Fsoo4dX9Z9M/nvbQqZ7H84J8hVegvVAsIGYzcK8xAeMEcpU5yGKB1Y9NoDY4hOSQ==} + /@libsql/darwin-arm64@0.3.10: + resolution: {integrity: sha512-RaexEFfPAFogd6dJlqkpCkTxdr6K14Z0286lodIJ8Ny77mWuWyBkWKxf70OYWXXAMxMJFUW+6al1F3/Osf/pTg==} cpu: [arm64] os: [darwin] requiresBuild: true dev: false optional: true - /@libsql/darwin-x64@0.2.0: - resolution: {integrity: sha512-hwmO2mF1n8oDHKFrUju6Jv+n9iFtTf5JUK+xlnIE3Td0ZwGC/O1R/Z/btZTd9nD+vsvakC8SJT7/Q6YlWIkhEw==} + /@libsql/darwin-x64@0.3.10: + resolution: {integrity: sha512-SNVN6n4qNUdMW1fJMFmx4qn4n5RnXsxjFbczpkzG/V7m/5VeTFt1chhGcrahTHCr3+K6eRJWJUEQHRGqjBwPkw==} cpu: [x64] os: [darwin] requiresBuild: true @@ -7073,40 +7250,40 @@ packages: - utf-8-validate dev: false - /@libsql/linux-arm64-gnu@0.2.0: - resolution: {integrity: sha512-1w2lPXIYtnBaK5t/Ej5E8x7lPiE+jP3KATI/W4yei5Z/ONJh7jQW5PJ7sYU95vTME3hWEM1FXN6kvzcpFAte7w==} + /@libsql/linux-arm64-gnu@0.3.10: + resolution: {integrity: sha512-2uXpi9d8qtyIOr7pyG4a88j6YXgemyIHEs2Wbp+PPletlCIPsFS+E7IQHbz8VwTohchOzcokGUm1Bc5QC+A7wg==} cpu: [arm64] os: [linux] requiresBuild: true dev: false optional: true - /@libsql/linux-arm64-musl@0.2.0: - resolution: {integrity: sha512-lkblBEJ7xuNiWNjP8DDq0rqoWccszfkUS7Efh5EjJ+GDWdCBVfh08mPofIZg0fZVLWQCY3j+VZCG1qZfATBizg==} + /@libsql/linux-arm64-musl@0.3.10: + resolution: {integrity: sha512-72SN1FUavLvzHddCS861ynSpQndcW5oLGKA3U8CyMfgIZIwJAPc7+48Uj1plW00htXBx4GBpcntFp68KKIx3YQ==} cpu: [arm64] os: [linux] requiresBuild: true dev: false optional: true - /@libsql/linux-x64-gnu@0.2.0: - resolution: {integrity: sha512-+x/d289KeJydwOhhqSxKT+6MSQTCfLltzOpTzPccsvdt5fxg8CBi+gfvEJ4/XW23Sa+9bc7zodFP0i6MOlxX7w==} + /@libsql/linux-x64-gnu@0.3.10: + resolution: {integrity: sha512-hXyNqVRi7ONuyWZ1SX6setxL0QaQ7InyS3bHLupsi9s7NpOGD5vcpTaYicJOqmIIm+6kt8vJfmo7ZxlarIHy7Q==} cpu: [x64] os: [linux] requiresBuild: true dev: false optional: true - /@libsql/linux-x64-musl@0.2.0: - resolution: {integrity: sha512-5Xn0c5A6vKf9D1ASpgk7mef//FuY7t5Lktj/eiU4n3ryxG+6WTpqstTittJUgepVjcleLPYxIhQAYeYwTYH1IQ==} + /@libsql/linux-x64-musl@0.3.10: + resolution: {integrity: sha512-kNmIRxomVwt9S+cLyYS497F/3gXFF4r8wW12YSBQgxG75JYft07AHVd8J7HINg+oqRkLzT0s+mVX5dM6nk68EQ==} cpu: [x64] os: [linux] requiresBuild: true dev: false optional: true - /@libsql/win32-x64-msvc@0.2.0: - resolution: {integrity: sha512-rpK+trBIpRST15m3cMYg5aPaX7kvCIottxY7jZPINkKAaScvfbn9yulU/iZUM9YtuK96Y1ZmvwyVIK/Y5DzoMQ==} + /@libsql/win32-x64-msvc@0.3.10: + resolution: {integrity: sha512-c/6rjdtGULKrJkLgfLobFefObfOtxjXGmCfPxv6pr0epPCeUEssfDbDIeEH9fQUgzogIMWEHwT8so52UJ/iT1Q==} cpu: [x64] os: [win32] requiresBuild: true @@ -7245,10 +7422,6 @@ packages: - supports-color dev: false - /@medv/finder@3.1.0: - resolution: {integrity: sha512-ojkXjR3K0Zz3jnCR80tqPL+0yvbZk/lEodb6RIVjLz7W8RVA2wrw8ym/CzCpXO9SYVUIKHFUpc7jvf8UKfIM3w==} - dev: false - /@nanostores/preact@0.5.0(nanostores@0.9.5)(preact@10.19.3): resolution: {integrity: sha512-Zq5DEAY+kIfwJ1NPd43D1mpsbISuiD6N/SuTHrt/8jUoifLwXaReaZMAnvkvbIGOgcB1Hy++A9jZix2taNNYxQ==} engines: {node: ^16.0.0 || ^18.0.0 || >=20.0.0} @@ -7264,7 +7437,6 @@ packages: resolution: {integrity: sha512-kTPhdZyTQxB+2wpiRcFWrDcejc4JI6tkPuS7UZCG4l6Zvc5kU/gGQ/ozvHTh1XR5tS+UlfAfGuPajjzQjCiHCw==} requiresBuild: true dev: false - optional: true /@nodelib/fs.scandir@2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} @@ -7424,7 +7596,7 @@ packages: vite: optional: true dependencies: - '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.3) '@babel/plugin-transform-react-jsx-development': 7.22.5 '@prefresh/vite': 2.4.5(preact@10.19.3) '@rollup/pluginutils': 4.2.1 @@ -7475,7 +7647,7 @@ packages: vite: optional: true dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.24.3 '@prefresh/babel-plugin': 0.5.1 '@prefresh/core': 1.5.2(preact@10.19.3) '@prefresh/utils': 1.2.0 @@ -7584,6 +7756,10 @@ packages: requiresBuild: true optional: true + /@shikijs/core@1.1.2: + resolution: {integrity: sha512-ERVzNQz88ZkDqUpWeC57Kp+Kmx5RjqeDBR1M8AGWGom4yrkITiTfXCGmjchlDSw12MhDTuPYR4HVFW8uT61RaQ==} + dev: false + /@sinclair/typebox@0.27.8: resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} dev: false @@ -7764,17 +7940,17 @@ packages: /@types/estree@1.0.5: resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - /@types/hast@2.3.9: - resolution: {integrity: sha512-pTHyNlaMD/oKJmS+ZZUyFUcsZeBZpC0lmGquw98CqRVNgAdJZJeD7GoeLiT6Xbx5rU9VCjSt0RwEvDgzh4obFw==} - dependencies: - '@types/unist': 2.0.10 - dev: true - /@types/hast@3.0.3: resolution: {integrity: sha512-2fYGlaDy/qyLlhidX42wAH0KBi2TCjKMH8CHmBXgRlJ3Y+OXTiqsPQ6IWarZKwF1JoUcAJdPogv1d4b0COTpmQ==} dependencies: '@types/unist': 3.0.2 + /@types/hast@3.0.4: + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + dependencies: + '@types/unist': 3.0.2 + dev: true + /@types/html-escaper@3.0.2: resolution: {integrity: sha512-A8vk09eyYzk8J/lFO4OUMKCmRN0rRzfZf4n3Olwapgox/PtTiU8zPYlL1UEkJ/WeHvV6v9Xnj3o/705PKz9r4Q==} dev: true @@ -7925,7 +8101,7 @@ packages: /@types/react-dom@18.2.18: resolution: {integrity: sha512-TJxDm6OfAX2KJWJdMEVTwWke5Sc/E/RlnPGvGfS0W7+6ocy2xhDVQVh/KvC2Uf7kACs+gDytdusDSdWfWkaNzw==} dependencies: - '@types/react': 18.2.46 + '@types/react': 18.2.57 /@types/react-dom@18.2.19: resolution: {integrity: sha512-aZvQL6uUbIJpjZk4U8JZGbau9KDeAwMfmhyWorxgBkqDIEf6ROjRozcmPIicqsUwPUjbkDfHKgGee1Lq65APcA==} @@ -7946,7 +8122,6 @@ packages: '@types/prop-types': 15.7.11 '@types/scheduler': 0.16.8 csstype: 3.1.3 - dev: false /@types/relateurl@0.2.33: resolution: {integrity: sha512-bTQCKsVbIdzLqZhLkF5fcJQreE4y1ro4DIyVrlDNSCJRRwHhB8Z+4zXXa8jN6eDvc2HbRsEYgbvrnGvi54EpSw==} @@ -8204,16 +8379,17 @@ packages: /@vercel/edge@1.1.1: resolution: {integrity: sha512-NtKiIbn9Cq6HWGy+qRudz28mz5nxfOJWls5Pnckjw1yCfSX8rhXdvY/il3Sy3Zd5n/sKCM2h7VSCCpJF/oaDrQ==} - dev: true + dev: false - /@vercel/nft@0.24.4: - resolution: {integrity: sha512-KjYAZty7boH5fi5udp6p+lNu6nawgs++pHW+3koErMgbRkkHuToGX/FwjN5clV1FcaM3udfd4zW/sUapkMgpZw==} + /@vercel/nft@0.26.4: + resolution: {integrity: sha512-j4jCOOXke2t8cHZCIxu1dzKLHLcFmYzC3yqAK6MfZznOL1QIJKd0xcFsXK3zcqzU7ScsE2zWkiMMNHGMHgp+FA==} engines: {node: '>=16'} hasBin: true dependencies: '@mapbox/node-pre-gyp': 1.0.11 '@rollup/pluginutils': 4.2.1 acorn: 8.11.3 + acorn-import-attributes: 1.9.2(acorn@8.11.3) async-sema: 3.1.1 bindings: 1.5.0 estree-walker: 2.0.2 @@ -8236,9 +8412,9 @@ packages: vite: optional: true dependencies: - '@babel/core': 7.23.7 - '@babel/plugin-transform-react-jsx-self': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.23.7) + '@babel/core': 7.24.3 + '@babel/plugin-transform-react-jsx-self': 7.23.3(@babel/core@7.24.3) + '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.24.3) '@types/babel__core': 7.20.5 react-refresh: 0.14.0 vite: 5.1.4(@types/node@18.19.4)(sass@1.69.6) @@ -8256,20 +8432,20 @@ packages: vite: optional: true dependencies: - '@babel/core': 7.23.7 - '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.23.7) - '@vue/babel-plugin-jsx': 1.1.5(@babel/core@7.23.7) + '@babel/core': 7.24.3 + '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.24.3) + '@vue/babel-plugin-jsx': 1.1.5(@babel/core@7.24.3) vite: 5.1.4(@types/node@18.19.4)(sass@1.69.6) vue: 3.4.3(typescript@5.2.2) transitivePeerDependencies: - supports-color dev: false - /@vitejs/plugin-vue@4.6.2(vite@5.1.4)(vue@3.4.3): - resolution: {integrity: sha512-kqf7SGFoG+80aZG6Pf+gsZIVvGSCKE98JbiWqcCV9cThtg91Jav0yvYFC9Zb+jKetNGF6ZKeoaxgZfND21fWKw==} - engines: {node: ^14.18.0 || >=16.0.0} + /@vitejs/plugin-vue@5.0.4(vite@5.1.4)(vue@3.4.3): + resolution: {integrity: sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==} + engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: - vite: ^4.0.0 || ^5.0.0 + vite: ^5.0.0 vue: ^3.2.25 peerDependenciesMeta: vite: @@ -8318,18 +8494,6 @@ packages: pretty-format: 29.7.0 dev: false - /@volar/kit@1.10.10(typescript@5.2.2): - resolution: {integrity: sha512-V2SyUPCPUhueqH8j5t48LJ0QsjExGSXzTv/XOdkUHV7hJ/ekyRGFqKxcfBtMq/nK6Tgu2G1ba+6u0d7e6wKcQw==} - peerDependencies: - typescript: '*' - dependencies: - '@volar/language-service': 1.10.10 - typesafe-path: 0.2.2 - typescript: 5.2.2 - vscode-languageserver-textdocument: 1.0.11 - vscode-uri: 3.0.8 - dev: true - /@volar/kit@2.0.4(typescript@5.3.2): resolution: {integrity: sha512-USRx/o0jKz7o8+lEKWMxWqbqvC46XFrf3IE6CZBYzRo9kM7RERQLwUYaoT2bOcHt5DQWublpnTgdgHMm37Gysg==} peerDependencies: @@ -8343,10 +8507,17 @@ packages: vscode-uri: 3.0.8 dev: false - /@volar/language-core@1.10.10: - resolution: {integrity: sha512-nsV1o3AZ5n5jaEAObrS3MWLBWaGwUj/vAsc15FVNIv+DbpizQRISg9wzygsHBr56ELRH8r4K75vkYNMtsSNNWw==} + /@volar/kit@2.1.5(typescript@5.2.2): + resolution: {integrity: sha512-L4bHJ1TsKNjsmxSGBuzkUvii4EQoQAT9JoHy8aL4Y17qU/z0JWI1BzUDGpMl4oDlsc+WpWIVGo6KZAnclrUx/w==} + peerDependencies: + typescript: '*' dependencies: - '@volar/source-map': 1.10.10 + '@volar/language-service': 2.1.5 + '@volar/typescript': 2.1.5 + typesafe-path: 0.2.2 + typescript: 5.2.2 + vscode-languageserver-textdocument: 1.0.11 + vscode-uri: 3.0.8 dev: true /@volar/language-core@2.0.4: @@ -8355,19 +8526,10 @@ packages: '@volar/source-map': 2.0.4 dev: false - /@volar/language-server@1.10.10: - resolution: {integrity: sha512-F2PRBU+CRjT7L9qe8bjof/uz/LbAXVmgwNU2gOSX2y1bUl3E8DHmD0dB6pwIVublvkx+Ivg/0r3Z6oyxfPPruQ==} + /@volar/language-core@2.1.5: + resolution: {integrity: sha512-u1OHmVkCFsJqNdaM2GKuMhE67TxcEnOqJNF+VtYv2Ji8DnrUaF4FAFSNxY+MRGICl+873CsSJVKas9TQtW14LA==} dependencies: - '@volar/language-core': 1.10.10 - '@volar/language-service': 1.10.10 - '@volar/typescript': 1.10.10 - '@vscode/l10n': 0.0.16 - 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.11 - vscode-uri: 3.0.8 + '@volar/source-map': 2.1.5 dev: true /@volar/language-server@2.0.4: @@ -8386,11 +8548,17 @@ packages: vscode-uri: 3.0.8 dev: false - /@volar/language-service@1.10.10: - resolution: {integrity: sha512-P4fiPWDI6fLGO6BghlksCVHs1nr9gvWAMDyma3Bca4aowxXusxjUVTsnJq0EVorIN5uIr1Xel4B/tNdXt/IKyw==} + /@volar/language-server@2.1.5: + resolution: {integrity: sha512-uHNVf9J4IX4g10gAMJmPoIV9RteYlM+d9yOXcPfRn5JEM+RyNue3GJT1JkoK9JPU5yAdYBEAhDjA54Sl5tC3fA==} dependencies: - '@volar/language-core': 1.10.10 - '@volar/source-map': 1.10.10 + '@volar/language-core': 2.1.5 + '@volar/language-service': 2.1.5 + '@volar/snapshot-document': 2.1.5 + '@volar/typescript': 2.1.5 + '@vscode/l10n': 0.0.16 + 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.11 vscode-uri: 3.0.8 @@ -8405,6 +8573,15 @@ packages: vscode-uri: 3.0.8 dev: false + /@volar/language-service@2.1.5: + resolution: {integrity: sha512-WuvEv6x/fBe3e4akhblK1E2GgpnAZNnm7sKsRPrQPTE3ED5PIfiMrWgzKB5gNZToD+d6LPxfKAaGWQCpxmSJiw==} + dependencies: + '@volar/language-core': 2.1.5 + vscode-languageserver-protocol: 3.17.5 + vscode-languageserver-textdocument: 1.0.11 + vscode-uri: 3.0.8 + dev: true + /@volar/snapshot-document@2.0.4: resolution: {integrity: sha512-YzgdmvpdRFxiBFCOVWga67naAtbPtKmPaFtGnmxWx+KXrjGkpUXT/2tzeKn5FLdtoYV+DRTdpMdP/45ArnVwZQ==} dependencies: @@ -8412,10 +8589,11 @@ packages: vscode-languageserver-textdocument: 1.0.11 dev: false - /@volar/source-map@1.10.10: - resolution: {integrity: sha512-GVKjLnifV4voJ9F0vhP56p4+F3WGf+gXlRtjFZsv6v3WxBTWU3ZVeaRaEHJmWrcv5LXmoYYpk/SC25BKemPRkg==} + /@volar/snapshot-document@2.1.5: + resolution: {integrity: sha512-UbHM95HxlLNAQ4hTSzIiMj2m19zmwrympviItbx6iPRhbd0FSPGsHdrfL8nsBa9q2cIvwSEtrmA5Sg3tHy4mrg==} dependencies: - muggle-string: 0.3.1 + vscode-languageserver-protocol: 3.17.5 + vscode-languageserver-textdocument: 1.0.11 dev: true /@volar/source-map@2.0.4: @@ -8424,11 +8602,10 @@ packages: muggle-string: 0.4.1 dev: false - /@volar/typescript@1.10.10: - resolution: {integrity: sha512-4a2r5bdUub2m+mYVnLu2wt59fuoYWe7nf0uXtGHU8QQ5LDNfzAR0wK7NgDiQ9rcl2WT3fxT2AA9AylAwFtj50A==} + /@volar/source-map@2.1.5: + resolution: {integrity: sha512-GIkAM6fHgDcTXcdH4i10fAiAZzO0HLIer8/pt3oZ9A0n7n4R5d1b2F8Xxzh/pgmgNoL+SrHX3MFxs35CKgfmtA==} dependencies: - '@volar/language-core': 1.10.10 - path-browserify: 1.0.1 + muggle-string: 0.4.1 dev: true /@volar/typescript@2.0.4: @@ -8438,6 +8615,13 @@ packages: path-browserify: 1.0.1 dev: false + /@volar/typescript@2.1.5: + resolution: {integrity: sha512-zo9a3NrNMSkufIvHuExDGTfYv+zO7C5p2wg8fyP7vcqF/Qo0ztjb0ZfOgq/A85EO/MBc1Kj2Iu7PaOBtP++NMw==} + dependencies: + '@volar/language-core': 2.1.5 + path-browserify: 1.0.1 + dev: true + /@vscode/emmet-helper@2.9.2: resolution: {integrity: sha512-MaGuyW+fa13q3aYsluKqclmh62Hgp0BpKIqS66fCxfOaBcVQ1OnMQxRRgQUYnCkxFISAQlkJ0qWWPyXjro1Qrg==} dependencies: @@ -8452,13 +8636,12 @@ packages: /@vscode/l10n@0.0.18: resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==} - dev: false /@vue/babel-helper-vue-transform-on@1.1.5: resolution: {integrity: sha512-SgUymFpMoAyWeYWLAY+MkCK3QEROsiUnfaw5zxOVD/M64KQs8D/4oK6Q5omVA2hnvEOE0SCkH2TZxs/jnnUj7w==} dev: false - /@vue/babel-plugin-jsx@1.1.5(@babel/core@7.23.7): + /@vue/babel-plugin-jsx@1.1.5(@babel/core@7.24.3): resolution: {integrity: sha512-nKs1/Bg9U1n3qSWnsHhCVQtAzI6aQXqua8j/bZrau8ywT1ilXQbK4FwEJGmU8fV7tcpuFvWmmN7TMmV1OBma1g==} peerDependencies: '@babel/core': ^7.0.0-0 @@ -8466,9 +8649,9 @@ packages: '@babel/core': optional: true dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.24.3 '@babel/helper-module-imports': 7.22.15 - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.3) '@babel/template': 7.22.15 '@babel/traverse': 7.23.7 '@babel/types': 7.23.6 @@ -8575,6 +8758,14 @@ packages: negotiator: 0.6.3 dev: true + /acorn-import-attributes@1.9.2(acorn@8.11.3): + resolution: {integrity: sha512-O+nfJwNolEA771IYJaiLWK1UAwjNsQmZbTRqqwBYxCgVQTmpFEMvBw6LOIQV0Me339L5UMVYFyRohGnGlQDdIQ==} + peerDependencies: + acorn: ^8 + dependencies: + acorn: 8.11.3 + dev: false + /acorn-jsx@5.3.2(acorn@8.11.3): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -8902,7 +9093,7 @@ packages: requiresBuild: true dev: false - /babel-plugin-jsx-dom-expressions@0.37.9(@babel/core@7.23.7): + /babel-plugin-jsx-dom-expressions@0.37.9(@babel/core@7.24.3): resolution: {integrity: sha512-6w+zs2i14fVanj4e1hXCU5cp+x0U0LJ5jScknpMZZUteHhwFRGJflHMVJ+xAcW7ku41FYjr7DgtK9mnc2SXlJg==} peerDependencies: '@babel/core': ^7.20.12 @@ -8910,9 +9101,9 @@ packages: '@babel/core': optional: true dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.24.3 '@babel/helper-module-imports': 7.18.6 - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.3) '@babel/types': 7.23.6 html-entities: 2.3.3 validate-html-nesting: 1.2.2 @@ -8927,7 +9118,7 @@ packages: optional: true dev: false - /babel-preset-solid@1.8.6(@babel/core@7.23.7): + /babel-preset-solid@1.8.6(@babel/core@7.24.3): resolution: {integrity: sha512-Ened42CHjU4EFkvNeS042/3Pm21yvMWn8p4G4ddzQTlKaMwSGGD1VciA/e7EshBVHJCcBj9vHiUd/r3A4qLPZA==} peerDependencies: '@babel/core': ^7.0.0 @@ -8935,8 +9126,8 @@ packages: '@babel/core': optional: true dependencies: - '@babel/core': 7.23.7 - babel-plugin-jsx-dom-expressions: 0.37.9(@babel/core@7.23.7) + '@babel/core': 7.24.3 + babel-plugin-jsx-dom-expressions: 0.37.9(@babel/core@7.24.3) dev: false /bail@2.0.2: @@ -9937,26 +10128,30 @@ packages: engines: {node: '>=10'} dev: true - /drizzle-orm@0.28.6(@libsql/client@0.4.3): - resolution: {integrity: sha512-yBe+F9htrlYER7uXgDJUQsTHFoIrI5yMm5A0bg0GiZ/kY5jNXTWoEy4KQtg35cE27sw1VbgzoMWHAgCckUUUww==} + /drizzle-orm@0.30.2(@libsql/client@0.5.5): + resolution: {integrity: sha512-DNd3djg03o+WxZX3pGD8YD+qrWT8gbrbhaZ2W0PVb6yH4rtM/VTB92cTGvumcRh7SSd2KfV0NWYDB70BHIXQTg==} peerDependencies: '@aws-sdk/client-rds-data': '>=3' '@cloudflare/workers-types': '>=3' '@libsql/client': '*' '@neondatabase/serverless': '>=0.1' + '@op-engineering/op-sqlite': '>=2' '@opentelemetry/api': ^1.4.1 '@planetscale/database': '>=1' '@types/better-sqlite3': '*' '@types/pg': '*' + '@types/react': '>=18' '@types/sql.js': '*' '@vercel/postgres': '*' better-sqlite3: '>=7' bun-types: '*' + expo-sqlite: '>=13.2.0' knex: '*' kysely: '*' mysql2: '>=2' pg: '>=8' postgres: '>=3' + react: '>=18' sql.js: '>=1' sqlite3: '>=5' peerDependenciesMeta: @@ -9968,6 +10163,8 @@ packages: optional: true '@neondatabase/serverless': optional: true + '@op-engineering/op-sqlite': + optional: true '@opentelemetry/api': optional: true '@planetscale/database': @@ -9976,6 +10173,8 @@ packages: optional: true '@types/pg': optional: true + '@types/react': + optional: true '@types/sql.js': optional: true '@vercel/postgres': @@ -9984,6 +10183,8 @@ packages: optional: true bun-types: optional: true + expo-sqlite: + optional: true knex: optional: true kysely: @@ -9994,12 +10195,14 @@ packages: optional: true postgres: optional: true + react: + optional: true sql.js: optional: true sqlite3: optional: true dependencies: - '@libsql/client': 0.4.3 + '@libsql/client': 0.5.5 dev: false /dset@3.1.3: @@ -11014,15 +11217,6 @@ packages: resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} dev: false - /hash-obj@4.0.0: - resolution: {integrity: sha512-FwO1BUVWkyHasWDW4S8o0ssQXjvyghLV2rfVhnN36b2bbcj45eGiuzdn9XOvOpjV3TKQD7Gm2BWNXdE9V4KKYg==} - engines: {node: '>=12'} - dependencies: - is-obj: 3.0.0 - sort-keys: 5.0.0 - type-fest: 1.4.0 - dev: true - /hasown@2.0.0: resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} engines: {node: '>= 0.4'} @@ -11046,19 +11240,6 @@ packages: parse5: 7.1.2 vfile: 6.0.1 vfile-message: 4.0.2 - dev: false - - /hast-util-from-parse5@7.1.2: - resolution: {integrity: sha512-Nz7FfPBuljzsN3tCQ4kCBKqdNhQE2l0Tn+X1ubgKBPRoiDIu1mL08Cfw4k7q71+Duyaw7DXDN+VTAp4Vh3oCOw==} - dependencies: - '@types/hast': 2.3.9 - '@types/unist': 2.0.10 - hastscript: 7.2.0 - property-information: 6.4.0 - vfile: 5.3.7 - vfile-location: 4.1.0 - web-namespaces: 2.0.1 - dev: true /hast-util-from-parse5@8.0.1: resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==} @@ -11071,7 +11252,6 @@ packages: vfile: 6.0.1 vfile-location: 5.0.2 web-namespaces: 2.0.1 - dev: false /hast-util-has-property@3.0.0: resolution: {integrity: sha512-MNilsvEKLFpV604hwfhVStK0usFY/QmM5zX16bo7EjnAEGofr5YyI37kzopBlZJkHD4t887i+q/C8/tr5Q94cA==} @@ -11089,12 +11269,6 @@ packages: dependencies: '@types/hast': 3.0.3 - /hast-util-parse-selector@3.1.1: - resolution: {integrity: sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA==} - dependencies: - '@types/hast': 2.3.9 - dev: true - /hast-util-parse-selector@4.0.0: resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} dependencies: @@ -11213,12 +11387,6 @@ packages: zwitch: 2.0.4 dev: false - /hast-util-to-string@2.0.0: - resolution: {integrity: sha512-02AQ3vLhuH3FisaMM+i/9sm4OXGSq1UhOOCpTLLQtHdL3tZt7qil69r8M8iDkZYyC0HCFylcYoP+8IO7ddta1A==} - dependencies: - '@types/hast': 2.3.9 - dev: true - /hast-util-to-string@3.0.0: resolution: {integrity: sha512-OGkAxX1Ua3cbcW6EJ5pT/tslVb90uViVkcJ4ZZIMW/R33DX/AkcJcRrPebPwJkHYwlDHXz4aIwvAAaAdtrACFA==} dependencies: @@ -11231,7 +11399,6 @@ packages: '@types/unist': 3.0.2 hast-util-is-element: 3.0.0 unist-util-find-after: 5.0.0 - dev: true /hast-util-whitespace@3.0.0: resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} @@ -11239,16 +11406,6 @@ packages: '@types/hast': 3.0.3 dev: false - /hastscript@7.2.0: - resolution: {integrity: sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw==} - dependencies: - '@types/hast': 2.3.9 - comma-separated-tokens: 2.0.3 - hast-util-parse-selector: 3.1.1 - property-information: 6.4.0 - space-separated-tokens: 2.0.2 - dev: true - /hastscript@8.0.0: resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==} dependencies: @@ -11538,6 +11695,7 @@ packages: /is-buffer@2.0.5: resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} engines: {node: '>=4'} + dev: false /is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} @@ -11621,11 +11779,6 @@ packages: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} - /is-obj@3.0.0: - resolution: {integrity: sha512-IlsXEHOjtKhpN8r/tRFj2nDyTmHvcfNeu/nrRIcXE17ROeatXchkojffa1SpdqW4cr/Fj6QkEf/Gn4zf6KKvEQ==} - engines: {node: '>=12'} - dev: true - /is-path-cwd@3.0.0: resolution: {integrity: sha512-kyiNFFLU0Ampr6SDZitD/DwUo4Zs1nSdnygUBqsu3LooL00Qvb5j+UnvApUn/TTj1J3OuE6BTdQ5rudKmU2ZaA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -11945,24 +12098,22 @@ packages: type-check: 0.4.0 dev: true - /libsql@0.2.0: - resolution: {integrity: sha512-ELBRqhpJx5Dap0187zKQnntZyk4EjlDHSrjIVL8t+fQ5e8IxbQTeYgZgigMjB1EvrETdkm0Y0VxBGhzPQ+t0Jg==} - cpu: [x64, arm64] + /libsql@0.3.10: + resolution: {integrity: sha512-/8YMTbwWFPmrDWY+YFK3kYqVPFkMgQre0DGmBaOmjogMdSe+7GHm1/q9AZ61AWkEub/vHmi+bA4tqIzVhKnqzg==} + cpu: [x64, arm64, wasm32] os: [darwin, linux, win32] - requiresBuild: true dependencies: '@neon-rs/load': 0.0.4 detect-libc: 2.0.2 optionalDependencies: - '@libsql/darwin-arm64': 0.2.0 - '@libsql/darwin-x64': 0.2.0 - '@libsql/linux-arm64-gnu': 0.2.0 - '@libsql/linux-arm64-musl': 0.2.0 - '@libsql/linux-x64-gnu': 0.2.0 - '@libsql/linux-x64-musl': 0.2.0 - '@libsql/win32-x64-msvc': 0.2.0 + '@libsql/darwin-arm64': 0.3.10 + '@libsql/darwin-x64': 0.3.10 + '@libsql/linux-arm64-gnu': 0.3.10 + '@libsql/linux-arm64-musl': 0.3.10 + '@libsql/linux-x64-gnu': 0.3.10 + '@libsql/linux-x64-musl': 0.3.10 + '@libsql/win32-x64-msvc': 0.3.10 dev: false - optional: true /lilconfig@2.1.0: resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} @@ -13068,13 +13219,8 @@ packages: /ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - /muggle-string@0.3.1: - resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==} - dev: true - /muggle-string@0.4.1: resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} - dev: false /mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} @@ -13537,10 +13683,6 @@ packages: parse5: 7.1.2 dev: true - /parse5@6.0.1: - resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} - dev: true - /parse5@7.1.2: resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} dependencies: @@ -14461,38 +14603,28 @@ packages: - utf-8-validate dev: true - /rehype-parse@8.0.5: - resolution: {integrity: sha512-Ds3RglaY/+clEX2U2mHflt7NlMA72KspZ0JLUJgBBLpRddBcEw3H8uYZQliQriku22NZpYMfjDdSgHcjxue24A==} - dependencies: - '@types/hast': 2.3.9 - hast-util-from-parse5: 7.1.2 - parse5: 6.0.1 - unified: 10.1.2 - dev: true - /rehype-parse@9.0.0: resolution: {integrity: sha512-WG7nfvmWWkCR++KEkZevZb/uw41E8TsH4DsY9UxsTbIXCVGbAs4S+r8FrQ+OtH5EEQAs+5UxKC42VinkmpA1Yw==} dependencies: '@types/hast': 3.0.3 hast-util-from-html: 2.0.1 unified: 11.0.4 - dev: false - /rehype-pretty-code@0.10.2: - resolution: {integrity: sha512-yBgk3S4yXtkAWVrkoN1DqDihjsaP0ReuN9Du4Dtkl/wsgwyqGNGuIUGi2etVHAOsi40e2KRHoOulQqnKPuscPA==} - engines: {node: '>=16'} + /rehype-pretty-code@0.13.0: + resolution: {integrity: sha512-+22dz1StXlF7dlMyOySNaVxgcGhMI4BCxq0JxJJPWYGiKsI6cu5jyuIKGHXHvH18D8sv1rdKtvsY9UEfN3++SQ==} + engines: {node: '>=18'} peerDependencies: - shiki: 0.x + shiki: ^1.0.0 peerDependenciesMeta: shiki: optional: true dependencies: - hash-obj: 4.0.0 - hast-util-to-string: 2.0.0 + '@types/hast': 3.0.4 + hast-util-to-string: 3.0.0 parse-numeric-range: 1.3.0 - rehype-parse: 8.0.5 - unified: 10.1.2 - unist-util-visit: 4.1.2 + rehype-parse: 9.0.0 + unified: 11.0.4 + unist-util-visit: 5.0.0 dev: true /rehype-raw@7.0.0: @@ -15001,14 +15133,10 @@ packages: vscode-textmate: 5.2.0 dev: true - /shikiji-core@0.9.19: - resolution: {integrity: sha512-AFJu/vcNT21t0e6YrfadZ+9q86gvPum6iywRyt1OtIPjPFe25RQnYJyxHQPMLKCCWA992TPxmEmbNcOZCAJclw==} - dev: false - - /shikiji@0.9.19: - resolution: {integrity: sha512-Kw2NHWktdcdypCj1GkKpXH4o6Vxz8B8TykPlPuLHOGSV8VkhoCLcFOH4k19K4LXAQYRQmxg+0X/eM+m2sLhAkg==} + /shiki@1.1.2: + resolution: {integrity: sha512-qNzFwTv5uhEDNUIwp7wHjsrffVeLbmOgWnM5mZZhoiz7G2qAUvqVfUzuWfieD45/YAKipzCtdV9SndacKtABow==} dependencies: - shikiji-core: 0.9.19 + '@shikijs/core': 1.1.2 dev: false /side-channel@1.0.4: @@ -15137,13 +15265,6 @@ packages: solid-js: 1.8.7 dev: false - /sort-keys@5.0.0: - resolution: {integrity: sha512-Pdz01AvCAottHTPQGzndktFNdbRA75BgOfeT1hH+AMnJFv8lynkPi42rfeEhpx1saTEI3YNMWxfqu0sFD1G8pw==} - engines: {node: '>=12'} - dependencies: - is-plain-obj: 4.1.0 - dev: true - /source-map-js@1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} @@ -15798,64 +15919,64 @@ packages: safe-buffer: 5.2.1 dev: false - /turbo-darwin-64@1.11.2: - resolution: {integrity: sha512-toFmRG/adriZY3hOps7nYCfqHAS+Ci6xqgX3fbo82kkLpC6OBzcXnleSwuPqjHVAaRNhVoB83L5njcE9Qwi2og==} + /turbo-darwin-64@1.12.4: + resolution: {integrity: sha512-dBwFxhp9isTa9RS/fz2gDVk5wWhKQsPQMozYhjM7TT4jTrnYn0ZJMzr7V3B/M/T8QF65TbniW7w1gtgxQgX5Zg==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /turbo-darwin-arm64@1.11.2: - resolution: {integrity: sha512-FCsEDZ8BUSFYEOSC3rrARQrj7x2VOrmVcfrMUIhexTxproRh4QyMxLfr6LALk4ymx6jbDCxWa6Szal8ckldFbA==} + /turbo-darwin-arm64@1.12.4: + resolution: {integrity: sha512-1Uo5iI6xsJ1j9ObsqxYRsa3W26mEbUe6fnj4rQYV6kDaqYD54oAMJ6hM53q9rB8JvFxwdrUXGp3PwTw9A0qqkA==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /turbo-linux-64@1.11.2: - resolution: {integrity: sha512-Vzda/o/QyEske5CxLf0wcu7UUS+7zB90GgHZV4tyN+WZtoouTvbwuvZ3V6b5Wgd3OJ/JwWR0CXDK7Sf4VEMr7A==} + /turbo-linux-64@1.12.4: + resolution: {integrity: sha512-ONg2aSqKP7LAQOg7ysmU5WpEQp4DGNxSlAiR7um+LKtbmC/UxogbR5+T+Uuq6zGuQ5kJyKjWJ4NhtvUswOqBsA==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /turbo-linux-arm64@1.11.2: - resolution: {integrity: sha512-bRLwovQRz0yxDZrM4tQEAYV0fBHEaTzUF0JZ8RG1UmZt/CqtpnUrJpYb1VK8hj1z46z9YehARpYCwQ2K0qU4yw==} + /turbo-linux-arm64@1.12.4: + resolution: {integrity: sha512-9FPufkwdgfIKg/9jj87Cdtftw8o36y27/S2vLN7FTR2pp9c0MQiTBOLVYadUr1FlShupddmaMbTkXEhyt9SdrA==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /turbo-windows-64@1.11.2: - resolution: {integrity: sha512-LgTWqkHAKgyVuLYcEPxZVGPInTjjeCnN5KQMdJ4uQZ+xMDROvMFS2rM93iQl4ieDJgidwHCxxCxaU9u8c3d/Kg==} + /turbo-windows-64@1.12.4: + resolution: {integrity: sha512-2mOtxHW5Vjh/5rDVu/aFwsMzI+chs8XcEuJHlY1sYOpEymYTz+u6AXbnzRvwZFMrLKr7J7fQOGl+v96sLKbNdA==} cpu: [x64] os: [win32] requiresBuild: true dev: true optional: true - /turbo-windows-arm64@1.11.2: - resolution: {integrity: sha512-829aVBU7IX0c/B4G7g1VI8KniAGutHhIupkYMgF6xPkYVev2G3MYe6DMS/vsLt9GGM9ulDtdWxWrH5P2ngK8IQ==} + /turbo-windows-arm64@1.12.4: + resolution: {integrity: sha512-nOY5wae9qnxPOpT1fRuYO0ks6dTwpKMPV6++VkDkamFDLFHUDVM/9kmD2UTeh1yyrKnrZksbb9zmShhmfj1wog==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /turbo@1.11.2: - resolution: {integrity: sha512-jPC7LVQJzebs5gWf8FmEvsvXGNyKbN+O9qpvv98xpNaM59aS0/Irhd0H0KbcqnXfsz7ETlzOC3R+xFWthC4Z8A==} + /turbo@1.12.4: + resolution: {integrity: sha512-yUJ7elEUSToiGwFZogXpYKJpQ0BvaMbkEuQECIWtkBLcmWzlMOt6bActsIm29oN83mRU0WbzGt4e8H1KHWedhg==} hasBin: true optionalDependencies: - turbo-darwin-64: 1.11.2 - turbo-darwin-arm64: 1.11.2 - turbo-linux-64: 1.11.2 - turbo-linux-arm64: 1.11.2 - turbo-windows-64: 1.11.2 - turbo-windows-arm64: 1.11.2 + turbo-darwin-64: 1.12.4 + turbo-darwin-arm64: 1.12.4 + turbo-linux-64: 1.12.4 + turbo-linux-arm64: 1.12.4 + turbo-windows-64: 1.12.4 + turbo-windows-arm64: 1.12.4 dev: true /type-check@0.4.0: @@ -15892,6 +16013,7 @@ packages: /type-fest@1.4.0: resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} engines: {node: '>=10'} + dev: false /type-fest@2.19.0: resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} @@ -16027,6 +16149,7 @@ packages: is-plain-obj: 4.1.0 trough: 2.1.0 vfile: 5.3.7 + dev: false /unified@11.0.4: resolution: {integrity: sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==} @@ -16044,7 +16167,6 @@ packages: dependencies: '@types/unist': 3.0.2 unist-util-is: 6.0.0 - dev: true /unist-util-is@3.0.0: resolution: {integrity: sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==} @@ -16057,6 +16179,7 @@ packages: resolution: {integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==} dependencies: '@types/unist': 2.0.10 + dev: false /unist-util-is@6.0.0: resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} @@ -16100,6 +16223,7 @@ packages: resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==} dependencies: '@types/unist': 2.0.10 + dev: false /unist-util-stringify-position@4.0.0: resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} @@ -16129,6 +16253,7 @@ packages: dependencies: '@types/unist': 2.0.10 unist-util-is: 5.2.1 + dev: false /unist-util-visit-parents@6.0.1: resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} @@ -16155,6 +16280,7 @@ packages: '@types/unist': 2.0.10 unist-util-is: 5.2.1 unist-util-visit-parents: 5.1.3 + dev: false /unist-util-visit@5.0.0: resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} @@ -16246,25 +16372,18 @@ packages: engines: {node: '>= 0.8'} dev: true - /vfile-location@4.1.0: - resolution: {integrity: sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw==} - dependencies: - '@types/unist': 2.0.10 - vfile: 5.3.7 - dev: true - /vfile-location@5.0.2: resolution: {integrity: sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==} dependencies: '@types/unist': 3.0.2 vfile: 6.0.1 - dev: false /vfile-message@3.1.4: resolution: {integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==} dependencies: '@types/unist': 2.0.10 unist-util-stringify-position: 3.0.3 + dev: false /vfile-message@4.0.2: resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} @@ -16279,6 +16398,7 @@ packages: is-buffer: 2.0.5 unist-util-stringify-position: 3.0.3 vfile-message: 3.1.4 + dev: false /vfile@6.0.1: resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==} @@ -16317,10 +16437,10 @@ packages: vite: optional: true dependencies: - '@babel/core': 7.23.7 - '@babel/preset-typescript': 7.23.3(@babel/core@7.23.7) + '@babel/core': 7.24.3 + '@babel/preset-typescript': 7.23.3(@babel/core@7.24.3) '@types/babel__core': 7.20.5 - babel-preset-solid: 1.8.6(@babel/core@7.23.7) + babel-preset-solid: 1.8.6(@babel/core@7.24.3) merge-anything: 5.1.7 solid-js: 1.8.7 solid-refresh: 0.5.3(solid-js@1.8.7) @@ -16455,19 +16575,6 @@ packages: - terser dev: false - /volar-service-css@0.0.16(@volar/language-service@1.10.10): - resolution: {integrity: sha512-gK/XD35t/P3SQrUuS8LMlCnE2ItIk+kXI6gPvBYl1NZ7O+tLH8rUWXA32YgpwNoITxYrm/G1seaq08zs4aiPvg==} - peerDependencies: - '@volar/language-service': ~1.10.0 - peerDependenciesMeta: - '@volar/language-service': - optional: true - dependencies: - '@volar/language-service': 1.10.10 - vscode-css-languageservice: 6.2.11 - vscode-uri: 3.0.8 - dev: true - /volar-service-css@0.0.30(@volar/language-service@2.0.4): resolution: {integrity: sha512-jui+1N0HBfjW43tRfhyZp0axhBee4997BRyX4os8xQm/7cjD2KjAuyz92nMIPRt1QDoG4/7uQT28xNhy0TPJTA==} peerDependencies: @@ -16481,17 +16588,18 @@ packages: vscode-uri: 3.0.8 dev: false - /volar-service-emmet@0.0.16(@volar/language-service@1.10.10): - resolution: {integrity: sha512-8sWWywzVJOD+PWDArOXDWbiRlM7+peydFhXJT71i4X1WPW32RyPxn6FypvciO+amqpfZP2rXfB9eibIJ+EofSQ==} + /volar-service-css@0.0.34(@volar/language-service@2.1.5): + resolution: {integrity: sha512-C7ua0j80ZD7bsgALAz/cA1bykPehoIa5n+3+Ccr+YLpj0fypqw9iLUmGLX11CqzqNCO2XFGe/1eXB/c+SWrF/g==} peerDependencies: - '@volar/language-service': ~1.10.0 + '@volar/language-service': ~2.1.0 peerDependenciesMeta: '@volar/language-service': optional: true dependencies: - '@volar/language-service': 1.10.10 - '@vscode/emmet-helper': 2.9.2 - volar-service-html: 0.0.16(@volar/language-service@1.10.10) + '@volar/language-service': 2.1.5 + vscode-css-languageservice: 6.2.11 + vscode-languageserver-textdocument: 1.0.11 + vscode-uri: 3.0.8 dev: true /volar-service-emmet@0.0.30(@volar/language-service@2.0.4): @@ -16507,17 +16615,17 @@ packages: volar-service-html: 0.0.30(@volar/language-service@2.0.4) dev: false - /volar-service-html@0.0.16(@volar/language-service@1.10.10): - resolution: {integrity: sha512-/oEXXgry++1CnTXQBUNf9B8MZfTlYZuJfZA7Zx9MN7WS4ZPxk3BFOdal/cXH6RNR2ruNEYr5QTW9rsqtoUscag==} + /volar-service-emmet@0.0.34(@volar/language-service@2.1.5): + resolution: {integrity: sha512-ubQvMCmHPp8Ic82LMPkgrp9ot+u2p/RDd0RyT0EykRkZpWsagHUF5HWkVheLfiMyx2rFuWx/+7qZPOgypx6h6g==} peerDependencies: - '@volar/language-service': ~1.10.0 + '@volar/language-service': ~2.1.0 peerDependenciesMeta: '@volar/language-service': optional: true dependencies: - '@volar/language-service': 1.10.10 - vscode-html-languageservice: 5.1.1 - vscode-uri: 3.0.8 + '@volar/language-service': 2.1.5 + '@vscode/emmet-helper': 2.9.2 + vscode-html-languageservice: 5.1.2 dev: true /volar-service-html@0.0.30(@volar/language-service@2.0.4): @@ -16533,19 +16641,18 @@ packages: vscode-uri: 3.0.8 dev: false - /volar-service-prettier@0.0.16(@volar/language-service@1.10.10)(prettier@3.1.1): - resolution: {integrity: sha512-Kj2ZdwJGEvfYbsHW8Sjrew/7EB4PgRoas4f8yAJzUUVxIC/kvhUwLDxQc8+N2IibomN76asJGWe+i6VZZvgIkw==} + /volar-service-html@0.0.34(@volar/language-service@2.1.5): + resolution: {integrity: sha512-kMEneea1tQbiRcyKavqdrSVt8zV06t+0/3pGkjO3gV6sikXTNShIDkdtB4Tq9vE2cQdM50TuS7utVV7iysUxHw==} peerDependencies: - '@volar/language-service': ~1.10.0 - prettier: ^2.2 || ^3.0 + '@volar/language-service': ~2.1.0 peerDependenciesMeta: '@volar/language-service': optional: true - prettier: - optional: true dependencies: - '@volar/language-service': 1.10.10 - prettier: 3.1.1 + '@volar/language-service': 2.1.5 + vscode-html-languageservice: 5.1.2 + vscode-languageserver-textdocument: 1.0.11 + vscode-uri: 3.0.8 dev: true /volar-service-prettier@0.0.30(@volar/language-service@2.0.4)(prettier@3.1.1): @@ -16564,15 +16671,20 @@ packages: vscode-uri: 3.0.8 dev: false - /volar-service-typescript-twoslash-queries@0.0.16(@volar/language-service@1.10.10): - resolution: {integrity: sha512-0gPrkDTD2bMj2AnSNykOKhfmPnBFE2LS1lF3LWA7qu1ChRnJF0sodwCCbbeNYJ9+yth956ApoU1BVQ8UrMg+yw==} + /volar-service-prettier@0.0.34(@volar/language-service@2.1.5)(prettier@3.1.1): + resolution: {integrity: sha512-BNfJ8FwfPi1Wm/JkuzNjraOLdtKieGksNT/bDyquygVawv1QUzO2HB1hiMKfZGdcSFG5ZL9R0j7bBfRTfXA2gg==} peerDependencies: - '@volar/language-service': ~1.10.0 + '@volar/language-service': ~2.1.0 + prettier: ^2.2 || ^3.0 peerDependenciesMeta: '@volar/language-service': optional: true + prettier: + optional: true dependencies: - '@volar/language-service': 1.10.10 + '@volar/language-service': 2.1.5 + prettier: 3.1.1 + vscode-uri: 3.0.8 dev: true /volar-service-typescript-twoslash-queries@0.0.30(@volar/language-service@2.0.4): @@ -16586,23 +16698,15 @@ packages: '@volar/language-service': 2.0.4 dev: false - /volar-service-typescript@0.0.16(@volar/language-service@1.10.10)(@volar/typescript@1.10.10): - resolution: {integrity: sha512-k/qFKM2oxs/3fhbr/vcBSHnCLZ1HN3Aeh+bGvV9Lc9qIhrNyCVsDFOUJN1Qp4dI72+Y+eFSIDCLHmFEZdsP2EA==} + /volar-service-typescript-twoslash-queries@0.0.34(@volar/language-service@2.1.5): + resolution: {integrity: sha512-XAY2YtWKUp6ht89gxt3L5Dr46LU45d/VlBkj1KXUwNlinpoWiGN4Nm3B6DRF3VoBThAnQgm4c7WD0S+5yTzh+w==} peerDependencies: - '@volar/language-service': ~1.10.0 - '@volar/typescript': ~1.10.0 + '@volar/language-service': ~2.1.0 peerDependenciesMeta: '@volar/language-service': optional: true dependencies: - '@volar/language-service': 1.10.10 - '@volar/typescript': 1.10.10 - path-browserify: 1.0.1 - semver: 7.5.4 - typescript-auto-import-cache: 0.3.2 - vscode-languageserver-textdocument: 1.0.11 - vscode-nls: 5.2.0 - vscode-uri: 3.0.8 + '@volar/language-service': 2.1.5 dev: true /volar-service-typescript@0.0.30(@volar/language-service@2.0.4)(@volar/typescript@2.0.4): @@ -16624,22 +16728,29 @@ packages: vscode-uri: 3.0.8 dev: false - /vscode-css-languageservice@6.2.11: - resolution: {integrity: sha512-qn49Wa6K94LnizpVxmlYrcPf1Cb36gq1nNueW0COhi4shylXBzET5wuDbH8ZWQlJD0HM5Mmnn7WE9vQVVs+ULA==} + /volar-service-typescript@0.0.34(@volar/language-service@2.1.5): + resolution: {integrity: sha512-NbAry0w8ZXFgGsflvMwmPDCzgJGx3C+eYxFEbldaumkpTAJiywECWiUbPIOfmEHgpOllUKSnhwtLlWFK4YnfQg==} + peerDependencies: + '@volar/language-service': ~2.1.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true dependencies: - '@vscode/l10n': 0.0.16 + '@volar/language-service': 2.1.5 + path-browserify: 1.0.1 + semver: 7.5.4 + typescript-auto-import-cache: 0.3.2 vscode-languageserver-textdocument: 1.0.11 - vscode-languageserver-types: 3.17.5 - vscode-uri: 3.0.8 + vscode-nls: 5.2.0 + dev: true - /vscode-html-languageservice@5.1.1: - resolution: {integrity: sha512-JenrspIIG/Q+93R6G3L6HdK96itSisMynE0glURqHpQbL3dKAKzdm8L40lAHNkwJeBg+BBPpAshZKv/38onrTQ==} + /vscode-css-languageservice@6.2.11: + resolution: {integrity: sha512-qn49Wa6K94LnizpVxmlYrcPf1Cb36gq1nNueW0COhi4shylXBzET5wuDbH8ZWQlJD0HM5Mmnn7WE9vQVVs+ULA==} dependencies: '@vscode/l10n': 0.0.16 vscode-languageserver-textdocument: 1.0.11 vscode-languageserver-types: 3.17.5 vscode-uri: 3.0.8 - dev: true /vscode-html-languageservice@5.1.2: resolution: {integrity: sha512-wkWfEx/IIR3s2P5yD4aTGHiOb8IAzFxgkSt1uSC3itJ4oDAm23yG7o0L29JljUdnXDDgLafPAvhv8A2I/8riHw==} @@ -16648,7 +16759,6 @@ packages: vscode-languageserver-textdocument: 1.0.11 vscode-languageserver-types: 3.17.5 vscode-uri: 3.0.8 - dev: false /vscode-jsonrpc@8.2.0: resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} @@ -17019,6 +17129,14 @@ packages: engines: {node: '>=12.20'} dev: false + /zod-to-json-schema@3.22.4(zod@3.22.4): + resolution: {integrity: sha512-2Ed5dJ+n/O3cU383xSY28cuVi0BCQhF8nYqWU5paEpl7fVdqdAmiLdqLyfblbNdfOFwFfi/mqU4O1pwc60iBhQ==} + peerDependencies: + zod: ^3.22.4 + dependencies: + zod: 3.22.4 + dev: false + /zod@3.22.4: resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} dev: false From 7bed2016cf54d74f451693bb232d48cacfb717d5 Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Mon, 25 Mar 2024 14:14:03 +0000 Subject: [PATCH 12/33] add tests --- .../src/middleware.js | 2 +- ...ing-manual-with-default-middleware.test.js | 79 +++++++------------ 2 files changed, 31 insertions(+), 50 deletions(-) diff --git a/packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/src/middleware.js b/packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/src/middleware.js index 50a19de7d243..d45754902b2b 100644 --- a/packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/src/middleware.js +++ b/packages/astro/test/fixtures/i18n-routing-manual-with-default-middleware/src/middleware.js @@ -3,7 +3,7 @@ import { middleware } from 'astro:i18n'; const customLogic = defineMiddleware(async (context, next) => { const url = new URL(context.request.url); - if (url.pathname === '/about') { + if (url.pathname.startsWith('/about')) { return new Response('ABOUT ME', { status: 200, }); diff --git a/packages/astro/test/i18n-routing-manual-with-default-middleware.test.js b/packages/astro/test/i18n-routing-manual-with-default-middleware.test.js index a3780a4b645f..fb42fac44221 100644 --- a/packages/astro/test/i18n-routing-manual-with-default-middleware.test.js +++ b/packages/astro/test/i18n-routing-manual-with-default-middleware.test.js @@ -81,52 +81,33 @@ describe('SSG manual routing', () => { }); // // SSR -// describe('SSR manual routing', () => { -// /** @type {import('./test-utils').Fixture} */ -// let fixture; -// let app; -// -// before(async () => { -// fixture = await loadFixture({ -// root: './fixtures/i18n-routing-manual/', -// output: 'server', -// adapter: testAdapter(), -// }); -// await fixture.build(); -// app = await fixture.loadTestAdapterApp(); -// }); -// -// it('should redirect to the default locale when middleware calls the function for route /', async () => { -// let request = new Request('http://example.com/'); -// let response = await app.render(request); -// assert.equal(response.status, 302); -// }); -// -// it('should render a route that is not related to the i18n routing', async () => { -// let request = new Request('http://example.com/help'); -// let response = await app.render(request); -// assert.equal(response.status, 200); -// const text = await response.text(); -// assert.equal(text.includes('Outside route'), true); -// }); -// -// it('should render a i18n route', async () => { -// let request = new Request('http://example.com/en/blog'); -// let response = await app.render(request); -// assert.equal(response.status, 200); -// let text = await response.text(); -// assert.equal(text.includes('Blog start'), true); -// -// request = new Request('http://example.com/pt/start'); -// response = await app.render(request); -// assert.equal(response.status, 200); -// text = await response.text(); -// assert.equal(text.includes('Oi'), true); -// -// request = new Request('http://example.com/spanish'); -// response = await app.render(request); -// assert.equal(response.status, 200); -// text = await response.text(); -// assert.equal(text.includes('Hola.'), true); -// }); -// }); +describe('SSR manual routing', () => { + /** @type {import('./test-utils').Fixture} */ + let fixture; + let app; + + before(async () => { + fixture = await loadFixture({ + root: './fixtures/i18n-routing-manual-with-default-middleware/', + output: 'server', + adapter: testAdapter(), + }); + await fixture.build(); + app = await fixture.loadTestAdapterApp(); + }); + + it('should return a 404', async () => { + let request = new Request('http://example.com/blog'); + let response = await app.render(request); + assert.equal(response.status, 404); + assert.equal((await response.text()).includes('Blog should not render'), false); + }); + + it('should return a 200 because the custom middleware allows it', async () => { + let request = new Request('http://example.com/about'); + let response = await app.render(request); + assert.equal(response.status, 200); + const text = await response.text(); + assert.equal(text.includes('ABOUT ME'), true); + }); +}); From 51bcf56ddeb49bcf673c87676bad170532e47940 Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Mon, 25 Mar 2024 14:41:04 +0000 Subject: [PATCH 13/33] docs --- packages/astro/src/virtual-modules/i18n.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/astro/src/virtual-modules/i18n.ts b/packages/astro/src/virtual-modules/i18n.ts index cd39c58a9e8b..156e1d1284fa 100644 --- a/packages/astro/src/virtual-modules/i18n.ts +++ b/packages/astro/src/virtual-modules/i18n.ts @@ -336,7 +336,8 @@ type Options = { * }); * * export const onRequest = sequence(customLogic, middleware({ - * locales: ["en", "es"] + * prefixDefaultLocale: true, + * redirectToDefaultLocale: false * })) * * ``` From fc24ba4caec8d0a813d8aa8d3657c146f0eda8f0 Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Mon, 25 Mar 2024 15:03:37 +0000 Subject: [PATCH 14/33] lock file black magic --- pnpm-lock.yaml | 4216 ++++++++++++++++++++++++------------------------ 1 file changed, 2097 insertions(+), 2119 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cf956d4ed32b..1cdf2403f76d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,7 +20,7 @@ importers: devDependencies: '@astrojs/check': specifier: ^0.5.8 - version: 0.5.8(prettier-plugin-astro@0.12.3)(prettier@3.1.1)(typescript@5.2.2) + version: 0.5.9(prettier-plugin-astro@0.12.3)(prettier@3.2.5)(typescript@5.2.2) '@biomejs/biome': specifier: 1.5.3 version: 1.5.3 @@ -32,34 +32,34 @@ importers: version: 2.27.1 '@types/node': specifier: ^18.17.8 - version: 18.19.4 + version: 18.19.24 '@typescript-eslint/eslint-plugin': specifier: ^6.11.0 - version: 6.17.0(@typescript-eslint/parser@6.17.0)(eslint@8.56.0)(typescript@5.2.2) + version: 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.57.0)(typescript@5.2.2) '@typescript-eslint/parser': specifier: ^6.11.0 - version: 6.17.0(eslint@8.56.0)(typescript@5.2.2) + version: 6.21.0(eslint@8.57.0)(typescript@5.2.2) esbuild: specifier: ^0.19.6 - version: 0.19.11 + version: 0.19.12 eslint: specifier: ^8.54.0 - version: 8.56.0 + version: 8.57.0 eslint-config-prettier: specifier: ^9.0.0 - version: 9.1.0(eslint@8.56.0) + version: 9.1.0(eslint@8.57.0) eslint-plugin-no-only-tests: specifier: ^3.1.0 version: 3.1.0 eslint-plugin-prettier: specifier: ^5.0.0 - version: 5.1.2(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.1.1) + version: 5.1.3(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.2.5) eslint-plugin-regexp: specifier: ^2.2.0 - version: 2.2.0(eslint@8.56.0) + version: 2.3.0(eslint@8.57.0) globby: specifier: ^14.0.0 - version: 14.0.0 + version: 14.0.1 only-allow: specifier: ^1.1.1 version: 1.2.1 @@ -68,7 +68,7 @@ importers: version: 0.10.0 prettier: specifier: ^3.1.0 - version: 3.1.1 + version: 3.2.5 prettier-plugin-astro: specifier: ^0.12.2 version: 0.12.3 @@ -77,7 +77,7 @@ importers: version: 0.2.9 turbo: specifier: ^1.12.4 - version: 1.12.4 + version: 1.12.5 typescript: specifier: ~5.2.2 version: 5.2.2 @@ -98,7 +98,7 @@ importers: version: link:../packages/astro autocannon: specifier: ^7.12.0 - version: 7.14.0 + version: 7.15.0 execa: specifier: ^8.0.1 version: 8.0.1 @@ -165,10 +165,10 @@ importers: version: link:../../packages/integrations/alpinejs '@types/alpinejs': specifier: ^3.13.5 - version: 3.13.5 + version: 3.13.9 alpinejs: specifier: ^3.13.3 - version: 3.13.3 + version: 3.13.7 astro: specifier: ^4.5.9 version: link:../../packages/astro @@ -207,16 +207,16 @@ importers: version: link:../../packages/integrations/vue '@types/react': specifier: ^18.2.37 - version: 18.2.57 + version: 18.2.66 '@types/react-dom': specifier: ^18.2.15 - version: 18.2.19 + version: 18.2.22 astro: specifier: ^4.5.9 version: link:../../packages/astro preact: specifier: ^10.19.2 - version: 10.19.3 + version: 10.19.6 react: specifier: ^18.2.0 version: 18.2.0 @@ -225,13 +225,13 @@ importers: version: 18.2.0(react@18.2.0) solid-js: specifier: ^1.8.5 - version: 1.8.7 + version: 1.8.15 svelte: specifier: ^4.2.5 - version: 4.2.8 + version: 4.2.12 vue: specifier: ^3.3.8 - version: 3.4.3(typescript@5.2.2) + version: 3.4.21(typescript@5.2.2) examples/framework-preact: dependencies: @@ -240,13 +240,13 @@ importers: version: link:../../packages/integrations/preact '@preact/signals': specifier: ^1.2.1 - version: 1.2.1(preact@10.19.3) + version: 1.2.1(preact@10.19.6) astro: specifier: ^4.5.9 version: link:../../packages/astro preact: specifier: ^10.19.2 - version: 10.19.3 + version: 10.19.6 examples/framework-react: dependencies: @@ -255,10 +255,10 @@ importers: version: link:../../packages/integrations/react '@types/react': specifier: ^18.2.37 - version: 18.2.46 + version: 18.2.66 '@types/react-dom': specifier: ^18.2.15 - version: 18.2.18 + version: 18.2.22 astro: specifier: ^4.5.9 version: link:../../packages/astro @@ -279,7 +279,7 @@ importers: version: link:../../packages/astro solid-js: specifier: ^1.8.5 - version: 1.8.7 + version: 1.8.15 examples/framework-svelte: dependencies: @@ -291,7 +291,7 @@ importers: version: link:../../packages/astro svelte: specifier: ^4.2.5 - version: 4.2.8 + version: 4.2.12 examples/framework-vue: dependencies: @@ -303,7 +303,7 @@ importers: version: link:../../packages/astro vue: specifier: ^3.3.8 - version: 3.4.3(typescript@5.2.2) + version: 3.4.21(typescript@5.2.2) examples/hackernews: dependencies: @@ -367,7 +367,7 @@ importers: version: link:../../packages/astro svelte: specifier: ^4.2.5 - version: 4.2.8 + version: 4.2.12 examples/starlog: dependencies: @@ -376,7 +376,7 @@ importers: version: link:../../packages/astro sass: specifier: ^1.69.5 - version: 1.69.6 + version: 1.72.0 sharp: specifier: ^0.32.6 version: 0.32.6 @@ -445,7 +445,7 @@ importers: version: link:../../packages/astro preact: specifier: ^10.19.2 - version: 10.19.3 + version: 10.19.6 examples/with-nanostores: dependencies: @@ -454,7 +454,7 @@ importers: version: link:../../packages/integrations/preact '@nanostores/preact': specifier: ^0.5.0 - version: 0.5.0(nanostores@0.9.5)(preact@10.19.3) + version: 0.5.1(nanostores@0.9.5)(preact@10.19.6) astro: specifier: ^4.5.9 version: link:../../packages/astro @@ -463,7 +463,7 @@ importers: version: 0.9.5 preact: specifier: ^10.19.2 - version: 10.19.3 + version: 10.19.6 examples/with-tailwindcss: dependencies: @@ -481,16 +481,16 @@ importers: version: link:../../packages/astro autoprefixer: specifier: ^10.4.15 - version: 10.4.16(postcss@8.4.32) + version: 10.4.18(postcss@8.4.36) canvas-confetti: specifier: ^1.9.1 version: 1.9.2 postcss: specifier: ^8.4.28 - version: 8.4.32 + version: 8.4.36 tailwindcss: specifier: ^3.3.5 - version: 3.4.0 + version: 3.4.1 examples/with-vitest: dependencies: @@ -499,7 +499,7 @@ importers: version: link:../../packages/astro vitest: specifier: ^1.3.1 - version: 1.3.1(@types/node@18.19.4) + version: 1.4.0(@types/node@18.19.24) packages/astro: dependencies: @@ -523,16 +523,16 @@ importers: version: 7.23.6 '@babel/parser': specifier: ^7.23.3 - version: 7.23.6 + version: 7.24.0 '@babel/plugin-transform-react-jsx': specifier: ^7.22.5 version: 7.23.4(@babel/core@7.24.3) '@babel/traverse': specifier: ^7.23.3 - version: 7.23.7 + version: 7.24.0 '@babel/types': specifier: ^7.23.3 - version: 7.23.6 + version: 7.24.0 '@types/babel__core': specifier: ^7.20.4 version: 7.20.5 @@ -550,7 +550,7 @@ importers: version: 7.1.1 chokidar: specifier: ^3.5.3 - version: 3.5.3 + version: 3.6.0 ci-info: specifier: ^4.0.0 version: 4.0.0 @@ -577,7 +577,7 @@ importers: version: 4.3.2 diff: specifier: ^5.1.0 - version: 5.1.0 + version: 5.2.0 dlv: specifier: ^1.1.3 version: 1.1.3 @@ -589,7 +589,7 @@ importers: version: 1.4.1 esbuild: specifier: ^0.19.6 - version: 0.19.11 + version: 0.19.12 estree-walker: specifier: ^3.0.3 version: 3.0.3 @@ -601,7 +601,7 @@ importers: version: 3.3.2 flattie: specifier: ^1.1.0 - version: 1.1.0 + version: 1.1.1 github-slugger: specifier: ^2.0.0 version: 2.0.0 @@ -622,7 +622,7 @@ importers: version: 4.1.5 magic-string: specifier: ^0.30.3 - version: 0.30.5 + version: 0.30.8 mime: specifier: ^3.0.0 version: 3.0.0 @@ -640,7 +640,7 @@ importers: version: 6.2.1 preferred-pm: specifier: ^3.1.2 - version: 3.1.2 + version: 3.1.3 prompts: specifier: ^2.4.2 version: 2.4.2 @@ -652,19 +652,19 @@ importers: version: 1.22.8 semver: specifier: ^7.5.4 - version: 7.5.4 + version: 7.6.0 shiki: specifier: ^1.1.2 - version: 1.1.2 + version: 1.2.0 string-width: specifier: ^7.0.0 - version: 7.0.0 + version: 7.1.0 strip-ansi: specifier: ^7.1.0 version: 7.1.0 tsconfck: specifier: ^3.0.0 - version: 3.0.0(typescript@5.2.2) + version: 3.0.3(typescript@5.2.2) unist-util-visit: specifier: ^5.0.0 version: 5.0.0 @@ -673,10 +673,10 @@ importers: version: 6.0.1 vite: specifier: ^5.1.4 - version: 5.1.4(@types/node@18.19.4)(sass@1.69.6) + version: 5.1.6(@types/node@18.19.24)(sass@1.72.0) vitefu: specifier: ^0.2.5 - version: 0.2.5(vite@5.1.4) + version: 0.2.5(vite@5.1.6) which-pm: specifier: ^2.1.1 version: 2.1.1 @@ -696,7 +696,7 @@ importers: devDependencies: '@astrojs/check': specifier: ^0.5.8 - version: 0.5.8(prettier-plugin-astro@0.12.3)(prettier@3.1.1)(typescript@5.2.2) + version: 0.5.9(prettier-plugin-astro@0.12.3)(prettier@3.2.5)(typescript@5.2.2) '@playwright/test': specifier: 1.40.0 version: 1.40.0 @@ -711,7 +711,7 @@ importers: version: 7.20.5 '@types/chai': specifier: ^4.3.10 - version: 4.3.11 + version: 4.3.12 '@types/common-ancestor-path': specifier: ^1.0.2 version: 1.0.2 @@ -738,7 +738,7 @@ importers: version: 1.0.4 '@types/hast': specifier: ^3.0.3 - version: 3.0.3 + version: 3.0.4 '@types/html-escaper': specifier: ^3.0.2 version: 3.0.2 @@ -765,7 +765,7 @@ importers: version: 1.20.6 '@types/semver': specifier: ^7.5.2 - version: 7.5.6 + version: 7.5.8 '@types/send': specifier: ^0.17.4 version: 0.17.4 @@ -786,10 +786,10 @@ importers: version: 0.9.1 memfs: specifier: ^4.6.0 - version: 4.6.0 + version: 4.7.7 node-mocks-http: specifier: ^1.13.0 - version: 1.14.0 + version: 1.14.1 parse-srcset: specifier: ^1.0.2 version: 1.0.2 @@ -807,10 +807,10 @@ importers: version: 0.1.2 rollup: specifier: ^4.5.0 - version: 4.9.2 + version: 4.13.0 sass: specifier: ^1.69.5 - version: 1.69.6 + version: 1.72.0 srcset-parse: specifier: ^1.1.0 version: 1.1.0 @@ -835,7 +835,7 @@ importers: dependencies: fast-xml-parser: specifier: ^4.2.7 - version: 4.3.2 + version: 4.3.6 kleur: specifier: ^4.1.5 version: 4.1.5 @@ -872,7 +872,7 @@ importers: version: link:../../.. preact: specifier: ^10.19.2 - version: 10.19.3 + version: 10.19.6 packages/astro/e2e/fixtures/astro-envs: dependencies: @@ -884,13 +884,13 @@ importers: version: link:../../.. vue: specifier: ^3.3.8 - version: 3.4.3(typescript@5.2.2) + version: 3.4.21(typescript@5.2.2) packages/astro/e2e/fixtures/client-only: dependencies: preact: specifier: ^10.19.2 - version: 10.19.3 + version: 10.19.6 react: specifier: ^18.1.0 version: 18.2.0 @@ -899,13 +899,13 @@ importers: version: 18.2.0(react@18.2.0) solid-js: specifier: ^1.8.5 - version: 1.8.7 + version: 1.8.15 svelte: specifier: ^4.2.5 - version: 4.2.8 + version: 4.2.12 vue: specifier: ^3.3.8 - version: 3.4.3(typescript@5.2.2) + version: 3.4.21(typescript@5.2.2) devDependencies: '@astrojs/preact': specifier: workspace:* @@ -966,7 +966,7 @@ importers: version: link:../../.. preact: specifier: ^10.19.2 - version: 10.19.3 + version: 10.19.6 packages/astro/e2e/fixtures/error-cyclic: dependencies: @@ -978,7 +978,7 @@ importers: version: link:../../.. preact: specifier: ^10.19.2 - version: 10.19.3 + version: 10.19.6 packages/astro/e2e/fixtures/error-sass: dependencies: @@ -987,7 +987,7 @@ importers: version: link:../../.. sass: specifier: ^1.69.5 - version: 1.69.6 + version: 1.72.0 packages/astro/e2e/fixtures/errors: dependencies: @@ -1011,7 +1011,7 @@ importers: version: link:../../.. preact: specifier: ^10.19.2 - version: 10.19.3 + version: 10.19.6 react: specifier: ^18.1.0 version: 18.2.0 @@ -1020,16 +1020,16 @@ importers: version: 18.2.0(react@18.2.0) sass: specifier: ^1.69.5 - version: 1.69.6 + version: 1.72.0 solid-js: specifier: ^1.8.5 - version: 1.8.7 + version: 1.8.15 svelte: specifier: ^4.2.5 - version: 4.2.8 + version: 4.2.12 vue: specifier: ^3.3.8 - version: 3.4.3(typescript@5.2.2) + version: 3.4.21(typescript@5.2.2) packages/astro/e2e/fixtures/hmr: devDependencies: @@ -1038,7 +1038,7 @@ importers: version: link:../../.. sass: specifier: ^1.69.5 - version: 1.69.6 + version: 1.72.0 packages/astro/e2e/fixtures/hydration-race: dependencies: @@ -1050,7 +1050,7 @@ importers: version: link:../../.. preact: specifier: ^10.19.2 - version: 10.19.3 + version: 10.19.6 packages/astro/e2e/fixtures/i18n: dependencies: @@ -1071,7 +1071,7 @@ importers: version: link:../../.. lit: specifier: ^3.1.0 - version: 3.1.0 + version: 3.1.2 packages/astro/e2e/fixtures/multiple-frameworks: dependencies: @@ -1083,7 +1083,7 @@ importers: version: 2.8.0 preact: specifier: ^10.19.2 - version: 10.19.3 + version: 10.19.6 react: specifier: ^18.1.0 version: 18.2.0 @@ -1092,13 +1092,13 @@ importers: version: 18.2.0(react@18.2.0) solid-js: specifier: ^1.8.5 - version: 1.8.7 + version: 1.8.15 svelte: specifier: ^4.2.5 - version: 4.2.8 + version: 4.2.12 vue: specifier: ^3.3.8 - version: 3.4.3(typescript@5.2.2) + version: 3.4.21(typescript@5.2.2) devDependencies: '@astrojs/lit': specifier: workspace:* @@ -1126,7 +1126,7 @@ importers: dependencies: preact: specifier: ^10.19.2 - version: 10.19.3 + version: 10.19.6 devDependencies: '@astrojs/mdx': specifier: workspace:* @@ -1142,7 +1142,7 @@ importers: dependencies: preact: specifier: ^10.19.2 - version: 10.19.3 + version: 10.19.6 react: specifier: ^18.1.0 version: 18.2.0 @@ -1151,13 +1151,13 @@ importers: version: 18.2.0(react@18.2.0) solid-js: specifier: ^1.8.5 - version: 1.8.7 + version: 1.8.15 svelte: specifier: ^4.2.5 - version: 4.2.8 + version: 4.2.12 vue: specifier: ^3.3.8 - version: 3.4.3(typescript@5.2.2) + version: 3.4.21(typescript@5.2.2) devDependencies: '@astrojs/preact': specifier: workspace:* @@ -1182,7 +1182,7 @@ importers: dependencies: preact: specifier: ^10.19.2 - version: 10.19.3 + version: 10.19.6 react: specifier: ^18.1.0 version: 18.2.0 @@ -1191,13 +1191,13 @@ importers: version: 18.2.0(react@18.2.0) solid-js: specifier: ^1.8.5 - version: 1.8.7 + version: 1.8.15 svelte: specifier: ^4.2.5 - version: 4.2.8 + version: 4.2.12 vue: specifier: ^3.3.8 - version: 3.4.3(typescript@5.2.2) + version: 3.4.21(typescript@5.2.2) devDependencies: '@astrojs/preact': specifier: workspace:* @@ -1222,7 +1222,7 @@ importers: dependencies: preact: specifier: ^10.19.2 - version: 10.19.3 + version: 10.19.6 react: specifier: ^18.1.0 version: 18.2.0 @@ -1231,13 +1231,13 @@ importers: version: 18.2.0(react@18.2.0) solid-js: specifier: ^1.8.5 - version: 1.8.7 + version: 1.8.15 svelte: specifier: ^4.2.5 - version: 4.2.8 + version: 4.2.12 vue: specifier: ^3.3.8 - version: 3.4.3(typescript@5.2.2) + version: 3.4.21(typescript@5.2.2) devDependencies: '@astrojs/preact': specifier: workspace:* @@ -1262,7 +1262,7 @@ importers: dependencies: preact: specifier: ^10.19.2 - version: 10.19.3 + version: 10.19.6 react: specifier: ^18.1.0 version: 18.2.0 @@ -1271,13 +1271,13 @@ importers: version: 18.2.0(react@18.2.0) solid-js: specifier: ^1.8.5 - version: 1.8.7 + version: 1.8.15 svelte: specifier: ^4.2.5 - version: 4.2.8 + version: 4.2.12 vue: specifier: ^3.3.8 - version: 3.4.3(typescript@5.2.2) + version: 3.4.21(typescript@5.2.2) devDependencies: '@astrojs/preact': specifier: workspace:* @@ -1302,7 +1302,7 @@ importers: dependencies: preact: specifier: ^10.19.2 - version: 10.19.3 + version: 10.19.6 react: specifier: ^18.1.0 version: 18.2.0 @@ -1311,13 +1311,13 @@ importers: version: 18.2.0(react@18.2.0) solid-js: specifier: ^1.8.5 - version: 1.8.7 + version: 1.8.15 svelte: specifier: ^4.2.5 - version: 4.2.8 + version: 4.2.12 vue: specifier: ^3.3.8 - version: 3.4.3(typescript@5.2.2) + version: 3.4.21(typescript@5.2.2) devDependencies: '@astrojs/preact': specifier: workspace:* @@ -1342,7 +1342,7 @@ importers: dependencies: preact: specifier: ^10.19.2 - version: 10.19.3 + version: 10.19.6 react: specifier: ^18.1.0 version: 18.2.0 @@ -1351,13 +1351,13 @@ importers: version: 18.2.0(react@18.2.0) solid-js: specifier: ^1.8.5 - version: 1.8.7 + version: 1.8.15 svelte: specifier: ^4.2.5 - version: 4.2.8 + version: 4.2.12 vue: specifier: ^3.3.8 - version: 3.4.3(typescript@5.2.2) + version: 3.4.21(typescript@5.2.2) devDependencies: '@astrojs/preact': specifier: workspace:* @@ -1410,7 +1410,7 @@ importers: version: link:../../.. preact: specifier: ^10.19.2 - version: 10.19.3 + version: 10.19.6 packages/astro/e2e/fixtures/preact-component: dependencies: @@ -1425,7 +1425,7 @@ importers: version: link:../../.. preact: specifier: ^10.19.2 - version: 10.19.3 + version: 10.19.6 packages/astro/e2e/fixtures/preact-lazy-component: dependencies: @@ -1440,7 +1440,7 @@ importers: version: link:../../.. preact: specifier: ^10.15.1 - version: 10.19.3 + version: 10.19.6 packages/astro/e2e/fixtures/prefetch: dependencies: @@ -1477,7 +1477,7 @@ importers: devDependencies: solid-js: specifier: ^1.8.5 - version: 1.8.7 + version: 1.8.15 packages/astro/e2e/fixtures/solid-component: dependencies: @@ -1492,7 +1492,7 @@ importers: version: link:../../.. solid-js: specifier: ^1.8.5 - version: 1.8.7 + version: 1.8.15 packages/astro/e2e/fixtures/solid-recurse: dependencies: @@ -1505,7 +1505,7 @@ importers: devDependencies: solid-js: specifier: ^1.8.5 - version: 1.8.7 + version: 1.8.15 packages/astro/e2e/fixtures/svelte-component: dependencies: @@ -1520,7 +1520,7 @@ importers: version: link:../../.. svelte: specifier: ^4.2.5 - version: 4.2.8 + version: 4.2.12 packages/astro/e2e/fixtures/tailwindcss: dependencies: @@ -1532,13 +1532,13 @@ importers: version: link:../../.. autoprefixer: specifier: ^10.4.15 - version: 10.4.16(postcss@8.4.32) + version: 10.4.18(postcss@8.4.36) postcss: specifier: ^8.4.28 - version: 8.4.32 + version: 8.4.36 tailwindcss: specifier: ^3.3.5 - version: 3.4.0 + version: 3.4.1 packages/astro/e2e/fixtures/ts-resolution: dependencies: @@ -1580,10 +1580,10 @@ importers: version: 18.2.0(react@18.2.0) svelte: specifier: ^4.2.5 - version: 4.2.8 + version: 4.2.12 vue: specifier: ^3.3.8 - version: 3.4.3(typescript@5.2.2) + version: 3.4.21(typescript@5.2.2) packages/astro/e2e/fixtures/vue-component: dependencies: @@ -1598,7 +1598,7 @@ importers: version: link:../../.. vue: specifier: ^3.3.8 - version: 3.4.3(typescript@5.2.2) + version: 3.4.21(typescript@5.2.2) packages/astro/performance: devDependencies: @@ -1628,10 +1628,10 @@ importers: version: link:../utils '@types/react': specifier: ^18.2.37 - version: 18.2.46 + version: 18.2.66 '@types/react-dom': specifier: ^18.2.15 - version: 18.2.18 + version: 18.2.22 astro: specifier: workspace:* version: link:../../.. @@ -1655,10 +1655,10 @@ importers: version: link:../utils '@types/react': specifier: ^18.2.37 - version: 18.2.46 + version: 18.2.66 '@types/react-dom': specifier: ^18.2.15 - version: 18.2.18 + version: 18.2.22 astro: specifier: workspace:* version: link:../../.. @@ -1682,10 +1682,10 @@ importers: version: link:../utils '@types/react': specifier: ^18.2.37 - version: 18.2.46 + version: 18.2.66 '@types/react-dom': specifier: ^18.2.15 - version: 18.2.18 + version: 18.2.22 astro: specifier: workspace:* version: link:../../.. @@ -1730,10 +1730,10 @@ importers: version: 18.2.0(react@18.2.0) svelte: specifier: ^4.2.5 - version: 4.2.8 + version: 4.2.12 vue: specifier: ^3.3.8 - version: 3.4.3(typescript@5.2.2) + version: 3.4.21(typescript@5.2.2) packages/astro/test/fixtures/alias: dependencies: @@ -1745,7 +1745,7 @@ importers: version: link:../../.. svelte: specifier: ^4.2.5 - version: 4.2.8 + version: 4.2.12 packages/astro/test/fixtures/alias-tsconfig: dependencies: @@ -1760,7 +1760,7 @@ importers: version: link:../../.. svelte: specifier: ^4.2.5 - version: 4.2.8 + version: 4.2.12 packages/astro/test/fixtures/alias-tsconfig-baseurl-only: dependencies: @@ -1772,7 +1772,7 @@ importers: version: link:../../.. svelte: specifier: ^4.2.5 - version: 4.2.8 + version: 4.2.12 packages/astro/test/fixtures/alias-tsconfig/deps/namespace-package: {} @@ -1843,7 +1843,7 @@ importers: version: link:../../.. preact: specifier: ^10.19.2 - version: 10.19.3 + version: 10.19.6 packages/astro/test/fixtures/astro-check-errors: dependencies: @@ -1879,13 +1879,13 @@ importers: version: link:../../.. preact: specifier: ^10.19.2 - version: 10.19.3 + version: 10.19.6 svelte: specifier: ^4.2.5 - version: 4.2.8 + version: 4.2.12 vue: specifier: ^3.3.8 - version: 3.4.3(typescript@5.2.2) + version: 3.4.21(typescript@5.2.2) packages/astro/test/fixtures/astro-class-list: dependencies: @@ -1915,7 +1915,7 @@ importers: version: 18.2.0(react@18.2.0) svelte: specifier: ^4.2.5 - version: 4.2.8 + version: 4.2.12 packages/astro/test/fixtures/astro-client-only/pkg: {} @@ -2001,7 +2001,7 @@ importers: version: 18.2.0(react@18.2.0) svelte: specifier: ^4.2.5 - version: 4.2.8 + version: 4.2.12 packages/astro/test/fixtures/astro-envs: dependencies: @@ -2013,7 +2013,7 @@ importers: version: link:../../.. vue: specifier: ^3.3.8 - version: 3.4.3(typescript@5.2.2) + version: 3.4.21(typescript@5.2.2) packages/astro/test/fixtures/astro-expr: dependencies: @@ -2025,7 +2025,7 @@ importers: version: link:../../.. preact: specifier: ^10.19.2 - version: 10.19.3 + version: 10.19.6 packages/astro/test/fixtures/astro-external-files: dependencies: @@ -2043,7 +2043,7 @@ importers: version: link:../../.. preact: specifier: ^10.19.2 - version: 10.19.3 + version: 10.19.6 packages/astro/test/fixtures/astro-generator: dependencies: @@ -2253,7 +2253,7 @@ importers: version: link:../../.. preact: specifier: ^10.19.2 - version: 10.19.3 + version: 10.19.6 packages/astro/test/fixtures/astro-slots: dependencies: @@ -2283,7 +2283,7 @@ importers: version: link:../../.. preact: specifier: ^10.19.2 - version: 10.19.3 + version: 10.19.6 react: specifier: ^18.2.0 version: 18.2.0 @@ -2292,13 +2292,13 @@ importers: version: 18.2.0(react@18.2.0) solid-js: specifier: ^1.8.5 - version: 1.8.7 + version: 1.8.15 svelte: specifier: ^4.2.5 - version: 4.2.8 + version: 4.2.12 vue: specifier: ^3.3.8 - version: 3.4.3(typescript@5.2.2) + version: 3.4.21(typescript@5.2.2) packages/astro/test/fixtures/before-hydration: dependencies: @@ -2310,7 +2310,7 @@ importers: version: link:../../.. preact: specifier: ^10.19.2 - version: 10.19.3 + version: 10.19.6 packages/astro/test/fixtures/build-assets: dependencies: @@ -2322,7 +2322,7 @@ importers: version: link:../../.. preact: specifier: ^10.19.2 - version: 10.19.3 + version: 10.19.6 packages/astro/test/fixtures/build-readonly-file: dependencies: @@ -2361,7 +2361,7 @@ importers: version: link:../../.. preact: specifier: ^10.19.2 - version: 10.19.3 + version: 10.19.6 react: specifier: ^18.1.0 version: 18.2.0 @@ -2370,13 +2370,13 @@ importers: version: 18.2.0(react@18.2.0) svelte: specifier: ^4.2.5 - version: 4.2.8 + version: 4.2.12 packages/astro/test/fixtures/component-library-shared: dependencies: preact: specifier: ^10.19.2 - version: 10.19.3 + version: 10.19.6 react: specifier: ^18.2.0 version: 18.2.0 @@ -2574,7 +2574,7 @@ importers: version: link:../../.. svelte: specifier: ^4.2.5 - version: 4.2.8 + version: 4.2.12 packages/astro/test/fixtures/css-import-as-inline: dependencies: @@ -2751,7 +2751,7 @@ importers: version: link:../../.. preact: specifier: ^10.19.2 - version: 10.19.3 + version: 10.19.6 packages/astro/test/fixtures/error-bad-js: dependencies: @@ -2787,13 +2787,13 @@ importers: version: link:../../.. preact: specifier: ^10.19.2 - version: 10.19.3 + version: 10.19.6 svelte: specifier: ^4.2.5 - version: 4.2.8 + version: 4.2.12 vue: specifier: ^3.3.8 - version: 3.4.3(typescript@5.2.2) + version: 3.4.21(typescript@5.2.2) packages/astro/test/fixtures/fontsource-package: dependencies: @@ -2877,7 +2877,7 @@ importers: version: link:../../.. preact: specifier: ^10.19.2 - version: 10.19.3 + version: 10.19.6 packages/astro/test/fixtures/i18n-routing: dependencies: @@ -2976,7 +2976,7 @@ importers: dependencies: preact: specifier: ^10.19.2 - version: 10.19.3 + version: 10.19.6 react: specifier: ^18.1.0 version: 18.2.0 @@ -2985,13 +2985,13 @@ importers: version: 18.2.0(react@18.2.0) solid-js: specifier: ^1.8.5 - version: 1.8.7 + version: 1.8.15 svelte: specifier: ^4.2.5 - version: 4.2.8 + version: 4.2.12 vue: specifier: ^3.3.8 - version: 3.4.3(typescript@5.2.2) + version: 3.4.21(typescript@5.2.2) devDependencies: '@astrojs/mdx': specifier: workspace:* @@ -3025,7 +3025,7 @@ importers: version: link:../../.. solid-js: specifier: ^1.8.5 - version: 1.8.7 + version: 1.8.15 packages/astro/test/fixtures/lazy-layout: dependencies: @@ -3161,23 +3161,23 @@ importers: version: link:../../.. autoprefixer: specifier: ^10.4.15 - version: 10.4.16(postcss@8.4.32) + version: 10.4.18(postcss@8.4.36) postcss: specifier: ^8.4.28 - version: 8.4.32 + version: 8.4.36 solid-js: specifier: ^1.8.5 - version: 1.8.7 + version: 1.8.15 svelte: specifier: ^4.2.5 - version: 4.2.8 + version: 4.2.12 vue: specifier: ^3.3.8 - version: 3.4.3(typescript@5.2.2) + version: 3.4.21(typescript@5.2.2) devDependencies: postcss-preset-env: specifier: ^9.3.0 - version: 9.3.0(postcss@8.4.32) + version: 9.5.2(postcss@8.4.36) packages/astro/test/fixtures/preact-compat-component: dependencies: @@ -3192,7 +3192,7 @@ importers: version: link:../../.. preact: specifier: ^10.19.2 - version: 10.19.3 + version: 10.19.6 packages/astro/test/fixtures/preact-compat-component/packages/react-lib: dependencies: @@ -3207,13 +3207,13 @@ importers: version: link:../../../../integrations/preact '@preact/signals': specifier: 1.2.1 - version: 1.2.1(preact@10.19.3) + version: 1.2.1(preact@10.19.6) astro: specifier: workspace:* version: link:../../.. preact: specifier: ^10.19.2 - version: 10.19.3 + version: 10.19.6 packages/astro/test/fixtures/public-base-404: dependencies: @@ -3240,7 +3240,7 @@ importers: version: 18.2.0(react@18.2.0) solid-js: specifier: ^1.8.5 - version: 1.8.7 + version: 1.8.15 packages/astro/test/fixtures/react-jsx-export: dependencies: @@ -3274,7 +3274,7 @@ importers: version: link:../../.. preact: specifier: ^10.19.2 - version: 10.19.3 + version: 10.19.6 packages/astro/test/fixtures/remote-css: dependencies: @@ -3325,7 +3325,7 @@ importers: version: link:../../.. preact: specifier: ^10.19.2 - version: 10.19.3 + version: 10.19.6 packages/astro/test/fixtures/slots-react: dependencies: @@ -3358,7 +3358,7 @@ importers: version: link:../../.. solid-js: specifier: ^1.8.5 - version: 1.8.7 + version: 1.8.15 packages/astro/test/fixtures/slots-svelte: dependencies: @@ -3373,7 +3373,7 @@ importers: version: link:../../.. svelte: specifier: ^4.2.5 - version: 4.2.8 + version: 4.2.12 packages/astro/test/fixtures/slots-vue: dependencies: @@ -3388,7 +3388,7 @@ importers: version: link:../../.. vue: specifier: ^3.3.8 - version: 3.4.3(typescript@5.2.2) + version: 3.4.21(typescript@5.2.2) packages/astro/test/fixtures/solid-component: dependencies: @@ -3397,7 +3397,7 @@ importers: version: link:../../../../integrations/solid '@solidjs/router': specifier: ^0.9.1 - version: 0.9.1(solid-js@1.8.7) + version: 0.9.1(solid-js@1.8.15) '@test/solid-jsx-component': specifier: file:./deps/solid-jsx-component version: file:packages/astro/test/fixtures/solid-component/deps/solid-jsx-component @@ -3406,13 +3406,13 @@ importers: version: link:../../.. solid-js: specifier: ^1.8.5 - version: 1.8.7 + version: 1.8.15 packages/astro/test/fixtures/solid-component/deps/solid-jsx-component: dependencies: solid-js: specifier: ^1.8.5 - version: 1.8.7 + version: 1.8.15 packages/astro/test/fixtures/sourcemap: dependencies: @@ -3484,7 +3484,7 @@ importers: version: link:../../.. preact: specifier: ^10.19.2 - version: 10.19.3 + version: 10.19.6 packages/astro/test/fixtures/ssr-error-pages: dependencies: @@ -3571,7 +3571,7 @@ importers: version: link:../../.. preact: specifier: ^10.19.2 - version: 10.19.3 + version: 10.19.6 packages/astro/test/fixtures/ssr-split-manifest: dependencies: @@ -3592,7 +3592,7 @@ importers: version: link:../../.. preact: specifier: ^10.19.2 - version: 10.19.3 + version: 10.19.6 packages/astro/test/fixtures/static-build-code-component: dependencies: @@ -3619,7 +3619,7 @@ importers: version: link:../../.. preact: specifier: ^10.19.2 - version: 10.19.3 + version: 10.19.6 react: specifier: ^18.1.0 version: 18.2.0 @@ -3672,7 +3672,7 @@ importers: version: link:../../.. svelte: specifier: ^4.2.5 - version: 4.2.8 + version: 4.2.12 packages/astro/test/fixtures/tailwindcss: dependencies: @@ -3687,13 +3687,13 @@ importers: version: link:../../.. autoprefixer: specifier: ^10.4.15 - version: 10.4.16(postcss@8.4.32) + version: 10.4.18(postcss@8.4.36) postcss: specifier: ^8.4.28 - version: 8.4.32 + version: 8.4.36 tailwindcss: specifier: ^3.3.5 - version: 3.4.0 + version: 3.4.1 packages/astro/test/fixtures/tailwindcss-ts: dependencies: @@ -3705,10 +3705,10 @@ importers: version: link:../../.. postcss: specifier: ^8.4.28 - version: 8.4.32 + version: 8.4.36 tailwindcss: specifier: ^3.3.5 - version: 3.4.0 + version: 3.4.1 packages/astro/test/fixtures/third-party-astro: dependencies: @@ -3768,7 +3768,7 @@ importers: version: link:../../.. vue: specifier: ^3.3.8 - version: 3.4.3(typescript@5.2.2) + version: 3.4.21(typescript@5.2.2) packages/astro/test/fixtures/vue-jsx: dependencies: @@ -3780,7 +3780,7 @@ importers: version: link:../../.. vue: specifier: ^3.3.8 - version: 3.4.3(typescript@5.2.2) + version: 3.4.21(typescript@5.2.2) packages/astro/test/fixtures/vue-with-multi-renderer: dependencies: @@ -3795,10 +3795,10 @@ importers: version: link:../../.. svelte: specifier: ^4.2.5 - version: 4.2.8 + version: 4.2.12 vue: specifier: ^3.3.8 - version: 3.4.3(typescript@5.2.2) + version: 3.4.21(typescript@5.2.2) packages/astro/test/fixtures/with-endpoint-routes: dependencies: @@ -3846,7 +3846,7 @@ importers: dependencies: '@libsql/client': specifier: ^0.5.5 - version: 0.5.5 + version: 0.5.6 async-listen: specifier: ^3.0.1 version: 3.0.1 @@ -3855,7 +3855,7 @@ importers: version: 1.0.2 drizzle-orm: specifier: ^0.30.2 - version: 0.30.2(@libsql/client@0.5.5) + version: 0.30.2(@libsql/client@0.5.6) github-slugger: specifier: ^2.0.0 version: 2.0.0 @@ -3864,10 +3864,10 @@ importers: version: 4.1.5 nanoid: specifier: ^5.0.1 - version: 5.0.1 + version: 5.0.6 open: specifier: ^10.0.3 - version: 10.0.3 + version: 10.1.0 ora: specifier: ^7.0.1 version: 7.0.1 @@ -3886,7 +3886,7 @@ importers: devDependencies: '@types/chai': specifier: ^4.3.6 - version: 4.3.11 + version: 4.3.12 '@types/deep-diff': specifier: ^1.0.5 version: 1.0.5 @@ -3916,13 +3916,13 @@ importers: version: 1.0.0-rc.12 mocha: specifier: ^10.2.0 - version: 10.2.0 + version: 10.3.0 typescript: specifier: ^5.2.2 - version: 5.2.2 + version: 5.4.2 vite: specifier: ^5.1.4 - version: 5.1.4(@types/node@18.19.4)(sass@1.69.6) + version: 5.1.6(@types/node@18.19.24)(sass@1.72.0) packages/db/test/fixtures/basics: dependencies: @@ -3991,7 +3991,7 @@ importers: dependencies: '@astrojs/check': specifier: ^0.5.5 - version: 0.5.5(prettier-plugin-astro@0.12.3)(prettier@3.1.1)(typescript@5.3.2) + version: 0.5.9(prettier-plugin-astro@0.12.3)(prettier@3.2.5)(typescript@5.4.2) '@astrojs/db': specifier: workspace:* version: link:../../.. @@ -4003,16 +4003,16 @@ importers: version: link:../../../../integrations/react '@types/react': specifier: ^18.2.57 - version: 18.2.57 + version: 18.2.66 '@types/react-dom': specifier: ^18.2.19 - version: 18.2.19 + version: 18.2.22 astro: specifier: workspace:* version: link:../../../../astro open-props: specifier: ^1.6.17 - version: 1.6.17 + version: 1.6.21 react: specifier: ^18.2.0 version: 18.2.0 @@ -4021,10 +4021,10 @@ importers: version: 18.2.0(react@18.2.0) simple-stack-form: specifier: ^0.1.10 - version: 0.1.10(astro@packages+astro)(zod@3.22.4) + version: 0.1.12(astro@packages+astro)(zod@3.22.4) typescript: specifier: ^5.3.2 - version: 5.3.2 + version: 5.4.2 zod: specifier: ^3.22.4 version: 3.22.4 @@ -4042,7 +4042,7 @@ importers: version: link:../../../scripts vite: specifier: ^5.1.4 - version: 5.1.4(@types/node@18.19.4)(sass@1.69.6) + version: 5.1.6(@types/node@18.19.24)(sass@1.72.0) packages/integrations/alpinejs/test/fixtures/basics: dependencies: @@ -4051,10 +4051,10 @@ importers: version: link:../../.. '@types/alpinejs': specifier: ^3.13.5 - version: 3.13.5 + version: 3.13.9 alpinejs: specifier: ^3.13.3 - version: 3.13.3 + version: 3.13.7 astro: specifier: workspace:* version: link:../../../../../astro @@ -4066,10 +4066,10 @@ importers: version: link:../../.. '@types/alpinejs': specifier: ^3.13.5 - version: 3.13.5 + version: 3.13.9 alpinejs: specifier: ^3.13.3 - version: 3.13.3 + version: 3.13.7 astro: specifier: workspace:* version: link:../../../../../astro @@ -4081,10 +4081,10 @@ importers: version: link:../../.. '@types/alpinejs': specifier: ^3.13.5 - version: 3.13.5 + version: 3.13.9 alpinejs: specifier: ^3.13.3 - version: 3.13.3 + version: 3.13.7 astro: specifier: workspace:* version: link:../../../../../astro @@ -4095,13 +4095,13 @@ importers: dependencies: '@lit-labs/ssr': specifier: ^3.2.0 - version: 3.2.0 + version: 3.2.2 '@lit-labs/ssr-client': specifier: ^1.1.5 - version: 1.1.5 + version: 1.1.7 '@lit-labs/ssr-dom-shim': specifier: ^1.1.2 - version: 1.1.2 + version: 1.2.0 parse5: specifier: ^7.1.2 version: 7.1.2 @@ -4117,10 +4117,10 @@ importers: version: 1.0.0-rc.12 lit: specifier: ^3.1.0 - version: 3.1.0 + version: 3.1.2 sass: specifier: ^1.69.5 - version: 1.69.6 + version: 1.72.0 packages/integrations/markdoc: dependencies: @@ -4135,7 +4135,7 @@ importers: version: 0.3.5 esbuild: specifier: ^0.19.6 - version: 0.19.11 + version: 0.19.12 github-slugger: specifier: ^2.0.0 version: 2.0.0 @@ -4144,7 +4144,7 @@ importers: version: 4.0.3 htmlparser2: specifier: ^9.0.0 - version: 9.0.0 + version: 9.1.0 kleur: specifier: ^4.1.5 version: 4.1.5 @@ -4172,10 +4172,10 @@ importers: version: 4.3.2 linkedom: specifier: ^0.16.4 - version: 0.16.6 + version: 0.16.10 vite: specifier: ^5.1.4 - version: 5.1.4(@types/node@18.19.4)(sass@1.69.6) + version: 5.1.6(@types/node@18.19.24)(sass@1.72.0) packages/integrations/markdoc/test/fixtures/content-collections: dependencies: @@ -4301,7 +4301,7 @@ importers: version: link:../../markdown/remark '@mdx-js/mdx': specifier: ^3.0.0 - version: 3.0.0 + version: 3.0.1 acorn: specifier: ^8.11.2 version: 8.11.3 @@ -4331,7 +4331,7 @@ importers: version: 4.0.0 remark-smartypants: specifier: ^2.0.0 - version: 2.0.0 + version: 2.1.0 source-map: specifier: ^0.7.4 version: 0.7.4 @@ -4344,7 +4344,7 @@ importers: devDependencies: '@types/chai': specifier: ^4.3.10 - version: 4.3.11 + version: 4.3.12 '@types/estree': specifier: ^1.0.5 version: 1.0.5 @@ -4368,7 +4368,7 @@ importers: version: 1.0.0-rc.12 linkedom: specifier: ^0.16.4 - version: 0.16.6 + version: 0.16.10 mdast-util-mdx: specifier: ^3.0.0 version: 3.0.0 @@ -4389,7 +4389,7 @@ importers: version: 6.0.0 remark-rehype: specifier: ^11.0.0 - version: 11.0.0 + version: 11.1.0 remark-shiki-twoslash: specifier: ^3.1.3 version: 3.1.3(typescript@5.2.2) @@ -4401,7 +4401,7 @@ importers: version: 11.0.4 vite: specifier: ^5.1.4 - version: 5.1.4(@types/node@18.19.4)(sass@1.69.6) + version: 5.1.6(@types/node@18.19.24)(sass@1.72.0) packages/integrations/mdx/test/fixtures/css-head-mdx: dependencies: @@ -4470,7 +4470,7 @@ importers: version: link:../../../../../astro preact: specifier: ^10.19.2 - version: 10.19.3 + version: 10.19.6 packages/integrations/mdx/test/fixtures/mdx-namespace: dependencies: @@ -4554,7 +4554,7 @@ importers: devDependencies: '@types/node': specifier: ^18.17.8 - version: 18.19.4 + version: 18.19.24 '@types/send': specifier: ^0.17.4 version: 0.17.4 @@ -4572,10 +4572,10 @@ importers: version: 1.0.0-rc.12 express: specifier: ^4.18.2 - version: 4.18.2 + version: 4.18.3 node-mocks-http: specifier: ^1.13.0 - version: 1.14.0 + version: 1.14.1 packages/integrations/node/test/fixtures/api-route: dependencies: @@ -4707,7 +4707,7 @@ importers: dependencies: '@builder.io/partytown': specifier: ^0.8.0 - version: 0.8.1 + version: 0.8.2 mrmime: specifier: ^1.0.1 version: 1.0.1 @@ -4729,19 +4729,19 @@ importers: version: 7.22.5 '@preact/preset-vite': specifier: ^2.7.0 - version: 2.7.0(preact@10.19.3) + version: 2.8.2(preact@10.19.6) '@preact/signals': specifier: ^1.2.1 - version: 1.2.1(preact@10.19.3) + version: 1.2.1(preact@10.19.6) babel-plugin-transform-hook-names: specifier: ^1.0.2 version: 1.0.2 preact-render-to-string: specifier: ~6.3.1 - version: 6.3.1(preact@10.19.3) + version: 6.3.1(preact@10.19.6) preact-ssr-prepass: specifier: ^1.2.1 - version: 1.2.1(preact@10.19.3) + version: 1.2.1(preact@10.19.6) devDependencies: astro: specifier: workspace:* @@ -4751,23 +4751,23 @@ importers: version: link:../../../scripts preact: specifier: ^10.19.2 - version: 10.19.3 + version: 10.19.6 packages/integrations/react: dependencies: '@vitejs/plugin-react': specifier: ^4.2.0 - version: 4.2.1(vite@5.1.4) + version: 4.2.1(vite@5.1.6) ultrahtml: specifier: ^1.3.0 - version: 1.5.2 + version: 1.5.3 devDependencies: '@types/react': specifier: ^18.2.37 - version: 18.2.46 + version: 18.2.66 '@types/react-dom': specifier: ^18.2.15 - version: 18.2.18 + version: 18.2.22 astro: specifier: workspace:* version: link:../../astro @@ -4785,7 +4785,7 @@ importers: version: 18.2.0(react@18.2.0) vite: specifier: ^5.1.4 - version: 5.1.4(@types/node@18.19.4)(sass@1.69.6) + version: 5.1.6(@types/node@18.19.24)(sass@1.72.0) packages/integrations/react/test/fixtures/react-component: dependencies: @@ -4806,7 +4806,7 @@ importers: version: 18.2.0(react@18.2.0) vue: specifier: ^3.3.8 - version: 3.4.3(typescript@5.2.2) + version: 3.4.21(typescript@5.2.2) packages/integrations/sitemap: dependencies: @@ -4870,7 +4870,7 @@ importers: dependencies: vite-plugin-solid: specifier: ^2.8.0 - version: 2.8.0(solid-js@1.8.7) + version: 2.10.2(solid-js@1.8.15) devDependencies: astro: specifier: workspace:* @@ -4880,16 +4880,16 @@ importers: version: link:../../../scripts solid-js: specifier: ^1.8.5 - version: 1.8.7 + version: 1.8.15 packages/integrations/svelte: dependencies: '@sveltejs/vite-plugin-svelte': specifier: ^3.0.0 - version: 3.0.1(svelte@4.2.8)(vite@5.1.4) + version: 3.0.2(svelte@4.2.12)(vite@5.1.6) svelte2tsx: specifier: ^0.6.27 - version: 0.6.27(svelte@4.2.8)(typescript@5.2.2) + version: 0.6.27(svelte@4.2.12)(typescript@5.2.2) devDependencies: astro: specifier: workspace:* @@ -4899,22 +4899,22 @@ importers: version: link:../../../scripts svelte: specifier: ^4.2.5 - version: 4.2.8 + version: 4.2.12 vite: specifier: ^5.1.4 - version: 5.1.4(@types/node@18.19.4)(sass@1.69.6) + version: 5.1.6(@types/node@18.19.24)(sass@1.72.0) packages/integrations/tailwind: dependencies: autoprefixer: specifier: ^10.4.15 - version: 10.4.16(postcss@8.4.35) + version: 10.4.18(postcss@8.4.36) postcss: specifier: ^8.4.35 - version: 8.4.35 + version: 8.4.36 postcss-load-config: specifier: ^4.0.2 - version: 4.0.2(postcss@8.4.35) + version: 4.0.2(postcss@8.4.36) devDependencies: astro: specifier: workspace:* @@ -4924,10 +4924,10 @@ importers: version: link:../../../scripts tailwindcss: specifier: ^3.3.5 - version: 3.4.0 + version: 3.4.1 vite: specifier: ^5.1.4 - version: 5.1.4(@types/node@18.19.4)(sass@1.69.6) + version: 5.1.6(@types/node@18.19.24)(sass@1.72.0) packages/integrations/tailwind/test/fixtures/basic: dependencies: @@ -4945,7 +4945,7 @@ importers: version: link:../../internal-helpers '@vercel/analytics': specifier: ^1.0.2 - version: 1.1.1 + version: 1.2.2 '@vercel/edge': specifier: ^1.1.1 version: 1.1.1 @@ -4954,7 +4954,7 @@ importers: version: 0.26.4 esbuild: specifier: ^0.19.6 - version: 0.19.11 + version: 0.19.12 fast-glob: specifier: ^3.3.2 version: 3.3.2 @@ -4963,7 +4963,7 @@ importers: version: 2.6.0 web-vitals: specifier: ^3.4.0 - version: 3.5.1 + version: 3.5.2 devDependencies: '@types/set-cookie-parser': specifier: ^2.4.6 @@ -5162,20 +5162,20 @@ importers: dependencies: '@vitejs/plugin-vue': specifier: ^5.0.4 - version: 5.0.4(vite@5.1.4)(vue@3.4.3) + version: 5.0.4(vite@5.1.6)(vue@3.4.21) '@vitejs/plugin-vue-jsx': specifier: ^3.1.0 - version: 3.1.0(vite@5.1.4)(vue@3.4.3) + version: 3.1.0(vite@5.1.6)(vue@3.4.21) '@vue/babel-plugin-jsx': specifier: ^1.1.5 - version: 1.1.5(@babel/core@7.24.3) + version: 1.2.1(@babel/core@7.24.3) '@vue/compiler-sfc': specifier: ^3.3.8 - version: 3.4.3 + version: 3.4.21 devDependencies: '@types/chai': specifier: ^4.3.10 - version: 4.3.11 + version: 4.3.12 astro: specifier: workspace:* version: link:../../astro @@ -5187,13 +5187,13 @@ importers: version: 1.0.0-rc.12 linkedom: specifier: ^0.16.4 - version: 0.16.6 + version: 0.16.10 vite: specifier: ^5.1.4 - version: 5.1.4(@types/node@18.19.4)(sass@1.69.6) + version: 5.1.6(@types/node@18.19.24)(sass@1.72.0) vue: specifier: ^3.3.8 - version: 3.4.3(typescript@5.2.2) + version: 3.4.21(typescript@5.2.2) packages/integrations/vue/test/fixtures/app-entrypoint: dependencies: @@ -5307,13 +5307,13 @@ importers: version: 11.0.0 remark-rehype: specifier: ^11.0.0 - version: 11.0.0 + version: 11.1.0 remark-smartypants: specifier: ^2.0.0 - version: 2.0.0 + version: 2.1.0 shiki: specifier: ^1.1.2 - version: 1.1.2 + version: 1.2.0 unified: specifier: ^11.0.4 version: 11.0.4 @@ -5332,13 +5332,13 @@ importers: devDependencies: '@types/chai': specifier: ^4.3.10 - version: 4.3.11 + version: 4.3.12 '@types/estree': specifier: ^1.0.5 version: 1.0.5 '@types/hast': specifier: ^3.0.3 - version: 3.0.3 + version: 3.0.4 '@types/mdast': specifier: ^4.0.3 version: 4.0.3 @@ -5353,7 +5353,7 @@ importers: version: link:../../../scripts esbuild: specifier: ^0.19.6 - version: 0.19.11 + version: 0.19.12 mdast-util-mdx-expression: specifier: ^2.0.0 version: 2.0.0 @@ -5390,7 +5390,7 @@ importers: version: 1.1.4 '@types/node': specifier: ^18.17.8 - version: 18.19.4 + version: 18.19.24 '@types/which-pm-runs': specifier: ^1.0.2 version: 1.0.2 @@ -5414,7 +5414,7 @@ importers: version: 0.2.5 semver: specifier: ^7.5.4 - version: 7.5.4 + version: 7.6.0 terminal-link: specifier: ^3.0.0 version: 3.0.0 @@ -5424,7 +5424,7 @@ importers: devDependencies: '@types/semver': specifier: ^7.5.2 - version: 7.5.6 + version: 7.5.8 '@types/which-pm-runs': specifier: ^1.0.0 version: 1.0.2 @@ -5445,10 +5445,10 @@ importers: version: 5.0.2 esbuild: specifier: ^0.19.6 - version: 0.19.11 + version: 0.19.12 globby: specifier: ^14.0.0 - version: 14.0.0 + version: 14.0.1 kleur: specifier: ^4.1.4 version: 4.1.5 @@ -5457,7 +5457,7 @@ importers: version: 5.0.0 svelte: specifier: ^4.2.5 - version: 4.2.8 + version: 4.2.12 tar: specifier: ^6.1.15 version: 6.2.0 @@ -5470,7 +5470,7 @@ importers: version: 7.1.0 esbuild-plugin-copy: specifier: ^2.1.1 - version: 2.1.1(esbuild@0.19.11) + version: 2.1.1(esbuild@0.19.12) execa: specifier: ^8.0.1 version: 8.0.1 @@ -5489,12 +5489,12 @@ packages: resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} - /@ampproject/remapping@2.2.1: - resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} + /@ampproject/remapping@2.3.0: + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} dependencies: - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.20 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 /@assemblyscript/loader@0.19.23: resolution: {integrity: sha512-ulkCYfFbYj01ie1MDOyxv2F6SpRN1TOj7fQxbP07D6HmeR+gr2JLSmINKjga2emB+b1L2KGrFKBTc+e00p54nw==} @@ -5507,7 +5507,7 @@ packages: dependencies: '@astro-community/astro-embed-twitter': 0.5.3(astro@packages+astro) '@astro-community/astro-embed-vimeo': 0.3.2(astro@packages+astro) - '@astro-community/astro-embed-youtube': 0.4.3(astro@packages+astro) + '@astro-community/astro-embed-youtube': 0.4.4(astro@packages+astro) '@types/unist': 2.0.10 astro: link:packages/astro astro-auto-import: 0.3.2(astro@packages+astro) @@ -5535,8 +5535,8 @@ packages: astro: link:packages/astro dev: false - /@astro-community/astro-embed-youtube@0.4.3(astro@packages+astro): - resolution: {integrity: sha512-zXtPmR9yxrTo6cuLhH8v+r62bsXbsLJgsU2FiZalPr4bXJxAUQEIlG46S/qK0AEXi9uNShKqy4+zBaJ98xTVEg==} + /@astro-community/astro-embed-youtube@0.4.4(astro@packages+astro): + resolution: {integrity: sha512-fYlycLrJFNnibZ9VHPSJO766kO2IgqYQU4mBd4iaDMaicL0gGX9cVZ80QdnpzGrI6w0XOJOY7prx86eWEVBy8w==} peerDependencies: astro: '*' dependencies: @@ -5544,39 +5544,39 @@ packages: lite-youtube-embed: 0.2.0 dev: false - /@astrojs/check@0.5.5(prettier-plugin-astro@0.12.3)(prettier@3.1.1)(typescript@5.3.2): - resolution: {integrity: sha512-05LjyUB14Cv2mkLNqY4r2igI2eu0bq/HcKCfFNIoBPLyNW7VUDr9tciD9VJXXT3s0e6JHneIs6bQW5ipjmaRcw==} + /@astrojs/check@0.5.9(prettier-plugin-astro@0.12.3)(prettier@3.2.5)(typescript@5.2.2): + resolution: {integrity: sha512-+QsQMtYq4oso+gmilJC9HLmdi0glZ+04V/VyyTTPry7n21jqjX9SfgDpLGxMk5cwPC/vwZMkn6ORGPnkZS/L5w==} hasBin: true peerDependencies: typescript: ^5.0.0 dependencies: - '@astrojs/language-server': 2.7.6(prettier-plugin-astro@0.12.3)(prettier@3.1.1)(typescript@5.3.2) - chokidar: 3.5.3 + '@astrojs/language-server': 2.8.3(prettier-plugin-astro@0.12.3)(prettier@3.2.5)(typescript@5.2.2) + chokidar: 3.6.0 fast-glob: 3.3.2 kleur: 4.1.5 - typescript: 5.3.2 + typescript: 5.2.2 yargs: 17.7.2 transitivePeerDependencies: - prettier - prettier-plugin-astro - dev: false + dev: true - /@astrojs/check@0.5.8(prettier-plugin-astro@0.12.3)(prettier@3.1.1)(typescript@5.2.2): - resolution: {integrity: sha512-O3lPUIwhlRtya8KcUDfB0+vBPgj/qVoNvTUhYTTDx0uEsHBbssO5RSFezw6KVBxps6zIR8+YAyOoRKPBhMB7KQ==} + /@astrojs/check@0.5.9(prettier-plugin-astro@0.12.3)(prettier@3.2.5)(typescript@5.4.2): + resolution: {integrity: sha512-+QsQMtYq4oso+gmilJC9HLmdi0glZ+04V/VyyTTPry7n21jqjX9SfgDpLGxMk5cwPC/vwZMkn6ORGPnkZS/L5w==} hasBin: true peerDependencies: typescript: ^5.0.0 dependencies: - '@astrojs/language-server': 2.8.4(prettier-plugin-astro@0.12.3)(prettier@3.1.1)(typescript@5.2.2) - chokidar: 3.5.3 + '@astrojs/language-server': 2.8.3(prettier-plugin-astro@0.12.3)(prettier@3.2.5)(typescript@5.4.2) + chokidar: 3.6.0 fast-glob: 3.3.2 kleur: 4.1.5 - typescript: 5.2.2 + typescript: 5.4.2 yargs: 17.7.2 transitivePeerDependencies: - prettier - prettier-plugin-astro - dev: true + dev: false /@astrojs/cli-kit@0.2.5: resolution: {integrity: sha512-j6zpNUjtHJGEIKkTrTPvQD3G/sJUKyseJty42iVR3HqytzqHwLK165vptdT4NZKfZ082yLnUtsOXxRyIdfm/AQ==} @@ -5601,8 +5601,8 @@ packages: /@astrojs/compiler@2.7.0: resolution: {integrity: sha512-XpC8MAaWjD1ff6/IfkRq/5k1EFj6zhCNqXRd5J43SVJEBj/Bsmizkm8N0xOYscGcDFQkRgEw6/eKnI5x/1l6aA==} - /@astrojs/language-server@2.7.6(prettier-plugin-astro@0.12.3)(prettier@3.1.1)(typescript@5.3.2): - resolution: {integrity: sha512-NhMSmMAuKBMXnvpfn9eYPR7R6zOasAjRb+ta8L+rCHHuKzUc0lBgAF5M6rx01FJqlpGqeqao13eYt4287Ze49g==} + /@astrojs/language-server@2.8.3(prettier-plugin-astro@0.12.3)(prettier@3.2.5)(typescript@5.2.2): + resolution: {integrity: sha512-tO47Lcue7OPXfIDbKVDcshwpC13yaWaTVLyiSOnQ2Yng2Z2SgcJf06Cj4xMpJqGp6s7/o/gcQWYUTl2bpkWKig==} hasBin: true peerDependencies: prettier: ^3.0.0 @@ -5615,28 +5615,28 @@ packages: dependencies: '@astrojs/compiler': 2.7.0 '@jridgewell/sourcemap-codec': 1.4.15 - '@volar/kit': 2.0.4(typescript@5.3.2) - '@volar/language-core': 2.0.4 - '@volar/language-server': 2.0.4 - '@volar/language-service': 2.0.4 - '@volar/typescript': 2.0.4 + '@volar/kit': 2.1.2(typescript@5.2.2) + '@volar/language-core': 2.1.2 + '@volar/language-server': 2.1.2 + '@volar/language-service': 2.1.2 + '@volar/typescript': 2.1.2 fast-glob: 3.3.2 - prettier: 3.1.1 + prettier: 3.2.5 prettier-plugin-astro: 0.12.3 - volar-service-css: 0.0.30(@volar/language-service@2.0.4) - volar-service-emmet: 0.0.30(@volar/language-service@2.0.4) - volar-service-html: 0.0.30(@volar/language-service@2.0.4) - volar-service-prettier: 0.0.30(@volar/language-service@2.0.4)(prettier@3.1.1) - volar-service-typescript: 0.0.30(@volar/language-service@2.0.4)(@volar/typescript@2.0.4) - volar-service-typescript-twoslash-queries: 0.0.30(@volar/language-service@2.0.4) + volar-service-css: 0.0.34(@volar/language-service@2.1.2) + volar-service-emmet: 0.0.34(@volar/language-service@2.1.2) + volar-service-html: 0.0.34(@volar/language-service@2.1.2) + volar-service-prettier: 0.0.34(@volar/language-service@2.1.2)(prettier@3.2.5) + volar-service-typescript: 0.0.34(@volar/language-service@2.1.2) + volar-service-typescript-twoslash-queries: 0.0.34(@volar/language-service@2.1.2) vscode-html-languageservice: 5.1.2 vscode-uri: 3.0.8 transitivePeerDependencies: - typescript - dev: false + dev: true - /@astrojs/language-server@2.8.4(prettier-plugin-astro@0.12.3)(prettier@3.1.1)(typescript@5.2.2): - resolution: {integrity: sha512-sJH5vGTBkhgA8+hdhzX78UUp4cFz4Mt7xkEkevD188OS5bDMkaue6hK+dtXWM47mnrXFveXA2u38K7S+5+IRjA==} + /@astrojs/language-server@2.8.3(prettier-plugin-astro@0.12.3)(prettier@3.2.5)(typescript@5.4.2): + resolution: {integrity: sha512-tO47Lcue7OPXfIDbKVDcshwpC13yaWaTVLyiSOnQ2Yng2Z2SgcJf06Cj4xMpJqGp6s7/o/gcQWYUTl2bpkWKig==} hasBin: true peerDependencies: prettier: ^3.0.0 @@ -5649,25 +5649,25 @@ packages: dependencies: '@astrojs/compiler': 2.7.0 '@jridgewell/sourcemap-codec': 1.4.15 - '@volar/kit': 2.1.5(typescript@5.2.2) - '@volar/language-core': 2.1.5 - '@volar/language-server': 2.1.5 - '@volar/language-service': 2.1.5 - '@volar/typescript': 2.1.5 + '@volar/kit': 2.1.2(typescript@5.4.2) + '@volar/language-core': 2.1.2 + '@volar/language-server': 2.1.2 + '@volar/language-service': 2.1.2 + '@volar/typescript': 2.1.2 fast-glob: 3.3.2 - prettier: 3.1.1 + prettier: 3.2.5 prettier-plugin-astro: 0.12.3 - volar-service-css: 0.0.34(@volar/language-service@2.1.5) - volar-service-emmet: 0.0.34(@volar/language-service@2.1.5) - volar-service-html: 0.0.34(@volar/language-service@2.1.5) - volar-service-prettier: 0.0.34(@volar/language-service@2.1.5)(prettier@3.1.1) - volar-service-typescript: 0.0.34(@volar/language-service@2.1.5) - volar-service-typescript-twoslash-queries: 0.0.34(@volar/language-service@2.1.5) + volar-service-css: 0.0.34(@volar/language-service@2.1.2) + volar-service-emmet: 0.0.34(@volar/language-service@2.1.2) + volar-service-html: 0.0.34(@volar/language-service@2.1.2) + volar-service-prettier: 0.0.34(@volar/language-service@2.1.2)(prettier@3.2.5) + volar-service-typescript: 0.0.34(@volar/language-service@2.1.2) + volar-service-typescript-twoslash-queries: 0.0.34(@volar/language-service@2.1.2) vscode-html-languageservice: 5.1.2 vscode-uri: 3.0.8 transitivePeerDependencies: - typescript - dev: true + dev: false /@babel/code-frame@7.23.5: resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} @@ -5693,7 +5693,7 @@ packages: resolution: {integrity: sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==} engines: {node: '>=6.9.0'} dependencies: - '@ampproject/remapping': 2.2.1 + '@ampproject/remapping': 2.3.0 '@babel/code-frame': 7.24.2 '@babel/generator': 7.24.1 '@babel/helper-compilation-targets': 7.23.6 @@ -5716,9 +5716,9 @@ packages: resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.6 - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.20 + '@babel/types': 7.24.0 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 dev: false @@ -5736,7 +5736,7 @@ packages: resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.6 + '@babel/types': 7.24.0 dev: false /@babel/helper-compilation-targets@7.23.6: @@ -5745,13 +5745,13 @@ packages: dependencies: '@babel/compat-data': 7.23.5 '@babel/helper-validator-option': 7.23.5 - browserslist: 4.22.2 + browserslist: 4.23.0 lru-cache: 5.1.1 semver: 6.3.1 dev: false - /@babel/helper-create-class-features-plugin@7.23.7(@babel/core@7.24.3): - resolution: {integrity: sha512-xCoqR/8+BoNnXOY7RVSgv6X+o7pmT5q1d+gGcRlXYkI+9B31glE4jeejhKVpA04O1AtzOt7OSQ6VYKP5FcRl9g==} + /@babel/helper-create-class-features-plugin@7.24.0(@babel/core@7.24.3): + resolution: {integrity: sha512-QAH+vfvts51BCsNZ2PhY6HAggnlS6omLLFTsIpeqZk/MmJ6cW7tgz5yRv0fMJThcr6FmbMrENh1RgrWPTYA76g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -5780,36 +5780,36 @@ packages: resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.22.15 - '@babel/types': 7.23.6 + '@babel/template': 7.24.0 + '@babel/types': 7.24.0 dev: false /@babel/helper-hoist-variables@7.22.5: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.6 + '@babel/types': 7.24.0 dev: false /@babel/helper-member-expression-to-functions@7.23.0: resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.6 + '@babel/types': 7.24.0 dev: false /@babel/helper-module-imports@7.18.6: resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.6 + '@babel/types': 7.24.0 dev: false /@babel/helper-module-imports@7.22.15: resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.6 + '@babel/types': 7.24.0 dev: false /@babel/helper-module-transforms@7.23.3(@babel/core@7.24.3): @@ -5833,11 +5833,11 @@ packages: resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.6 + '@babel/types': 7.24.0 dev: false - /@babel/helper-plugin-utils@7.22.5: - resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} + /@babel/helper-plugin-utils@7.24.0: + resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==} engines: {node: '>=6.9.0'} dev: false @@ -5860,21 +5860,21 @@ packages: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.6 + '@babel/types': 7.24.0 dev: false /@babel/helper-skip-transparent-expression-wrappers@7.22.5: resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.6 + '@babel/types': 7.24.0 dev: false /@babel/helper-split-export-declaration@7.22.6: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.23.6 + '@babel/types': 7.24.0 dev: false /@babel/helper-string-parser@7.23.4: @@ -5919,12 +5919,12 @@ packages: picocolors: 1.0.0 dev: false - /@babel/parser@7.23.6: - resolution: {integrity: sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==} + /@babel/parser@7.24.0: + resolution: {integrity: sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.23.6 + '@babel/types': 7.24.0 /@babel/parser@7.24.1: resolution: {integrity: sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==} @@ -5944,7 +5944,7 @@ packages: optional: true dependencies: '@babel/core': 7.24.3 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-plugin-utils': 7.24.0 dev: false /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.24.3): @@ -5957,22 +5957,7 @@ packages: optional: true dependencies: '@babel/core': 7.24.3 - '@babel/helper-plugin-utils': 7.22.5 - dev: false - - /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.24.3): - resolution: {integrity: sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - peerDependenciesMeta: - '@babel/core': - optional: true - dependencies: - '@babel/core': 7.24.3 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-simple-access': 7.22.5 + '@babel/helper-plugin-utils': 7.24.0 dev: false /@babel/plugin-transform-react-jsx-development@7.22.5: @@ -5997,7 +5982,7 @@ packages: optional: true dependencies: '@babel/core': 7.24.3 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-plugin-utils': 7.24.0 dev: false /@babel/plugin-transform-react-jsx-source@7.23.3(@babel/core@7.24.3): @@ -6010,7 +5995,7 @@ packages: optional: true dependencies: '@babel/core': 7.24.3 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-plugin-utils': 7.24.0 dev: false /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.3): @@ -6025,9 +6010,9 @@ packages: '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-module-imports': 7.22.15 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.3) - '@babel/types': 7.23.6 + '@babel/types': 7.24.0 dev: false /@babel/plugin-transform-typescript@7.23.6(@babel/core@7.24.3): @@ -6041,44 +6026,18 @@ packages: dependencies: '@babel/core': 7.24.3 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.24.3) - '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.24.0(@babel/core@7.24.3) + '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.24.3) dev: false - /@babel/preset-typescript@7.23.3(@babel/core@7.24.3): - resolution: {integrity: sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - peerDependenciesMeta: - '@babel/core': - optional: true - dependencies: - '@babel/core': 7.24.3 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.3) - '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.24.3) - '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.24.3) - dev: false - - /@babel/runtime@7.23.7: - resolution: {integrity: sha512-w06OXVOFso7LcbzMiDGt+3X7Rh7Ho8MmgPoWU3rarH+8upf+wSU/grlGbWzQyr3DkdN6ZeuMFjpdwW0Q+HxobA==} + /@babel/runtime@7.24.0: + resolution: {integrity: sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw==} engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.14.1 dev: true - /@babel/template@7.22.15: - resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.23.5 - '@babel/parser': 7.23.6 - '@babel/types': 7.23.6 - dev: false - /@babel/template@7.24.0: resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} engines: {node: '>=6.9.0'} @@ -6088,8 +6047,8 @@ packages: '@babel/types': 7.24.0 dev: false - /@babel/traverse@7.23.7: - resolution: {integrity: sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==} + /@babel/traverse@7.24.0: + resolution: {integrity: sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.23.5 @@ -6098,8 +6057,8 @@ packages: '@babel/helper-function-name': 7.23.0 '@babel/helper-hoist-variables': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.23.6 - '@babel/types': 7.23.6 + '@babel/parser': 7.24.0 + '@babel/types': 7.24.0 debug: 4.3.4(supports-color@8.1.1) globals: 11.12.0 transitivePeerDependencies: @@ -6124,14 +6083,6 @@ packages: - supports-color dev: false - /@babel/types@7.23.6: - resolution: {integrity: sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-string-parser': 7.23.4 - '@babel/helper-validator-identifier': 7.22.20 - to-fast-properties: 2.0.0 - /@babel/types@7.24.0: resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} engines: {node: '>=6.9.0'} @@ -6139,7 +6090,6 @@ packages: '@babel/helper-string-parser': 7.23.4 '@babel/helper-validator-identifier': 7.22.20 to-fast-properties: 2.0.0 - dev: false /@biomejs/biome@1.5.3: resolution: {integrity: sha512-yvZCa/g3akwTaAQ7PCwPWDCkZs3Qa5ONg/fgOUT9e6wAWsPftCjLQFPXBeGxPK30yZSSpgEmRCfpGTmVbUjGgg==} @@ -6229,8 +6179,8 @@ packages: dev: true optional: true - /@builder.io/partytown@0.8.1: - resolution: {integrity: sha512-p4xhEtQCPe8YFJ8e7KT9RptnT+f4lvtbmXymbp1t0bLp+USkNMTxrRMNc3Dlr2w2fpxyX7uA0CyAeU3ju84O4A==} + /@builder.io/partytown@0.8.2: + resolution: {integrity: sha512-WKGE+SO0qUGirW8J+xOWkHeCkfFEoPPvHnFkcdMl+MY3kDbAcTwjZCzjg27JCvoD0h8fH47FR7DSIss0/S5lyg==} engines: {node: '>=18.0.0'} hasBin: true dev: false @@ -6238,7 +6188,7 @@ packages: /@changesets/apply-release-plan@7.0.0: resolution: {integrity: sha512-vfi69JR416qC9hWmFGSxj7N6wA5J222XNBmezSVATPWDVPIF7gkd4d8CpbEbXmRWbVrkoli3oerGS6dcL/BGsQ==} dependencies: - '@babel/runtime': 7.23.7 + '@babel/runtime': 7.24.0 '@changesets/config': 3.0.0 '@changesets/get-version-range-type': 0.4.0 '@changesets/git': 3.0.0 @@ -6250,18 +6200,18 @@ packages: outdent: 0.5.0 prettier: 2.8.8 resolve-from: 5.0.0 - semver: 7.5.4 + semver: 7.6.0 dev: true /@changesets/assemble-release-plan@6.0.0: resolution: {integrity: sha512-4QG7NuisAjisbW4hkLCmGW2lRYdPrKzro+fCtZaILX+3zdUELSvYjpL4GTv0E4aM9Mef3PuIQp89VmHJ4y2bfw==} dependencies: - '@babel/runtime': 7.23.7 + '@babel/runtime': 7.24.0 '@changesets/errors': 0.2.0 '@changesets/get-dependents-graph': 2.0.0 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 - semver: 7.5.4 + semver: 7.6.0 dev: true /@changesets/changelog-git@0.2.0: @@ -6284,7 +6234,7 @@ packages: resolution: {integrity: sha512-iJ91xlvRnnrJnELTp4eJJEOPjgpF3NOh4qeQehM6Ugiz9gJPRZ2t+TsXun6E3AMN4hScZKjqVXl0TX+C7AB3ZQ==} hasBin: true dependencies: - '@babel/runtime': 7.23.7 + '@babel/runtime': 7.24.0 '@changesets/apply-release-plan': 7.0.0 '@changesets/assemble-release-plan': 6.0.0 '@changesets/changelog-git': 0.2.0 @@ -6299,7 +6249,7 @@ packages: '@changesets/types': 6.0.0 '@changesets/write': 0.3.0 '@manypkg/get-packages': 1.1.3 - '@types/semver': 7.5.6 + '@types/semver': 7.5.8 ansi-colors: 4.1.3 chalk: 2.4.2 ci-info: 3.9.0 @@ -6310,9 +6260,9 @@ packages: meow: 6.1.1 outdent: 0.5.0 p-limit: 2.3.0 - preferred-pm: 3.1.2 + preferred-pm: 3.1.3 resolve-from: 5.0.0 - semver: 7.5.4 + semver: 7.6.0 spawndamnit: 2.0.0 term-size: 2.2.1 tty-table: 4.2.3 @@ -6343,7 +6293,7 @@ packages: '@manypkg/get-packages': 1.1.3 chalk: 2.4.2 fs-extra: 7.0.1 - semver: 7.5.4 + semver: 7.6.0 dev: true /@changesets/get-github-info@0.5.2: @@ -6358,7 +6308,7 @@ packages: /@changesets/get-release-plan@4.0.0: resolution: {integrity: sha512-9L9xCUeD/Tb6L/oKmpm8nyzsOzhdNBBbt/ZNcjynbHC07WW4E1eX8NMGC5g5SbM5z/V+MOrYsJ4lRW41GCbg3w==} dependencies: - '@babel/runtime': 7.23.7 + '@babel/runtime': 7.24.0 '@changesets/assemble-release-plan': 6.0.0 '@changesets/config': 3.0.0 '@changesets/pre': 2.0.0 @@ -6374,7 +6324,7 @@ packages: /@changesets/git@3.0.0: resolution: {integrity: sha512-vvhnZDHe2eiBNRFHEgMiGd2CT+164dfYyrJDhwwxTVD/OW0FUD6G7+4DIx1dNwkwjHyzisxGAU96q0sVNBns0w==} dependencies: - '@babel/runtime': 7.23.7 + '@babel/runtime': 7.24.0 '@changesets/errors': 0.2.0 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 @@ -6399,7 +6349,7 @@ packages: /@changesets/pre@2.0.0: resolution: {integrity: sha512-HLTNYX/A4jZxc+Sq8D1AMBsv+1qD6rmmJtjsCJa/9MSRybdxh0mjbTvE6JYZQ/ZiQ0mMlDOlGPXTm9KLTU3jyw==} dependencies: - '@babel/runtime': 7.23.7 + '@babel/runtime': 7.24.0 '@changesets/errors': 0.2.0 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 @@ -6409,7 +6359,7 @@ packages: /@changesets/read@0.6.0: resolution: {integrity: sha512-ZypqX8+/im1Fm98K4YcZtmLKgjs1kDQ5zHpc2U1qdtNBmZZfo/IBiG162RoP0CUF05tvp2y4IspH11PLnPxuuw==} dependencies: - '@babel/runtime': 7.23.7 + '@babel/runtime': 7.24.0 '@changesets/git': 3.0.0 '@changesets/logger': 0.1.0 '@changesets/parse': 0.4.0 @@ -6434,7 +6384,7 @@ packages: /@changesets/write@0.3.0: resolution: {integrity: sha512-slGLb21fxZVUYbyea+94uFiD6ntQW0M2hIKNznFizDhZPDgn2c/fv1UzzlW43RVzh1BEDuIqW6hzlJ1OflNmcw==} dependencies: - '@babel/runtime': 7.23.7 + '@babel/runtime': 7.24.0 '@changesets/types': 6.0.0 fs-extra: 7.0.1 human-id: 1.0.2 @@ -6465,15 +6415,15 @@ packages: dev: false optional: true - /@csstools/cascade-layer-name-parser@1.0.7(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3): - resolution: {integrity: sha512-9J4aMRJ7A2WRjaRLvsMeWrL69FmEuijtiW1XlK/sG+V0UJiHVYUyvj9mY4WAXfU/hGIiGOgL8e0jJcRyaZTjDQ==} + /@csstools/cascade-layer-name-parser@1.0.9(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4): + resolution: {integrity: sha512-RRqNjxTZDUhx7pxYOBG/AkCVmPS3zYzfE47GEhIGkFuWFTQGJBgWOUUkKNo5MfxIfjDz5/1L3F3rF1oIsYaIpw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: - '@csstools/css-parser-algorithms': ^2.5.0 - '@csstools/css-tokenizer': ^2.2.3 + '@csstools/css-parser-algorithms': ^2.6.1 + '@csstools/css-tokenizer': ^2.2.4 dependencies: - '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3) - '@csstools/css-tokenizer': 2.2.3 + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 dev: true /@csstools/color-helpers@4.0.0: @@ -6481,371 +6431,413 @@ packages: engines: {node: ^14 || ^16 || >=18} dev: true - /@csstools/css-calc@1.1.6(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3): - resolution: {integrity: sha512-YHPAuFg5iA4qZGzMzvrQwzkvJpesXXyIUyaONflQrjtHB+BcFFbgltJkIkb31dMGO4SE9iZFA4HYpdk7+hnYew==} + /@csstools/css-calc@1.2.0(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4): + resolution: {integrity: sha512-iQqIW5vDPqQdLx07/atCuNKDprhIWjB0b8XRhUyXZWBZYUG+9mNyFwyu30rypX84WLevVo25NYW2ipxR8WyseQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: - '@csstools/css-parser-algorithms': ^2.5.0 - '@csstools/css-tokenizer': ^2.2.3 + '@csstools/css-parser-algorithms': ^2.6.1 + '@csstools/css-tokenizer': ^2.2.4 dependencies: - '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3) - '@csstools/css-tokenizer': 2.2.3 + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 dev: true - /@csstools/css-color-parser@1.5.1(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3): - resolution: {integrity: sha512-x+SajGB2paGrTjPOUorGi8iCztF008YMKXTn+XzGVDBEIVJ/W1121pPerpneJYGOe1m6zWLPLnzOPaznmQxKFw==} + /@csstools/css-color-parser@1.6.2(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4): + resolution: {integrity: sha512-mlt0PomBlDXMGcbPAqCG36Fw35LZTtaSgCQCHEs4k8QTv1cUKe0rJDlFSJMHtqrgQiLC7LAAS9+s9kKQp2ou/Q==} engines: {node: ^14 || ^16 || >=18} peerDependencies: - '@csstools/css-parser-algorithms': ^2.5.0 - '@csstools/css-tokenizer': ^2.2.3 + '@csstools/css-parser-algorithms': ^2.6.1 + '@csstools/css-tokenizer': ^2.2.4 dependencies: '@csstools/color-helpers': 4.0.0 - '@csstools/css-calc': 1.1.6(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3) - '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3) - '@csstools/css-tokenizer': 2.2.3 + '@csstools/css-calc': 1.2.0(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 dev: true - /@csstools/css-parser-algorithms@2.5.0(@csstools/css-tokenizer@2.2.3): - resolution: {integrity: sha512-abypo6m9re3clXA00eu5syw+oaPHbJTPapu9C4pzNsJ4hdZDzushT50Zhu+iIYXgEe1CxnRMn7ngsbV+MLrlpQ==} + /@csstools/css-parser-algorithms@2.6.1(@csstools/css-tokenizer@2.2.4): + resolution: {integrity: sha512-ubEkAaTfVZa+WwGhs5jbo5Xfqpeaybr/RvWzvFxRs4jfq16wH8l8Ty/QEEpINxll4xhuGfdMbipRyz5QZh9+FA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: - '@csstools/css-tokenizer': ^2.2.3 + '@csstools/css-tokenizer': ^2.2.4 dependencies: - '@csstools/css-tokenizer': 2.2.3 + '@csstools/css-tokenizer': 2.2.4 dev: true - /@csstools/css-tokenizer@2.2.3: - resolution: {integrity: sha512-pp//EvZ9dUmGuGtG1p+n17gTHEOqu9jO+FiCUjNN3BDmyhdA2Jq9QsVeR7K8/2QCK17HSsioPlTW9ZkzoWb3Lg==} + /@csstools/css-tokenizer@2.2.4: + resolution: {integrity: sha512-PuWRAewQLbDhGeTvFuq2oClaSCKPIBmHyIobCV39JHRYN0byDcUWJl5baPeNUcqrjtdMNqFooE0FGl31I3JOqw==} engines: {node: ^14 || ^16 || >=18} dev: true - /@csstools/media-query-list-parser@2.1.7(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3): - resolution: {integrity: sha512-lHPKJDkPUECsyAvD60joYfDmp8UERYxHGkFfyLJFTVK/ERJe0sVlIFLXU5XFxdjNDTerp5L4KeaKG+Z5S94qxQ==} + /@csstools/media-query-list-parser@2.1.9(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4): + resolution: {integrity: sha512-qqGuFfbn4rUmyOB0u8CVISIp5FfJ5GAR3mBrZ9/TKndHakdnm6pY0L/fbLcpPnrzwCyyTEZl1nUcXAYHEWneTA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: - '@csstools/css-parser-algorithms': ^2.5.0 - '@csstools/css-tokenizer': ^2.2.3 + '@csstools/css-parser-algorithms': ^2.6.1 + '@csstools/css-tokenizer': ^2.2.4 dependencies: - '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3) - '@csstools/css-tokenizer': 2.2.3 + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 dev: true - /@csstools/postcss-cascade-layers@4.0.2(postcss@8.4.32): - resolution: {integrity: sha512-PqM+jvg5T2tB4FHX+akrMGNWAygLupD4FNUjcv4PSvtVuWZ6ISxuo37m4jFGU7Jg3rCfloGzKd0+xfr5Ec3vZQ==} + /@csstools/postcss-cascade-layers@4.0.3(postcss@8.4.36): + resolution: {integrity: sha512-RbkQoOH23yGhWVetgBTwFgIOHEyU2tKMN7blTz/YAKKabR6tr9pP7mYS23Q9snFY2hr8WSaV8Le64KdM9BtUSA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/selector-specificity': 3.0.1(postcss-selector-parser@6.0.15) - postcss: 8.4.32 - postcss-selector-parser: 6.0.15 + '@csstools/selector-specificity': 3.0.2(postcss-selector-parser@6.0.16) + postcss: 8.4.36 + postcss-selector-parser: 6.0.16 dev: true - /@csstools/postcss-color-function@3.0.9(postcss@8.4.32): - resolution: {integrity: sha512-6Hbkw/4k73UH121l4LG+LNLKSvrfHqk3GHHH0A6/iFlD0xGmsWAr80Jd0VqXjfYbUTOGmJTOMMoxv3jvNxt1uw==} + /@csstools/postcss-color-function@3.0.12(postcss@8.4.36): + resolution: {integrity: sha512-amPGGDI4Xmgu7VN2ciKQe0pP/j5raaETT50nzbnkydp9FMw7imKxSUnXdVQU4NmRgpLKIc5Q7jox0MFhMBImIg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/css-color-parser': 1.5.1(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3) - '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3) - '@csstools/css-tokenizer': 2.2.3 - '@csstools/postcss-progressive-custom-properties': 3.0.3(postcss@8.4.32) - postcss: 8.4.32 + '@csstools/css-color-parser': 1.6.2(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + '@csstools/postcss-progressive-custom-properties': 3.1.1(postcss@8.4.36) + '@csstools/utilities': 1.0.0(postcss@8.4.36) + postcss: 8.4.36 dev: true - /@csstools/postcss-color-mix-function@2.0.9(postcss@8.4.32): - resolution: {integrity: sha512-fs1SOWJ/44DQSsDeJP+rxAkP2MYkCg6K4ZB8qJwFku2EjurgCAPiPZJvC6w94T1hBBinJwuMfT9qvvvniXyVgw==} + /@csstools/postcss-color-mix-function@2.0.12(postcss@8.4.36): + resolution: {integrity: sha512-qpAEGwVVqHSa88i3gLb43IMpT4/LyZEE8HzZylQKKXFVJ7XykXaORTmXySxyH6H+flT+NyCnutKG2fegCVyCug==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/css-color-parser': 1.5.1(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3) - '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3) - '@csstools/css-tokenizer': 2.2.3 - '@csstools/postcss-progressive-custom-properties': 3.0.3(postcss@8.4.32) - postcss: 8.4.32 + '@csstools/css-color-parser': 1.6.2(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + '@csstools/postcss-progressive-custom-properties': 3.1.1(postcss@8.4.36) + '@csstools/utilities': 1.0.0(postcss@8.4.36) + postcss: 8.4.36 dev: true - /@csstools/postcss-exponential-functions@1.0.3(postcss@8.4.32): - resolution: {integrity: sha512-IfGtEg3eC4b8Nd/kPgO3SxgKb33YwhHVsL0eJ3UYihx6fzzAiZwNbWmVW9MZTQjZ5GacgKxa4iAHikGvpwuIjw==} + /@csstools/postcss-exponential-functions@1.0.5(postcss@8.4.36): + resolution: {integrity: sha512-7S7I7KgwHWQYzJJAoIjRtUf7DQs1dxipeg1A6ikZr0PYapNJX7UHz0evlpE67SQqYj1xBs70gpG7xUv3uLp4PA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/css-calc': 1.1.6(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3) - '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3) - '@csstools/css-tokenizer': 2.2.3 - postcss: 8.4.32 + '@csstools/css-calc': 1.2.0(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + postcss: 8.4.36 dev: true - /@csstools/postcss-font-format-keywords@3.0.1(postcss@8.4.32): - resolution: {integrity: sha512-D1lcG2sfotTq6yBEOMV3myFxJLT10F3DLYZJMbiny5YToqzHWodZen8WId3UTimm0mEHitXqAUNL5jdd6RzVdA==} + /@csstools/postcss-font-format-keywords@3.0.2(postcss@8.4.36): + resolution: {integrity: sha512-E0xz2sjm4AMCkXLCFvI/lyl4XO6aN1NCSMMVEOngFDJ+k2rDwfr6NDjWljk1li42jiLNChVX+YFnmfGCigZKXw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 + '@csstools/utilities': 1.0.0(postcss@8.4.36) + postcss: 8.4.36 postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-gamut-mapping@1.0.2(postcss@8.4.32): - resolution: {integrity: sha512-zf9KHGM2PTuJEm4ZYg4DTmzCir38EbZBzlMPMbA4jbhLDqXHkqwnQ+Z5+UNrU8y6seVu5B4vzZmZarTFQwe+Ig==} + /@csstools/postcss-gamut-mapping@1.0.5(postcss@8.4.36): + resolution: {integrity: sha512-AJ74/4nHXgghLWY4/ydEhu3mzwN8c56EjIGrJsoEhKaNuGBAOtUfE5qbkc9XQQ0G2FMhHggqE+9eRrApeK7ebQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/css-color-parser': 1.5.1(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3) - '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3) - '@csstools/css-tokenizer': 2.2.3 - postcss: 8.4.32 + '@csstools/css-color-parser': 1.6.2(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + postcss: 8.4.36 dev: true - /@csstools/postcss-gradients-interpolation-method@4.0.9(postcss@8.4.32): - resolution: {integrity: sha512-PSqR6QH7h3ggOl8TsoH73kbwYTKVQjAJauGg6nDKwaGfi5IL5StV//ehrv1C7HuPsHixMTc9YoAuuv1ocT20EQ==} + /@csstools/postcss-gradients-interpolation-method@4.0.13(postcss@8.4.36): + resolution: {integrity: sha512-dBbyxs9g+mrIzmEH+UtrqJUmvcJB/60j0ijhBcVJMHCgl/rKjj8ey6r/pJOI0EhkVsckOu3Prc9AGzH88C+1pQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/css-color-parser': 1.5.1(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3) - '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3) - '@csstools/css-tokenizer': 2.2.3 - '@csstools/postcss-progressive-custom-properties': 3.0.3(postcss@8.4.32) - postcss: 8.4.32 + '@csstools/css-color-parser': 1.6.2(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + '@csstools/postcss-progressive-custom-properties': 3.1.1(postcss@8.4.36) + '@csstools/utilities': 1.0.0(postcss@8.4.36) + postcss: 8.4.36 dev: true - /@csstools/postcss-hwb-function@3.0.8(postcss@8.4.32): - resolution: {integrity: sha512-CRQEG372Hivmt17rm/Ho22hBQI9K/a6grzGQ21Zwc7dyspmyG0ibmPIW8hn15vJmXqWGeNq7S+L2b8/OrU7O5A==} + /@csstools/postcss-hwb-function@3.0.11(postcss@8.4.36): + resolution: {integrity: sha512-c36FtMFptwGn5CmsfdONA40IlWG2lHeoC/TDyED/7lwiTht5okxe6iLAa9t2LjBBo5AHQSHfeMvOASdXk/SHog==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/css-color-parser': 1.5.1(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3) - '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3) - '@csstools/css-tokenizer': 2.2.3 - postcss: 8.4.32 + '@csstools/css-color-parser': 1.6.2(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + '@csstools/postcss-progressive-custom-properties': 3.1.1(postcss@8.4.36) + '@csstools/utilities': 1.0.0(postcss@8.4.36) + postcss: 8.4.36 dev: true - /@csstools/postcss-ic-unit@3.0.3(postcss@8.4.32): - resolution: {integrity: sha512-MpcmIL0/uMm/cFWh5V/9nbKKJ7jRr2qTYW5Q6zoE6HZ6uzOBJr2KRERv5/x8xzEBQ1MthDT7iP1EBp9luSQy7g==} + /@csstools/postcss-ic-unit@3.0.5(postcss@8.4.36): + resolution: {integrity: sha512-9CriM/zvKXa/lDARlxs/MgeyKE6ZmmX4V77VLD7VUxKLVSt0Go3NCy/gRMbwGzxbrk3iaHFXnFbc2lNw+/7jcg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/postcss-progressive-custom-properties': 3.0.3(postcss@8.4.32) - postcss: 8.4.32 + '@csstools/postcss-progressive-custom-properties': 3.1.1(postcss@8.4.36) + '@csstools/utilities': 1.0.0(postcss@8.4.36) + postcss: 8.4.36 postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-initial@1.0.1(postcss@8.4.32): + /@csstools/postcss-initial@1.0.1(postcss@8.4.36): resolution: {integrity: sha512-wtb+IbUIrIf8CrN6MLQuFR7nlU5C7PwuebfeEXfjthUha1+XZj2RVi+5k/lukToA24sZkYAiSJfHM8uG/UZIdg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 + postcss: 8.4.36 + dev: true + + /@csstools/postcss-is-pseudo-class@4.0.5(postcss@8.4.36): + resolution: {integrity: sha512-qG3MI7IN3KY9UwdaE9E7G7sFydscVW7nAj5OGwaBP9tQPEEVdxXTGI+l1ZW5EUpZFSj+u3q/22fH5+8HI72+Bg==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/selector-specificity': 3.0.2(postcss-selector-parser@6.0.16) + postcss: 8.4.36 + postcss-selector-parser: 6.0.16 dev: true - /@csstools/postcss-is-pseudo-class@4.0.4(postcss@8.4.32): - resolution: {integrity: sha512-vTVO/uZixpTVAOQt3qZRUFJ/K1L03OfNkeJ8sFNDVNdVy/zW0h1L5WT7HIPMDUkvSrxQkFaCCybTZkUP7UESlQ==} + /@csstools/postcss-light-dark-function@1.0.1(postcss@8.4.36): + resolution: {integrity: sha512-CJOcp+m7Njbu91HtYMMoYuZznsvNSpJtLiR/7BO8/bHTXYPiuAZfxunh7wXLkMbHd5dRBgAVAQZ+H4iFqrvWZw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/selector-specificity': 3.0.1(postcss-selector-parser@6.0.15) - postcss: 8.4.32 - postcss-selector-parser: 6.0.15 + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + '@csstools/postcss-progressive-custom-properties': 3.1.1(postcss@8.4.36) + '@csstools/utilities': 1.0.0(postcss@8.4.36) + postcss: 8.4.36 dev: true - /@csstools/postcss-logical-float-and-clear@2.0.1(postcss@8.4.32): + /@csstools/postcss-logical-float-and-clear@2.0.1(postcss@8.4.36): resolution: {integrity: sha512-SsrWUNaXKr+e/Uo4R/uIsqJYt3DaggIh/jyZdhy/q8fECoJSKsSMr7nObSLdvoULB69Zb6Bs+sefEIoMG/YfOA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 + postcss: 8.4.36 dev: true - /@csstools/postcss-logical-overflow@1.0.1(postcss@8.4.32): + /@csstools/postcss-logical-overflow@1.0.1(postcss@8.4.36): resolution: {integrity: sha512-Kl4lAbMg0iyztEzDhZuQw8Sj9r2uqFDcU1IPl+AAt2nue8K/f1i7ElvKtXkjhIAmKiy5h2EY8Gt/Cqg0pYFDCw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 + postcss: 8.4.36 dev: true - /@csstools/postcss-logical-overscroll-behavior@1.0.1(postcss@8.4.32): + /@csstools/postcss-logical-overscroll-behavior@1.0.1(postcss@8.4.36): resolution: {integrity: sha512-+kHamNxAnX8ojPCtV8WPcUP3XcqMFBSDuBuvT6MHgq7oX4IQxLIXKx64t7g9LiuJzE7vd06Q9qUYR6bh4YnGpQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 + postcss: 8.4.36 dev: true - /@csstools/postcss-logical-resize@2.0.1(postcss@8.4.32): + /@csstools/postcss-logical-resize@2.0.1(postcss@8.4.36): resolution: {integrity: sha512-W5Gtwz7oIuFcKa5SmBjQ2uxr8ZoL7M2bkoIf0T1WeNqljMkBrfw1DDA8/J83k57NQ1kcweJEjkJ04pUkmyee3A==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 + postcss: 8.4.36 postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-logical-viewport-units@2.0.5(postcss@8.4.32): - resolution: {integrity: sha512-2fjSamKN635DSW6fEoyNd2Bkpv3FVblUpgk5cpghIgPW1aDHZE2SYfZK5xQALvjMYZVjfqsD5EbXA7uDVBQVQA==} + /@csstools/postcss-logical-viewport-units@2.0.7(postcss@8.4.36): + resolution: {integrity: sha512-L4G3zsp/bnU0+WXUyysihCUH14LkfMgUJsS9vKz3vCYbVobOTqQRoNXnEPpyNp8WYyolLqAWbGGJhVu8J6u2OQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/css-tokenizer': 2.2.3 - postcss: 8.4.32 + '@csstools/css-tokenizer': 2.2.4 + '@csstools/utilities': 1.0.0(postcss@8.4.36) + postcss: 8.4.36 dev: true - /@csstools/postcss-media-minmax@1.1.2(postcss@8.4.32): - resolution: {integrity: sha512-7qTRTJxW96u2yiEaTep1+8nto1O/rEDacewKqH+Riq5E6EsHTOmGHxkB4Se5Ic5xgDC4I05lLZxzzxnlnSypxA==} + /@csstools/postcss-media-minmax@1.1.4(postcss@8.4.36): + resolution: {integrity: sha512-xl/PIO3TUbXO1ZA4SA6HCw+Q9UGe2cgeRKx3lHCzoNig2D4bT5vfVCOrwhxjUb09oHihc9eI3I0iIfVPiXaN1A==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/css-calc': 1.1.6(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3) - '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3) - '@csstools/css-tokenizer': 2.2.3 - '@csstools/media-query-list-parser': 2.1.7(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3) - postcss: 8.4.32 + '@csstools/css-calc': 1.2.0(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + '@csstools/media-query-list-parser': 2.1.9(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + postcss: 8.4.36 dev: true - /@csstools/postcss-media-queries-aspect-ratio-number-values@2.0.5(postcss@8.4.32): - resolution: {integrity: sha512-XHMPasWYPWa9XaUHXU6Iq0RLfoAI+nvGTPj51hOizNsHaAyFiq2SL4JvF1DU8lM6B70+HVzKM09Isbyrr755Bw==} + /@csstools/postcss-media-queries-aspect-ratio-number-values@2.0.7(postcss@8.4.36): + resolution: {integrity: sha512-HBDAQw1K0NilcHGMUHv8jzf2mpOtcWTVKtuY3AeZ5TS1uyWWNVi5/yuA/tREPLU9WifNdqHQ+rfbsV/8zTIkTg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3) - '@csstools/css-tokenizer': 2.2.3 - '@csstools/media-query-list-parser': 2.1.7(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3) - postcss: 8.4.32 + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + '@csstools/media-query-list-parser': 2.1.9(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + postcss: 8.4.36 dev: true - /@csstools/postcss-nested-calc@3.0.1(postcss@8.4.32): - resolution: {integrity: sha512-bwwababZpWRm0ByHaWBxTsDGTMhZKmtUNl3Wt0Eom8AY7ORgXx5qF9SSk1vEFrCi+HOfJT6M6W5KPgzXuQNRwQ==} + /@csstools/postcss-nested-calc@3.0.2(postcss@8.4.36): + resolution: {integrity: sha512-ySUmPyawiHSmBW/VI44+IObcKH0v88LqFe0d09Sb3w4B1qjkaROc6d5IA3ll9kjD46IIX/dbO5bwFN/swyoyZA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 + '@csstools/utilities': 1.0.0(postcss@8.4.36) + postcss: 8.4.36 postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-normalize-display-values@3.0.2(postcss@8.4.32): + /@csstools/postcss-normalize-display-values@3.0.2(postcss@8.4.36): resolution: {integrity: sha512-fCapyyT/dUdyPtrelQSIV+d5HqtTgnNP/BEG9IuhgXHt93Wc4CfC1bQ55GzKAjWrZbgakMQ7MLfCXEf3rlZJOw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 + postcss: 8.4.36 postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-oklab-function@3.0.9(postcss@8.4.32): - resolution: {integrity: sha512-l639gpcBfL3ogJe+og1M5FixQn8iGX8+29V7VtTSCUB37VzpzOC05URfde7INIdiJT65DkHzgdJ64/QeYggU8A==} + /@csstools/postcss-oklab-function@3.0.12(postcss@8.4.36): + resolution: {integrity: sha512-RNitTHamFvUUh8x+MJuPd2tCekYexUrylGKfUoor5D2GGcgzY1WB6Bl3pIj9t8bAq5h/lcacKaB2wmvUOTfGgQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/css-color-parser': 1.5.1(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3) - '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3) - '@csstools/css-tokenizer': 2.2.3 - '@csstools/postcss-progressive-custom-properties': 3.0.3(postcss@8.4.32) - postcss: 8.4.32 + '@csstools/css-color-parser': 1.6.2(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + '@csstools/postcss-progressive-custom-properties': 3.1.1(postcss@8.4.36) + '@csstools/utilities': 1.0.0(postcss@8.4.36) + postcss: 8.4.36 dev: true - /@csstools/postcss-progressive-custom-properties@3.0.3(postcss@8.4.32): - resolution: {integrity: sha512-WipTVh6JTMQfeIrzDV4wEPsV9NTzMK2jwXxyH6CGBktuWdivHnkioP/smp1x/0QDPQyx7NTS14RB+GV3zZZYEw==} + /@csstools/postcss-progressive-custom-properties@3.1.1(postcss@8.4.36): + resolution: {integrity: sha512-cx/bZgj+MK8SpRZNTu2zGeVFMCQfhsaeuDhukAhfA53yykvIXaTIwLi5shW9hfkvPrkqBeFoiRAzq/qogxeHTA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 + postcss: 8.4.36 postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-relative-color-syntax@2.0.9(postcss@8.4.32): - resolution: {integrity: sha512-2UoaRd2iIuzUGtYgteN5fJ0s+OfCiV7PvCnw8MCh3om8+SeVinfG8D5sqBOvImxFVfrp6k60XF5RFlH6oc//fg==} + /@csstools/postcss-relative-color-syntax@2.0.12(postcss@8.4.36): + resolution: {integrity: sha512-VreDGDgE634niwCytLtkoE5kRxfva7bnMzSoyok7Eh9VPYFOm8CK/oJXt9y3df71Bxc9PG4KC8RA3CxTknudnw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/css-color-parser': 1.5.1(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3) - '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3) - '@csstools/css-tokenizer': 2.2.3 - '@csstools/postcss-progressive-custom-properties': 3.0.3(postcss@8.4.32) - postcss: 8.4.32 + '@csstools/css-color-parser': 1.6.2(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + '@csstools/postcss-progressive-custom-properties': 3.1.1(postcss@8.4.36) + '@csstools/utilities': 1.0.0(postcss@8.4.36) + postcss: 8.4.36 dev: true - /@csstools/postcss-scope-pseudo-class@3.0.1(postcss@8.4.32): + /@csstools/postcss-scope-pseudo-class@3.0.1(postcss@8.4.36): resolution: {integrity: sha512-3ZFonK2gfgqg29gUJ2w7xVw2wFJ1eNWVDONjbzGkm73gJHVCYK5fnCqlLr+N+KbEfv2XbWAO0AaOJCFB6Fer6A==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 - postcss-selector-parser: 6.0.15 + postcss: 8.4.36 + postcss-selector-parser: 6.0.16 dev: true - /@csstools/postcss-stepped-value-functions@3.0.4(postcss@8.4.32): - resolution: {integrity: sha512-gyNQ2YaOVXPqLR737XtReRPVu7DGKBr9JBDLoiH1T+N1ggV3r4HotRCOC1l6rxVC0zOuU1KiOzUn9Z5W838/rg==} + /@csstools/postcss-stepped-value-functions@3.0.6(postcss@8.4.36): + resolution: {integrity: sha512-rnyp8tWRuBXERTHVdB5hjUlif5dQgPcyN+BX55wUnYpZ3LN9QPfK2Z3/HUZymwyou8Gg6vhd6X2W+g1pLq1jYg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/css-calc': 1.1.6(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3) - '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3) - '@csstools/css-tokenizer': 2.2.3 - postcss: 8.4.32 + '@csstools/css-calc': 1.2.0(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + postcss: 8.4.36 dev: true - /@csstools/postcss-text-decoration-shorthand@3.0.4(postcss@8.4.32): + /@csstools/postcss-text-decoration-shorthand@3.0.4(postcss@8.4.36): resolution: {integrity: sha512-yUZmbnUemgQmja7SpOZeU45+P49wNEgQguRdyTktFkZsHf7Gof+ZIYfvF6Cm+LsU1PwSupy4yUeEKKjX5+k6cQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: '@csstools/color-helpers': 4.0.0 - postcss: 8.4.32 + postcss: 8.4.36 postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-trigonometric-functions@3.0.4(postcss@8.4.32): - resolution: {integrity: sha512-qj4Cxth6c38iNYzfJJWAxt8jsLrZaMVmbfGDDLOlI2YJeZoC3A5Su6/Kr7oXaPFRuspUu+4EQHngOktqVHWfVg==} + /@csstools/postcss-trigonometric-functions@3.0.6(postcss@8.4.36): + resolution: {integrity: sha512-i5Zd0bMJooZAn+ZcDmPij2WCkcOJJJ6opzK+QeDjxbMrYmoGQl0CY8FDHdeQyBF1Nly+Q0Fq3S7QfdNLKBBaCg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/css-calc': 1.1.6(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3) - '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3) - '@csstools/css-tokenizer': 2.2.3 - postcss: 8.4.32 + '@csstools/css-calc': 1.2.0(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + postcss: 8.4.36 dev: true - /@csstools/postcss-unset-value@3.0.1(postcss@8.4.32): + /@csstools/postcss-unset-value@3.0.1(postcss@8.4.36): resolution: {integrity: sha512-dbDnZ2ja2U8mbPP0Hvmt2RMEGBiF1H7oY6HYSpjteXJGihYwgxgTr6KRbbJ/V6c+4wd51M+9980qG4gKVn5ttg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 + postcss: 8.4.36 + dev: true + + /@csstools/selector-resolve-nested@1.1.0(postcss-selector-parser@6.0.16): + resolution: {integrity: sha512-uWvSaeRcHyeNenKg8tp17EVDRkpflmdyvbE0DHo6D/GdBb6PDnCYYU6gRpXhtICMGMcahQmj2zGxwFM/WC8hCg==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss-selector-parser: ^6.0.13 + dependencies: + postcss-selector-parser: 6.0.16 dev: true - /@csstools/selector-specificity@3.0.1(postcss-selector-parser@6.0.15): - resolution: {integrity: sha512-NPljRHkq4a14YzZ3YD406uaxh7s0g6eAq3L9aLOWywoqe8PkYamAvtsh7KNX6c++ihDrJ0RiU+/z7rGnhlZ5ww==} + /@csstools/selector-specificity@3.0.2(postcss-selector-parser@6.0.16): + resolution: {integrity: sha512-RpHaZ1h9LE7aALeQXmXrJkRG84ZxIsctEN2biEUmFyKpzFM3zZ35eUMcIzZFsw/2olQE6v69+esEqU2f1MKycg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss-selector-parser: ^6.0.13 dependencies: - postcss-selector-parser: 6.0.15 + postcss-selector-parser: 6.0.16 + dev: true + + /@csstools/utilities@1.0.0(postcss@8.4.36): + resolution: {integrity: sha512-tAgvZQe/t2mlvpNosA4+CkMiZ2azISW5WPAcdSalZlEjQvUfghHxfQcrCiK/7/CrfAWVxyM88kGFYO82heIGDg==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: 8.4.36 dev: true /@emmetio/abbreviation@2.3.3: @@ -6861,197 +6853,197 @@ packages: /@emmetio/scanner@1.0.4: resolution: {integrity: sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA==} - /@esbuild/aix-ppc64@0.19.11: - resolution: {integrity: sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g==} + /@esbuild/aix-ppc64@0.19.12: + resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} engines: {node: '>=12'} cpu: [ppc64] os: [aix] requiresBuild: true optional: true - /@esbuild/android-arm64@0.19.11: - resolution: {integrity: sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==} + /@esbuild/android-arm64@0.19.12: + resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} engines: {node: '>=12'} cpu: [arm64] os: [android] requiresBuild: true optional: true - /@esbuild/android-arm@0.19.11: - resolution: {integrity: sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==} + /@esbuild/android-arm@0.19.12: + resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} engines: {node: '>=12'} cpu: [arm] os: [android] requiresBuild: true optional: true - /@esbuild/android-x64@0.19.11: - resolution: {integrity: sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==} + /@esbuild/android-x64@0.19.12: + resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} engines: {node: '>=12'} cpu: [x64] os: [android] requiresBuild: true optional: true - /@esbuild/darwin-arm64@0.19.11: - resolution: {integrity: sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==} + /@esbuild/darwin-arm64@0.19.12: + resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] requiresBuild: true optional: true - /@esbuild/darwin-x64@0.19.11: - resolution: {integrity: sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==} + /@esbuild/darwin-x64@0.19.12: + resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} engines: {node: '>=12'} cpu: [x64] os: [darwin] requiresBuild: true optional: true - /@esbuild/freebsd-arm64@0.19.11: - resolution: {integrity: sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==} + /@esbuild/freebsd-arm64@0.19.12: + resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] requiresBuild: true optional: true - /@esbuild/freebsd-x64@0.19.11: - resolution: {integrity: sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==} + /@esbuild/freebsd-x64@0.19.12: + resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] requiresBuild: true optional: true - /@esbuild/linux-arm64@0.19.11: - resolution: {integrity: sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==} + /@esbuild/linux-arm64@0.19.12: + resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} engines: {node: '>=12'} cpu: [arm64] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-arm@0.19.11: - resolution: {integrity: sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==} + /@esbuild/linux-arm@0.19.12: + resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} engines: {node: '>=12'} cpu: [arm] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-ia32@0.19.11: - resolution: {integrity: sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==} + /@esbuild/linux-ia32@0.19.12: + resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} engines: {node: '>=12'} cpu: [ia32] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-loong64@0.19.11: - resolution: {integrity: sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==} + /@esbuild/linux-loong64@0.19.12: + resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} engines: {node: '>=12'} cpu: [loong64] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-mips64el@0.19.11: - resolution: {integrity: sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==} + /@esbuild/linux-mips64el@0.19.12: + resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-ppc64@0.19.11: - resolution: {integrity: sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==} + /@esbuild/linux-ppc64@0.19.12: + resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-riscv64@0.19.11: - resolution: {integrity: sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==} + /@esbuild/linux-riscv64@0.19.12: + resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-s390x@0.19.11: - resolution: {integrity: sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==} + /@esbuild/linux-s390x@0.19.12: + resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} engines: {node: '>=12'} cpu: [s390x] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-x64@0.19.11: - resolution: {integrity: sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==} + /@esbuild/linux-x64@0.19.12: + resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} engines: {node: '>=12'} cpu: [x64] os: [linux] requiresBuild: true optional: true - /@esbuild/netbsd-x64@0.19.11: - resolution: {integrity: sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==} + /@esbuild/netbsd-x64@0.19.12: + resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] requiresBuild: true optional: true - /@esbuild/openbsd-x64@0.19.11: - resolution: {integrity: sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==} + /@esbuild/openbsd-x64@0.19.12: + resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] requiresBuild: true optional: true - /@esbuild/sunos-x64@0.19.11: - resolution: {integrity: sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==} + /@esbuild/sunos-x64@0.19.12: + resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} engines: {node: '>=12'} cpu: [x64] os: [sunos] requiresBuild: true optional: true - /@esbuild/win32-arm64@0.19.11: - resolution: {integrity: sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==} + /@esbuild/win32-arm64@0.19.12: + resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} engines: {node: '>=12'} cpu: [arm64] os: [win32] requiresBuild: true optional: true - /@esbuild/win32-ia32@0.19.11: - resolution: {integrity: sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==} + /@esbuild/win32-ia32@0.19.12: + resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} engines: {node: '>=12'} cpu: [ia32] os: [win32] requiresBuild: true optional: true - /@esbuild/win32-x64@0.19.11: - resolution: {integrity: sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==} + /@esbuild/win32-x64@0.19.12: + resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} engines: {node: '>=12'} cpu: [x64] os: [win32] requiresBuild: true optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.56.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.57.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.56.0 + eslint: 8.57.0 eslint-visitor-keys: 3.4.3 dev: true @@ -7068,7 +7060,7 @@ packages: debug: 4.3.4(supports-color@8.1.1) espree: 9.6.1 globals: 13.24.0 - ignore: 5.3.0 + ignore: 5.3.1 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -7077,16 +7069,11 @@ packages: - supports-color dev: true - /@eslint/js@8.56.0: - resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} + /@eslint/js@8.57.0: + resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@fastify/busboy@2.1.0: - resolution: {integrity: sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==} - engines: {node: '>=14'} - dev: true - /@fontsource/monofett@5.0.17: resolution: {integrity: sha512-MTSxMPkTXeqEVeaugMh9nUbSqL/0tm0KlwdTInRv3s1JY3S7rzM1hnue+m8p1ZU89viNNjeCBTLaE77MosKdjQ==} dev: false @@ -7095,11 +7082,11 @@ packages: resolution: {integrity: sha512-ZJbsCIJp6VHL1wYQUPpyBjXMzwGdfFedrmrw4r5sFi7WrMpnfJv+el1uVO6yDPIqnVqkPvjJ+xeKgJwnj2LuQQ==} dev: false - /@humanwhocodes/config-array@0.11.13: - resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==} + /@humanwhocodes/config-array@0.11.14: + resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} engines: {node: '>=10.10.0'} dependencies: - '@humanwhocodes/object-schema': 2.0.1 + '@humanwhocodes/object-schema': 2.0.2 debug: 4.3.4(supports-color@8.1.1) minimatch: 3.1.2 transitivePeerDependencies: @@ -7111,8 +7098,8 @@ packages: engines: {node: '>=12.22'} dev: true - /@humanwhocodes/object-schema@2.0.1: - resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} + /@humanwhocodes/object-schema@2.0.2: + resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} dev: true /@isaacs/cliui@8.0.2: @@ -7133,14 +7120,6 @@ packages: '@sinclair/typebox': 0.27.8 dev: false - /@jridgewell/gen-mapping@0.3.3: - resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} - engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/set-array': 1.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.20 - /@jridgewell/gen-mapping@0.3.5: resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} @@ -7148,43 +7127,30 @@ packages: '@jridgewell/set-array': 1.2.1 '@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/trace-mapping': 0.3.25 - dev: false - - /@jridgewell/resolve-uri@3.1.1: - resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} - engines: {node: '>=6.0.0'} - /@jridgewell/set-array@1.1.2: - resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + /@jridgewell/resolve-uri@3.1.2: + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} /@jridgewell/set-array@1.2.1: resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} engines: {node: '>=6.0.0'} - dev: false /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - /@jridgewell/trace-mapping@0.3.20: - resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} - dependencies: - '@jridgewell/resolve-uri': 3.1.1 - '@jridgewell/sourcemap-codec': 1.4.15 - /@jridgewell/trace-mapping@0.3.25: resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} dependencies: - '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.4.15 - dev: false /@jsdevtools/rehype-toc@3.0.2: resolution: {integrity: sha512-n5JEf16Wr4mdkRMZ8wMP/wN9/sHmTjRPbouXjJH371mZ2LEGDl72t8tEsMRNFerQN/QJtivOxqK1frdGa4QK5Q==} engines: {node: '>=10'} - /@libsql/client@0.5.5: - resolution: {integrity: sha512-fEFtFWKzf4GGlrndzAAPmDwRRXYmHADbDis9LS+63kn0ne2FQIjX5v55CdxHXYpcUJQCEmVmZkvo5/PtcsgVLA==} + /@libsql/client@0.5.6: + resolution: {integrity: sha512-UBjmDoxz75Z2sHdP+ETCROpeLA/77VMesiff8R4UWK1rnaWbh6/YoCLDILMJL3Rh0udQeKxjL8MjXthqohax+g==} dependencies: '@libsql/core': 0.5.6 '@libsql/hrana-client': 0.5.6 @@ -7290,34 +7256,30 @@ packages: dev: false optional: true - /@lit-labs/ssr-client@1.1.5: - resolution: {integrity: sha512-rAXd2OsuxfGA579RiDS2YQSm1HreE8knQHj+fcMhGIPYenBoW4M70Yl8K3a35MSLlpQnnF//s2TPfkHFmy2RhA==} + /@lit-labs/ssr-client@1.1.7: + resolution: {integrity: sha512-VvqhY/iif3FHrlhkzEPsuX/7h/NqnfxLwVf0p8ghNIlKegRyRqgeaJevZ57s/u/LiFyKgqksRP5n+LmNvpxN+A==} dependencies: - '@lit/reactive-element': 2.0.2 - lit: 3.1.0 - lit-html: 3.1.0 + '@lit/reactive-element': 2.0.4 + lit: 3.1.2 + lit-html: 3.1.2 dev: false - /@lit-labs/ssr-dom-shim@1.1.2: - resolution: {integrity: sha512-jnOD+/+dSrfTWYfSXBXlo5l5f0q1UuJo3tkbMDCYA2lKUYq79jaxqtGEvnRoh049nt1vdo1+45RinipU6FGY2g==} - /@lit-labs/ssr-dom-shim@1.2.0: resolution: {integrity: sha512-yWJKmpGE6lUURKAaIltoPIE/wrbY3TEkqQt+X0m+7fQNnAv0keydnYvbiJFP1PnMhizmIWRWOG5KLhYyc/xl+g==} - dev: false - /@lit-labs/ssr@3.2.0: - resolution: {integrity: sha512-5ZwVMEpYCHI5MF7+5ER3IvOyDjJimq/nzKtV4momqSKr3a/9gEFouHzTDogwaYoOwIBBtO8jl5SX2Vsb0kfZgA==} + /@lit-labs/ssr@3.2.2: + resolution: {integrity: sha512-He5TzeNPM9ECmVpgXRYmVlz0UA5YnzHlT43kyLi2Lu6mUidskqJVonk9W5K699+2DKhoXp8Ra4EJmHR6KrcW1Q==} engines: {node: '>=13.9.0'} dependencies: - '@lit-labs/ssr-client': 1.1.5 - '@lit-labs/ssr-dom-shim': 1.1.2 - '@lit/reactive-element': 2.0.2 + '@lit-labs/ssr-client': 1.1.7 + '@lit-labs/ssr-dom-shim': 1.2.0 + '@lit/reactive-element': 2.0.4 '@parse5/tools': 0.3.0 - '@types/node': 16.18.69 - enhanced-resolve: 5.15.0 - lit: 3.1.0 - lit-element: 4.0.2 - lit-html: 3.1.0 + '@types/node': 16.18.89 + enhanced-resolve: 5.16.0 + lit: 3.1.2 + lit-element: 4.0.4 + lit-html: 3.1.2 node-fetch: 3.3.2 parse5: 7.1.2 dev: false @@ -7325,24 +7287,18 @@ packages: /@lit/reactive-element@1.6.3: resolution: {integrity: sha512-QuTgnG52Poic7uM1AN5yJ09QMe0O28e10XzSvWDz02TJiiKee4stsiownEIadWm8nYzyDAyT+gKzUoZmiWQtsQ==} dependencies: - '@lit-labs/ssr-dom-shim': 1.1.2 + '@lit-labs/ssr-dom-shim': 1.2.0 dev: false - /@lit/reactive-element@2.0.2: - resolution: {integrity: sha512-SVOwLAWUQg3Ji1egtOt1UiFe4zdDpnWHyc5qctSceJ5XIu0Uc76YmGpIjZgx9YJ0XtdW0Jm507sDvjOu+HnB8w==} - dependencies: - '@lit-labs/ssr-dom-shim': 1.1.2 - /@lit/reactive-element@2.0.4: resolution: {integrity: sha512-GFn91inaUa2oHLak8awSIigYz0cU0Payr1rcFsrkf5OJ5eSPxElyZfKh0f2p9FsTiZWXQdWGJeXZICEfXXYSXQ==} dependencies: '@lit-labs/ssr-dom-shim': 1.2.0 - dev: false /@manypkg/find-root@1.1.0: resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} dependencies: - '@babel/runtime': 7.23.7 + '@babel/runtime': 7.24.0 '@types/node': 12.20.55 find-up: 4.1.0 fs-extra: 8.1.0 @@ -7351,7 +7307,7 @@ packages: /@manypkg/get-packages@1.1.3: resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} dependencies: - '@babel/runtime': 7.23.7 + '@babel/runtime': 7.24.0 '@changesets/types': 4.1.0 '@manypkg/find-root': 1.1.0 fs-extra: 8.1.0 @@ -7370,7 +7326,7 @@ packages: nopt: 5.0.0 npmlog: 5.0.1 rimraf: 3.0.2 - semver: 7.5.4 + semver: 7.6.0 tar: 6.2.0 transitivePeerDependencies: - encoding @@ -7392,13 +7348,13 @@ packages: '@types/markdown-it': 12.2.3 dev: false - /@mdx-js/mdx@3.0.0: - resolution: {integrity: sha512-Icm0TBKBLYqroYbNW3BPnzMGn+7mwpQOK310aZ7+fkCtiU3aqv2cdcX+nd0Ydo3wI5Rx8bX2Z2QmGb/XcAClCw==} + /@mdx-js/mdx@3.0.1: + resolution: {integrity: sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA==} dependencies: '@types/estree': 1.0.5 - '@types/estree-jsx': 1.0.3 - '@types/hast': 3.0.3 - '@types/mdx': 2.0.10 + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdx': 2.0.11 collapse-white-space: 2.1.0 devlop: 1.1.0 estree-util-build-jsx: 3.0.1 @@ -7409,9 +7365,9 @@ packages: hast-util-to-jsx-runtime: 2.3.0 markdown-extensions: 2.0.0 periscopic: 3.1.0 - remark-mdx: 3.0.0 + remark-mdx: 3.0.1 remark-parse: 11.0.0 - remark-rehype: 11.0.0 + remark-rehype: 11.1.0 source-map: 0.7.4 unified: 11.0.4 unist-util-position-from-estree: 2.0.0 @@ -7422,20 +7378,19 @@ packages: - supports-color dev: false - /@nanostores/preact@0.5.0(nanostores@0.9.5)(preact@10.19.3): - resolution: {integrity: sha512-Zq5DEAY+kIfwJ1NPd43D1mpsbISuiD6N/SuTHrt/8jUoifLwXaReaZMAnvkvbIGOgcB1Hy++A9jZix2taNNYxQ==} - engines: {node: ^16.0.0 || ^18.0.0 || >=20.0.0} + /@nanostores/preact@0.5.1(nanostores@0.9.5)(preact@10.19.6): + resolution: {integrity: sha512-kofyeDwzM3TrOd37ay+Xxgk3Cn6jih23dxELc7Mr9IJV55jmWATfNP9b7O/awwCL7CE5z5PfzFnNk/W+tMaWGw==} + engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: - nanostores: ^0.9.0 + nanostores: ^0.9.0 || ^0.10.0 preact: '>=10.0.0' dependencies: nanostores: 0.9.5 - preact: 10.19.3 + preact: 10.19.6 dev: false /@neon-rs/load@0.0.4: resolution: {integrity: sha512-kTPhdZyTQxB+2wpiRcFWrDcejc4JI6tkPuS7UZCG4l6Zvc5kU/gGQ/ozvHTh1XR5tS+UlfAfGuPajjzQjCiHCw==} - requiresBuild: true dev: false /@nodelib/fs.scandir@2.1.5: @@ -7454,18 +7409,18 @@ packages: engines: {node: '>= 8'} dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.16.0 + fastq: 1.17.1 /@octokit/action@6.0.7: resolution: {integrity: sha512-0Q1L96F8JsNb+M2NzN7r4artGyX02Pa9tzg+JaxXncvdHEXVIJFnkA8CstC52EB4DAZ0b8wpqDOG05v/DcyS3g==} engines: {node: '>= 18'} dependencies: '@octokit/auth-action': 4.0.1 - '@octokit/core': 5.0.2 - '@octokit/plugin-paginate-rest': 9.1.5(@octokit/core@5.0.2) - '@octokit/plugin-rest-endpoint-methods': 10.2.0(@octokit/core@5.0.2) - '@octokit/types': 12.4.0 - undici: 6.2.1 + '@octokit/core': 5.1.0 + '@octokit/plugin-paginate-rest': 9.2.1(@octokit/core@5.1.0) + '@octokit/plugin-rest-endpoint-methods': 10.4.1(@octokit/core@5.1.0) + '@octokit/types': 12.6.0 + undici: 6.9.0 dev: true /@octokit/auth-action@4.0.1: @@ -7473,7 +7428,7 @@ packages: engines: {node: '>= 18'} dependencies: '@octokit/auth-token': 4.0.0 - '@octokit/types': 12.4.0 + '@octokit/types': 12.6.0 dev: true /@octokit/auth-token@4.0.0: @@ -7481,15 +7436,15 @@ packages: engines: {node: '>= 18'} dev: true - /@octokit/core@5.0.2: - resolution: {integrity: sha512-cZUy1gUvd4vttMic7C0lwPed8IYXWYp8kHIMatyhY8t8n3Cpw2ILczkV5pGMPqef7v0bLo0pOHrEHarsau2Ydg==} + /@octokit/core@5.1.0: + resolution: {integrity: sha512-BDa2VAMLSh3otEiaMJ/3Y36GU4qf6GI+VivQ/P41NC6GHcdxpKlqV0ikSZ5gdQsmS3ojXeRx5vasgNTinF0Q4g==} engines: {node: '>= 18'} dependencies: '@octokit/auth-token': 4.0.0 '@octokit/graphql': 7.0.2 - '@octokit/request': 8.1.6 + '@octokit/request': 8.2.0 '@octokit/request-error': 5.0.1 - '@octokit/types': 12.4.0 + '@octokit/types': 12.6.0 before-after-hook: 2.2.3 universal-user-agent: 6.0.1 dev: true @@ -7498,7 +7453,7 @@ packages: resolution: {integrity: sha512-DWPLtr1Kz3tv8L0UvXTDP1fNwM0S+z6EJpRcvH66orY6Eld4XBMCSYsaWp4xIm61jTWxK68BrR7ibO+vSDnZqw==} engines: {node: '>= 18'} dependencies: - '@octokit/types': 12.4.0 + '@octokit/types': 12.6.0 universal-user-agent: 6.0.1 dev: true @@ -7506,58 +7461,58 @@ packages: resolution: {integrity: sha512-OJ2iGMtj5Tg3s6RaXH22cJcxXRi7Y3EBqbHTBRq+PQAqfaS8f/236fUrWhfSn8P4jovyzqucxme7/vWSSZBX2Q==} engines: {node: '>= 18'} dependencies: - '@octokit/request': 8.1.6 - '@octokit/types': 12.4.0 + '@octokit/request': 8.2.0 + '@octokit/types': 12.6.0 universal-user-agent: 6.0.1 dev: true - /@octokit/openapi-types@19.1.0: - resolution: {integrity: sha512-6G+ywGClliGQwRsjvqVYpklIfa7oRPA0vyhPQG/1Feh+B+wU0vGH1JiJ5T25d3g1JZYBHzR2qefLi9x8Gt+cpw==} + /@octokit/openapi-types@20.0.0: + resolution: {integrity: sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==} dev: true - /@octokit/plugin-paginate-rest@9.1.5(@octokit/core@5.0.2): - resolution: {integrity: sha512-WKTQXxK+bu49qzwv4qKbMMRXej1DU2gq017euWyKVudA6MldaSSQuxtz+vGbhxV4CjxpUxjZu6rM2wfc1FiWVg==} + /@octokit/plugin-paginate-rest@9.2.1(@octokit/core@5.1.0): + resolution: {integrity: sha512-wfGhE/TAkXZRLjksFXuDZdmGnJQHvtU/joFQdweXUgzo1XwvBCD4o4+75NtFfjfLK5IwLf9vHTfSiU3sLRYpRw==} engines: {node: '>= 18'} peerDependencies: - '@octokit/core': '>=5' + '@octokit/core': '5' dependencies: - '@octokit/core': 5.0.2 - '@octokit/types': 12.4.0 + '@octokit/core': 5.1.0 + '@octokit/types': 12.6.0 dev: true - /@octokit/plugin-rest-endpoint-methods@10.2.0(@octokit/core@5.0.2): - resolution: {integrity: sha512-ePbgBMYtGoRNXDyKGvr9cyHjQ163PbwD0y1MkDJCpkO2YH4OeXX40c4wYHKikHGZcpGPbcRLuy0unPUuafco8Q==} + /@octokit/plugin-rest-endpoint-methods@10.4.1(@octokit/core@5.1.0): + resolution: {integrity: sha512-xV1b+ceKV9KytQe3zCVqjg+8GTGfDYwaT1ATU5isiUyVtlVAO3HNdzpS4sr4GBx4hxQ46s7ITtZrAsxG22+rVg==} engines: {node: '>= 18'} peerDependencies: - '@octokit/core': '>=5' + '@octokit/core': '5' dependencies: - '@octokit/core': 5.0.2 - '@octokit/types': 12.4.0 + '@octokit/core': 5.1.0 + '@octokit/types': 12.6.0 dev: true /@octokit/request-error@5.0.1: resolution: {integrity: sha512-X7pnyTMV7MgtGmiXBwmO6M5kIPrntOXdyKZLigNfQWSEQzVxR4a4vo49vJjTWX70mPndj8KhfT4Dx+2Ng3vnBQ==} engines: {node: '>= 18'} dependencies: - '@octokit/types': 12.4.0 + '@octokit/types': 12.6.0 deprecation: 2.3.1 once: 1.4.0 dev: true - /@octokit/request@8.1.6: - resolution: {integrity: sha512-YhPaGml3ncZC1NfXpP3WZ7iliL1ap6tLkAp6MvbK2fTTPytzVUyUesBBogcdMm86uRYO5rHaM1xIWxigWZ17MQ==} + /@octokit/request@8.2.0: + resolution: {integrity: sha512-exPif6x5uwLqv1N1irkLG1zZNJkOtj8bZxuVHd71U5Ftuxf2wGNvAJyNBcPbPC+EBzwYEbBDdSFb8EPcjpYxPQ==} engines: {node: '>= 18'} dependencies: '@octokit/endpoint': 9.0.4 '@octokit/request-error': 5.0.1 - '@octokit/types': 12.4.0 + '@octokit/types': 12.6.0 universal-user-agent: 6.0.1 dev: true - /@octokit/types@12.4.0: - resolution: {integrity: sha512-FLWs/AvZllw/AGVs+nJ+ELCDZZJk+kY0zMen118xhL2zD0s1etIUHm1odgjP7epxYU1ln7SZxEUWYop5bhsdgQ==} + /@octokit/types@12.6.0: + resolution: {integrity: sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==} dependencies: - '@octokit/openapi-types': 19.1.0 + '@octokit/openapi-types': 20.0.0 dev: true /@parse5/tools@0.3.0: @@ -7572,8 +7527,8 @@ packages: requiresBuild: true optional: true - /@pkgr/core@0.1.0: - resolution: {integrity: sha512-Zwq5OCzuwJC2jwqmpEQt7Ds1DTi6BWSwoGkbb1n9pO3hzb35BoJELx7c0T23iDkBGkh2e7tvOtjF3tr3OaQHDQ==} + /@pkgr/core@0.1.1: + resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} dev: true @@ -7585,8 +7540,8 @@ packages: playwright: 1.40.0 dev: true - /@preact/preset-vite@2.7.0(preact@10.19.3): - resolution: {integrity: sha512-m5N0FVtxbCCDxNk55NGhsRpKJChYcupcuQHzMJc/Bll07IKZKn8amwYciyKFS9haU6AgzDAJ/ewvApr6Qg1DHw==} + /@preact/preset-vite@2.8.2(preact@10.19.6): + resolution: {integrity: sha512-m3tl+M8IO8jgiHnk+7LSTFl8axdPXloewi7iGVLdmCwf34XOzEUur0bZVewW4DUbUipFjTS2CXu27+5f/oexBA==} peerDependencies: '@babel/core': 7.x vite: 2.x || 3.x || 4.x || 5.x @@ -7598,12 +7553,16 @@ packages: dependencies: '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.3) '@babel/plugin-transform-react-jsx-development': 7.22.5 - '@prefresh/vite': 2.4.5(preact@10.19.3) + '@prefresh/vite': 2.4.5(preact@10.19.6) '@rollup/pluginutils': 4.2.1 babel-plugin-transform-hook-names: 1.0.2 debug: 4.3.4(supports-color@8.1.1) kolorist: 1.8.0 + magic-string: 0.30.5 + node-html-parser: 6.1.12 resolve: 1.22.8 + source-map: 0.7.4 + stack-trace: 1.0.0-pre2 transitivePeerDependencies: - preact - supports-color @@ -7613,32 +7572,32 @@ packages: resolution: {integrity: sha512-dE6f+WCX5ZUDwXzUIWNMhhglmuLpqJhuy3X3xHrhZYI0Hm2LyQwOu0l9mdPiWrVNsE+Q7txOnJPgtIqHCYoBVA==} dev: false - /@preact/signals@1.2.1(preact@10.19.3): + /@preact/signals@1.2.1(preact@10.19.6): resolution: {integrity: sha512-hRPvp1C2ooDzOHqfnhdpHgoIFDbYFAXLhoid3+jSItuPPD/J0r/UsiWKv/8ZO/oEhjRaP0M5niuRYsWqmY2GEA==} peerDependencies: preact: 10.x dependencies: '@preact/signals-core': 1.5.1 - preact: 10.19.3 + preact: 10.19.6 dev: false /@prefresh/babel-plugin@0.5.1: resolution: {integrity: sha512-uG3jGEAysxWoyG3XkYfjYHgaySFrSsaEb4GagLzYaxlydbuREtaX+FTxuIidp241RaLl85XoHg9Ej6E4+V1pcg==} dev: false - /@prefresh/core@1.5.2(preact@10.19.3): + /@prefresh/core@1.5.2(preact@10.19.6): resolution: {integrity: sha512-A/08vkaM1FogrCII5PZKCrygxSsc11obExBScm3JF1CryK2uDS3ZXeni7FeKCx1nYdUkj4UcJxzPzc1WliMzZA==} peerDependencies: preact: ^10.0.0 dependencies: - preact: 10.19.3 + preact: 10.19.6 dev: false /@prefresh/utils@1.2.0: resolution: {integrity: sha512-KtC/fZw+oqtwOLUFM9UtiitB0JsVX0zLKNyRTA332sqREqSALIIQQxdUCS1P3xR/jT1e2e8/5rwH6gdcMLEmsQ==} dev: false - /@prefresh/vite@2.4.5(preact@10.19.3): + /@prefresh/vite@2.4.5(preact@10.19.6): resolution: {integrity: sha512-iForDVJ2M8gQYnm5pHumvTEJjGGc7YNYC0GVKnHFL+GvFfKHfH9Rpq67nUAzNbjuLEpqEOUuQVQajMazWu2ZNQ==} peerDependencies: preact: ^10.4.0 @@ -7649,10 +7608,10 @@ packages: dependencies: '@babel/core': 7.24.3 '@prefresh/babel-plugin': 0.5.1 - '@prefresh/core': 1.5.2(preact@10.19.3) + '@prefresh/core': 1.5.2(preact@10.19.6) '@prefresh/utils': 1.2.0 '@rollup/pluginutils': 4.2.1 - preact: 10.19.3 + preact: 10.19.6 transitivePeerDependencies: - supports-color dev: false @@ -7665,118 +7624,118 @@ packages: picomatch: 2.3.1 dev: false - /@rollup/rollup-android-arm-eabi@4.9.2: - resolution: {integrity: sha512-RKzxFxBHq9ysZ83fn8Iduv3A283K7zPPYuhL/z9CQuyFrjwpErJx0h4aeb/bnJ+q29GRLgJpY66ceQ/Wcsn3wA==} + /@rollup/rollup-android-arm-eabi@4.13.0: + resolution: {integrity: sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg==} cpu: [arm] os: [android] requiresBuild: true optional: true - /@rollup/rollup-android-arm64@4.9.2: - resolution: {integrity: sha512-yZ+MUbnwf3SHNWQKJyWh88ii2HbuHCFQnAYTeeO1Nb8SyEiWASEi5dQUygt3ClHWtA9My9RQAYkjvrsZ0WK8Xg==} + /@rollup/rollup-android-arm64@4.13.0: + resolution: {integrity: sha512-BSbaCmn8ZadK3UAQdlauSvtaJjhlDEjS5hEVVIN3A4bbl3X+otyf/kOJV08bYiRxfejP3DXFzO2jz3G20107+Q==} cpu: [arm64] os: [android] requiresBuild: true optional: true - /@rollup/rollup-darwin-arm64@4.9.2: - resolution: {integrity: sha512-vqJ/pAUh95FLc/G/3+xPqlSBgilPnauVf2EXOQCZzhZJCXDXt/5A8mH/OzU6iWhb3CNk5hPJrh8pqJUPldN5zw==} + /@rollup/rollup-darwin-arm64@4.13.0: + resolution: {integrity: sha512-Ovf2evVaP6sW5Ut0GHyUSOqA6tVKfrTHddtmxGQc1CTQa1Cw3/KMCDEEICZBbyppcwnhMwcDce9ZRxdWRpVd6g==} cpu: [arm64] os: [darwin] requiresBuild: true optional: true - /@rollup/rollup-darwin-x64@4.9.2: - resolution: {integrity: sha512-otPHsN5LlvedOprd3SdfrRNhOahhVBwJpepVKUN58L0RnC29vOAej1vMEaVU6DadnpjivVsNTM5eNt0CcwTahw==} + /@rollup/rollup-darwin-x64@4.13.0: + resolution: {integrity: sha512-U+Jcxm89UTK592vZ2J9st9ajRv/hrwHdnvyuJpa5A2ngGSVHypigidkQJP+YiGL6JODiUeMzkqQzbCG3At81Gg==} cpu: [x64] os: [darwin] requiresBuild: true optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.9.2: - resolution: {integrity: sha512-ewG5yJSp+zYKBYQLbd1CUA7b1lSfIdo9zJShNTyc2ZP1rcPrqyZcNlsHgs7v1zhgfdS+kW0p5frc0aVqhZCiYQ==} + /@rollup/rollup-linux-arm-gnueabihf@4.13.0: + resolution: {integrity: sha512-8wZidaUJUTIR5T4vRS22VkSMOVooG0F4N+JSwQXWSRiC6yfEsFMLTYRFHvby5mFFuExHa/yAp9juSphQQJAijQ==} cpu: [arm] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-arm64-gnu@4.9.2: - resolution: {integrity: sha512-pL6QtV26W52aCWTG1IuFV3FMPL1m4wbsRG+qijIvgFO/VBsiXJjDPE/uiMdHBAO6YcpV4KvpKtd0v3WFbaxBtg==} + /@rollup/rollup-linux-arm64-gnu@4.13.0: + resolution: {integrity: sha512-Iu0Kno1vrD7zHQDxOmvweqLkAzjxEVqNhUIXBsZ8hu8Oak7/5VTPrxOEZXYC1nmrBVJp0ZcL2E7lSuuOVaE3+w==} cpu: [arm64] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-arm64-musl@4.9.2: - resolution: {integrity: sha512-On+cc5EpOaTwPSNetHXBuqylDW+765G/oqB9xGmWU3npEhCh8xu0xqHGUA+4xwZLqBbIZNcBlKSIYfkBm6ko7g==} + /@rollup/rollup-linux-arm64-musl@4.13.0: + resolution: {integrity: sha512-C31QrW47llgVyrRjIwiOwsHFcaIwmkKi3PCroQY5aVq4H0A5v/vVVAtFsI1nfBngtoRpeREvZOkIhmRwUKkAdw==} cpu: [arm64] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-riscv64-gnu@4.9.2: - resolution: {integrity: sha512-Wnx/IVMSZ31D/cO9HSsU46FjrPWHqtdF8+0eyZ1zIB5a6hXaZXghUKpRrC4D5DcRTZOjml2oBhXoqfGYyXKipw==} + /@rollup/rollup-linux-riscv64-gnu@4.13.0: + resolution: {integrity: sha512-Oq90dtMHvthFOPMl7pt7KmxzX7E71AfyIhh+cPhLY9oko97Zf2C9tt/XJD4RgxhaGeAraAXDtqxvKE1y/j35lA==} cpu: [riscv64] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-x64-gnu@4.9.2: - resolution: {integrity: sha512-ym5x1cj4mUAMBummxxRkI4pG5Vht1QMsJexwGP8547TZ0sox9fCLDHw9KCH9c1FO5d9GopvkaJsBIOkTKxksdw==} + /@rollup/rollup-linux-x64-gnu@4.13.0: + resolution: {integrity: sha512-yUD/8wMffnTKuiIsl6xU+4IA8UNhQ/f1sAnQebmE/lyQ8abjsVyDkyRkWop0kdMhKMprpNIhPmYlCxgHrPoXoA==} cpu: [x64] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-x64-musl@4.9.2: - resolution: {integrity: sha512-m0hYELHGXdYx64D6IDDg/1vOJEaiV8f1G/iO+tejvRCJNSwK4jJ15e38JQy5Q6dGkn1M/9KcyEOwqmlZ2kqaZg==} + /@rollup/rollup-linux-x64-musl@4.13.0: + resolution: {integrity: sha512-9RyNqoFNdF0vu/qqX63fKotBh43fJQeYC98hCaf89DYQpv+xu0D8QFSOS0biA7cGuqJFOc1bJ+m2rhhsKcw1hw==} cpu: [x64] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-win32-arm64-msvc@4.9.2: - resolution: {integrity: sha512-x1CWburlbN5JjG+juenuNa4KdedBdXLjZMp56nHFSHTOsb/MI2DYiGzLtRGHNMyydPGffGId+VgjOMrcltOksA==} + /@rollup/rollup-win32-arm64-msvc@4.13.0: + resolution: {integrity: sha512-46ue8ymtm/5PUU6pCvjlic0z82qWkxv54GTJZgHrQUuZnVH+tvvSP0LsozIDsCBFO4VjJ13N68wqrKSeScUKdA==} cpu: [arm64] os: [win32] requiresBuild: true optional: true - /@rollup/rollup-win32-ia32-msvc@4.9.2: - resolution: {integrity: sha512-VVzCB5yXR1QlfsH1Xw1zdzQ4Pxuzv+CPr5qpElpKhVxlxD3CRdfubAG9mJROl6/dmj5gVYDDWk8sC+j9BI9/kQ==} + /@rollup/rollup-win32-ia32-msvc@4.13.0: + resolution: {integrity: sha512-P5/MqLdLSlqxbeuJ3YDeX37srC8mCflSyTrUsgbU1c/U9j6l2g2GiIdYaGD9QjdMQPMSgYm7hgg0551wHyIluw==} cpu: [ia32] os: [win32] requiresBuild: true optional: true - /@rollup/rollup-win32-x64-msvc@4.9.2: - resolution: {integrity: sha512-SYRedJi+mweatroB+6TTnJYLts0L0bosg531xnQWtklOI6dezEagx4Q0qDyvRdK+qgdA3YZpjjGuPFtxBmddBA==} + /@rollup/rollup-win32-x64-msvc@4.13.0: + resolution: {integrity: sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw==} cpu: [x64] os: [win32] requiresBuild: true optional: true - /@shikijs/core@1.1.2: - resolution: {integrity: sha512-ERVzNQz88ZkDqUpWeC57Kp+Kmx5RjqeDBR1M8AGWGom4yrkITiTfXCGmjchlDSw12MhDTuPYR4HVFW8uT61RaQ==} + /@shikijs/core@1.2.0: + resolution: {integrity: sha512-OlFvx+nyr5C8zpcMBnSGir0YPD6K11uYhouqhNmm1qLiis4GA7SsGtu07r9gKS9omks8RtQqHrJL4S+lqWK01A==} dev: false /@sinclair/typebox@0.27.8: resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} dev: false - /@sindresorhus/merge-streams@1.0.0: - resolution: {integrity: sha512-rUV5WyJrJLoloD4NDN1V1+LDMDWOa4OTsT4yYJwQNpTU6FWxkxHpL7eu4w+DmiH8x/EAM1otkPE1+LaspIbplw==} + /@sindresorhus/merge-streams@2.3.0: + resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} engines: {node: '>=18'} - /@solidjs/router@0.9.1(solid-js@1.8.7): + /@solidjs/router@0.9.1(solid-js@1.8.15): resolution: {integrity: sha512-kRY75piOQsyoH75E/RP6lr7uVGFCjeeCCCJx7Z2D1Vc6+I1yFQjLCvE+6agXGwqDoWi6vbETP1g7gmp/L1mNLg==} peerDependencies: solid-js: ^1.8.4 dependencies: - solid-js: 1.8.7 + solid-js: 1.8.15 dev: false - /@sveltejs/vite-plugin-svelte-inspector@2.0.0(@sveltejs/vite-plugin-svelte@3.0.1)(svelte@4.2.8)(vite@5.1.4): + /@sveltejs/vite-plugin-svelte-inspector@2.0.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.12)(vite@5.1.6): resolution: {integrity: sha512-gjr9ZFg1BSlIpfZ4PRewigrvYmHWbDrq2uvvPB1AmTWKuM+dI1JXQSUu2pIrYLb/QncyiIGkFDFKTwJ0XqQZZg==} engines: {node: ^18.0.0 || >=20} peerDependencies: @@ -7787,16 +7746,16 @@ packages: vite: optional: true dependencies: - '@sveltejs/vite-plugin-svelte': 3.0.1(svelte@4.2.8)(vite@5.1.4) + '@sveltejs/vite-plugin-svelte': 3.0.2(svelte@4.2.12)(vite@5.1.6) debug: 4.3.4(supports-color@8.1.1) - svelte: 4.2.8 - vite: 5.1.4(@types/node@18.19.4)(sass@1.69.6) + svelte: 4.2.12 + vite: 5.1.6(@types/node@18.19.24)(sass@1.72.0) transitivePeerDependencies: - supports-color dev: false - /@sveltejs/vite-plugin-svelte@3.0.1(svelte@4.2.8)(vite@5.1.4): - resolution: {integrity: sha512-CGURX6Ps+TkOovK6xV+Y2rn8JKa8ZPUHPZ/NKgCxAmgBrXReavzFl8aOSCj3kQ1xqT7yGJj53hjcV/gqwDAaWA==} + /@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.1.6): + resolution: {integrity: sha512-MpmF/cju2HqUls50WyTHQBZUV3ovV/Uk8k66AN2gwHogNAG8wnW8xtZDhzNBsFJJuvmq1qnzA5kE7YfMJNFv2Q==} engines: {node: ^18.0.0 || >=20} peerDependencies: svelte: ^4.0.0 || ^5.0.0-next.0 @@ -7805,15 +7764,15 @@ packages: vite: optional: true dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 2.0.0(@sveltejs/vite-plugin-svelte@3.0.1)(svelte@4.2.8)(vite@5.1.4) + '@sveltejs/vite-plugin-svelte-inspector': 2.0.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.12)(vite@5.1.6) debug: 4.3.4(supports-color@8.1.1) deepmerge: 4.3.1 kleur: 4.1.5 - magic-string: 0.30.5 - svelte: 4.2.8 - svelte-hmr: 0.15.3(svelte@4.2.8) - vite: 5.1.4(@types/node@18.19.4)(sass@1.69.6) - vitefu: 0.2.5(vite@5.1.4) + magic-string: 0.30.8 + svelte: 4.2.12 + svelte-hmr: 0.15.3(svelte@4.2.12) + vite: 5.1.6(@types/node@18.19.24)(sass@1.72.0) + vitefu: 0.2.5(vite@5.1.6) transitivePeerDependencies: - supports-color dev: false @@ -7843,8 +7802,8 @@ packages: '@types/estree': 1.0.5 dev: false - /@types/alpinejs@3.13.5: - resolution: {integrity: sha512-BSNTroRhmBkNiyd7ELK/5Boja92hnQMST6H4z1BqXKeMVzHjp9o1j5poqd5Tyhjd8oMFwxYC4I00eghfg2xrTA==} + /@types/alpinejs@3.13.9: + resolution: {integrity: sha512-R6Xy2K+S7811EuXz4CekBaQKtrAJsLm+Hw8kke0R9IwfoMxJsrEqG2TAkMqQa8gAKZb2hClOcNdPql5vH+ku3g==} dev: false /@types/aria-query@5.0.4: @@ -7854,8 +7813,8 @@ packages: /@types/babel__core@7.20.5: resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} dependencies: - '@babel/parser': 7.23.6 - '@babel/types': 7.23.6 + '@babel/parser': 7.24.0 + '@babel/types': 7.24.0 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.5 @@ -7864,32 +7823,39 @@ packages: /@types/babel__generator@7.6.8: resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} dependencies: - '@babel/types': 7.23.6 + '@babel/types': 7.24.0 /@types/babel__template@7.4.4: resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} dependencies: - '@babel/parser': 7.23.6 - '@babel/types': 7.23.6 + '@babel/parser': 7.24.0 + '@babel/types': 7.24.0 dev: false /@types/babel__traverse@7.20.5: resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==} dependencies: - '@babel/types': 7.23.6 + '@babel/types': 7.24.0 + + /@types/body-parser@1.19.5: + resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} + dependencies: + '@types/connect': 3.4.38 + '@types/node': 18.19.24 + dev: true /@types/canvas-confetti@1.6.4: resolution: {integrity: sha512-fNyZ/Fdw/Y92X0vv7B+BD6ysHL4xVU5dJcgzgxLdGbn8O3PezZNIJpml44lKM0nsGur+o/6+NZbZeNTt00U1uA==} dev: false - /@types/chai@4.3.11: - resolution: {integrity: sha512-qQR1dr2rGIHYlJulmr8Ioq3De0Le9E4MJ5AiaeAETJJpndT1uUNHsGFK3L/UIu+rbkQSdj8J/w2bCsBZc/Y5fQ==} + /@types/chai@4.3.12: + resolution: {integrity: sha512-zNKDHG/1yxm8Il6uCCVsm+dRdEsJlFoDu73X17y09bId6UwoYww+vFBsAcRzl8knM1sab3Dp1VRikFQwDOtDDw==} dev: true /@types/clean-css@4.2.11: resolution: {integrity: sha512-Y8n81lQVTAfP2TOdtJJEsCoYl1AnOkqDqMvXb9/7pfgZZ7r8YrEyurrAvAoAjHOGXKRybay+5CsExqIH6liccw==} dependencies: - '@types/node': 18.19.4 + '@types/node': 18.19.24 source-map: 0.6.1 dev: true @@ -7900,7 +7866,7 @@ packages: /@types/connect@3.4.38: resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} dependencies: - '@types/node': 18.19.4 + '@types/node': 18.19.24 dev: true /@types/cookie@0.5.4: @@ -7932,24 +7898,36 @@ packages: resolution: {integrity: sha512-oDuagM6G+xPLrLU4KeCKlr1oalMF5mJqV5pDPMDVIEaa8AkUW00i6u+5P02XCjdEEUQJC9dpnxqSLsZeAciSLQ==} dev: true - /@types/estree-jsx@1.0.3: - resolution: {integrity: sha512-pvQ+TKeRHeiUGRhvYwRrQ/ISnohKkSJR14fT2yqyZ4e9K5vqc7hrtY2Y1Dw0ZwAzQ6DQsxsaCUuSIIi8v0Cq6w==} + /@types/estree-jsx@1.0.5: + resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} dependencies: '@types/estree': 1.0.5 /@types/estree@1.0.5: resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - /@types/hast@3.0.3: - resolution: {integrity: sha512-2fYGlaDy/qyLlhidX42wAH0KBi2TCjKMH8CHmBXgRlJ3Y+OXTiqsPQ6IWarZKwF1JoUcAJdPogv1d4b0COTpmQ==} + /@types/express-serve-static-core@4.17.43: + resolution: {integrity: sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==} dependencies: - '@types/unist': 3.0.2 + '@types/node': 18.19.24 + '@types/qs': 6.9.12 + '@types/range-parser': 1.2.7 + '@types/send': 0.17.4 + dev: true + + /@types/express@4.17.21: + resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} + dependencies: + '@types/body-parser': 1.19.5 + '@types/express-serve-static-core': 4.17.43 + '@types/qs': 6.9.12 + '@types/serve-static': 1.15.5 + dev: true /@types/hast@3.0.4: resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} dependencies: '@types/unist': 3.0.2 - dev: true /@types/html-escaper@3.0.2: resolution: {integrity: sha512-A8vk09eyYzk8J/lFO4OUMKCmRN0rRzfZf4n3Olwapgox/PtTiU8zPYlL1UEkJ/WeHvV6v9Xnj3o/705PKz9r4Q==} @@ -7960,13 +7938,17 @@ packages: dependencies: '@types/clean-css': 4.2.11 '@types/relateurl': 0.2.33 - '@types/uglify-js': 3.17.4 + '@types/uglify-js': 3.17.5 dev: true /@types/http-cache-semantics@4.0.4: resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} dev: true + /@types/http-errors@2.0.4: + resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} + dev: true + /@types/js-yaml@4.0.9: resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} dev: true @@ -8014,8 +7996,8 @@ packages: /@types/mdurl@1.0.5: resolution: {integrity: sha512-6L6VymKTzYSrEf4Nev4Xa1LCHKrlTlYCBMTlQKFuddo1CvQcE52I0mwfOJayueUC7MJuXOeHTcIU683lzd0cUA==} - /@types/mdx@2.0.10: - resolution: {integrity: sha512-Rllzc5KHk0Al5/WANwgSPl1/CwjqCy+AZrGd78zuK+jO9aDM6ffblZ+zIjgPNAaEBmlO0RYDvLNh7wD0zKVgEg==} + /@types/mdx@2.0.11: + resolution: {integrity: sha512-HM5bwOaIQJIQbAYfax35HCKxx7a3KrK3nBtIqJgSOitivTD1y3oW9P3rxY9RkXYPUk7y/AjAohfHKmFpGE79zw==} dev: false /@types/mime@1.3.5: @@ -8040,7 +8022,7 @@ packages: /@types/needle@3.3.0: resolution: {integrity: sha512-UFIuc1gdyzAqeVUYpSL+cliw2MmU/ZUhVZKE7Zo4wPbgc8hbljeKSnn6ls6iG8r5jpegPXLUIhJ+Wb2kLVs8cg==} dependencies: - '@types/node': 18.19.4 + '@types/node': 18.19.24 dev: true /@types/nlcst@1.0.4: @@ -8052,7 +8034,7 @@ packages: /@types/node-fetch@2.6.11: resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==} dependencies: - '@types/node': 18.19.4 + '@types/node': 18.19.24 form-data: 4.0.0 dev: false @@ -8060,19 +8042,25 @@ packages: resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} dev: true - /@types/node@16.18.69: - resolution: {integrity: sha512-AfDKv5fWd9XStaEuqFa6PYcM8FgTqxVMsP4BPk60emeB9YX+pp2P0zZ8nU1BQg8hyPGFrMt7MGMRMis8IrcPyg==} + /@types/node@16.18.89: + resolution: {integrity: sha512-QlrE8QI5z62nfnkiUZysUsAaxWaTMoGqFVcB3PvK1WxJ0c699bacErV4Fabe9Hki6ZnaHalgzihLbTl2d34XfQ==} dev: false /@types/node@17.0.45: resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} dev: false - /@types/node@18.19.4: - resolution: {integrity: sha512-xNzlUhzoHotIsnFoXmJB+yWmBvFZgKCI9TtPIEdYIMM1KWfwuY8zh7wvc1u1OAXlC7dlf6mZVx/s+Y5KfFz19A==} + /@types/node@18.19.24: + resolution: {integrity: sha512-eghAz3gnbQbvnHqB+mgB2ZR3aH6RhdEmHGS48BnV75KceQPHqabkxKI0BbUSsqhqy2Ddhc2xD/VAR9ySZd57Lw==} dependencies: undici-types: 5.26.5 + /@types/node@20.11.28: + resolution: {integrity: sha512-M/GPWVS2wLkSkNHVeLkrF2fD5Lx5UC4PxA0uZcKc6QqbIQUJyW1jVjueJYi1z8n0I5PxYrtpnPnWglE+y9A0KA==} + dependencies: + undici-types: 5.26.5 + dev: true + /@types/normalize-package-data@2.4.4: resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} dev: true @@ -8085,39 +8073,34 @@ packages: resolution: {integrity: sha512-HVqYj3L+D+S/6qpQRv5qMxrD/5pglzZuhP7ZIqgVSZ+Ck4z1TCFkNIRG8WesFueQTqWFTSgkkAl6f8lwxFPQSw==} dependencies: '@types/needle': 3.3.0 - '@types/node': 18.19.4 + '@types/node': 18.19.24 dev: true /@types/prompts@2.4.9: resolution: {integrity: sha512-qTxFi6Buiu8+50/+3DGIWLHM6QuWsEKugJnnP6iv2Mc4ncxE4A/OJkjuVOA+5X0X1S/nq5VJRa8Lu+nwcvbrKA==} dependencies: - '@types/node': 18.19.4 + '@types/node': 18.19.24 kleur: 3.0.3 dev: true /@types/prop-types@15.7.11: resolution: {integrity: sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==} - /@types/react-dom@18.2.18: - resolution: {integrity: sha512-TJxDm6OfAX2KJWJdMEVTwWke5Sc/E/RlnPGvGfS0W7+6ocy2xhDVQVh/KvC2Uf7kACs+gDytdusDSdWfWkaNzw==} - dependencies: - '@types/react': 18.2.57 + /@types/qs@6.9.12: + resolution: {integrity: sha512-bZcOkJ6uWrL0Qb2NAWKa7TBU+mJHPzhx9jjLL1KHF+XpzEcR7EXHvjbHlGtR/IsP1vyPrehuS6XqkmaePy//mg==} + dev: true - /@types/react-dom@18.2.19: - resolution: {integrity: sha512-aZvQL6uUbIJpjZk4U8JZGbau9KDeAwMfmhyWorxgBkqDIEf6ROjRozcmPIicqsUwPUjbkDfHKgGee1Lq65APcA==} - dependencies: - '@types/react': 18.2.57 - dev: false + /@types/range-parser@1.2.7: + resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + dev: true - /@types/react@18.2.46: - resolution: {integrity: sha512-nNCvVBcZlvX4NU1nRRNV/mFl1nNRuTuslAJglQsq+8ldXe5Xv0Wd2f7WTE3jOxhLH2BFfiZGC6GCp+kHQbgG+w==} + /@types/react-dom@18.2.22: + resolution: {integrity: sha512-fHkBXPeNtfvri6gdsMYyW+dW7RXFo6Ad09nLFK0VQWR7yGLai/Cyvyj696gbwYvBnhGtevUG9cET0pmUbMtoPQ==} dependencies: - '@types/prop-types': 15.7.11 - '@types/scheduler': 0.16.8 - csstype: 3.1.3 + '@types/react': 18.2.66 - /@types/react@18.2.57: - resolution: {integrity: sha512-ZvQsktJgSYrQiMirAN60y4O/LRevIV8hUzSOSNB6gfR3/o3wCBFQx3sPwIYtuDMeiVgsSS3UzCV26tEzgnfvQw==} + /@types/react@18.2.66: + resolution: {integrity: sha512-OYTmMI4UigXeFMF/j4uv0lBBEbongSgptPrHBxqME44h9+yNov+oL6Z3ocJKo0WyXR84sQUNeyIp9MRfckvZpg==} dependencies: '@types/prop-types': 15.7.11 '@types/scheduler': 0.16.8 @@ -8134,33 +8117,41 @@ packages: /@types/sax@1.2.7: resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==} dependencies: - '@types/node': 18.19.4 + '@types/node': 18.19.24 dev: false /@types/scheduler@0.16.8: resolution: {integrity: sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==} - /@types/semver@7.5.6: - resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} + /@types/semver@7.5.8: + resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} dev: true /@types/send@0.17.4: resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} dependencies: '@types/mime': 1.3.5 - '@types/node': 18.19.4 + '@types/node': 18.19.24 + dev: true + + /@types/serve-static@1.15.5: + resolution: {integrity: sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==} + dependencies: + '@types/http-errors': 2.0.4 + '@types/mime': 3.0.4 + '@types/node': 18.19.24 dev: true /@types/server-destroy@1.0.3: resolution: {integrity: sha512-Qq0fn70C7TLDG1W9FCblKufNWW1OckQ41dVKV2Dku5KdZF7bexezG4e2WBaBKhdwL3HZ+cYCEIKwg2BRgzrWmA==} dependencies: - '@types/node': 18.19.4 + '@types/node': 18.19.24 dev: true /@types/set-cookie-parser@2.4.7: resolution: {integrity: sha512-+ge/loa0oTozxip6zmhRIk8Z/boU51wl9Q6QdLZcokIGMzY5lFXYy/x7Htj2HTC6/KZP1hUbZ1ekx8DYXICvWg==} dependencies: - '@types/node': 18.19.4 + '@types/node': 18.19.24 dev: true /@types/strip-bom@3.0.0: @@ -8174,8 +8165,8 @@ packages: /@types/trusted-types@2.0.7: resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} - /@types/uglify-js@3.17.4: - resolution: {integrity: sha512-Hm/T0kV3ywpJyMGNbsItdivRhYNCQQf1IIsYsXnoVPES4t+FMLyDe0/K+Ea7ahWtMtSNb22ZdY7MIyoD9rqARg==} + /@types/uglify-js@3.17.5: + resolution: {integrity: sha512-TU+fZFBTBcXj/GpDpDaBmgWk/gn96kMZ+uocaFUlV2f8a6WdMzzI44QBCmGcCiYR0Y6ZlNRiyUyKKt5nl/lbzQ==} dependencies: source-map: 0.6.1 dev: true @@ -8197,21 +8188,21 @@ packages: /@types/ws@8.5.10: resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} dependencies: - '@types/node': 18.19.4 + '@types/node': 18.19.24 dev: false /@types/xml2js@0.4.14: resolution: {integrity: sha512-4YnrRemBShWRO2QjvUin8ESA41rH+9nQGLUGZV/1IDhi3SL9OhdpNC/MrulTWuptXKwhx/aDxE7toV0f/ypIXQ==} dependencies: - '@types/node': 18.19.4 + '@types/node': 18.19.24 dev: true /@types/yargs-parser@21.0.3: resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} dev: true - /@typescript-eslint/eslint-plugin@6.17.0(@typescript-eslint/parser@6.17.0)(eslint@8.56.0)(typescript@5.2.2): - resolution: {integrity: sha512-Vih/4xLXmY7V490dGwBQJTpIZxH4ZFH6eCVmQ4RFkB+wmaCTDAx4dtgoWwMNGKLkqRY1L6rPqzEbjorRnDo4rQ==} + /@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.57.0)(typescript@5.2.2): + resolution: {integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha @@ -8222,25 +8213,25 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.17.0(eslint@8.56.0)(typescript@5.2.2) - '@typescript-eslint/scope-manager': 6.17.0 - '@typescript-eslint/type-utils': 6.17.0(eslint@8.56.0)(typescript@5.2.2) - '@typescript-eslint/utils': 6.17.0(eslint@8.56.0)(typescript@5.2.2) - '@typescript-eslint/visitor-keys': 6.17.0 + '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.2.2) + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/type-utils': 6.21.0(eslint@8.57.0)(typescript@5.2.2) + '@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.2.2) + '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.3.4(supports-color@8.1.1) - eslint: 8.56.0 + eslint: 8.57.0 graphemer: 1.4.0 - ignore: 5.3.0 + ignore: 5.3.1 natural-compare: 1.4.0 - semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.2.2) + semver: 7.6.0 + ts-api-utils: 1.3.0(typescript@5.2.2) typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@6.17.0(eslint@8.56.0)(typescript@5.2.2): - resolution: {integrity: sha512-C4bBaX2orvhK+LlwrY8oWGmSl4WolCfYm513gEccdWZj0CwGadbIADb0FtVEcI+WzUyjyoBj2JRP8g25E6IB8A==} + /@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.2.2): + resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -8249,27 +8240,27 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.17.0 - '@typescript-eslint/types': 6.17.0 - '@typescript-eslint/typescript-estree': 6.17.0(typescript@5.2.2) - '@typescript-eslint/visitor-keys': 6.17.0 + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.2.2) + '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.3.4(supports-color@8.1.1) - eslint: 8.56.0 + eslint: 8.57.0 typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager@6.17.0: - resolution: {integrity: sha512-RX7a8lwgOi7am0k17NUO0+ZmMOX4PpjLtLRgLmT1d3lBYdWH4ssBUbwdmc5pdRX8rXon8v9x8vaoOSpkHfcXGA==} + /@typescript-eslint/scope-manager@6.21.0: + resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.17.0 - '@typescript-eslint/visitor-keys': 6.17.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 dev: true - /@typescript-eslint/type-utils@6.17.0(eslint@8.56.0)(typescript@5.2.2): - resolution: {integrity: sha512-hDXcWmnbtn4P2B37ka3nil3yi3VCQO2QEB9gBiHJmQp5wmyQWqnjA85+ZcE8c4FqnaB6lBwMrPkgd4aBYz3iNg==} + /@typescript-eslint/type-utils@6.21.0(eslint@8.57.0)(typescript@5.2.2): + resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -8278,23 +8269,23 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.17.0(typescript@5.2.2) - '@typescript-eslint/utils': 6.17.0(eslint@8.56.0)(typescript@5.2.2) + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.2.2) + '@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.2.2) debug: 4.3.4(supports-color@8.1.1) - eslint: 8.56.0 - ts-api-utils: 1.0.3(typescript@5.2.2) + eslint: 8.57.0 + ts-api-utils: 1.3.0(typescript@5.2.2) typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types@6.17.0: - resolution: {integrity: sha512-qRKs9tvc3a4RBcL/9PXtKSehI/q8wuU9xYJxe97WFxnzH8NWWtcW3ffNS+EWg8uPvIerhjsEZ+rHtDqOCiH57A==} + /@typescript-eslint/types@6.21.0: + resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@6.17.0(typescript@5.2.2): - resolution: {integrity: sha512-gVQe+SLdNPfjlJn5VNGhlOhrXz4cajwFd5kAgWtZ9dCZf4XJf8xmgCTLIqec7aha3JwgLI2CK6GY1043FRxZwg==} + /@typescript-eslint/typescript-estree@6.21.0(typescript@5.2.2): + resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -8302,43 +8293,43 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.17.0 - '@typescript-eslint/visitor-keys': 6.17.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 - semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.2.2) + semver: 7.6.0 + ts-api-utils: 1.3.0(typescript@5.2.2) typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@6.17.0(eslint@8.56.0)(typescript@5.2.2): - resolution: {integrity: sha512-LofsSPjN/ITNkzV47hxas2JCsNCEnGhVvocfyOcLzT9c/tSZE7SfhS/iWtzP1lKNOEfLhRTZz6xqI8N2RzweSQ==} + /@typescript-eslint/utils@6.21.0(eslint@8.57.0)(typescript@5.2.2): + resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@types/json-schema': 7.0.15 - '@types/semver': 7.5.6 - '@typescript-eslint/scope-manager': 6.17.0 - '@typescript-eslint/types': 6.17.0 - '@typescript-eslint/typescript-estree': 6.17.0(typescript@5.2.2) - eslint: 8.56.0 - semver: 7.5.4 + '@types/semver': 7.5.8 + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.2.2) + eslint: 8.57.0 + semver: 7.6.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys@6.17.0: - resolution: {integrity: sha512-H6VwB/k3IuIeQOyYczyyKN8wH6ed8EwliaYHLxOIhyF0dYEIsN8+Bk3GE19qafeMKyZJJHP8+O1HiFhFLUNKSg==} + /@typescript-eslint/visitor-keys@6.21.0: + resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.17.0 + '@typescript-eslint/types': 6.21.0 eslint-visitor-keys: 3.4.3 dev: true @@ -8371,8 +8362,16 @@ packages: /@ungap/structured-clone@1.2.0: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - /@vercel/analytics@1.1.1: - resolution: {integrity: sha512-+NqgNmSabg3IFfxYhrWCfB/H+RCUOCR5ExRudNG2+pcRehq628DJB5e1u1xqwpLtn4pAYii4D98w7kofORAGQA==} + /@vercel/analytics@1.2.2: + resolution: {integrity: sha512-X0rctVWkQV1e5Y300ehVNqpOfSOufo7ieA5PIdna8yX/U7Vjz0GFsGf4qvAhxV02uQ2CVt7GYcrFfddXXK2Y4A==} + peerDependencies: + next: '>= 13' + react: ^18 || ^19 + peerDependenciesMeta: + next: + optional: true + react: + optional: true dependencies: server-only: 0.0.1 dev: false @@ -8396,14 +8395,14 @@ packages: glob: 7.2.3 graceful-fs: 4.2.11 micromatch: 4.0.5 - node-gyp-build: 4.7.1 + node-gyp-build: 4.8.0 resolve-from: 5.0.0 transitivePeerDependencies: - encoding - supports-color dev: false - /@vitejs/plugin-react@4.2.1(vite@5.1.4): + /@vitejs/plugin-react@4.2.1(vite@5.1.6): resolution: {integrity: sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -8417,12 +8416,12 @@ packages: '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.24.3) '@types/babel__core': 7.20.5 react-refresh: 0.14.0 - vite: 5.1.4(@types/node@18.19.4)(sass@1.69.6) + vite: 5.1.6(@types/node@18.19.24)(sass@1.72.0) transitivePeerDependencies: - supports-color dev: false - /@vitejs/plugin-vue-jsx@3.1.0(vite@5.1.4)(vue@3.4.3): + /@vitejs/plugin-vue-jsx@3.1.0(vite@5.1.6)(vue@3.4.21): resolution: {integrity: sha512-w9M6F3LSEU5kszVb9An2/MmXNxocAnUb3WhRr8bHlimhDrXNt6n6D2nJQR3UXpGlZHh/EsgouOHCsM8V3Ln+WA==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -8434,14 +8433,14 @@ packages: dependencies: '@babel/core': 7.24.3 '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.24.3) - '@vue/babel-plugin-jsx': 1.1.5(@babel/core@7.24.3) - vite: 5.1.4(@types/node@18.19.4)(sass@1.69.6) - vue: 3.4.3(typescript@5.2.2) + '@vue/babel-plugin-jsx': 1.2.1(@babel/core@7.24.3) + vite: 5.1.6(@types/node@18.19.24)(sass@1.72.0) + vue: 3.4.21(typescript@5.2.2) transitivePeerDependencies: - supports-color dev: false - /@vitejs/plugin-vue@5.0.4(vite@5.1.4)(vue@3.4.3): + /@vitejs/plugin-vue@5.0.4(vite@5.1.6)(vue@3.4.21): resolution: {integrity: sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==} engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: @@ -8451,42 +8450,42 @@ packages: vite: optional: true dependencies: - vite: 5.1.4(@types/node@18.19.4)(sass@1.69.6) - vue: 3.4.3(typescript@5.2.2) + vite: 5.1.6(@types/node@18.19.24)(sass@1.72.0) + vue: 3.4.21(typescript@5.2.2) dev: false - /@vitest/expect@1.3.1: - resolution: {integrity: sha512-xofQFwIzfdmLLlHa6ag0dPV8YsnKOCP1KdAeVVh34vSjN2dcUiXYCD9htu/9eM7t8Xln4v03U9HLxLpPlsXdZw==} + /@vitest/expect@1.4.0: + resolution: {integrity: sha512-Jths0sWCJZ8BxjKe+p+eKsoqev1/T8lYcrjavEaz8auEJ4jAVY0GwW3JKmdVU4mmNPLPHixh4GNXP7GFtAiDHA==} dependencies: - '@vitest/spy': 1.3.1 - '@vitest/utils': 1.3.1 + '@vitest/spy': 1.4.0 + '@vitest/utils': 1.4.0 chai: 4.4.1 dev: false - /@vitest/runner@1.3.1: - resolution: {integrity: sha512-5FzF9c3jG/z5bgCnjr8j9LNq/9OxV2uEBAITOXfoe3rdZJTdO7jzThth7FXv/6b+kdY65tpRQB7WaKhNZwX+Kg==} + /@vitest/runner@1.4.0: + resolution: {integrity: sha512-EDYVSmesqlQ4RD2VvWo3hQgTJ7ZrFQ2VSJdfiJiArkCerDAGeyF1i6dHkmySqk573jLp6d/cfqCN+7wUB5tLgg==} dependencies: - '@vitest/utils': 1.3.1 + '@vitest/utils': 1.4.0 p-limit: 5.0.0 pathe: 1.1.2 dev: false - /@vitest/snapshot@1.3.1: - resolution: {integrity: sha512-EF++BZbt6RZmOlE3SuTPu/NfwBF6q4ABS37HHXzs2LUVPBLx2QoY/K0fKpRChSo8eLiuxcbCVfqKgx/dplCDuQ==} + /@vitest/snapshot@1.4.0: + resolution: {integrity: sha512-saAFnt5pPIA5qDGxOHxJ/XxhMFKkUSBJmVt5VgDsAqPTX6JP326r5C/c9UuCMPoXNzuudTPsYDZCoJ5ilpqG2A==} dependencies: - magic-string: 0.30.7 + magic-string: 0.30.8 pathe: 1.1.2 pretty-format: 29.7.0 dev: false - /@vitest/spy@1.3.1: - resolution: {integrity: sha512-xAcW+S099ylC9VLU7eZfdT9myV67Nor9w9zhf0mGCYJSO+zM2839tOeROTdikOi/8Qeusffvxb/MyBSOja1Uig==} + /@vitest/spy@1.4.0: + resolution: {integrity: sha512-Ywau/Qs1DzM/8Uc+yA77CwSegizMlcgTJuYGAi0jujOteJOUf1ujunHThYo243KG9nAyWT3L9ifPYZ5+As/+6Q==} dependencies: tinyspy: 2.2.1 dev: false - /@vitest/utils@1.3.1: - resolution: {integrity: sha512-d3Waie/299qqRyHTm2DjADeTaNdNSVsnwHPWrs20JMpjh6eiVq7ggggweO8rc4arhf6rRkWuHKwvxGvejUXZZQ==} + /@vitest/utils@1.4.0: + resolution: {integrity: sha512-mx3Yd1/6e2Vt/PUC98DcqTirtfxUyAZ32uK82r8rZzbtBeBo+nqgnjx/LvqQdWsrvNtm14VmurNgcf4nqY5gJg==} dependencies: diff-sequences: 29.6.3 estree-walker: 3.0.3 @@ -8494,67 +8493,44 @@ packages: pretty-format: 29.7.0 dev: false - /@volar/kit@2.0.4(typescript@5.3.2): - resolution: {integrity: sha512-USRx/o0jKz7o8+lEKWMxWqbqvC46XFrf3IE6CZBYzRo9kM7RERQLwUYaoT2bOcHt5DQWublpnTgdgHMm37Gysg==} + /@volar/kit@2.1.2(typescript@5.2.2): + resolution: {integrity: sha512-u20R1lCWCgFYBCHC+FR/e9J+P61vUNQpyWt4keAY+zpVHEHsSXVA2xWMJV1l1Iq5Dd0jBUSqrb1zsEya455AzA==} peerDependencies: typescript: '*' dependencies: - '@volar/language-service': 2.0.4 - '@volar/typescript': 2.0.4 + '@volar/language-service': 2.1.2 + '@volar/typescript': 2.1.2 typesafe-path: 0.2.2 - typescript: 5.3.2 + typescript: 5.2.2 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 - dev: false + dev: true - /@volar/kit@2.1.5(typescript@5.2.2): - resolution: {integrity: sha512-L4bHJ1TsKNjsmxSGBuzkUvii4EQoQAT9JoHy8aL4Y17qU/z0JWI1BzUDGpMl4oDlsc+WpWIVGo6KZAnclrUx/w==} + /@volar/kit@2.1.2(typescript@5.4.2): + resolution: {integrity: sha512-u20R1lCWCgFYBCHC+FR/e9J+P61vUNQpyWt4keAY+zpVHEHsSXVA2xWMJV1l1Iq5Dd0jBUSqrb1zsEya455AzA==} peerDependencies: typescript: '*' dependencies: - '@volar/language-service': 2.1.5 - '@volar/typescript': 2.1.5 + '@volar/language-service': 2.1.2 + '@volar/typescript': 2.1.2 typesafe-path: 0.2.2 - typescript: 5.2.2 + typescript: 5.4.2 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 - dev: true - - /@volar/language-core@2.0.4: - resolution: {integrity: sha512-VhC8i03P0x9LKGLTBi81xNTNWm40yxQ/Iba8IpH+LFr+Yb7c/D7fF90Cvf31MzPDM4G5rjIOlCfs+eQKPBkwQw==} - dependencies: - '@volar/source-map': 2.0.4 dev: false - /@volar/language-core@2.1.5: - resolution: {integrity: sha512-u1OHmVkCFsJqNdaM2GKuMhE67TxcEnOqJNF+VtYv2Ji8DnrUaF4FAFSNxY+MRGICl+873CsSJVKas9TQtW14LA==} - dependencies: - '@volar/source-map': 2.1.5 - dev: true - - /@volar/language-server@2.0.4: - resolution: {integrity: sha512-VnljhooQjT6RhmvwwJK9+3YYs2ovFmav4IVNHiQgnTMfiOiyABzcghwvJrJrI39rJDI6LNOWF7BYUJq7K07BKQ==} + /@volar/language-core@2.1.2: + resolution: {integrity: sha512-5qsDp0Gf6fE09UWCeK7bkVn6NxMwC9OqFWQkMMkeej8h8XjyABPdRygC2RCrqDrfVdGijqlMQeXs6yRS+vfZYA==} dependencies: - '@volar/language-core': 2.0.4 - '@volar/language-service': 2.0.4 - '@volar/snapshot-document': 2.0.4 - '@volar/typescript': 2.0.4 - '@vscode/l10n': 0.0.16 - 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.11 - vscode-uri: 3.0.8 - dev: false + '@volar/source-map': 2.1.2 - /@volar/language-server@2.1.5: - resolution: {integrity: sha512-uHNVf9J4IX4g10gAMJmPoIV9RteYlM+d9yOXcPfRn5JEM+RyNue3GJT1JkoK9JPU5yAdYBEAhDjA54Sl5tC3fA==} + /@volar/language-server@2.1.2: + resolution: {integrity: sha512-5NR5Ztg+OxvDI4oRrjS0/4ZVPumWwhVq5acuK2BJbakG1kJXViYI9NOWiWITMjnliPvf12TEcSrVDBmIq54DOg==} dependencies: - '@volar/language-core': 2.1.5 - '@volar/language-service': 2.1.5 - '@volar/snapshot-document': 2.1.5 - '@volar/typescript': 2.1.5 + '@volar/language-core': 2.1.2 + '@volar/language-service': 2.1.2 + '@volar/snapshot-document': 2.1.2 + '@volar/typescript': 2.1.2 '@vscode/l10n': 0.0.16 path-browserify: 1.0.1 request-light: 0.7.0 @@ -8562,70 +8538,36 @@ packages: vscode-languageserver-protocol: 3.17.5 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 - dev: true - - /@volar/language-service@2.0.4: - resolution: {integrity: sha512-DoanyU9I9Nl85lUytDl8jgyk+nrUDR5CFNVMrxWXGXclP4WTqBayBgSFAeF1L/5AwP3MywmWoK4GLAEVvl8D+Q==} - dependencies: - '@volar/language-core': 2.0.4 - vscode-languageserver-protocol: 3.17.5 - vscode-languageserver-textdocument: 1.0.11 - vscode-uri: 3.0.8 - dev: false - /@volar/language-service@2.1.5: - resolution: {integrity: sha512-WuvEv6x/fBe3e4akhblK1E2GgpnAZNnm7sKsRPrQPTE3ED5PIfiMrWgzKB5gNZToD+d6LPxfKAaGWQCpxmSJiw==} + /@volar/language-service@2.1.2: + resolution: {integrity: sha512-CmVbbKdqzVq+0FT67hfELdHpboqXhKXh6EjypypuFX5ptIRftHZdkaq3/lCCa46EHxS5tvE44jn+s7faN4iRDA==} dependencies: - '@volar/language-core': 2.1.5 + '@volar/language-core': 2.1.2 vscode-languageserver-protocol: 3.17.5 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 - dev: true - - /@volar/snapshot-document@2.0.4: - resolution: {integrity: sha512-YzgdmvpdRFxiBFCOVWga67naAtbPtKmPaFtGnmxWx+KXrjGkpUXT/2tzeKn5FLdtoYV+DRTdpMdP/45ArnVwZQ==} - dependencies: - vscode-languageserver-protocol: 3.17.5 - vscode-languageserver-textdocument: 1.0.11 - dev: false - /@volar/snapshot-document@2.1.5: - resolution: {integrity: sha512-UbHM95HxlLNAQ4hTSzIiMj2m19zmwrympviItbx6iPRhbd0FSPGsHdrfL8nsBa9q2cIvwSEtrmA5Sg3tHy4mrg==} + /@volar/snapshot-document@2.1.2: + resolution: {integrity: sha512-ZpJIBZrdm/Gx4jC/zn8H+O6H5vZZwY7B5CMTxl9y8HvcqlePOyDi+VkX8pjQz1VFG9Z5Z+Bau/RL6exqkoVDDA==} dependencies: vscode-languageserver-protocol: 3.17.5 vscode-languageserver-textdocument: 1.0.11 - dev: true - - /@volar/source-map@2.0.4: - resolution: {integrity: sha512-BbxUinEMoJZqrHsSj1aBa0boCBnN3BoXnf7j9IBwjxosxGXOhCvqmH2L9raJemadaKjeVR8ZQLhV7AOhyoHt/Q==} - dependencies: - muggle-string: 0.4.1 - dev: false - /@volar/source-map@2.1.5: - resolution: {integrity: sha512-GIkAM6fHgDcTXcdH4i10fAiAZzO0HLIer8/pt3oZ9A0n7n4R5d1b2F8Xxzh/pgmgNoL+SrHX3MFxs35CKgfmtA==} + /@volar/source-map@2.1.2: + resolution: {integrity: sha512-yFJqsuLm1OaWrsz9E3yd3bJcYIlHqdZ8MbmIoZLrAzMYQDcoF26/INIhgziEXSdyHc8xd7rd/tJdSnUyh0gH4Q==} dependencies: muggle-string: 0.4.1 - dev: true - - /@volar/typescript@2.0.4: - resolution: {integrity: sha512-KF7yh7GIo4iWuAQOKf/ONeFHdQA+wFriitW8LtGZB4iOOT6MdlRlYNsRL8do7XxmXvsBKcs4jTMtGn+uZRwlWg==} - dependencies: - '@volar/language-core': 2.0.4 - path-browserify: 1.0.1 - dev: false - /@volar/typescript@2.1.5: - resolution: {integrity: sha512-zo9a3NrNMSkufIvHuExDGTfYv+zO7C5p2wg8fyP7vcqF/Qo0ztjb0ZfOgq/A85EO/MBc1Kj2Iu7PaOBtP++NMw==} + /@volar/typescript@2.1.2: + resolution: {integrity: sha512-lhTancZqamvaLvoz0u/uth8dpudENNt2LFZOWCw9JZiX14xRFhdhfzmphiCRb7am9E6qAJSbdS/gMt1utXAoHQ==} dependencies: - '@volar/language-core': 2.1.5 + '@volar/language-core': 2.1.2 path-browserify: 1.0.1 - dev: true /@vscode/emmet-helper@2.9.2: resolution: {integrity: sha512-MaGuyW+fa13q3aYsluKqclmh62Hgp0BpKIqS66fCxfOaBcVQ1OnMQxRRgQUYnCkxFISAQlkJ0qWWPyXjro1Qrg==} dependencies: - emmet: 2.4.6 + emmet: 2.4.7 jsonc-parser: 2.3.1 vscode-languageserver-textdocument: 1.0.11 vscode-languageserver-types: 3.17.5 @@ -8637,12 +8579,12 @@ packages: /@vscode/l10n@0.0.18: resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==} - /@vue/babel-helper-vue-transform-on@1.1.5: - resolution: {integrity: sha512-SgUymFpMoAyWeYWLAY+MkCK3QEROsiUnfaw5zxOVD/M64KQs8D/4oK6Q5omVA2hnvEOE0SCkH2TZxs/jnnUj7w==} + /@vue/babel-helper-vue-transform-on@1.2.1: + resolution: {integrity: sha512-jtEXim+pfyHWwvheYwUwSXm43KwQo8nhOBDyjrUITV6X2tB7lJm6n/+4sqR8137UVZZul5hBzWHdZ2uStYpyRQ==} dev: false - /@vue/babel-plugin-jsx@1.1.5(@babel/core@7.24.3): - resolution: {integrity: sha512-nKs1/Bg9U1n3qSWnsHhCVQtAzI6aQXqua8j/bZrau8ywT1ilXQbK4FwEJGmU8fV7tcpuFvWmmN7TMmV1OBma1g==} + /@vue/babel-plugin-jsx@1.2.1(@babel/core@7.24.3): + resolution: {integrity: sha512-Yy9qGktktXhB39QE99So/BO2Uwm/ZG+gpL9vMg51ijRRbINvgbuhyJEi4WYmGRMx/MSTfK0xjgZ3/MyY+iLCEg==} peerDependencies: '@babel/core': ^7.0.0-0 peerDependenciesMeta: @@ -8651,11 +8593,13 @@ packages: dependencies: '@babel/core': 7.24.3 '@babel/helper-module-imports': 7.22.15 + '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.3) - '@babel/template': 7.22.15 - '@babel/traverse': 7.23.7 - '@babel/types': 7.23.6 - '@vue/babel-helper-vue-transform-on': 1.1.5 + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.0 + '@babel/types': 7.24.0 + '@vue/babel-helper-vue-transform-on': 1.2.1 + '@vue/babel-plugin-resolve-type': 1.2.1(@babel/core@7.24.3) camelcase: 6.3.0 html-tags: 3.3.1 svg-tags: 1.0.0 @@ -8663,39 +8607,55 @@ packages: - supports-color dev: false - /@vue/compiler-core@3.4.3: - resolution: {integrity: sha512-u8jzgFg0EDtSrb/hG53Wwh1bAOQFtc1ZCegBpA/glyvTlgHl+tq13o1zvRfLbegYUw/E4mSTGOiCnAJ9SJ+lsg==} + /@vue/babel-plugin-resolve-type@1.2.1(@babel/core@7.24.3): + resolution: {integrity: sha512-IOtnI7pHunUzHS/y+EG/yPABIAp0VN8QhQ0UCS09jeMVxgAnI9qdOzO85RXdQGxq+aWCdv8/+k3W0aYO6j/8fQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + dependencies: + '@babel/code-frame': 7.23.5 + '@babel/core': 7.24.3 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/parser': 7.24.0 + '@vue/compiler-sfc': 3.4.21 + dev: false + + /@vue/compiler-core@3.4.21: + resolution: {integrity: sha512-MjXawxZf2SbZszLPYxaFCjxfibYrzr3eYbKxwpLR9EQN+oaziSu3qKVbwBERj1IFIB8OLUewxB5m/BFzi613og==} dependencies: - '@babel/parser': 7.23.6 - '@vue/shared': 3.4.3 + '@babel/parser': 7.24.0 + '@vue/shared': 3.4.21 entities: 4.5.0 estree-walker: 2.0.2 - source-map-js: 1.0.2 + source-map-js: 1.1.0 - /@vue/compiler-dom@3.4.3: - resolution: {integrity: sha512-oGF1E9/htI6JWj/lTJgr6UgxNCtNHbM6xKVreBWeZL9QhRGABRVoWGAzxmtBfSOd+w0Zi5BY0Es/tlJrN6WgEg==} + /@vue/compiler-dom@3.4.21: + resolution: {integrity: sha512-IZC6FKowtT1sl0CR5DpXSiEB5ayw75oT2bma1BEhV7RRR1+cfwLrxc2Z8Zq/RGFzJ8w5r9QtCOvTjQgdn0IKmA==} dependencies: - '@vue/compiler-core': 3.4.3 - '@vue/shared': 3.4.3 + '@vue/compiler-core': 3.4.21 + '@vue/shared': 3.4.21 - /@vue/compiler-sfc@3.4.3: - resolution: {integrity: sha512-NuJqb5is9I4uzv316VRUDYgIlPZCG8D+ARt5P4t5UDShIHKL25J3TGZAUryY/Aiy0DsY7srJnZL5ryB6DD63Zw==} + /@vue/compiler-sfc@3.4.21: + resolution: {integrity: sha512-me7epoTxYlY+2CUM7hy9PCDdpMPfIwrOvAXud2Upk10g4YLv9UBW7kL798TvMeDhPthkZ0CONNrK2GoeI1ODiQ==} dependencies: - '@babel/parser': 7.23.6 - '@vue/compiler-core': 3.4.3 - '@vue/compiler-dom': 3.4.3 - '@vue/compiler-ssr': 3.4.3 - '@vue/shared': 3.4.3 + '@babel/parser': 7.24.0 + '@vue/compiler-core': 3.4.21 + '@vue/compiler-dom': 3.4.21 + '@vue/compiler-ssr': 3.4.21 + '@vue/shared': 3.4.21 estree-walker: 2.0.2 - magic-string: 0.30.5 - postcss: 8.4.35 - source-map-js: 1.0.2 + magic-string: 0.30.8 + postcss: 8.4.36 + source-map-js: 1.1.0 - /@vue/compiler-ssr@3.4.3: - resolution: {integrity: sha512-wnYQtMBkeFSxgSSQbYGQeXPhQacQiog2c6AlvMldQH6DB+gSXK/0F6DVXAJfEiuBSgBhUc8dwrrG5JQcqwalsA==} + /@vue/compiler-ssr@3.4.21: + resolution: {integrity: sha512-M5+9nI2lPpAsgXOGQobnIueVqc9sisBFexh5yMIMRAPYLa7+5wEJs8iqOZc1WAa9WQbx9GR2twgznU8LTIiZ4Q==} dependencies: - '@vue/compiler-dom': 3.4.3 - '@vue/shared': 3.4.3 + '@vue/compiler-dom': 3.4.21 + '@vue/shared': 3.4.21 /@vue/reactivity@3.1.5: resolution: {integrity: sha512-1tdfLmNjWG6t/CsPldh+foumYFo3cpyCHgBYQ34ylaMsJ+SNHQ1kApMIa8jN+i593zQuaw3AdWH0nJTARzCFhg==} @@ -8703,39 +8663,39 @@ packages: '@vue/shared': 3.1.5 dev: false - /@vue/reactivity@3.4.3: - resolution: {integrity: sha512-q5f9HLDU+5aBKizXHAx0w4whkIANs1Muiq9R5YXm0HtorSlflqv9u/ohaMxuuhHWCji4xqpQ1eL04WvmAmGnFg==} + /@vue/reactivity@3.4.21: + resolution: {integrity: sha512-UhenImdc0L0/4ahGCyEzc/pZNwVgcglGy9HVzJ1Bq2Mm9qXOpP8RyNTjookw/gOCUlXSEtuZ2fUg5nrHcoqJcw==} dependencies: - '@vue/shared': 3.4.3 + '@vue/shared': 3.4.21 - /@vue/runtime-core@3.4.3: - resolution: {integrity: sha512-C1r6QhB1qY7D591RCSFhMULyzL9CuyrGc+3PpB0h7dU4Qqw6GNyo4BNFjHZVvsWncrUlKX3DIKg0Y7rNNr06NQ==} + /@vue/runtime-core@3.4.21: + resolution: {integrity: sha512-pQthsuYzE1XcGZznTKn73G0s14eCJcjaLvp3/DKeYWoFacD9glJoqlNBxt3W2c5S40t6CCcpPf+jG01N3ULyrA==} dependencies: - '@vue/reactivity': 3.4.3 - '@vue/shared': 3.4.3 + '@vue/reactivity': 3.4.21 + '@vue/shared': 3.4.21 - /@vue/runtime-dom@3.4.3: - resolution: {integrity: sha512-wrsprg7An5Ec+EhPngWdPuzkp0BEUxAKaQtN9dPU/iZctPyD9aaXmVtehPJerdQxQale6gEnhpnfywNw3zOv2A==} + /@vue/runtime-dom@3.4.21: + resolution: {integrity: sha512-gvf+C9cFpevsQxbkRBS1NpU8CqxKw0ebqMvLwcGQrNpx6gqRDodqKqA+A2VZZpQ9RpK2f9yfg8VbW/EpdFUOJw==} dependencies: - '@vue/runtime-core': 3.4.3 - '@vue/shared': 3.4.3 + '@vue/runtime-core': 3.4.21 + '@vue/shared': 3.4.21 csstype: 3.1.3 - /@vue/server-renderer@3.4.3(vue@3.4.3): - resolution: {integrity: sha512-BUxt8oVGMKKsqSkM1uU3d3Houyfy4WAc2SpSQRebNd+XJGATVkW/rO129jkyL+kpB/2VRKzE63zwf5RtJ3XuZw==} + /@vue/server-renderer@3.4.21(vue@3.4.21): + resolution: {integrity: sha512-aV1gXyKSN6Rz+6kZ6kr5+Ll14YzmIbeuWe7ryJl5muJ4uwSwY/aStXTixx76TwkZFJLm1aAlA/HSWEJ4EyiMkg==} peerDependencies: - vue: 3.4.3 + vue: 3.4.21 dependencies: - '@vue/compiler-ssr': 3.4.3 - '@vue/shared': 3.4.3 - vue: 3.4.3(typescript@5.2.2) + '@vue/compiler-ssr': 3.4.21 + '@vue/shared': 3.4.21 + vue: 3.4.21(typescript@5.2.2) /@vue/shared@3.1.5: resolution: {integrity: sha512-oJ4F3TnvpXaQwZJNF3ZK+kLPHKarDmJjJ6jyzVNDKH9md1dptjC7lWR//jrGuLdek/U6iltWxqAnYOu8gCiOvA==} dev: false - /@vue/shared@3.4.3: - resolution: {integrity: sha512-rIwlkkP1n4uKrRzivAKPZIEkHiuwY5mmhMJ2nZKCBLz8lTUlE73rQh4n1OnnMurXt1vcUNyH4ZPfdh8QweTjpQ==} + /@vue/shared@3.4.21: + resolution: {integrity: sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g==} /@webcomponents/template-shadowroot@0.2.1: resolution: {integrity: sha512-fXL/vIUakyZL62hyvUh+EMwbVoTc0hksublmRz6ai6et8znHkJa6gtqMUZo1oc7dIz46exHSIImml9QTdknMHg==} @@ -8817,8 +8777,8 @@ packages: uri-js: 4.4.1 dev: true - /alpinejs@3.13.3: - resolution: {integrity: sha512-WZ6WQjkAOl+WdW/jukzNHq9zHFDNKmkk/x6WF7WdyNDD6woinrfXCVsZXm0galjbco+pEpYmJLtwlZwcOfIVdg==} + /alpinejs@3.13.7: + resolution: {integrity: sha512-rcTyjTANbsePq1hb7eSekt3qjI94HLGeO6JaRjCssCVbIIc+qBrc7pO5S/+2JB6oojIibjM6FA+xRI3zhGPZIg==} dependencies: '@vue/reactivity': 3.1.5 dev: false @@ -8913,11 +8873,12 @@ packages: dependencies: dequal: 2.0.3 - /array-buffer-byte-length@1.0.0: - resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} + /array-buffer-byte-length@1.0.1: + resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 - is-array-buffer: 3.0.2 + call-bind: 1.0.7 + is-array-buffer: 3.0.4 dev: true /array-flatten@1.1.1: @@ -8937,23 +8898,24 @@ packages: resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.22.5 es-shim-unscopables: 1.0.2 dev: true - /arraybuffer.prototype.slice@1.0.2: - resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} + /arraybuffer.prototype.slice@1.0.3: + resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} engines: {node: '>= 0.4'} dependencies: - array-buffer-byte-length: 1.0.0 - call-bind: 1.0.5 + array-buffer-byte-length: 1.0.1 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 - is-array-buffer: 3.0.2 - is-shared-array-buffer: 1.0.2 + es-abstract: 1.22.5 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + is-array-buffer: 3.0.4 + is-shared-array-buffer: 1.0.3 dev: true /arrify@1.0.1: @@ -8975,7 +8937,7 @@ packages: peerDependencies: astro: '*' dependencies: - '@types/node': 18.19.4 + '@types/node': 18.19.24 acorn: 8.11.3 astro: link:packages/astro dev: false @@ -8988,7 +8950,7 @@ packages: '@astro-community/astro-embed-integration': 0.6.1(astro@packages+astro) '@astro-community/astro-embed-twitter': 0.5.3(astro@packages+astro) '@astro-community/astro-embed-vimeo': 0.3.2(astro@packages+astro) - '@astro-community/astro-embed-youtube': 0.4.3(astro@packages+astro) + '@astro-community/astro-embed-youtube': 0.4.4(astro@packages+astro) astro: link:packages/astro dev: false @@ -9012,8 +8974,8 @@ packages: /asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - /autocannon@7.14.0: - resolution: {integrity: sha512-lusP43BAwrTwQhihLjKwy7LceyX01eKSvFJUsBktASGqcR1g1ySYSPxCoCGDX08uLEs9oaqEKBBUFMenK3B3lQ==} + /autocannon@7.15.0: + resolution: {integrity: sha512-NaP2rQyA+tcubOJMFv2+oeW9jv2pq/t+LM6BL3cfJic0HEfscEcnWgAyU5YovE/oTHUzAgTliGdLPR+RQAWUbg==} hasBin: true dependencies: chalk: 4.1.2 @@ -9026,7 +8988,7 @@ packages: hdr-histogram-js: 3.0.0 hdr-histogram-percentiles-obj: 3.0.0 http-parser-js: 0.5.8 - hyperid: 3.1.1 + hyperid: 3.2.0 lodash.chunk: 4.2.0 lodash.clonedeep: 4.5.0 lodash.flatten: 4.4.0 @@ -9036,65 +8998,45 @@ packages: progress: 2.0.3 reinterval: 1.1.0 retimer: 3.0.0 - semver: 7.5.4 + semver: 7.6.0 subarg: 1.0.0 timestring: 6.0.0 dev: false - /autoprefixer@10.4.16(postcss@8.4.32): - resolution: {integrity: sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==} + /autoprefixer@10.4.18(postcss@8.4.36): + resolution: {integrity: sha512-1DKbDfsr6KUElM6wg+0zRNkB/Q7WcKYAaK+pzXn+Xqmszm/5Xa9coeNdtP88Vi+dPzZnMjhge8GIV49ZQkDa+g==} engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: postcss: ^8.1.0 dependencies: - browserslist: 4.22.2 - caniuse-lite: 1.0.30001572 + browserslist: 4.23.0 + caniuse-lite: 1.0.30001599 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.0.0 - postcss: 8.4.32 + postcss: 8.4.36 postcss-value-parser: 4.2.0 - /autoprefixer@10.4.16(postcss@8.4.35): - resolution: {integrity: sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==} - engines: {node: ^10 || ^12 || >=14} - hasBin: true - peerDependencies: - postcss: ^8.1.0 + /available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} dependencies: - browserslist: 4.22.2 - caniuse-lite: 1.0.30001572 - fraction.js: 4.3.7 - normalize-range: 0.1.2 - picocolors: 1.0.0 - postcss: 8.4.35 - postcss-value-parser: 4.2.0 - dev: false - - /available-typed-arrays@1.0.5: - resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} - engines: {node: '>= 0.4'} - dev: true - - /axobject-query@3.2.1: - resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} - dependencies: - dequal: 2.0.3 + possible-typed-array-names: 1.0.0 + dev: true /axobject-query@4.0.0: resolution: {integrity: sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==} dependencies: dequal: 2.0.3 - dev: false - /b4a@1.6.4: - resolution: {integrity: sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==} + /b4a@1.6.6: + resolution: {integrity: sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==} requiresBuild: true dev: false - /babel-plugin-jsx-dom-expressions@0.37.9(@babel/core@7.24.3): - resolution: {integrity: sha512-6w+zs2i14fVanj4e1hXCU5cp+x0U0LJ5jScknpMZZUteHhwFRGJflHMVJ+xAcW7ku41FYjr7DgtK9mnc2SXlJg==} + /babel-plugin-jsx-dom-expressions@0.37.17(@babel/core@7.24.3): + resolution: {integrity: sha512-1bv8rOTzs6TR3DVyVZ7ElxyPEhnS556FMWRIsB3gBPfkn/cSKaLvXLGk+X1lvI+SzcUo4G+UcmJrn3vr1ig8mQ==} peerDependencies: '@babel/core': ^7.20.12 peerDependenciesMeta: @@ -9104,7 +9046,7 @@ packages: '@babel/core': 7.24.3 '@babel/helper-module-imports': 7.18.6 '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.24.3) - '@babel/types': 7.23.6 + '@babel/types': 7.24.0 html-entities: 2.3.3 validate-html-nesting: 1.2.2 dev: false @@ -9118,8 +9060,8 @@ packages: optional: true dev: false - /babel-preset-solid@1.8.6(@babel/core@7.24.3): - resolution: {integrity: sha512-Ened42CHjU4EFkvNeS042/3Pm21yvMWn8p4G4ddzQTlKaMwSGGD1VciA/e7EshBVHJCcBj9vHiUd/r3A4qLPZA==} + /babel-preset-solid@1.8.15(@babel/core@7.24.3): + resolution: {integrity: sha512-P2yOQbB7Hn/m4YvpXV6ExHIMcgNWXWXcvY4kJzG3yqAB3hKS58OZRsvJ7RObsZWqXRvZTITBIwnpK0BMGu+ZIQ==} peerDependencies: '@babel/core': ^7.0.0 peerDependenciesMeta: @@ -9127,7 +9069,7 @@ packages: optional: true dependencies: '@babel/core': 7.24.3 - babel-plugin-jsx-dom-expressions: 0.37.9(@babel/core@7.24.3) + babel-plugin-jsx-dom-expressions: 0.37.17(@babel/core@7.24.3) dev: false /bail@2.0.2: @@ -9136,6 +9078,37 @@ packages: /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + /bare-events@2.2.1: + resolution: {integrity: sha512-9GYPpsPFvrWBkelIhOhTWtkeZxVxZOdb3VnFTCzlOo3OjvmTvzLoZFUT8kNFACx0vJej6QPney1Cf9BvzCNE/A==} + requiresBuild: true + dev: false + optional: true + + /bare-fs@2.2.2: + resolution: {integrity: sha512-X9IqgvyB0/VA5OZJyb5ZstoN62AzD7YxVGog13kkfYWYqJYcK0kcqLZ6TrmH5qr4/8//ejVcX4x/a0UvaogXmA==} + requiresBuild: true + dependencies: + bare-events: 2.2.1 + bare-os: 2.2.1 + bare-path: 2.1.0 + streamx: 2.16.1 + dev: false + optional: true + + /bare-os@2.2.1: + resolution: {integrity: sha512-OwPyHgBBMkhC29Hl3O4/YfxW9n7mdTr2+SsO29XBWKKJsbgj3mnorDB80r5TiCQgQstgE5ga1qNYrpes6NvX2w==} + requiresBuild: true + dev: false + optional: true + + /bare-path@2.1.0: + resolution: {integrity: sha512-DIIg7ts8bdRKwJRJrUMy/PICEaQZaPGZ26lsSx9MJSwIhSrcdHn7/C8W+XmnG/rKi6BaRcz+JO00CjZteybDtw==} + requiresBuild: true + dependencies: + bare-os: 2.2.1 + dev: false + optional: true + /base-64@1.0.0: resolution: {integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==} dev: false @@ -9159,8 +9132,8 @@ packages: is-windows: 1.0.2 dev: true - /binary-extensions@2.2.0: - resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + /binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} /bindings@1.5.0: @@ -9186,8 +9159,8 @@ packages: readable-stream: 3.6.2 dev: false - /body-parser@1.20.1: - resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==} + /body-parser@1.20.2: + resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} dependencies: bytes: 3.1.2 @@ -9199,7 +9172,7 @@ packages: iconv-lite: 0.4.24 on-finished: 2.4.1 qs: 6.11.0 - raw-body: 2.5.1 + raw-body: 2.5.2 type-is: 1.6.18 unpipe: 1.0.0 transitivePeerDependencies: @@ -9250,19 +9223,18 @@ packages: resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} dev: true - /browserslist@4.22.2: - resolution: {integrity: sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==} + /browserslist@4.23.0: + resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001572 - electron-to-chromium: 1.4.616 + caniuse-lite: 1.0.30001599 + electron-to-chromium: 1.4.708 node-releases: 2.0.14 - update-browserslist-db: 1.0.13(browserslist@4.22.2) + update-browserslist-db: 1.0.13(browserslist@4.23.0) /buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} - requiresBuild: true dependencies: base64-js: 1.5.1 ieee754: 1.2.1 @@ -9292,12 +9264,15 @@ packages: engines: {node: '>=8'} dev: false - /call-bind@1.0.5: - resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} + /call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 function-bind: 1.1.2 - get-intrinsic: 1.2.2 - set-function-length: 1.1.1 + get-intrinsic: 1.2.4 + set-function-length: 1.2.2 dev: true /callsites@3.1.0: @@ -9339,8 +9314,8 @@ packages: engines: {node: '>=14.16'} dev: false - /caniuse-lite@1.0.30001572: - resolution: {integrity: sha512-1Pbh5FLmn5y4+QhNyJE9j3/7dK44dGB83/ZMjv/qJk86TvDbjk0LosiZo0i0WB0Vx607qMX9jYrn1VLHCkN4rw==} + /caniuse-lite@1.0.30001599: + resolution: {integrity: sha512-LRAQHZ4yT1+f9LemSMeqdMpMxZcc4RMWdj4tiFe3G8tNkWK+E58g+/tzotb5cU6TbcVJLr4fySiAW7XmxQvZQA==} /canvas-confetti@1.9.2: resolution: {integrity: sha512-6Xi7aHHzKwxZsem4mCKoqP6YwUG3HamaHHAlz1hTNQPCqXhARFpSXnkC9TWlahHY5CG6hSL5XexNjxK8irVErg==} @@ -9443,6 +9418,21 @@ packages: readdirp: 3.6.0 optionalDependencies: fsevents: 2.3.3 + dev: true + + /chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 /chownr@1.1.4: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} @@ -9715,35 +9705,35 @@ packages: shebang-command: 2.0.0 which: 2.0.2 - /css-blank-pseudo@6.0.1(postcss@8.4.32): + /css-blank-pseudo@6.0.1(postcss@8.4.36): resolution: {integrity: sha512-goSnEITByxTzU4Oh5oJZrEWudxTqk7L6IXj1UW69pO6Hv0UdX+Vsrt02FFu5DweRh2bLu6WpX/+zsQCu5O1gKw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 - postcss-selector-parser: 6.0.15 + postcss: 8.4.36 + postcss-selector-parser: 6.0.16 dev: true - /css-has-pseudo@6.0.1(postcss@8.4.32): - resolution: {integrity: sha512-WwoVKqNxApfEI7dWFyaHoeFCcUPD+lPyjL6lNpRUNX7IyIUuVpawOTwwA5D0ZR6V2xQZonNPVj8kEcxzEaAQfQ==} + /css-has-pseudo@6.0.2(postcss@8.4.36): + resolution: {integrity: sha512-Z2Qm5yyOvJRTy6THdUlnGIX6PW/1wOc4FHWlfkcBkfkpZ3oz6lPdG+h+J7t1HZHT4uSSVR8XatXiMpqMUADXow==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/selector-specificity': 3.0.1(postcss-selector-parser@6.0.15) - postcss: 8.4.32 - postcss-selector-parser: 6.0.15 + '@csstools/selector-specificity': 3.0.2(postcss-selector-parser@6.0.16) + postcss: 8.4.36 + postcss-selector-parser: 6.0.16 postcss-value-parser: 4.2.0 dev: true - /css-prefers-color-scheme@9.0.1(postcss@8.4.32): + /css-prefers-color-scheme@9.0.1(postcss@8.4.36): resolution: {integrity: sha512-iFit06ochwCKPRiWagbTa1OAWCvWWVdEnIFd8BaRrgO8YrrNh4RAWUQTFcYX5tdFZgFl1DJ3iiULchZyEbnF4g==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 + postcss: 8.4.36 dev: true /css-select@5.1.0: @@ -9759,8 +9749,8 @@ packages: resolution: {integrity: sha512-HYPSb7y/Z7BNDCOrakL4raGO2zltZkbeXyAd6Tg9obzix6QhzxCotdBl6VT0Dv4vZfJGVz3WL/xaEI9Ly3ul0g==} dev: false - /css-selector-parser@3.0.4: - resolution: {integrity: sha512-pnmS1dbKsz6KA4EW4BznyPL2xxkNDRg62hcD0v8g6DEw2W7hxOln5M953jsp9hmw5Dg57S6o/A8GOn37mbAgcQ==} + /css-selector-parser@3.0.5: + resolution: {integrity: sha512-3itoDFbKUNx1eKmVpYMFyqKX04Ww9osZ+dLgrk6GEv6KMVeXUhUnp4I5X+evw+u3ZxVU6RFXSSRxlTeMh8bA+g==} dev: false /css-tree@2.2.1: @@ -9768,7 +9758,7 @@ packages: engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} dependencies: mdn-data: 2.0.28 - source-map-js: 1.0.2 + source-map-js: 1.1.0 dev: false /css-tree@2.3.1: @@ -9776,14 +9766,14 @@ packages: engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} dependencies: mdn-data: 2.0.30 - source-map-js: 1.0.2 + source-map-js: 1.1.0 /css-what@6.1.0: resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} engines: {node: '>= 6'} - /cssdb@7.10.0: - resolution: {integrity: sha512-yGZ5tmA57gWh/uvdQBHs45wwFY0IBh3ypABk5sEubPBPSzXzkNgsWReqx7gdx6uhC+QoFBe+V8JwBB9/hQ6cIA==} + /cssdb@7.11.2: + resolution: {integrity: sha512-lhQ32TFkc1X4eTefGfYPvgovRSzIMofHkigfH8nWtyRL4XJLsRhJFreRvEgKzept7x1rjBuy3J/MurXLaFxW/A==} dev: true /cssesc@3.0.0: @@ -9848,6 +9838,33 @@ packages: whatwg-url: 12.0.1 dev: true + /data-view-buffer@1.0.1: + resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + dev: true + + /data-view-byte-length@1.0.1: + resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + dev: true + + /data-view-byte-offset@1.0.0: + resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + dev: true + /dataloader@1.4.0: resolution: {integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==} dev: true @@ -9957,13 +9974,13 @@ packages: clone: 1.0.4 dev: true - /define-data-property@1.1.1: - resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} + /define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.2.2 + es-define-property: 1.0.0 + es-errors: 1.3.0 gopd: 1.0.1 - has-property-descriptors: 1.0.1 dev: true /define-lazy-prop@3.0.0: @@ -9975,13 +9992,13 @@ packages: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} dependencies: - define-data-property: 1.1.1 - has-property-descriptors: 1.0.1 + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 object-keys: 1.1.1 dev: true - /defu@6.1.3: - resolution: {integrity: sha512-Vy2wmG3NTkmHNg/kzpuvHhkqeIx3ODWqasgCRbKtbXEN0G+HpEEv9BtJLp7ZG1CZloFaC41Ah3ZFbq7aqCqMeQ==} + /defu@6.1.4: + resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} dev: false /del@7.1.0: @@ -10065,8 +10082,8 @@ packages: engines: {node: '>=0.3.1'} dev: true - /diff@5.1.0: - resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} + /diff@5.2.0: + resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} engines: {node: '>=0.3.1'} dev: false @@ -10128,7 +10145,7 @@ packages: engines: {node: '>=10'} dev: true - /drizzle-orm@0.30.2(@libsql/client@0.5.5): + /drizzle-orm@0.30.2(@libsql/client@0.5.6): resolution: {integrity: sha512-DNd3djg03o+WxZX3pGD8YD+qrWT8gbrbhaZ2W0PVb6yH4rtM/VTB92cTGvumcRh7SSd2KfV0NWYDB70BHIXQTg==} peerDependencies: '@aws-sdk/client-rds-data': '>=3' @@ -10202,7 +10219,7 @@ packages: sqlite3: optional: true dependencies: - '@libsql/client': 0.5.5 + '@libsql/client': 0.5.6 dev: false /dset@3.1.3: @@ -10226,11 +10243,11 @@ packages: /ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - /electron-to-chromium@1.4.616: - resolution: {integrity: sha512-1n7zWYh8eS0L9Uy+GskE0lkBUNK83cXTVJI0pU3mGprFsbfSdAc15VTFbo+A+Bq4pwstmL30AVcEU3Fo463lNg==} + /electron-to-chromium@1.4.708: + resolution: {integrity: sha512-iWgEEvREL4GTXXHKohhh33+6Y8XkPI5eHihDmm8zUk5Zo7HICEW+wI/j5kJ2tbuNUCXJ/sNXa03ajW635DiJXA==} - /emmet@2.4.6: - resolution: {integrity: sha512-dJfbdY/hfeTyf/Ef7Y7ubLYzkBvPQ912wPaeVYpAxvFxkEBf/+hJu4H6vhAvFN6HlxqedlfVn2x1S44FfQ97pg==} + /emmet@2.4.7: + resolution: {integrity: sha512-O5O5QNqtdlnQM2bmKHtJgyChcrFMgQuulI+WdiOw2NArzprUqqxUW6bgYtKvzKgrsYpuLWalOkdhNP+1jluhCA==} dependencies: '@emmetio/abbreviation': 2.3.3 '@emmetio/css-abbreviation': 2.1.8 @@ -10256,8 +10273,8 @@ packages: once: 1.4.0 dev: false - /enhanced-resolve@5.15.0: - resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} + /enhanced-resolve@5.16.0: + resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==} engines: {node: '>=10.13.0'} dependencies: graceful-fs: 4.2.11 @@ -10286,68 +10303,141 @@ packages: is-arrayish: 0.2.1 dev: true - /es-abstract@1.22.3: - resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==} + /es-abstract@1.22.5: + resolution: {integrity: sha512-oW69R+4q2wG+Hc3KZePPZxOiisRIqfKBVo/HLx94QcJeWGU/8sZhCvc829rd1kS366vlJbzBfXf9yWwf0+Ko7w==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.1 + arraybuffer.prototype.slice: 1.0.3 + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + es-define-property: 1.0.0 + es-errors: 1.3.0 + es-set-tostringtag: 2.0.3 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.4 + get-symbol-description: 1.0.2 + globalthis: 1.0.3 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + internal-slot: 1.0.7 + is-array-buffer: 3.0.4 + is-callable: 1.2.7 + is-negative-zero: 2.0.3 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.3 + is-string: 1.0.7 + is-typed-array: 1.1.13 + is-weakref: 1.0.2 + object-inspect: 1.13.1 + object-keys: 1.1.1 + object.assign: 4.1.5 + regexp.prototype.flags: 1.5.2 + safe-array-concat: 1.1.2 + safe-regex-test: 1.0.3 + string.prototype.trim: 1.2.9 + string.prototype.trimend: 1.0.8 + string.prototype.trimstart: 1.0.7 + typed-array-buffer: 1.0.2 + typed-array-byte-length: 1.0.1 + typed-array-byte-offset: 1.0.2 + typed-array-length: 1.0.5 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.15 + dev: true + + /es-abstract@1.23.2: + resolution: {integrity: sha512-60s3Xv2T2p1ICykc7c+DNDPLDMm9t4QxCOUU0K9JxiLjM3C1zB9YVdN7tjxrFd4+AkZ8CdX1ovUga4P2+1e+/w==} engines: {node: '>= 0.4'} dependencies: - array-buffer-byte-length: 1.0.0 - arraybuffer.prototype.slice: 1.0.2 - available-typed-arrays: 1.0.5 - call-bind: 1.0.5 - es-set-tostringtag: 2.0.2 + array-buffer-byte-length: 1.0.1 + arraybuffer.prototype.slice: 1.0.3 + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + data-view-buffer: 1.0.1 + data-view-byte-length: 1.0.1 + data-view-byte-offset: 1.0.0 + es-define-property: 1.0.0 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-set-tostringtag: 2.0.3 es-to-primitive: 1.2.1 function.prototype.name: 1.1.6 - get-intrinsic: 1.2.2 - get-symbol-description: 1.0.0 + get-intrinsic: 1.2.4 + get-symbol-description: 1.0.2 globalthis: 1.0.3 gopd: 1.0.1 - has-property-descriptors: 1.0.1 - has-proto: 1.0.1 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 has-symbols: 1.0.3 - hasown: 2.0.0 - internal-slot: 1.0.6 - is-array-buffer: 3.0.2 + hasown: 2.0.2 + internal-slot: 1.0.7 + is-array-buffer: 3.0.4 is-callable: 1.2.7 - is-negative-zero: 2.0.2 + is-data-view: 1.0.1 + is-negative-zero: 2.0.3 is-regex: 1.1.4 - is-shared-array-buffer: 1.0.2 + is-shared-array-buffer: 1.0.3 is-string: 1.0.7 - is-typed-array: 1.1.12 + is-typed-array: 1.1.13 is-weakref: 1.0.2 object-inspect: 1.13.1 object-keys: 1.1.1 object.assign: 4.1.5 - regexp.prototype.flags: 1.5.1 - safe-array-concat: 1.0.1 - safe-regex-test: 1.0.0 - string.prototype.trim: 1.2.8 - string.prototype.trimend: 1.0.7 + regexp.prototype.flags: 1.5.2 + safe-array-concat: 1.1.2 + safe-regex-test: 1.0.3 + string.prototype.trim: 1.2.9 + string.prototype.trimend: 1.0.8 string.prototype.trimstart: 1.0.7 - typed-array-buffer: 1.0.0 - typed-array-byte-length: 1.0.0 - typed-array-byte-offset: 1.0.0 - typed-array-length: 1.0.4 + typed-array-buffer: 1.0.2 + typed-array-byte-length: 1.0.1 + typed-array-byte-offset: 1.0.2 + typed-array-length: 1.0.5 unbox-primitive: 1.0.2 - which-typed-array: 1.1.13 + which-typed-array: 1.1.15 + dev: true + + /es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.4 + dev: true + + /es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} dev: true /es-module-lexer@1.4.1: resolution: {integrity: sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==} dev: false - /es-set-tostringtag@2.0.2: - resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==} + /es-object-atoms@1.0.0: + resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.2.2 - has-tostringtag: 1.0.0 - hasown: 2.0.0 + es-errors: 1.3.0 + dev: true + + /es-set-tostringtag@2.0.3: + resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.4 + has-tostringtag: 1.0.2 + hasown: 2.0.2 dev: true /es-shim-unscopables@1.0.2: resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} dependencies: - hasown: 2.0.0 + hasown: 2.0.2 dev: true /es-to-primitive@1.2.1: @@ -10359,50 +10449,50 @@ packages: is-symbol: 1.0.4 dev: true - /esbuild-plugin-copy@2.1.1(esbuild@0.19.11): + /esbuild-plugin-copy@2.1.1(esbuild@0.19.12): resolution: {integrity: sha512-Bk66jpevTcV8KMFzZI1P7MZKZ+uDcrZm2G2egZ2jNIvVnivDpodZI+/KnpL3Jnap0PBdIHU7HwFGB8r+vV5CVw==} peerDependencies: esbuild: '>= 0.14.0' dependencies: chalk: 4.1.2 - chokidar: 3.5.3 - esbuild: 0.19.11 + chokidar: 3.6.0 + esbuild: 0.19.12 fs-extra: 10.1.0 globby: 11.1.0 dev: true - /esbuild@0.19.11: - resolution: {integrity: sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==} + /esbuild@0.19.12: + resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/aix-ppc64': 0.19.11 - '@esbuild/android-arm': 0.19.11 - '@esbuild/android-arm64': 0.19.11 - '@esbuild/android-x64': 0.19.11 - '@esbuild/darwin-arm64': 0.19.11 - '@esbuild/darwin-x64': 0.19.11 - '@esbuild/freebsd-arm64': 0.19.11 - '@esbuild/freebsd-x64': 0.19.11 - '@esbuild/linux-arm': 0.19.11 - '@esbuild/linux-arm64': 0.19.11 - '@esbuild/linux-ia32': 0.19.11 - '@esbuild/linux-loong64': 0.19.11 - '@esbuild/linux-mips64el': 0.19.11 - '@esbuild/linux-ppc64': 0.19.11 - '@esbuild/linux-riscv64': 0.19.11 - '@esbuild/linux-s390x': 0.19.11 - '@esbuild/linux-x64': 0.19.11 - '@esbuild/netbsd-x64': 0.19.11 - '@esbuild/openbsd-x64': 0.19.11 - '@esbuild/sunos-x64': 0.19.11 - '@esbuild/win32-arm64': 0.19.11 - '@esbuild/win32-ia32': 0.19.11 - '@esbuild/win32-x64': 0.19.11 - - /escalade@3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + '@esbuild/aix-ppc64': 0.19.12 + '@esbuild/android-arm': 0.19.12 + '@esbuild/android-arm64': 0.19.12 + '@esbuild/android-x64': 0.19.12 + '@esbuild/darwin-arm64': 0.19.12 + '@esbuild/darwin-x64': 0.19.12 + '@esbuild/freebsd-arm64': 0.19.12 + '@esbuild/freebsd-x64': 0.19.12 + '@esbuild/linux-arm': 0.19.12 + '@esbuild/linux-arm64': 0.19.12 + '@esbuild/linux-ia32': 0.19.12 + '@esbuild/linux-loong64': 0.19.12 + '@esbuild/linux-mips64el': 0.19.12 + '@esbuild/linux-ppc64': 0.19.12 + '@esbuild/linux-riscv64': 0.19.12 + '@esbuild/linux-s390x': 0.19.12 + '@esbuild/linux-x64': 0.19.12 + '@esbuild/netbsd-x64': 0.19.12 + '@esbuild/openbsd-x64': 0.19.12 + '@esbuild/sunos-x64': 0.19.12 + '@esbuild/win32-arm64': 0.19.12 + '@esbuild/win32-ia32': 0.19.12 + '@esbuild/win32-x64': 0.19.12 + + /escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} engines: {node: '>=6'} /escape-html@1.0.3: @@ -10421,13 +10511,13 @@ packages: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} - /eslint-config-prettier@9.1.0(eslint@8.56.0): + /eslint-config-prettier@9.1.0(eslint@8.57.0): resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.56.0 + eslint: 8.57.0 dev: true /eslint-plugin-no-only-tests@3.1.0: @@ -10435,8 +10525,8 @@ packages: engines: {node: '>=5.0.0'} dev: true - /eslint-plugin-prettier@5.1.2(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.1.1): - resolution: {integrity: sha512-dhlpWc9vOwohcWmClFcA+HjlvUpuyynYs0Rf+L/P6/0iQE6vlHW9l5bkfzN62/Stm9fbq8ku46qzde76T1xlSg==} + /eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.2.5): + resolution: {integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: '@types/eslint': '>=8.0.0' @@ -10449,23 +10539,23 @@ packages: eslint-config-prettier: optional: true dependencies: - eslint: 8.56.0 - eslint-config-prettier: 9.1.0(eslint@8.56.0) - prettier: 3.1.1 + eslint: 8.57.0 + eslint-config-prettier: 9.1.0(eslint@8.57.0) + prettier: 3.2.5 prettier-linter-helpers: 1.0.0 synckit: 0.8.8 dev: true - /eslint-plugin-regexp@2.2.0(eslint@8.56.0): - resolution: {integrity: sha512-0kwpiWiLRVBkVr3oIRQLl196sXP/NF6DQFefv9jtR4ZOgQR+6WID2pIZ0I+wIt54qgBPwBB7Gm2a+ueh8/WsFQ==} + /eslint-plugin-regexp@2.3.0(eslint@8.57.0): + resolution: {integrity: sha512-T8JUs7ssRGbuXb+CGfdUJbcxTBMCNOpNqNBLuC8JUKAEIez72J37RaOi5/4dAUsGz92GbWVtqTLPSJZGyP/sQA==} engines: {node: ^18 || >=20} peerDependencies: eslint: '>=8.44.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@eslint-community/regexpp': 4.10.0 comment-parser: 1.4.1 - eslint: 8.56.0 + eslint: 8.57.0 jsdoc-type-pratt-parser: 4.0.0 refa: 0.12.1 regexp-ast-analysis: 0.7.1 @@ -10485,16 +10575,16 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.56.0: - resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==} + /eslint@8.57.0: + resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@eslint-community/regexpp': 4.10.0 '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.56.0 - '@humanwhocodes/config-array': 0.11.13 + '@eslint/js': 8.57.0 + '@humanwhocodes/config-array': 0.11.14 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 '@ungap/structured-clone': 1.2.0 @@ -10515,7 +10605,7 @@ packages: glob-parent: 6.0.2 globals: 13.24.0 graphemer: 1.4.0 - ignore: 5.3.0 + ignore: 5.3.1 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 @@ -10579,7 +10669,7 @@ packages: /estree-util-build-jsx@3.0.1: resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==} dependencies: - '@types/estree-jsx': 1.0.3 + '@types/estree-jsx': 1.0.5 devlop: 1.1.0 estree-util-is-identifier-name: 3.0.0 estree-walker: 3.0.3 @@ -10592,7 +10682,7 @@ packages: /estree-util-to-js@2.0.0: resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==} dependencies: - '@types/estree-jsx': 1.0.3 + '@types/estree-jsx': 1.0.5 astring: 1.8.6 source-map: 0.7.4 dev: false @@ -10600,7 +10690,7 @@ packages: /estree-util-visit@2.0.0: resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} dependencies: - '@types/estree-jsx': 1.0.3 + '@types/estree-jsx': 1.0.5 '@types/unist': 3.0.2 dev: false @@ -10634,7 +10724,7 @@ packages: human-signals: 5.0.0 is-stream: 3.0.0 merge-stream: 2.0.0 - npm-run-path: 5.2.0 + npm-run-path: 5.3.0 onetime: 6.0.0 signal-exit: 4.1.0 strip-final-newline: 3.0.0 @@ -10645,13 +10735,13 @@ packages: requiresBuild: true dev: false - /express@4.18.2: - resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==} + /express@4.18.3: + resolution: {integrity: sha512-6VyCijWQ+9O7WuVMTRBTl+cjNNIzD5cY5mQ1WM8r/LEkI2u8EYpOotESNwzNlyCn3g+dmjKYI6BmNneSr/FSRw==} engines: {node: '>= 0.10.0'} dependencies: accepts: 1.3.8 array-flatten: 1.1.1 - body-parser: 1.20.1 + body-parser: 1.20.2 content-disposition: 0.5.4 content-type: 1.0.5 cookie: 0.5.0 @@ -10738,15 +10828,15 @@ packages: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} dev: true - /fast-xml-parser@4.3.2: - resolution: {integrity: sha512-rmrXUXwbJedoXkStenj1kkljNF7ugn5ZjR9FJcwmCfcCbtOMDghPajbc+Tck6vE6F5XsDmx+Pr2le9fw8+pXBg==} + /fast-xml-parser@4.3.6: + resolution: {integrity: sha512-M2SovcRxD4+vC493Uc2GZVcZaj66CCJhWurC4viynVSTvrpErCShNcDz1lAho6n9REQKvL/ll4A4/fw6Y9z8nw==} hasBin: true dependencies: strnum: 1.0.5 dev: false - /fastq@1.16.0: - resolution: {integrity: sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==} + /fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} dependencies: reusify: 1.0.4 @@ -10760,7 +10850,7 @@ packages: engines: {node: ^12.20 || >= 14.13} dependencies: node-domexception: 1.0.0 - web-streams-polyfill: 3.2.1 + web-streams-polyfill: 3.3.3 dev: false /file-entry-cache@6.0.1: @@ -10819,7 +10909,7 @@ packages: resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: - flatted: 3.2.9 + flatted: 3.3.1 keyv: 4.5.4 rimraf: 3.0.2 dev: true @@ -10829,12 +10919,12 @@ packages: hasBin: true dev: true - /flatted@3.2.9: - resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} + /flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} dev: true - /flattie@1.1.0: - resolution: {integrity: sha512-xU99gDEnciIwJdGcBmNHnzTJ/w5AT+VFJOu6sTB6WM8diOYNA3Sa+K1DiEBQ7XH4QikQq3iFW1U+jRVcotQnBw==} + /flattie@1.1.1: + resolution: {integrity: sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==} engines: {node: '>=8'} dev: false @@ -10951,9 +11041,9 @@ packages: resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.22.5 functions-have-names: 1.2.3 dev: true @@ -10993,25 +11083,28 @@ packages: /get-func-name@2.0.2: resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} - /get-intrinsic@1.2.2: - resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} + /get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} dependencies: + es-errors: 1.3.0 function-bind: 1.1.2 - has-proto: 1.0.1 + has-proto: 1.0.3 has-symbols: 1.0.3 - hasown: 2.0.0 + hasown: 2.0.2 dev: true /get-stream@8.0.1: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} engines: {node: '>=16'} - /get-symbol-description@1.0.0: - resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + /get-symbol-description@1.0.2: + resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 dev: true /giget@1.1.3: @@ -11019,11 +11112,11 @@ packages: hasBin: true dependencies: colorette: 2.0.20 - defu: 6.1.3 - https-proxy-agent: 7.0.2 + defu: 6.1.4 + https-proxy-agent: 7.0.4 mri: 1.2.0 - node-fetch-native: 1.6.1 - pathe: 1.1.1 + node-fetch-native: 1.6.2 + pathe: 1.1.2 tar: 6.2.0 transitivePeerDependencies: - supports-color @@ -11060,8 +11153,8 @@ packages: minipass: 7.0.4 path-scurry: 1.10.1 - /glob@7.2.0: - resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -11069,17 +11162,17 @@ packages: minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 - dev: true - /glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + /glob@8.1.0: + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} + engines: {node: '>=12'} dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 inherits: 2.0.4 - minimatch: 3.1.2 + minimatch: 5.0.1 once: 1.4.0 - path-is-absolute: 1.0.1 + dev: true /globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} @@ -11111,7 +11204,7 @@ packages: array-union: 2.1.0 dir-glob: 3.0.1 fast-glob: 3.3.2 - ignore: 5.3.0 + ignore: 5.3.1 merge2: 1.4.1 slash: 3.0.0 dev: true @@ -11122,18 +11215,18 @@ packages: dependencies: dir-glob: 3.0.1 fast-glob: 3.3.2 - ignore: 5.3.0 + ignore: 5.3.1 merge2: 1.4.1 slash: 4.0.0 dev: true - /globby@14.0.0: - resolution: {integrity: sha512-/1WM/LNHRAOH9lZta77uGbq0dAEQM+XjNesWwhlERDVenqothRbnzTrL3/LrIoEPPjeUHC3vrS6TwoyxeHs7MQ==} + /globby@14.0.1: + resolution: {integrity: sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==} engines: {node: '>=18'} dependencies: - '@sindresorhus/merge-streams': 1.0.0 + '@sindresorhus/merge-streams': 2.3.0 fast-glob: 3.3.2 - ignore: 5.3.0 + ignore: 5.3.1 path-type: 5.0.0 slash: 5.1.0 unicorn-magic: 0.1.0 @@ -11145,7 +11238,7 @@ packages: /gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.4 dev: true /graceful-fs@4.2.11: @@ -11190,14 +11283,14 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - /has-property-descriptors@1.0.1: - resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} + /has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} dependencies: - get-intrinsic: 1.2.2 + es-define-property: 1.0.0 dev: true - /has-proto@1.0.1: - resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + /has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} engines: {node: '>= 0.4'} dev: true @@ -11206,8 +11299,8 @@ packages: engines: {node: '>= 0.4'} dev: true - /has-tostringtag@1.0.0: - resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + /has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} dependencies: has-symbols: 1.0.3 @@ -11217,8 +11310,8 @@ packages: resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} dev: false - /hasown@2.0.0: - resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} + /hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} dependencies: function-bind: 1.1.2 @@ -11226,7 +11319,7 @@ packages: /hast-util-from-dom@5.0.0: resolution: {integrity: sha512-d6235voAp/XR3Hh5uy7aGLbM3S4KamdW0WEgOaU1YoewnuYw4HXb5eRtv9g65m/RFGEfUY1Mw4UqCc5Y8L4Stg==} dependencies: - '@types/hast': 3.0.3 + '@types/hast': 3.0.4 hastscript: 8.0.0 web-namespaces: 2.0.1 dev: true @@ -11234,7 +11327,7 @@ packages: /hast-util-from-html@2.0.1: resolution: {integrity: sha512-RXQBLMl9kjKVNkJTIO6bZyb2n+cUH8LFaSSzo82jiLT6Tfc+Pt7VQCS+/h3YwG4jaNE2TA2sdJisGWR+aJrp0g==} dependencies: - '@types/hast': 3.0.3 + '@types/hast': 3.0.4 devlop: 1.1.0 hast-util-from-parse5: 8.0.1 parse5: 7.1.2 @@ -11244,11 +11337,11 @@ packages: /hast-util-from-parse5@8.0.1: resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==} dependencies: - '@types/hast': 3.0.3 + '@types/hast': 3.0.4 '@types/unist': 3.0.2 devlop: 1.1.0 hastscript: 8.0.0 - property-information: 6.4.0 + property-information: 6.4.1 vfile: 6.0.1 vfile-location: 5.0.2 web-namespaces: 2.0.1 @@ -11256,34 +11349,34 @@ packages: /hast-util-has-property@3.0.0: resolution: {integrity: sha512-MNilsvEKLFpV604hwfhVStK0usFY/QmM5zX16bo7EjnAEGofr5YyI37kzopBlZJkHD4t887i+q/C8/tr5Q94cA==} dependencies: - '@types/hast': 3.0.3 + '@types/hast': 3.0.4 dev: false /hast-util-heading-rank@3.0.0: resolution: {integrity: sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA==} dependencies: - '@types/hast': 3.0.3 + '@types/hast': 3.0.4 /hast-util-is-element@3.0.0: resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} dependencies: - '@types/hast': 3.0.3 + '@types/hast': 3.0.4 /hast-util-parse-selector@4.0.0: resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} dependencies: - '@types/hast': 3.0.3 + '@types/hast': 3.0.4 - /hast-util-raw@9.0.1: - resolution: {integrity: sha512-5m1gmba658Q+lO5uqL5YNGQWeh1MYWZbZmWrM5lncdcuiXuo5E2HT/CIOp0rLF8ksfSwiCVJ3twlgVRyTGThGA==} + /hast-util-raw@9.0.2: + resolution: {integrity: sha512-PldBy71wO9Uq1kyaMch9AHIghtQvIwxBUkv823pKmkTM3oV1JxtsTNYdevMxvUHqcnOAuO65JKU2+0NOxc2ksA==} dependencies: - '@types/hast': 3.0.3 + '@types/hast': 3.0.4 '@types/unist': 3.0.2 '@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.0.2 + mdast-util-to-hast: 13.1.0 parse5: 7.1.2 unist-util-position: 5.0.0 unist-util-visit: 5.0.0 @@ -11295,11 +11388,11 @@ packages: /hast-util-select@6.0.2: resolution: {integrity: sha512-hT/SD/d/Meu+iobvgkffo1QecV8WeKWxwsNMzcTJsKw1cKTQKSR/7ArJeURLNJF9HDjp9nVoORyNNJxrvBye8Q==} dependencies: - '@types/hast': 3.0.3 + '@types/hast': 3.0.4 '@types/unist': 3.0.2 bcp-47-match: 2.0.3 comma-separated-tokens: 2.0.3 - css-selector-parser: 3.0.4 + css-selector-parser: 3.0.5 devlop: 1.1.0 direction: 2.0.1 hast-util-has-property: 3.0.0 @@ -11307,7 +11400,7 @@ packages: hast-util-whitespace: 3.0.0 not: 0.1.0 nth-check: 2.1.1 - property-information: 6.4.0 + property-information: 6.4.1 space-separated-tokens: 2.0.2 unist-util-visit: 5.0.0 zwitch: 2.0.4 @@ -11317,17 +11410,17 @@ packages: resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==} dependencies: '@types/estree': 1.0.5 - '@types/estree-jsx': 1.0.3 - '@types/hast': 3.0.3 + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 comma-separated-tokens: 2.0.3 devlop: 1.1.0 estree-util-attach-comments: 3.0.0 estree-util-is-identifier-name: 3.0.0 hast-util-whitespace: 3.0.0 mdast-util-mdx-expression: 2.0.0 - mdast-util-mdx-jsx: 3.0.0 + mdast-util-mdx-jsx: 3.1.2 mdast-util-mdxjs-esm: 2.0.1 - property-information: 6.4.0 + property-information: 6.4.1 space-separated-tokens: 2.0.2 style-to-object: 0.4.4 unist-util-position: 5.0.0 @@ -11339,15 +11432,15 @@ packages: /hast-util-to-html@9.0.0: resolution: {integrity: sha512-IVGhNgg7vANuUA2XKrT6sOIIPgaYZnmLx3l/CCOAK0PtgfoHrZwX7jCSYyFxHTrGmC6S9q8aQQekjp4JPZF+cw==} dependencies: - '@types/hast': 3.0.3 + '@types/hast': 3.0.4 '@types/unist': 3.0.2 ccount: 2.0.1 comma-separated-tokens: 2.0.3 - hast-util-raw: 9.0.1 + hast-util-raw: 9.0.2 hast-util-whitespace: 3.0.0 html-void-elements: 3.0.0 - mdast-util-to-hast: 13.0.2 - property-information: 6.4.0 + mdast-util-to-hast: 13.1.0 + property-information: 6.4.1 space-separated-tokens: 2.0.2 stringify-entities: 4.0.3 zwitch: 2.0.4 @@ -11357,16 +11450,16 @@ packages: resolution: {integrity: sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==} dependencies: '@types/estree': 1.0.5 - '@types/hast': 3.0.3 + '@types/hast': 3.0.4 '@types/unist': 3.0.2 comma-separated-tokens: 2.0.3 devlop: 1.1.0 estree-util-is-identifier-name: 3.0.0 hast-util-whitespace: 3.0.0 mdast-util-mdx-expression: 2.0.0 - mdast-util-mdx-jsx: 3.0.0 + mdast-util-mdx-jsx: 3.1.2 mdast-util-mdxjs-esm: 2.0.1 - property-information: 6.4.0 + property-information: 6.4.1 space-separated-tokens: 2.0.2 style-to-object: 1.0.5 unist-util-position: 5.0.0 @@ -11378,10 +11471,10 @@ packages: /hast-util-to-parse5@8.0.0: resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} dependencies: - '@types/hast': 3.0.3 + '@types/hast': 3.0.4 comma-separated-tokens: 2.0.3 devlop: 1.1.0 - property-information: 6.4.0 + property-information: 6.4.1 space-separated-tokens: 2.0.2 web-namespaces: 2.0.1 zwitch: 2.0.4 @@ -11390,12 +11483,12 @@ packages: /hast-util-to-string@3.0.0: resolution: {integrity: sha512-OGkAxX1Ua3cbcW6EJ5pT/tslVb90uViVkcJ4ZZIMW/R33DX/AkcJcRrPebPwJkHYwlDHXz4aIwvAAaAdtrACFA==} dependencies: - '@types/hast': 3.0.3 + '@types/hast': 3.0.4 /hast-util-to-text@4.0.0: resolution: {integrity: sha512-EWiE1FSArNBPUo1cKWtzqgnuRQwEeQbQtnFJRYV1hb1BWDgrAlBU0ExptvZMM/KSA82cDpm2sFGf3Dmc5Mza3w==} dependencies: - '@types/hast': 3.0.3 + '@types/hast': 3.0.4 '@types/unist': 3.0.2 hast-util-is-element: 3.0.0 unist-util-find-after: 5.0.0 @@ -11403,16 +11496,16 @@ packages: /hast-util-whitespace@3.0.0: resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} dependencies: - '@types/hast': 3.0.3 + '@types/hast': 3.0.4 dev: false /hastscript@8.0.0: resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==} dependencies: - '@types/hast': 3.0.3 + '@types/hast': 3.0.4 comma-separated-tokens: 2.0.3 hast-util-parse-selector: 4.0.0 - property-information: 6.4.0 + property-information: 6.4.1 space-separated-tokens: 2.0.2 /hdr-histogram-js@3.0.0: @@ -11482,8 +11575,8 @@ packages: entities: 4.5.0 dev: true - /htmlparser2@9.0.0: - resolution: {integrity: sha512-uxbSI98wmFT/G4P2zXx4OVx04qWUmyFPrD2/CNepa2Zo3GPNaCaaxElDgwUrwYWkK1nr9fft0Ya8dws8coDLLQ==} + /htmlparser2@9.1.0: + resolution: {integrity: sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==} dependencies: domelementtype: 2.3.0 domhandler: 5.0.3 @@ -11528,8 +11621,8 @@ packages: transitivePeerDependencies: - supports-color - /https-proxy-agent@7.0.2: - resolution: {integrity: sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==} + /https-proxy-agent@7.0.4: + resolution: {integrity: sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==} engines: {node: '>= 14'} dependencies: agent-base: 7.1.0 @@ -11546,14 +11639,10 @@ packages: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} - /hyperdyperid@1.2.0: - resolution: {integrity: sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==} - engines: {node: '>=10.18'} - dev: true - - /hyperid@3.1.1: - resolution: {integrity: sha512-RveV33kIksycSf7HLkq1sHB5wW0OwuX8ot8MYnY++gaaPXGFfKpBncHrAWxdpuEeRlazUMGWefwP1w6o6GaumA==} + /hyperid@3.2.0: + resolution: {integrity: sha512-PdTtDo+Rmza9nEhTunaDSUKwbC69TIzLEpZUwiB6f+0oqmY0UPfhyHCPt6K1NQ4WFv5yJBTG5vELztVWP+nEVQ==} dependencies: + buffer: 5.7.1 uuid: 8.3.2 uuid-parse: 1.1.0 dev: false @@ -11576,12 +11665,12 @@ packages: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} dev: false - /ignore@5.3.0: - resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==} + /ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} engines: {node: '>= 4'} - /immutable@4.3.4: - resolution: {integrity: sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==} + /immutable@4.3.5: + resolution: {integrity: sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==} /import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} @@ -11632,13 +11721,13 @@ packages: resolution: {integrity: sha512-EcKzdTHVe8wFVOGEYXiW9WmJXPjqi1T+234YpJr98RiFYKHV3cdy1+3mkTE+KHTHxFFLH51SfaGOoUdW+v7ViQ==} dev: false - /internal-slot@1.0.6: - resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==} + /internal-slot@1.0.7: + resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.2.2 - hasown: 2.0.0 - side-channel: 1.0.4 + es-errors: 1.3.0 + hasown: 2.0.2 + side-channel: 1.0.6 dev: true /ipaddr.js@1.9.1: @@ -11655,12 +11744,12 @@ packages: is-alphabetical: 2.0.1 is-decimal: 2.0.1 - /is-array-buffer@3.0.2: - resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + /is-array-buffer@3.0.4: + resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - is-typed-array: 1.1.12 + call-bind: 1.0.7 + get-intrinsic: 1.2.4 dev: true /is-arrayish@0.2.1: @@ -11682,14 +11771,14 @@ packages: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} dependencies: - binary-extensions: 2.2.0 + binary-extensions: 2.3.0 /is-boolean-object@1.1.2: resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 - has-tostringtag: 1.0.0 + call-bind: 1.0.7 + has-tostringtag: 1.0.2 dev: true /is-buffer@2.0.5: @@ -11705,13 +11794,20 @@ packages: /is-core-module@2.13.1: resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} dependencies: - hasown: 2.0.0 + hasown: 2.0.2 + + /is-data-view@1.0.1: + resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} + engines: {node: '>= 0.4'} + dependencies: + is-typed-array: 1.1.13 + dev: true /is-date-object@1.0.5: resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} engines: {node: '>= 0.4'} dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 dev: true /is-decimal@2.0.1: @@ -11763,8 +11859,8 @@ packages: engines: {node: '>=12'} dev: false - /is-negative-zero@2.0.2: - resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + /is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} engines: {node: '>= 0.4'} dev: true @@ -11772,7 +11868,7 @@ packages: resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} engines: {node: '>= 0.4'} dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 dev: true /is-number@7.0.0: @@ -11821,14 +11917,15 @@ packages: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 - has-tostringtag: 1.0.0 + call-bind: 1.0.7 + has-tostringtag: 1.0.2 dev: true - /is-shared-array-buffer@1.0.2: - resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + /is-shared-array-buffer@1.0.3: + resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 dev: true /is-stream@3.0.0: @@ -11839,7 +11936,7 @@ packages: resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} engines: {node: '>= 0.4'} dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 dev: true /is-subdir@1.2.0: @@ -11856,11 +11953,11 @@ packages: has-symbols: 1.0.3 dev: true - /is-typed-array@1.1.12: - resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} + /is-typed-array@1.1.13: + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} engines: {node: '>= 0.4'} dependencies: - which-typed-array: 1.1.13 + which-typed-array: 1.1.15 dev: true /is-unicode-supported@0.1.0: @@ -11876,7 +11973,7 @@ packages: /is-weakref@1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 dev: true /is-what@4.1.16: @@ -11992,26 +12089,6 @@ packages: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} dev: true - /json-joy@9.9.1: - resolution: {integrity: sha512-/d7th2nbQRBQ/nqTkBe6KjjvDciSwn9UICmndwk3Ed/Bk9AqkTRm4PnLVfXG4DKbT0rEY0nKnwE7NqZlqKE6kg==} - engines: {node: '>=10.0'} - hasBin: true - peerDependencies: - quill-delta: ^5 - rxjs: '7' - tslib: '2' - peerDependenciesMeta: - quill-delta: - optional: true - rxjs: - optional: true - tslib: - optional: true - dependencies: - arg: 5.0.2 - hyperdyperid: 1.2.0 - dev: true - /json-parse-better-errors@1.0.2: resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} dev: true @@ -12036,13 +12113,8 @@ packages: /jsonc-parser@2.3.1: resolution: {integrity: sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==} - /jsonc-parser@3.2.0: - resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} - dev: true - /jsonc-parser@3.2.1: resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==} - dev: false /jsonfile@4.0.0: resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} @@ -12119,45 +12191,37 @@ packages: resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} engines: {node: '>=10'} - /lilconfig@3.0.0: - resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==} + /lilconfig@3.1.1: + resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} engines: {node: '>=14'} /lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - /linkedom@0.16.6: - resolution: {integrity: sha512-vJ8oadtJe3DM4FNW15Fj5NLIJlJk+AOypoRxzq9prLx+gAKvHYcTfV98pzOoRkwx4ZvvYzqT1bcDKluHH72apg==} + /linkedom@0.16.10: + resolution: {integrity: sha512-c316CX1FiPMU1v4+ExUzxr/gD5xqyCX2M3qtyL2nuoYQTsk0F5jRRwOFG7jRRxD3w7ONbLTLMrGBvq++Hmzzhg==} dependencies: css-select: 5.1.0 cssom: 0.5.0 html-escaper: 3.0.3 - htmlparser2: 9.0.0 + htmlparser2: 9.1.0 uhyphen: 0.2.0 dev: true /lit-element@3.3.3: resolution: {integrity: sha512-XbeRxmTHubXENkV4h8RIPyr8lXc+Ff28rkcQzw3G6up2xg5E8Zu1IgOWIwBLEQsu3cOVFqdYwiVi0hv0SlpqUA==} dependencies: - '@lit-labs/ssr-dom-shim': 1.1.2 + '@lit-labs/ssr-dom-shim': 1.2.0 '@lit/reactive-element': 1.6.3 lit-html: 2.8.0 dev: false - /lit-element@4.0.2: - resolution: {integrity: sha512-/W6WQZUa5VEXwC7H9tbtDMdSs9aWil3Ou8hU6z2cOKWbsm/tXPAcsoaHVEtrDo0zcOIE5GF6QgU55tlGL2Nihg==} - dependencies: - '@lit-labs/ssr-dom-shim': 1.1.2 - '@lit/reactive-element': 2.0.2 - lit-html: 3.1.0 - /lit-element@4.0.4: resolution: {integrity: sha512-98CvgulX6eCPs6TyAIQoJZBCQPo80rgXR+dVBs61cstJXqtI+USQZAbA4gFHh6L/mxBx9MrgPLHLsUgDUHAcCQ==} dependencies: '@lit-labs/ssr-dom-shim': 1.2.0 '@lit/reactive-element': 2.0.4 lit-html: 3.1.2 - dev: false /lit-html@2.8.0: resolution: {integrity: sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q==} @@ -12165,16 +12229,10 @@ packages: '@types/trusted-types': 2.0.7 dev: false - /lit-html@3.1.0: - resolution: {integrity: sha512-FwAjq3iNsaO6SOZXEIpeROlJLUlrbyMkn4iuv4f4u1H40Jw8wkeR/OUXZUHUoiYabGk8Y4Y0F/rgq+R4MrOLmA==} - dependencies: - '@types/trusted-types': 2.0.7 - /lit-html@3.1.2: resolution: {integrity: sha512-3OBZSUrPnAHoKJ9AMjRL/m01YJxQMf+TMHanNtTHG68ubjnZxK0RFl102DPzsw4mWnHibfZIBJm3LWCZ/LmMvg==} dependencies: '@types/trusted-types': 2.0.7 - dev: false /lit@2.8.0: resolution: {integrity: sha512-4Sc3OFX9QHOJaHbmTMk28SYgVxLN3ePDjg7hofEft2zWlehFL3LiAuapWc4U/kYwMYJSh2hTCPZ6/LIC7ii0MA==} @@ -12184,20 +12242,12 @@ packages: lit-html: 2.8.0 dev: false - /lit@3.1.0: - resolution: {integrity: sha512-rzo/hmUqX8zmOdamDAeydfjsGXbbdtAFqMhmocnh2j9aDYqbu0fjXygjCa0T99Od9VQ/2itwaGrjZz/ZELVl7w==} - dependencies: - '@lit/reactive-element': 2.0.2 - lit-element: 4.0.2 - lit-html: 3.1.0 - /lit@3.1.2: resolution: {integrity: sha512-VZx5iAyMtX7CV4K8iTLdCkMaYZ7ipjJZ0JcSdJ0zIdGxxyurjIn7yuuSxNBD7QmjvcNJwr0JS4cAdAtsy7gZ6w==} dependencies: '@lit/reactive-element': 2.0.4 lit-element: 4.0.4 lit-html: 3.1.2 - dev: false /lite-youtube-embed@0.2.0: resolution: {integrity: sha512-XXXAk5sbvtjjwbie3XG+6HppgTm1HTGL/Uk9z9NkJH53o7puZLur434heHzAjkS60hZB3vT4ls25zl5rMiX4EA==} @@ -12226,7 +12276,7 @@ packages: resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} engines: {node: '>=14'} dependencies: - mlly: 1.5.0 + mlly: 1.6.1 pkg-types: 1.0.3 dev: false @@ -12316,8 +12366,8 @@ packages: tslib: 2.6.2 dev: false - /lru-cache@10.1.0: - resolution: {integrity: sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==} + /lru-cache@10.2.0: + resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} engines: {node: 14 || >=16.14} /lru-cache@4.1.5: @@ -12349,13 +12399,13 @@ packages: engines: {node: '>=12'} dependencies: '@jridgewell/sourcemap-codec': 1.4.15 + dev: false - /magic-string@0.30.7: - resolution: {integrity: sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==} + /magic-string@0.30.8: + resolution: {integrity: sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==} engines: {node: '>=12'} dependencies: '@jridgewell/sourcemap-codec': 1.4.15 - dev: false /make-dir@3.1.0: resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} @@ -12444,7 +12494,7 @@ packages: ccount: 2.0.1 devlop: 1.1.0 mdast-util-find-and-replace: 3.0.1 - micromark-util-character: 2.0.1 + micromark-util-character: 2.1.0 dev: false /mdast-util-gfm-footnote@2.0.0: @@ -12509,7 +12559,7 @@ packages: /mdast-util-math@3.0.0: resolution: {integrity: sha512-Tl9GBNeG/AhJnQM221bJR2HPvLOSnLE/T9cJI9tlc6zwQk2nPk/4f0cHkOdEixQPC/j8UtKDdITswvLAy1OZ1w==} dependencies: - '@types/hast': 3.0.3 + '@types/hast': 3.0.4 '@types/mdast': 4.0.3 devlop: 1.1.0 longest-streak: 3.1.0 @@ -12523,8 +12573,8 @@ packages: /mdast-util-mdx-expression@2.0.0: resolution: {integrity: sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==} dependencies: - '@types/estree-jsx': 1.0.3 - '@types/hast': 3.0.3 + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 '@types/mdast': 4.0.3 devlop: 1.1.0 mdast-util-from-markdown: 2.0.0 @@ -12532,11 +12582,11 @@ packages: transitivePeerDependencies: - supports-color - /mdast-util-mdx-jsx@3.0.0: - resolution: {integrity: sha512-XZuPPzQNBPAlaqsTTgRrcJnyFbSOBovSadFgbFu8SnuNgm+6Bdx1K+IWoitsmj6Lq6MNtI+ytOqwN70n//NaBA==} + /mdast-util-mdx-jsx@3.1.2: + resolution: {integrity: sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA==} dependencies: - '@types/estree-jsx': 1.0.3 - '@types/hast': 3.0.3 + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 '@types/mdast': 4.0.3 '@types/unist': 3.0.2 ccount: 2.0.1 @@ -12556,7 +12606,7 @@ packages: dependencies: mdast-util-from-markdown: 2.0.0 mdast-util-mdx-expression: 2.0.0 - mdast-util-mdx-jsx: 3.0.0 + mdast-util-mdx-jsx: 3.1.2 mdast-util-mdxjs-esm: 2.0.1 mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: @@ -12565,8 +12615,8 @@ packages: /mdast-util-mdxjs-esm@2.0.1: resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} dependencies: - '@types/estree-jsx': 1.0.3 - '@types/hast': 3.0.3 + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 '@types/mdast': 4.0.3 devlop: 1.1.0 mdast-util-from-markdown: 2.0.0 @@ -12574,16 +12624,16 @@ packages: transitivePeerDependencies: - supports-color - /mdast-util-phrasing@4.0.0: - resolution: {integrity: sha512-xadSsJayQIucJ9n053dfQwVu1kuXg7jCTdYsMK8rqzKZh52nLfSH/k0sAxE0u+pj/zKZX+o5wB+ML5mRayOxFA==} + /mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} dependencies: '@types/mdast': 4.0.3 unist-util-is: 6.0.0 - /mdast-util-to-hast@13.0.2: - resolution: {integrity: sha512-U5I+500EOOw9e3ZrclN3Is3fRpw8c19SMyNZlZ2IS+7vLsNzb2Om11VpIVOR+/0137GhZsFEF6YiKD5+0Hr2Og==} + /mdast-util-to-hast@13.1.0: + resolution: {integrity: sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==} dependencies: - '@types/hast': 3.0.3 + '@types/hast': 3.0.4 '@types/mdast': 4.0.3 '@ungap/structured-clone': 1.2.0 devlop: 1.1.0 @@ -12591,6 +12641,7 @@ packages: trim-lines: 3.0.1 unist-util-position: 5.0.0 unist-util-visit: 5.0.0 + vfile: 6.0.1 /mdast-util-to-markdown@2.1.0: resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==} @@ -12598,7 +12649,7 @@ packages: '@types/mdast': 4.0.3 '@types/unist': 3.0.2 longest-streak: 3.1.0 - mdast-util-phrasing: 4.0.0 + mdast-util-phrasing: 4.1.0 mdast-util-to-string: 4.0.0 micromark-util-decode-string: 2.0.0 unist-util-visit: 5.0.0 @@ -12633,20 +12684,11 @@ packages: engines: {node: '>= 0.6'} dev: true - /memfs@4.6.0: - resolution: {integrity: sha512-I6mhA1//KEZfKRQT9LujyW6lRbX7RkC24xKododIDO3AGShcaFAMKElv1yFGWX8fD4UaSiwasr3NeQ5TdtHY1A==} + /memfs@4.7.7: + resolution: {integrity: sha512-x9qc6k88J/VVwnfTkJV8pRRswJ2156Rc4w5rciRqKceFDZ0y1MqsNL9pkg5sE0GOcDzZYbonreALhaHzg1siFw==} engines: {node: '>= 4.0.0'} - peerDependencies: - tslib: '2' - peerDependenciesMeta: - tslib: - optional: true dependencies: - json-joy: 9.9.1 - thingies: 1.15.0 - transitivePeerDependencies: - - quill-delta - - rxjs + tslib: 2.6.2 dev: true /memorystream@0.3.1: @@ -12712,7 +12754,7 @@ packages: micromark-factory-space: 2.0.0 micromark-factory-title: 2.0.0 micromark-factory-whitespace: 2.0.0 - micromark-util-character: 2.0.1 + 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 @@ -12725,7 +12767,7 @@ packages: /micromark-extension-gfm-autolink-literal@2.0.0: resolution: {integrity: sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==} dependencies: - micromark-util-character: 2.0.1 + 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 @@ -12737,7 +12779,7 @@ packages: devlop: 1.1.0 micromark-core-commonmark: 2.0.0 micromark-factory-space: 2.0.0 - micromark-util-character: 2.0.1 + 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 @@ -12760,7 +12802,7 @@ packages: dependencies: devlop: 1.1.0 micromark-factory-space: 2.0.0 - micromark-util-character: 2.0.1 + micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 dev: false @@ -12776,7 +12818,7 @@ packages: dependencies: devlop: 1.1.0 micromark-factory-space: 2.0.0 - micromark-util-character: 2.0.1 + micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 dev: false @@ -12801,7 +12843,7 @@ packages: devlop: 1.1.0 katex: 0.16.9 micromark-factory-space: 2.0.0 - micromark-util-character: 2.0.1 + micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 dev: true @@ -12813,7 +12855,7 @@ packages: devlop: 1.1.0 micromark-factory-mdx-expression: 2.0.1 micromark-factory-space: 2.0.0 - micromark-util-character: 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 @@ -12828,7 +12870,7 @@ packages: estree-util-is-identifier-name: 3.0.0 micromark-factory-mdx-expression: 2.0.1 micromark-factory-space: 2.0.0 - micromark-util-character: 2.0.1 + micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 vfile-message: 4.0.2 @@ -12846,7 +12888,7 @@ packages: '@types/estree': 1.0.5 devlop: 1.1.0 micromark-core-commonmark: 2.0.0 - micromark-util-character: 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 @@ -12870,7 +12912,7 @@ packages: /micromark-factory-destination@2.0.0: resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==} dependencies: - micromark-util-character: 2.0.1 + micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 @@ -12878,7 +12920,7 @@ packages: resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==} dependencies: devlop: 1.1.0 - micromark-util-character: 2.0.1 + micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 @@ -12887,7 +12929,7 @@ packages: dependencies: '@types/estree': 1.0.5 devlop: 1.1.0 - micromark-util-character: 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 @@ -12898,14 +12940,14 @@ packages: /micromark-factory-space@2.0.0: resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==} dependencies: - micromark-util-character: 2.0.1 + micromark-util-character: 2.1.0 micromark-util-types: 2.0.0 /micromark-factory-title@2.0.0: resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==} dependencies: micromark-factory-space: 2.0.0 - micromark-util-character: 2.0.1 + micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 @@ -12913,12 +12955,12 @@ packages: resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==} dependencies: micromark-factory-space: 2.0.0 - micromark-util-character: 2.0.1 + micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - /micromark-util-character@2.0.1: - resolution: {integrity: sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==} + /micromark-util-character@2.1.0: + resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==} dependencies: micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 @@ -12931,7 +12973,7 @@ packages: /micromark-util-classify-character@2.0.0: resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==} dependencies: - micromark-util-character: 2.0.1 + micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 @@ -12950,7 +12992,7 @@ packages: resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==} dependencies: decode-named-character-reference: 1.0.2 - micromark-util-character: 2.0.1 + micromark-util-character: 2.1.0 micromark-util-decode-numeric-character-reference: 2.0.1 micromark-util-symbol: 2.0.0 @@ -12986,7 +13028,7 @@ packages: /micromark-util-sanitize-uri@2.0.0: resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} dependencies: - micromark-util-character: 2.0.1 + micromark-util-character: 2.1.0 micromark-util-encode: 2.0.0 micromark-util-symbol: 2.0.0 @@ -13013,7 +13055,7 @@ packages: devlop: 1.1.0 micromark-core-commonmark: 2.0.0 micromark-factory-space: 2.0.0 - micromark-util-character: 2.0.1 + 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 @@ -13163,17 +13205,17 @@ packages: hasBin: true dev: true - /mlly@1.5.0: - resolution: {integrity: sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ==} + /mlly@1.6.1: + resolution: {integrity: sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==} dependencies: acorn: 8.11.3 pathe: 1.1.2 pkg-types: 1.0.3 - ufo: 1.4.0 + ufo: 1.5.2 dev: false - /mocha@10.2.0: - resolution: {integrity: sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==} + /mocha@10.3.0: + resolution: {integrity: sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg==} engines: {node: '>= 14.0.0'} hasBin: true dependencies: @@ -13184,13 +13226,12 @@ packages: diff: 5.0.0 escape-string-regexp: 4.0.0 find-up: 5.0.0 - glob: 7.2.0 + glob: 8.1.0 he: 1.2.0 js-yaml: 4.1.0 log-symbols: 4.1.0 minimatch: 5.0.1 ms: 2.1.3 - nanoid: 3.3.3 serialize-javascript: 6.0.0 strip-json-comments: 3.1.1 supports-color: 8.1.1 @@ -13229,19 +13270,13 @@ packages: object-assign: 4.1.1 thenify-all: 1.6.0 - /nanoid@3.3.3: - resolution: {integrity: sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - dev: true - /nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - /nanoid@5.0.1: - resolution: {integrity: sha512-vWeVtV5Cw68aML/QaZvqN/3QQXc6fBfIieAlu05m7FZW2Dgb+3f0xc0TTxuJW+7u30t7iSDTV/j3kVI0oJqIfQ==} + /nanoid@5.0.6: + resolution: {integrity: sha512-rRq0eMHoGZxlvaFOUdK1Ev83Bd1IgzzR+WJ3IbDJ7QOSdAxYjlurSPqFs9s4lJg29RT6nPwizFtJhQS6V5xgiA==} engines: {node: ^18 || >=20} hasBin: true dev: false @@ -13288,12 +13323,12 @@ packages: tslib: 2.6.2 dev: false - /node-abi@3.52.0: - resolution: {integrity: sha512-JJ98b02z16ILv7859irtXn4oUaFWADtvkzy2c0IAatNVX2Mc9Yoh8z6hZInn3QwvMEYhHuQloYi+TTQy67SIdQ==} + /node-abi@3.56.0: + resolution: {integrity: sha512-fZjdhDOeRcaS+rcpve7XuwHBmktS1nS1gzgghwKUQQ8nTy2FdSDr6ZT8k6YhvlJeHmmQMYiT/IH9hfco5zeW2Q==} engines: {node: '>=10'} requiresBuild: true dependencies: - semver: 7.5.4 + semver: 7.6.0 dev: false /node-addon-api@6.1.0: @@ -13306,8 +13341,8 @@ packages: engines: {node: '>=10.5.0'} dev: false - /node-fetch-native@1.6.1: - resolution: {integrity: sha512-bW9T/uJDPAJB2YNYEpWzE54U5O3MQidXsOyTfnbKYtTtFexRvGzb1waphBN4ZwP6EcIvYYEOwW0b72BpAqydTw==} + /node-fetch-native@1.6.2: + resolution: {integrity: sha512-69mtXOFZ6hSkYiXAVB5SqaRvrbITC/NPyqv7yuu/qw0nmgPyYbIMYYNIDhNtwPrzk0ptrimrLz/hhjvm4w5Z+w==} dev: false /node-fetch@2.7.0: @@ -13330,15 +13365,24 @@ packages: formdata-polyfill: 4.0.10 dev: false - /node-gyp-build@4.7.1: - resolution: {integrity: sha512-wTSrZ+8lsRRa3I3H8Xr65dLWSgCvY2l4AOnaeKdPA9TB/WYMPaTcrzf3rXvFoVvjKNVnu0CcWSx54qq9GKRUYg==} + /node-gyp-build@4.8.0: + resolution: {integrity: sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==} hasBin: true dev: false - /node-mocks-http@1.14.0: - resolution: {integrity: sha512-yOb3zNr9/5N27TAWxxMlrvWp4nNfRcrC0dAiqyj5NLyk6Jm80T95AhNj/YjThelkTkmTutS6RAB8pkmpkMofdA==} + /node-html-parser@6.1.12: + resolution: {integrity: sha512-/bT/Ncmv+fbMGX96XG9g05vFt43m/+SYKIs9oAemQVYyVcZmDAI2Xq/SbNcpOA35eF0Zk2av3Ksf+Xk8Vt8abA==} + dependencies: + css-select: 5.1.0 + he: 1.2.0 + dev: false + + /node-mocks-http@1.14.1: + resolution: {integrity: sha512-mfXuCGonz0A7uG1FEjnypjm34xegeN5+HI6xeGhYKecfgaZhjsmYoLE9LEFmT+53G1n8IuagPZmVnEL/xNsFaA==} engines: {node: '>=14'} dependencies: + '@types/express': 4.17.21 + '@types/node': 20.11.28 accepts: 1.3.8 content-disposition: 0.5.4 depd: 1.1.2 @@ -13399,8 +13443,8 @@ packages: string.prototype.padend: 3.1.5 dev: true - /npm-run-path@5.2.0: - resolution: {integrity: sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==} + /npm-run-path@5.3.0: + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: path-key: 4.0.0 @@ -13444,7 +13488,7 @@ packages: resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 has-symbols: 1.0.3 object-keys: 1.1.1 @@ -13486,12 +13530,12 @@ packages: which-pm-runs: 1.1.0 dev: true - /open-props@1.6.17: - resolution: {integrity: sha512-6mp/gpLQz/ZwrGLz+i7tSJ3eWNLE1KxLXHO+b6xxRyZ1Alp4TgTcvHiQ89rC2IkvsU3/IRhpIJuxl7rRCwUzLA==} + /open-props@1.6.21: + resolution: {integrity: sha512-leK6x7SvLX3K/idbHyFrnwoygaB0YBBMecQ5FJcms/Oqn82b/FIqgMyuLeSqGxpFOwIPdvMirFGpiB74ef+ULg==} dev: false - /open@10.0.3: - resolution: {integrity: sha512-dtbI5oW7987hwC9qjJTyABldTaa19SuyJse1QboWv3b0qCcrrLNVDqBx1XgELAjh9QTVQaP/C5b1nhQebd1H2A==} + /open@10.1.0: + resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} engines: {node: '>=18'} dependencies: default-browser: 5.2.1 @@ -13731,7 +13775,7 @@ packages: resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} engines: {node: '>=16 || 14 >=14.17'} dependencies: - lru-cache: 10.1.0 + lru-cache: 10.2.0 minipass: 7.0.4 /path-to-regexp@0.1.7: @@ -13758,10 +13802,6 @@ packages: resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} engines: {node: '>=12'} - /pathe@1.1.1: - resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} - dev: false - /pathe@1.1.2: resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} dev: false @@ -13816,7 +13856,7 @@ packages: resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} dependencies: jsonc-parser: 3.2.1 - mlly: 1.5.0 + mlly: 1.6.1 pathe: 1.1.2 dev: false @@ -13840,200 +13880,212 @@ packages: resolution: {integrity: sha512-Hz/WvSNt5+7x+Rq1Cn6DetJOZxKtLDehJ1mLCYge6ju4QvSF/PHvRgy94e1SKJVI96AJTcqEdNwkkaAFad+TXQ==} dev: false - /postcss-attribute-case-insensitive@6.0.2(postcss@8.4.32): - resolution: {integrity: sha512-IRuCwwAAQbgaLhxQdQcIIK0dCVXg3XDUnzgKD8iwdiYdwU4rMWRWyl/W9/0nA4ihVpq5pyALiHB2veBJ0292pw==} + /possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} + dev: true + + /postcss-attribute-case-insensitive@6.0.3(postcss@8.4.36): + resolution: {integrity: sha512-KHkmCILThWBRtg+Jn1owTnHPnFit4OkqS+eKiGEOPIGke54DCeYGJ6r0Fx/HjfE9M9kznApCLcU0DvnPchazMQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 - postcss-selector-parser: 6.0.15 + postcss: 8.4.36 + postcss-selector-parser: 6.0.16 dev: true - /postcss-clamp@4.1.0(postcss@8.4.32): + /postcss-clamp@4.1.0(postcss@8.4.36): resolution: {integrity: sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==} engines: {node: '>=7.6.0'} peerDependencies: postcss: ^8.4.6 dependencies: - postcss: 8.4.32 + postcss: 8.4.36 postcss-value-parser: 4.2.0 dev: true - /postcss-color-functional-notation@6.0.4(postcss@8.4.32): - resolution: {integrity: sha512-YBzfVvVUNR4U3N0imzU1NPKCuwxzfHJkEP6imJxzsJ8LozRKeej9mWmg9Ef1ovJdb0xrGTRVzUxgTrMun5iw/Q==} + /postcss-color-functional-notation@6.0.7(postcss@8.4.36): + resolution: {integrity: sha512-VwzaVfu1kEYDK2yM8ixeKA/QbgQ8k0uxpRevLH9Wam+R3C1sg68vnRB7m2AMhYfjqb5khp4p0EQk5aO90ASAkw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/css-color-parser': 1.5.1(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3) - '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3) - '@csstools/css-tokenizer': 2.2.3 - '@csstools/postcss-progressive-custom-properties': 3.0.3(postcss@8.4.32) - postcss: 8.4.32 + '@csstools/css-color-parser': 1.6.2(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + '@csstools/postcss-progressive-custom-properties': 3.1.1(postcss@8.4.36) + '@csstools/utilities': 1.0.0(postcss@8.4.36) + postcss: 8.4.36 dev: true - /postcss-color-hex-alpha@9.0.3(postcss@8.4.32): - resolution: {integrity: sha512-7sEHU4tAS6htlxun8AB9LDrCXoljxaC34tFVRlYKcvO+18r5fvGiXgv5bQzN40+4gXLCyWSMRK5FK31244WcCA==} + /postcss-color-hex-alpha@9.0.4(postcss@8.4.36): + resolution: {integrity: sha512-XQZm4q4fNFqVCYMGPiBjcqDhuG7Ey2xrl99AnDJMyr5eDASsAGalndVgHZF8i97VFNy1GQeZc4q2ydagGmhelQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 + '@csstools/utilities': 1.0.0(postcss@8.4.36) + postcss: 8.4.36 postcss-value-parser: 4.2.0 dev: true - /postcss-color-rebeccapurple@9.0.2(postcss@8.4.32): - resolution: {integrity: sha512-f+RDEAPW2m8UbJWkSpRfV+QxhSaQhDMihI75DVGJJh4oRIoegjheeRtINFJum9D8BqGJcvD4GLjggTvCwZ4zuA==} + /postcss-color-rebeccapurple@9.0.3(postcss@8.4.36): + resolution: {integrity: sha512-ruBqzEFDYHrcVq3FnW3XHgwRqVMrtEPLBtD7K2YmsLKVc2jbkxzzNEctJKsPCpDZ+LeMHLKRDoSShVefGc+CkQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 + '@csstools/utilities': 1.0.0(postcss@8.4.36) + postcss: 8.4.36 postcss-value-parser: 4.2.0 dev: true - /postcss-custom-media@10.0.2(postcss@8.4.32): - resolution: {integrity: sha512-zcEFNRmDm2fZvTPdI1pIW3W//UruMcLosmMiCdpQnrCsTRzWlKQPYMa1ud9auL0BmrryKK1+JjIGn19K0UjO/w==} + /postcss-custom-media@10.0.4(postcss@8.4.36): + resolution: {integrity: sha512-Ubs7O3wj2prghaKRa68VHBvuy3KnTQ0zbGwqDYY1mntxJD0QL2AeiAy+AMfl3HBedTCVr2IcFNktwty9YpSskA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/cascade-layer-name-parser': 1.0.7(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3) - '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3) - '@csstools/css-tokenizer': 2.2.3 - '@csstools/media-query-list-parser': 2.1.7(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3) - postcss: 8.4.32 + '@csstools/cascade-layer-name-parser': 1.0.9(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + '@csstools/media-query-list-parser': 2.1.9(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + postcss: 8.4.36 dev: true - /postcss-custom-properties@13.3.4(postcss@8.4.32): - resolution: {integrity: sha512-9YN0gg9sG3OH+Z9xBrp2PWRb+O4msw+5Sbp3ZgqrblrwKspXVQe5zr5sVqi43gJGwW/Rv1A483PRQUzQOEewvA==} + /postcss-custom-properties@13.3.6(postcss@8.4.36): + resolution: {integrity: sha512-vVVIwQbJiIz+PBLMIWA6XMi53Zg66/f474KolA7x0Das6EwkATc/9ZvM6zZx2gs7ZhcgVHjmWBbHkK9FlCgLeA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/cascade-layer-name-parser': 1.0.7(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3) - '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3) - '@csstools/css-tokenizer': 2.2.3 - postcss: 8.4.32 + '@csstools/cascade-layer-name-parser': 1.0.9(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + '@csstools/utilities': 1.0.0(postcss@8.4.36) + postcss: 8.4.36 postcss-value-parser: 4.2.0 dev: true - /postcss-custom-selectors@7.1.6(postcss@8.4.32): - resolution: {integrity: sha512-svsjWRaxqL3vAzv71dV0/65P24/FB8TbPX+lWyyf9SZ7aZm4S4NhCn7N3Bg+Z5sZunG3FS8xQ80LrCU9hb37cw==} + /postcss-custom-selectors@7.1.8(postcss@8.4.36): + resolution: {integrity: sha512-fqDkGSEsO7+oQaqdRdR8nwwqH+N2uk6LE/2g4myVJJYz/Ly418lHKEleKTdV/GzjBjFcG4n0dbfuH/Pd2BE8YA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/cascade-layer-name-parser': 1.0.7(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3) - '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3) - '@csstools/css-tokenizer': 2.2.3 - postcss: 8.4.32 - postcss-selector-parser: 6.0.15 + '@csstools/cascade-layer-name-parser': 1.0.9(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + postcss: 8.4.36 + postcss-selector-parser: 6.0.16 dev: true - /postcss-dir-pseudo-class@8.0.1(postcss@8.4.32): + /postcss-dir-pseudo-class@8.0.1(postcss@8.4.36): resolution: {integrity: sha512-uULohfWBBVoFiZXgsQA24JV6FdKIidQ+ZqxOouhWwdE+qJlALbkS5ScB43ZTjPK+xUZZhlaO/NjfCt5h4IKUfw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 - postcss-selector-parser: 6.0.15 + postcss: 8.4.36 + postcss-selector-parser: 6.0.16 dev: true - /postcss-double-position-gradients@5.0.3(postcss@8.4.32): - resolution: {integrity: sha512-QKYpwmaSm6HcdS0ndAuWSNNMv78R1oSySoh3mYBmctHWr2KWcwPJVakdOyU4lvFVW0GRu9wfIQwGeM4p3xU9ow==} + /postcss-double-position-gradients@5.0.5(postcss@8.4.36): + resolution: {integrity: sha512-26Tx4BfoxMNO9C89Nk56bfGv4jAwdDVgrQOyHZOP/6/D+xuOBf306KzTjHC2oBzaIIVtX+famOWHv4raxMjJMQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/postcss-progressive-custom-properties': 3.0.3(postcss@8.4.32) - postcss: 8.4.32 + '@csstools/postcss-progressive-custom-properties': 3.1.1(postcss@8.4.36) + '@csstools/utilities': 1.0.0(postcss@8.4.36) + postcss: 8.4.36 postcss-value-parser: 4.2.0 dev: true - /postcss-focus-visible@9.0.1(postcss@8.4.32): + /postcss-focus-visible@9.0.1(postcss@8.4.36): resolution: {integrity: sha512-N2VQ5uPz3Z9ZcqI5tmeholn4d+1H14fKXszpjogZIrFbhaq0zNAtq8sAnw6VLiqGbL8YBzsnu7K9bBkTqaRimQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 - postcss-selector-parser: 6.0.15 + postcss: 8.4.36 + postcss-selector-parser: 6.0.16 dev: true - /postcss-focus-within@8.0.1(postcss@8.4.32): + /postcss-focus-within@8.0.1(postcss@8.4.36): resolution: {integrity: sha512-NFU3xcY/xwNaapVb+1uJ4n23XImoC86JNwkY/uduytSl2s9Ekc2EpzmRR63+ExitnW3Mab3Fba/wRPCT5oDILA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 - postcss-selector-parser: 6.0.15 + postcss: 8.4.36 + postcss-selector-parser: 6.0.16 dev: true - /postcss-font-variant@5.0.0(postcss@8.4.32): + /postcss-font-variant@5.0.0(postcss@8.4.36): resolution: {integrity: sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.32 + postcss: 8.4.36 dev: true - /postcss-gap-properties@5.0.1(postcss@8.4.32): + /postcss-gap-properties@5.0.1(postcss@8.4.36): resolution: {integrity: sha512-k2z9Cnngc24c0KF4MtMuDdToROYqGMMUQGcE6V0odwjHyOHtaDBlLeRBV70y9/vF7KIbShrTRZ70JjsI1BZyWw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 + postcss: 8.4.36 dev: true - /postcss-image-set-function@6.0.2(postcss@8.4.32): - resolution: {integrity: sha512-/O1xwqpJiz/apxGQi7UUfv1xUcorvkHZfvCYHPpRxxZj2WvjD0rg0+/+c+u5/Do5CpUg3XvfYxMrhcnjW1ArDQ==} + /postcss-image-set-function@6.0.3(postcss@8.4.36): + resolution: {integrity: sha512-i2bXrBYzfbRzFnm+pVuxVePSTCRiNmlfssGI4H0tJQvDue+yywXwUxe68VyzXs7cGtMaH6MCLY6IbCShrSroCw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 + '@csstools/utilities': 1.0.0(postcss@8.4.36) + postcss: 8.4.36 postcss-value-parser: 4.2.0 dev: true - /postcss-import@15.1.0(postcss@8.4.35): + /postcss-import@15.1.0(postcss@8.4.36): resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} engines: {node: '>=14.0.0'} peerDependencies: postcss: ^8.0.0 dependencies: - postcss: 8.4.35 + postcss: 8.4.36 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.8 - /postcss-js@4.0.1(postcss@8.4.35): + /postcss-js@4.0.1(postcss@8.4.36): resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} engines: {node: ^12 || ^14 || >= 16} peerDependencies: postcss: ^8.4.21 dependencies: camelcase-css: 2.0.1 - postcss: 8.4.35 + postcss: 8.4.36 - /postcss-lab-function@6.0.9(postcss@8.4.32): - resolution: {integrity: sha512-PKFAVTBEWJYsoSTD7Kp/OzeiMsXaLX39Pv75XgUyF5VrbMfeTw+JqCGsvDP3dPhclh6BemdCFHcjXBG9gO4UCg==} + /postcss-lab-function@6.0.12(postcss@8.4.36): + resolution: {integrity: sha512-flHW2jdRCRe8ClhMgrylR1BCiyyqLLvp1qKfO5wuAclUihldfRsoDIFQWFVW7rJbruil9/LCoHNUvY9JwTlLPw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/css-color-parser': 1.5.1(@csstools/css-parser-algorithms@2.5.0)(@csstools/css-tokenizer@2.2.3) - '@csstools/css-parser-algorithms': 2.5.0(@csstools/css-tokenizer@2.2.3) - '@csstools/css-tokenizer': 2.2.3 - '@csstools/postcss-progressive-custom-properties': 3.0.3(postcss@8.4.32) - postcss: 8.4.32 + '@csstools/css-color-parser': 1.6.2(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) + '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) + '@csstools/css-tokenizer': 2.2.4 + '@csstools/postcss-progressive-custom-properties': 3.1.1(postcss@8.4.36) + '@csstools/utilities': 1.0.0(postcss@8.4.36) + postcss: 8.4.36 dev: true - /postcss-load-config@4.0.2(postcss@8.4.35): + /postcss-load-config@4.0.2(postcss@8.4.36): resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} engines: {node: '>= 14'} peerDependencies: @@ -14045,176 +14097,177 @@ packages: ts-node: optional: true dependencies: - lilconfig: 3.0.0 - postcss: 8.4.35 - yaml: 2.3.4 + lilconfig: 3.1.1 + postcss: 8.4.36 + yaml: 2.4.1 - /postcss-logical@7.0.1(postcss@8.4.32): + /postcss-logical@7.0.1(postcss@8.4.36): resolution: {integrity: sha512-8GwUQZE0ri0K0HJHkDv87XOLC8DE0msc+HoWLeKdtjDZEwpZ5xuK3QdV6FhmHSQW40LPkg43QzvATRAI3LsRkg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 + postcss: 8.4.36 postcss-value-parser: 4.2.0 dev: true - /postcss-nested@6.0.1(postcss@8.4.35): + /postcss-nested@6.0.1(postcss@8.4.36): resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.2.14 dependencies: - postcss: 8.4.35 - postcss-selector-parser: 6.0.15 + postcss: 8.4.36 + postcss-selector-parser: 6.0.16 - /postcss-nesting@12.0.2(postcss@8.4.32): - resolution: {integrity: sha512-63PpJHSeNs93S3ZUIyi+7kKx4JqOIEJ6QYtG3x+0qA4J03+4n0iwsyA1GAHyWxsHYljQS4/4ZK1o2sMi70b5wQ==} + /postcss-nesting@12.1.0(postcss@8.4.36): + resolution: {integrity: sha512-QOYnosaZ+mlP6plQrAxFw09UUp2Sgtxj1BVHN+rSVbtV0Yx48zRt9/9F/ZOoxOKBBEsaJk2MYhhVRjeRRw5yuw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/selector-specificity': 3.0.1(postcss-selector-parser@6.0.15) - postcss: 8.4.32 - postcss-selector-parser: 6.0.15 + '@csstools/selector-resolve-nested': 1.1.0(postcss-selector-parser@6.0.16) + '@csstools/selector-specificity': 3.0.2(postcss-selector-parser@6.0.16) + postcss: 8.4.36 + postcss-selector-parser: 6.0.16 dev: true - /postcss-opacity-percentage@2.0.0(postcss@8.4.32): + /postcss-opacity-percentage@2.0.0(postcss@8.4.36): resolution: {integrity: sha512-lyDrCOtntq5Y1JZpBFzIWm2wG9kbEdujpNt4NLannF+J9c8CgFIzPa80YQfdza+Y+yFfzbYj/rfoOsYsooUWTQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.2 dependencies: - postcss: 8.4.32 + postcss: 8.4.36 dev: true - /postcss-overflow-shorthand@5.0.1(postcss@8.4.32): + /postcss-overflow-shorthand@5.0.1(postcss@8.4.36): resolution: {integrity: sha512-XzjBYKLd1t6vHsaokMV9URBt2EwC9a7nDhpQpjoPk2HRTSQfokPfyAS/Q7AOrzUu6q+vp/GnrDBGuj/FCaRqrQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 + postcss: 8.4.36 postcss-value-parser: 4.2.0 dev: true - /postcss-page-break@3.0.4(postcss@8.4.32): + /postcss-page-break@3.0.4(postcss@8.4.36): resolution: {integrity: sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==} peerDependencies: postcss: ^8 dependencies: - postcss: 8.4.32 + postcss: 8.4.36 dev: true - /postcss-place@9.0.1(postcss@8.4.32): + /postcss-place@9.0.1(postcss@8.4.36): resolution: {integrity: sha512-JfL+paQOgRQRMoYFc2f73pGuG/Aw3tt4vYMR6UA3cWVMxivviPTnMFnFTczUJOA4K2Zga6xgQVE+PcLs64WC8Q==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 + postcss: 8.4.36 postcss-value-parser: 4.2.0 dev: true - /postcss-preset-env@9.3.0(postcss@8.4.32): - resolution: {integrity: sha512-ycw6doPrqV6QxDCtgiyGDef61bEfiSc59HGM4gOw/wxQxmKnhuEery61oOC/5ViENz/ycpRsuhTexs1kUBTvVw==} + /postcss-preset-env@9.5.2(postcss@8.4.36): + resolution: {integrity: sha512-/KIAHELdg5BxsKA/Vc6Nok/66EM7lps8NulKcQWX2S52HdzxAqh+6HcuAFj7trRSW587vlOA4zCjlRFgR+W6Ag==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/postcss-cascade-layers': 4.0.2(postcss@8.4.32) - '@csstools/postcss-color-function': 3.0.9(postcss@8.4.32) - '@csstools/postcss-color-mix-function': 2.0.9(postcss@8.4.32) - '@csstools/postcss-exponential-functions': 1.0.3(postcss@8.4.32) - '@csstools/postcss-font-format-keywords': 3.0.1(postcss@8.4.32) - '@csstools/postcss-gamut-mapping': 1.0.2(postcss@8.4.32) - '@csstools/postcss-gradients-interpolation-method': 4.0.9(postcss@8.4.32) - '@csstools/postcss-hwb-function': 3.0.8(postcss@8.4.32) - '@csstools/postcss-ic-unit': 3.0.3(postcss@8.4.32) - '@csstools/postcss-initial': 1.0.1(postcss@8.4.32) - '@csstools/postcss-is-pseudo-class': 4.0.4(postcss@8.4.32) - '@csstools/postcss-logical-float-and-clear': 2.0.1(postcss@8.4.32) - '@csstools/postcss-logical-overflow': 1.0.1(postcss@8.4.32) - '@csstools/postcss-logical-overscroll-behavior': 1.0.1(postcss@8.4.32) - '@csstools/postcss-logical-resize': 2.0.1(postcss@8.4.32) - '@csstools/postcss-logical-viewport-units': 2.0.5(postcss@8.4.32) - '@csstools/postcss-media-minmax': 1.1.2(postcss@8.4.32) - '@csstools/postcss-media-queries-aspect-ratio-number-values': 2.0.5(postcss@8.4.32) - '@csstools/postcss-nested-calc': 3.0.1(postcss@8.4.32) - '@csstools/postcss-normalize-display-values': 3.0.2(postcss@8.4.32) - '@csstools/postcss-oklab-function': 3.0.9(postcss@8.4.32) - '@csstools/postcss-progressive-custom-properties': 3.0.3(postcss@8.4.32) - '@csstools/postcss-relative-color-syntax': 2.0.9(postcss@8.4.32) - '@csstools/postcss-scope-pseudo-class': 3.0.1(postcss@8.4.32) - '@csstools/postcss-stepped-value-functions': 3.0.4(postcss@8.4.32) - '@csstools/postcss-text-decoration-shorthand': 3.0.4(postcss@8.4.32) - '@csstools/postcss-trigonometric-functions': 3.0.4(postcss@8.4.32) - '@csstools/postcss-unset-value': 3.0.1(postcss@8.4.32) - autoprefixer: 10.4.16(postcss@8.4.32) - browserslist: 4.22.2 - css-blank-pseudo: 6.0.1(postcss@8.4.32) - css-has-pseudo: 6.0.1(postcss@8.4.32) - css-prefers-color-scheme: 9.0.1(postcss@8.4.32) - cssdb: 7.10.0 - postcss: 8.4.32 - postcss-attribute-case-insensitive: 6.0.2(postcss@8.4.32) - postcss-clamp: 4.1.0(postcss@8.4.32) - postcss-color-functional-notation: 6.0.4(postcss@8.4.32) - postcss-color-hex-alpha: 9.0.3(postcss@8.4.32) - postcss-color-rebeccapurple: 9.0.2(postcss@8.4.32) - postcss-custom-media: 10.0.2(postcss@8.4.32) - postcss-custom-properties: 13.3.4(postcss@8.4.32) - postcss-custom-selectors: 7.1.6(postcss@8.4.32) - postcss-dir-pseudo-class: 8.0.1(postcss@8.4.32) - postcss-double-position-gradients: 5.0.3(postcss@8.4.32) - postcss-focus-visible: 9.0.1(postcss@8.4.32) - postcss-focus-within: 8.0.1(postcss@8.4.32) - postcss-font-variant: 5.0.0(postcss@8.4.32) - postcss-gap-properties: 5.0.1(postcss@8.4.32) - postcss-image-set-function: 6.0.2(postcss@8.4.32) - postcss-lab-function: 6.0.9(postcss@8.4.32) - postcss-logical: 7.0.1(postcss@8.4.32) - postcss-nesting: 12.0.2(postcss@8.4.32) - postcss-opacity-percentage: 2.0.0(postcss@8.4.32) - postcss-overflow-shorthand: 5.0.1(postcss@8.4.32) - postcss-page-break: 3.0.4(postcss@8.4.32) - postcss-place: 9.0.1(postcss@8.4.32) - postcss-pseudo-class-any-link: 9.0.1(postcss@8.4.32) - postcss-replace-overflow-wrap: 4.0.0(postcss@8.4.32) - postcss-selector-not: 7.0.1(postcss@8.4.32) - postcss-value-parser: 4.2.0 - dev: true - - /postcss-pseudo-class-any-link@9.0.1(postcss@8.4.32): + '@csstools/postcss-cascade-layers': 4.0.3(postcss@8.4.36) + '@csstools/postcss-color-function': 3.0.12(postcss@8.4.36) + '@csstools/postcss-color-mix-function': 2.0.12(postcss@8.4.36) + '@csstools/postcss-exponential-functions': 1.0.5(postcss@8.4.36) + '@csstools/postcss-font-format-keywords': 3.0.2(postcss@8.4.36) + '@csstools/postcss-gamut-mapping': 1.0.5(postcss@8.4.36) + '@csstools/postcss-gradients-interpolation-method': 4.0.13(postcss@8.4.36) + '@csstools/postcss-hwb-function': 3.0.11(postcss@8.4.36) + '@csstools/postcss-ic-unit': 3.0.5(postcss@8.4.36) + '@csstools/postcss-initial': 1.0.1(postcss@8.4.36) + '@csstools/postcss-is-pseudo-class': 4.0.5(postcss@8.4.36) + '@csstools/postcss-light-dark-function': 1.0.1(postcss@8.4.36) + '@csstools/postcss-logical-float-and-clear': 2.0.1(postcss@8.4.36) + '@csstools/postcss-logical-overflow': 1.0.1(postcss@8.4.36) + '@csstools/postcss-logical-overscroll-behavior': 1.0.1(postcss@8.4.36) + '@csstools/postcss-logical-resize': 2.0.1(postcss@8.4.36) + '@csstools/postcss-logical-viewport-units': 2.0.7(postcss@8.4.36) + '@csstools/postcss-media-minmax': 1.1.4(postcss@8.4.36) + '@csstools/postcss-media-queries-aspect-ratio-number-values': 2.0.7(postcss@8.4.36) + '@csstools/postcss-nested-calc': 3.0.2(postcss@8.4.36) + '@csstools/postcss-normalize-display-values': 3.0.2(postcss@8.4.36) + '@csstools/postcss-oklab-function': 3.0.12(postcss@8.4.36) + '@csstools/postcss-progressive-custom-properties': 3.1.1(postcss@8.4.36) + '@csstools/postcss-relative-color-syntax': 2.0.12(postcss@8.4.36) + '@csstools/postcss-scope-pseudo-class': 3.0.1(postcss@8.4.36) + '@csstools/postcss-stepped-value-functions': 3.0.6(postcss@8.4.36) + '@csstools/postcss-text-decoration-shorthand': 3.0.4(postcss@8.4.36) + '@csstools/postcss-trigonometric-functions': 3.0.6(postcss@8.4.36) + '@csstools/postcss-unset-value': 3.0.1(postcss@8.4.36) + autoprefixer: 10.4.18(postcss@8.4.36) + browserslist: 4.23.0 + css-blank-pseudo: 6.0.1(postcss@8.4.36) + css-has-pseudo: 6.0.2(postcss@8.4.36) + css-prefers-color-scheme: 9.0.1(postcss@8.4.36) + cssdb: 7.11.2 + postcss: 8.4.36 + postcss-attribute-case-insensitive: 6.0.3(postcss@8.4.36) + postcss-clamp: 4.1.0(postcss@8.4.36) + postcss-color-functional-notation: 6.0.7(postcss@8.4.36) + postcss-color-hex-alpha: 9.0.4(postcss@8.4.36) + postcss-color-rebeccapurple: 9.0.3(postcss@8.4.36) + postcss-custom-media: 10.0.4(postcss@8.4.36) + postcss-custom-properties: 13.3.6(postcss@8.4.36) + postcss-custom-selectors: 7.1.8(postcss@8.4.36) + postcss-dir-pseudo-class: 8.0.1(postcss@8.4.36) + postcss-double-position-gradients: 5.0.5(postcss@8.4.36) + postcss-focus-visible: 9.0.1(postcss@8.4.36) + postcss-focus-within: 8.0.1(postcss@8.4.36) + postcss-font-variant: 5.0.0(postcss@8.4.36) + postcss-gap-properties: 5.0.1(postcss@8.4.36) + postcss-image-set-function: 6.0.3(postcss@8.4.36) + postcss-lab-function: 6.0.12(postcss@8.4.36) + postcss-logical: 7.0.1(postcss@8.4.36) + postcss-nesting: 12.1.0(postcss@8.4.36) + postcss-opacity-percentage: 2.0.0(postcss@8.4.36) + postcss-overflow-shorthand: 5.0.1(postcss@8.4.36) + postcss-page-break: 3.0.4(postcss@8.4.36) + postcss-place: 9.0.1(postcss@8.4.36) + postcss-pseudo-class-any-link: 9.0.1(postcss@8.4.36) + postcss-replace-overflow-wrap: 4.0.0(postcss@8.4.36) + postcss-selector-not: 7.0.2(postcss@8.4.36) + dev: true + + /postcss-pseudo-class-any-link@9.0.1(postcss@8.4.36): resolution: {integrity: sha512-cKYGGZ9yzUZi+dZd7XT2M8iSDfo+T2Ctbpiizf89uBTBfIpZpjvTavzIJXpCReMVXSKROqzpxClNu6fz4DHM0Q==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 - postcss-selector-parser: 6.0.15 + postcss: 8.4.36 + postcss-selector-parser: 6.0.16 dev: true - /postcss-replace-overflow-wrap@4.0.0(postcss@8.4.32): + /postcss-replace-overflow-wrap@4.0.0(postcss@8.4.36): resolution: {integrity: sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==} peerDependencies: postcss: ^8.0.3 dependencies: - postcss: 8.4.32 + postcss: 8.4.36 dev: true - /postcss-selector-not@7.0.1(postcss@8.4.32): - resolution: {integrity: sha512-1zT5C27b/zeJhchN7fP0kBr16Cc61mu7Si9uWWLoA3Px/D9tIJPKchJCkUH3tPO5D0pCFmGeApAv8XpXBQJ8SQ==} + /postcss-selector-not@7.0.2(postcss@8.4.36): + resolution: {integrity: sha512-/SSxf/90Obye49VZIfc0ls4H0P6i6V1iHv0pzZH8SdgvZOPFkF37ef1r5cyWcMflJSFJ5bfuoluTnFnBBFiuSA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.32 - postcss-selector-parser: 6.0.15 + postcss: 8.4.36 + postcss-selector-parser: 6.0.16 dev: true - /postcss-selector-parser@6.0.15: - resolution: {integrity: sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==} + /postcss-selector-parser@6.0.16: + resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} engines: {node: '>=4'} dependencies: cssesc: 3.0.0 @@ -14223,44 +14276,36 @@ packages: /postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - /postcss@8.4.32: - resolution: {integrity: sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==} + /postcss@8.4.36: + resolution: {integrity: sha512-/n7eumA6ZjFHAsbX30yhHup/IMkOmlmvtEi7P+6RMYf+bGJSUHc3geH4a0NSZxAz/RJfiS9tooCTs9LAVYUZKw==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.7 picocolors: 1.0.0 - source-map-js: 1.0.2 + source-map-js: 1.1.0 - /postcss@8.4.35: - resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==} - engines: {node: ^10 || ^12 || >=14} - dependencies: - nanoid: 3.3.7 - picocolors: 1.0.0 - source-map-js: 1.0.2 - - /preact-render-to-string@6.3.1(preact@10.19.3): + /preact-render-to-string@6.3.1(preact@10.19.6): resolution: {integrity: sha512-NQ28WrjLtWY6lKDlTxnFpKHZdpjfF+oE6V4tZ0rTrunHrtZp6Dm0oFrcJalt/5PNeqJz4j1DuZDS0Y6rCBoqDA==} peerDependencies: preact: '>=10' dependencies: - preact: 10.19.3 + preact: 10.19.6 pretty-format: 3.8.0 dev: false - /preact-ssr-prepass@1.2.1(preact@10.19.3): + /preact-ssr-prepass@1.2.1(preact@10.19.6): resolution: {integrity: sha512-bLgbUfy8nL+PZghAPpyk9MF+cmXjdwEnxYPaJBmwbzFQqzIz8dQVBqjwB60RqZ9So/vIf6BRfHCiwFGuMCyfbQ==} peerDependencies: preact: '>=10 || ^10.0.0-beta.0 || ^10.0.0-alpha.0' dependencies: - preact: 10.19.3 + preact: 10.19.6 dev: false - /preact@10.19.3: - resolution: {integrity: sha512-nHHTeFVBTHRGxJXKkKu5hT8C/YWBkPso4/Gad6xuj5dbptt9iF9NZr9pHbPhBrnT2klheu7mHTxTZ/LjwJiEiQ==} + /preact@10.19.6: + resolution: {integrity: sha512-gympg+T2Z1fG1unB8NH29yHJwnEaCH37Z32diPDku316OTnRPeMbiRV9kTrfZpocXjdfnWuFUl/Mj4BHaf6gnw==} - /prebuild-install@7.1.1: - resolution: {integrity: sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==} + /prebuild-install@7.1.2: + resolution: {integrity: sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==} engines: {node: '>=10'} hasBin: true requiresBuild: true @@ -14271,7 +14316,7 @@ packages: minimist: 1.2.8 mkdirp-classic: 0.5.3 napi-build-utils: 1.0.2 - node-abi: 3.52.0 + node-abi: 3.56.0 pump: 3.0.0 rc: 1.2.8 simple-get: 4.0.1 @@ -14279,8 +14324,8 @@ packages: tunnel-agent: 0.6.0 dev: false - /preferred-pm@3.1.2: - resolution: {integrity: sha512-nk7dKrcW8hfCZ4H6klWcdRknBOXWzNQByJ0oJyX97BOupsYD+FzLS4hflgEu/uPUEHZCuRfMxzCBsuWd7OzT8Q==} + /preferred-pm@3.1.3: + resolution: {integrity: sha512-MkXsENfftWSRpzCzImcp4FRsCc3y1opwB73CfCNWyzMqArju2CrlMHlqB7VexKiPEOjGMbttv1r9fSCn5S610w==} engines: {node: '>=10'} dependencies: find-up: 5.0.0 @@ -14305,8 +14350,8 @@ packages: engines: {node: ^14.15.0 || >=16.0.0} dependencies: '@astrojs/compiler': 1.8.2 - prettier: 3.1.1 - sass-formatter: 0.7.8 + prettier: 3.2.5 + sass-formatter: 0.7.9 /prettier@2.8.8: resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} @@ -14314,8 +14359,8 @@ packages: hasBin: true dev: true - /prettier@3.1.1: - resolution: {integrity: sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==} + /prettier@3.2.5: + resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} engines: {node: '>=14'} hasBin: true @@ -14360,8 +14405,8 @@ packages: sisteransi: 1.0.5 dev: false - /property-information@6.4.0: - resolution: {integrity: sha512-9t5qARVofg2xQqKtytzt+lZ4d1Qvj8t5B8fEwXK6qOfgRLgH/b13QlgEyDh033NOS31nXeFbYv7CLUDG1CeifQ==} + /property-information@6.4.1: + resolution: {integrity: sha512-OHYtXfu5aI2sS2LWFSN5rgJjrQ4pCy8i1jubJLe2QvMF8JJ++HXTUIVWFLfXJoaOfvYYjk2SN8J2wFUWIGXT4w==} /proxy-addr@2.0.7: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} @@ -14396,7 +14441,7 @@ packages: resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} engines: {node: '>=0.6'} dependencies: - side-channel: 1.0.4 + side-channel: 1.0.6 dev: true /querystringify@2.2.0: @@ -14426,8 +14471,8 @@ packages: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} engines: {node: '>= 0.6'} - /raw-body@2.5.1: - resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==} + /raw-body@2.5.2: + resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} engines: {node: '>= 0.8'} dependencies: bytes: 3.1.2 @@ -14566,19 +14611,20 @@ packages: refa: 0.12.1 dev: true - /regexp.prototype.flags@1.5.1: - resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} + /regexp.prototype.flags@1.5.2: + resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - set-function-name: 2.0.1 + es-errors: 1.3.0 + set-function-name: 2.0.2 dev: true /rehype-autolink-headings@7.1.0: resolution: {integrity: sha512-rItO/pSdvnvsP4QRB1pmPiNHUskikqtPojZKJPPPAVx9Hj8i8TwMBhofrrAYRhYOOBZH9tgmG5lPqDLuIWPWmw==} dependencies: - '@types/hast': 3.0.3 + '@types/hast': 3.0.4 '@ungap/structured-clone': 1.2.0 hast-util-heading-rank: 3.0.0 hast-util-is-element: 3.0.0 @@ -14588,7 +14634,7 @@ packages: /rehype-mathjax@5.0.0: resolution: {integrity: sha512-IRPgpSpwOq4JNn3efeTrbYDMmzjOKCTJtu1Wyo/+6nenyqwqIvlojYDczRILOeHa1HyCMYmqpdvfOovOVzDIGg==} dependencies: - '@types/hast': 3.0.3 + '@types/hast': 3.0.4 '@types/mathjax': 0.0.37 hast-util-from-dom: 5.0.0 hast-util-to-text: 4.0.0 @@ -14606,7 +14652,7 @@ packages: /rehype-parse@9.0.0: resolution: {integrity: sha512-WG7nfvmWWkCR++KEkZevZb/uw41E8TsH4DsY9UxsTbIXCVGbAs4S+r8FrQ+OtH5EEQAs+5UxKC42VinkmpA1Yw==} dependencies: - '@types/hast': 3.0.3 + '@types/hast': 3.0.4 hast-util-from-html: 2.0.1 unified: 11.0.4 @@ -14630,15 +14676,15 @@ packages: /rehype-raw@7.0.0: resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} dependencies: - '@types/hast': 3.0.3 - hast-util-raw: 9.0.1 + '@types/hast': 3.0.4 + hast-util-raw: 9.0.2 vfile: 6.0.1 dev: false /rehype-slug@6.0.0: resolution: {integrity: sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A==} dependencies: - '@types/hast': 3.0.3 + '@types/hast': 3.0.4 github-slugger: 2.0.0 hast-util-heading-rank: 3.0.0 hast-util-to-string: 3.0.0 @@ -14647,7 +14693,7 @@ packages: /rehype-stringify@10.0.0: resolution: {integrity: sha512-1TX1i048LooI9QoecrXy7nGFFbFSufxVRAfc6Y9YMRAi56l+oB0zP51mLSV312uRuvVLPV1opSlJmslozR1XHQ==} dependencies: - '@types/hast': 3.0.3 + '@types/hast': 3.0.4 hast-util-to-html: 9.0.0 unified: 11.0.4 dev: false @@ -14661,7 +14707,7 @@ packages: /rehype@13.0.1: resolution: {integrity: sha512-AcSLS2mItY+0fYu9xKxOu1LhUZeBZZBx8//5HKzF+0XP+eP8+6a5MXn2+DW2kfXR6Dtp1FEXMVrjyKAcvcU8vg==} dependencies: - '@types/hast': 3.0.3 + '@types/hast': 3.0.4 rehype-parse: 9.0.0 rehype-stringify: 10.0.0 unified: 11.0.4 @@ -14705,8 +14751,8 @@ packages: - supports-color dev: true - /remark-mdx@3.0.0: - resolution: {integrity: sha512-O7yfjuC6ra3NHPbRVxfflafAj3LTwx3b73aBvkEFU5z4PsD6FD4vrqJAkE5iNGLz71GdjXfgRqm3SQ0h0VuE7g==} + /remark-mdx@3.0.1: + resolution: {integrity: sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==} dependencies: mdast-util-mdx: 3.0.0 micromark-extension-mdxjs: 3.0.0 @@ -14725,12 +14771,12 @@ packages: - supports-color dev: false - /remark-rehype@11.0.0: - resolution: {integrity: sha512-vx8x2MDMcxuE4lBmQ46zYUDfcFMmvg80WYX+UNLeG6ixjdCCLcw1lrgAukwBTuOFsS78eoAedHGn9sNM0w7TPw==} + /remark-rehype@11.1.0: + resolution: {integrity: sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==} dependencies: - '@types/hast': 3.0.3 + '@types/hast': 3.0.4 '@types/mdast': 4.0.3 - mdast-util-to-hast: 13.0.2 + mdast-util-to-hast: 13.1.0 unified: 11.0.4 vfile: 6.0.1 @@ -14753,13 +14799,13 @@ packages: - supports-color dev: true - /remark-smartypants@2.0.0: - resolution: {integrity: sha512-Rc0VDmr/yhnMQIz8n2ACYXlfw/P/XZev884QU1I5u+5DgJls32o97Vc1RbK3pfumLsJomS2yy8eT4Fxj/2MDVA==} + /remark-smartypants@2.1.0: + resolution: {integrity: sha512-qoF6Vz3BjU2tP6OfZqHOvCU0ACmu/6jhGaINSQRI9mM7wCxNQTKB3JUAN4SVoN2ybElEDTxBIABRep7e569iJw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: retext: 8.1.0 retext-smartypants: 5.2.0 - unist-util-visit: 4.1.2 + unist-util-visit: 5.0.0 dev: false /remark-stringify@11.0.0: @@ -14866,24 +14912,26 @@ packages: dependencies: glob: 7.2.3 - /rollup@4.9.2: - resolution: {integrity: sha512-66RB8OtFKUTozmVEh3qyNfH+b+z2RXBVloqO2KCC/pjFaGaHtxP9fVfOQKPSGXg2mElmjmxjW/fZ7iKrEpMH5Q==} + /rollup@4.13.0: + resolution: {integrity: sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true + dependencies: + '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.9.2 - '@rollup/rollup-android-arm64': 4.9.2 - '@rollup/rollup-darwin-arm64': 4.9.2 - '@rollup/rollup-darwin-x64': 4.9.2 - '@rollup/rollup-linux-arm-gnueabihf': 4.9.2 - '@rollup/rollup-linux-arm64-gnu': 4.9.2 - '@rollup/rollup-linux-arm64-musl': 4.9.2 - '@rollup/rollup-linux-riscv64-gnu': 4.9.2 - '@rollup/rollup-linux-x64-gnu': 4.9.2 - '@rollup/rollup-linux-x64-musl': 4.9.2 - '@rollup/rollup-win32-arm64-msvc': 4.9.2 - '@rollup/rollup-win32-ia32-msvc': 4.9.2 - '@rollup/rollup-win32-x64-msvc': 4.9.2 + '@rollup/rollup-android-arm-eabi': 4.13.0 + '@rollup/rollup-android-arm64': 4.13.0 + '@rollup/rollup-darwin-arm64': 4.13.0 + '@rollup/rollup-darwin-x64': 4.13.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.13.0 + '@rollup/rollup-linux-arm64-gnu': 4.13.0 + '@rollup/rollup-linux-arm64-musl': 4.13.0 + '@rollup/rollup-linux-riscv64-gnu': 4.13.0 + '@rollup/rollup-linux-x64-gnu': 4.13.0 + '@rollup/rollup-linux-x64-musl': 4.13.0 + '@rollup/rollup-win32-arm64-msvc': 4.13.0 + '@rollup/rollup-win32-ia32-msvc': 4.13.0 + '@rollup/rollup-win32-x64-msvc': 4.13.0 fsevents: 2.3.3 /rrweb-cssom@0.6.0: @@ -14903,12 +14951,12 @@ packages: /s.color@0.0.15: resolution: {integrity: sha512-AUNrbEUHeKY8XsYr/DYpl+qk5+aM+DChopnWOPEzn8YKzOhv4l2zH6LzZms3tOZP3wwdOyc0RmTciyi46HLIuA==} - /safe-array-concat@1.0.1: - resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} + /safe-array-concat@1.1.2: + resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} engines: {node: '>=0.4'} dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 + call-bind: 1.0.7 + get-intrinsic: 1.2.4 has-symbols: 1.0.3 isarray: 2.0.5 dev: true @@ -14916,11 +14964,12 @@ packages: /safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - /safe-regex-test@1.0.0: - resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + /safe-regex-test@1.0.3: + resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 + call-bind: 1.0.7 + es-errors: 1.3.0 is-regex: 1.1.4 dev: true @@ -14928,19 +14977,19 @@ packages: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} dev: true - /sass-formatter@0.7.8: - resolution: {integrity: sha512-7fI2a8THglflhhYis7k06eUf92VQuJoXzEs2KRP0r1bluFxKFvLx0Ns7c478oYGM0fPfrr846ZRWVi2MAgHt9Q==} + /sass-formatter@0.7.9: + resolution: {integrity: sha512-CWZ8XiSim+fJVG0cFLStwDvft1VI7uvXdCNJYXhDvowiv+DsbD1nXLiQ4zrE5UBvj5DWZJ93cwN0NX5PMsr1Pw==} dependencies: suf-log: 2.5.3 - /sass@1.69.6: - resolution: {integrity: sha512-qbRr3k9JGHWXCvZU77SD2OTwUlC+gNT+61JOLcmLm+XqH4h/5D+p4IIsxvpkB89S9AwJOyb5+rWNpIucaFxSFQ==} + /sass@1.72.0: + resolution: {integrity: sha512-Gpczt3WA56Ly0Mn8Sl21Vj94s1axi9hDIzDFn9Ph9x3C3p4nNyvsqJoQyVXKou6cBlfFWEgRW4rT8Tb4i3XnVA==} engines: {node: '>=14.0.0'} hasBin: true dependencies: - chokidar: 3.5.3 - immutable: 4.3.4 - source-map-js: 1.0.2 + chokidar: 3.6.0 + immutable: 4.3.5 + source-map-js: 1.1.0 /sax@1.3.0: resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} @@ -14984,8 +15033,8 @@ packages: hasBin: true dev: false - /semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + /semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} engines: {node: '>=10'} hasBin: true dependencies: @@ -15017,8 +15066,16 @@ packages: randombytes: 2.1.0 dev: true - /seroval@0.15.1: - resolution: {integrity: sha512-OPVtf0qmeC7RW+ScVX+7aOS+xoIM7pWcZ0jOWg2aTZigCydgRB04adfteBRbecZnnrO1WuGQ+C3tLeBBzX2zSQ==} + /seroval-plugins@1.0.5(seroval@1.0.5): + resolution: {integrity: sha512-8+pDC1vOedPXjKG7oz8o+iiHrtF2WswaMQJ7CKFpccvSYfrzmvKY9zOJWCg+881722wIHfwkdnRmiiDm9ym+zQ==} + engines: {node: '>=10'} + peerDependencies: + seroval: ^1.0 + dependencies: + seroval: 1.0.5 + + /seroval@1.0.5: + resolution: {integrity: sha512-TM+Z11tHHvQVQKeNlOUonOWnsNM+2IBwZ4vwoi4j3zKzIpc5IDw8WPwCfcc8F17wy6cBcJGbZbFOR0UCuTZHQA==} engines: {node: '>=10'} /serve-static@1.15.0: @@ -15048,23 +15105,26 @@ packages: resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==} dev: false - /set-function-length@1.1.1: - resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==} + /set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} engines: {node: '>= 0.4'} dependencies: - define-data-property: 1.1.1 - get-intrinsic: 1.2.2 + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 gopd: 1.0.1 - has-property-descriptors: 1.0.1 + has-property-descriptors: 1.0.2 dev: true - /set-function-name@2.0.1: - resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} + /set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} engines: {node: '>= 0.4'} dependencies: - define-data-property: 1.1.1 + define-data-property: 1.1.4 + es-errors: 1.3.0 functions-have-names: 1.2.3 - has-property-descriptors: 1.0.1 + has-property-descriptors: 1.0.2 dev: true /setprototypeof@1.2.0: @@ -15078,10 +15138,10 @@ packages: color: 4.2.3 detect-libc: 2.0.2 node-addon-api: 6.1.0 - prebuild-install: 7.1.1 - semver: 7.5.4 + prebuild-install: 7.1.2 + semver: 7.6.0 simple-get: 4.0.1 - tar-fs: 3.0.4 + tar-fs: 3.0.5 tunnel-agent: 0.6.0 dev: false @@ -15128,22 +15188,24 @@ packages: /shiki@0.10.1: resolution: {integrity: sha512-VsY7QJVzU51j5o1+DguUd+6vmCmZ5v/6gYu4vyYAhzjuNQU6P/vmSy4uQaOhvje031qQMiW0d2BwgMH52vqMng==} dependencies: - jsonc-parser: 3.2.0 + jsonc-parser: 3.2.1 vscode-oniguruma: 1.7.0 vscode-textmate: 5.2.0 dev: true - /shiki@1.1.2: - resolution: {integrity: sha512-qNzFwTv5uhEDNUIwp7wHjsrffVeLbmOgWnM5mZZhoiz7G2qAUvqVfUzuWfieD45/YAKipzCtdV9SndacKtABow==} + /shiki@1.2.0: + resolution: {integrity: sha512-xLhiTMOIUXCv5DqJ4I70GgQCtdlzsTqFLZWcMHHG3TAieBUbvEGthdrlPDlX4mL/Wszx9C6rEcxU6kMlg4YlxA==} dependencies: - '@shikijs/core': 1.1.2 + '@shikijs/core': 1.2.0 dev: false - /side-channel@1.0.4: - resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + /side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 object-inspect: 1.13.1 dev: true @@ -15176,8 +15238,8 @@ packages: simple-concat: 1.0.1 dev: false - /simple-stack-form@0.1.10(astro@packages+astro)(zod@3.22.4): - resolution: {integrity: sha512-00eCXPhSbryGunR9N5+jkGLGVVExySwxmAThK/MIedwVCNkbOf16/PFdSha6JgpGhpQxcETr6uOc+Y0zg2GaMg==} + /simple-stack-form@0.1.12(astro@packages+astro)(zod@3.22.4): + resolution: {integrity: sha512-cqxiA0/91WddM9Jya8Es1wfDurBfm8pUOmgMb08OB32wpmQLz2JQpjcarFNYkj5ZXfmE3qkGqakvx+6TCwxqUQ==} hasBin: true peerDependencies: astro: '*' @@ -15248,25 +15310,26 @@ packages: yargs: 15.4.1 dev: true - /solid-js@1.8.7: - resolution: {integrity: sha512-9dzrSVieh2zj3SnJ02II6xZkonR6c+j/91b7XZUNcC6xSaldlqjjGh98F1fk5cRJ8ZTkzqF5fPIWDxEOs6QZXA==} + /solid-js@1.8.15: + resolution: {integrity: sha512-d0QP/efr3UVcwGgWVPveQQ0IHOH6iU7yUhc2piy8arNG8wxKmvUy1kFxyF8owpmfCWGB87usDKMaVnsNYZm+Vw==} dependencies: csstype: 3.1.3 - seroval: 0.15.1 + seroval: 1.0.5 + seroval-plugins: 1.0.5(seroval@1.0.5) - /solid-refresh@0.5.3(solid-js@1.8.7): - resolution: {integrity: sha512-Otg5it5sjOdZbQZJnvo99TEBAr6J7PQ5AubZLNU6szZzg3RQQ5MX04oteBIIGDs0y2Qv8aXKm9e44V8z+UnFdw==} + /solid-refresh@0.6.3(solid-js@1.8.15): + resolution: {integrity: sha512-F3aPsX6hVw9ttm5LYlth8Q15x6MlI/J3Dn+o3EQyRTtTxidepSTwAYdozt01/YA+7ObcciagGEyXIopGZzQtbA==} peerDependencies: solid-js: ^1.3 dependencies: '@babel/generator': 7.23.6 '@babel/helper-module-imports': 7.22.15 - '@babel/types': 7.23.6 - solid-js: 1.8.7 + '@babel/types': 7.24.0 + solid-js: 1.8.15 dev: false - /source-map-js@1.0.2: - resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + /source-map-js@1.1.0: + resolution: {integrity: sha512-9vC2SfsJzlej6MAaMPLu8HiBSHGdRAJ9hVFYN1ibZoNkeanmDmLUcIrj6G9DGL7XMJ54AKg/G75akXl1/izTOw==} engines: {node: '>=0.10.0'} /source-map@0.6.1: @@ -15292,22 +15355,22 @@ packages: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} dependencies: spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.16 + spdx-license-ids: 3.0.17 dev: true - /spdx-exceptions@2.3.0: - resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} + /spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} dev: true /spdx-expression-parse@3.0.1: resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} dependencies: - spdx-exceptions: 2.3.0 - spdx-license-ids: 3.0.16 + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.17 dev: true - /spdx-license-ids@3.0.16: - resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==} + /spdx-license-ids@3.0.17: + resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==} dev: true /speech-rule-engine@4.0.7: @@ -15326,6 +15389,11 @@ packages: resolution: {integrity: sha512-JWp4cG2eybkvKA1QUHGoNK6JDEYcOnSuhzNGjZuYUPqXreDl/VkkvP2sZW7Rmh+icuCttrR9ccb2WPIazyM/Cw==} dev: true + /stack-trace@1.0.0-pre2: + resolution: {integrity: sha512-2ztBJRek8IVofG9DBJqdy2N5kulaacX30Nz7xmkYF6ale9WBVmIy6mFBchvGX7Vx/MyjBhx+Rcxqrj+dbOnQ6A==} + engines: {node: '>=16'} + dev: false + /stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} dev: false @@ -15351,12 +15419,14 @@ packages: mixme: 0.5.10 dev: true - /streamx@2.15.6: - resolution: {integrity: sha512-q+vQL4AAz+FdfT137VF69Cc/APqUbxy+MDOImRrMvchJpigHj9GksgDU2LYbO9rx7RX6osWgxJB2WxhYv4SZAw==} + /streamx@2.16.1: + resolution: {integrity: sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ==} requiresBuild: true dependencies: fast-fifo: 1.3.2 queue-tick: 1.0.1 + optionalDependencies: + bare-events: 2.2.1 dev: false /string-width@4.2.3: @@ -15384,8 +15454,8 @@ packages: strip-ansi: 7.1.0 dev: false - /string-width@7.0.0: - resolution: {integrity: sha512-GPQHj7row82Hjo9hKZieKcHIhaAIKOJvFSIZXuCU9OASVZrMNUaZuz++SPVrBjnLsnk4k+z9f2EIypgxf2vNFw==} + /string-width@7.1.0: + resolution: {integrity: sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw==} engines: {node: '>=18'} dependencies: emoji-regex: 10.3.0 @@ -15397,39 +15467,39 @@ packages: resolution: {integrity: sha512-DOB27b/2UTTD+4myKUFh+/fXWcu/UDyASIXfg+7VzoCNNGOfWvoyU/x5pvVHr++ztyt/oSYI1BcWBBG/hmlNjA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.22.5 dev: true - /string.prototype.trim@1.2.8: - resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} + /string.prototype.trim@1.2.9: + resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.2 + es-object-atoms: 1.0.0 dev: true - /string.prototype.trimend@1.0.7: - resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} + /string.prototype.trimend@1.0.8: + resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-object-atoms: 1.0.0 dev: true /string.prototype.trimstart@1.0.7: resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.22.5 dev: true /string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - requiresBuild: true dependencies: safe-buffer: 5.2.1 dev: false @@ -15524,7 +15594,7 @@ packages: engines: {node: '>=16 || 14 >=14.17'} hasBin: true dependencies: - '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/gen-mapping': 0.3.5 commander: 4.1.1 glob: 10.3.10 lines-and-columns: 1.2.4 @@ -15567,16 +15637,16 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - /svelte-hmr@0.15.3(svelte@4.2.8): + /svelte-hmr@0.15.3(svelte@4.2.12): resolution: {integrity: sha512-41snaPswvSf8TJUhlkoJBekRrABDXDMdpNpT2tfHIv4JuhgvHqLMhEPGtaQn0BmbNSTkuz2Ed20DF2eHw0SmBQ==} engines: {node: ^12.20 || ^14.13.1 || >= 16} peerDependencies: svelte: ^3.19.0 || ^4.0.0 dependencies: - svelte: 4.2.8 + svelte: 4.2.12 dev: false - /svelte2tsx@0.6.27(svelte@4.2.8)(typescript@5.2.2): + /svelte2tsx@0.6.27(svelte@4.2.12)(typescript@5.2.2): resolution: {integrity: sha512-E1uPW1o6VsbRz+nUk3fznZ2lSmCITAJoNu8AYefWSvIwE2pSB01i5sId4RMbWNzfcwCQl1DcgGShCPcldl4rvg==} peerDependencies: svelte: ^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0 @@ -15584,26 +15654,27 @@ packages: dependencies: dedent-js: 1.0.1 pascal-case: 3.1.2 - svelte: 4.2.8 + svelte: 4.2.12 typescript: 5.2.2 dev: false - /svelte@4.2.8: - resolution: {integrity: sha512-hU6dh1MPl8gh6klQZwK/n73GiAHiR95IkFsesLPbMeEZi36ydaXL/ZAb4g9sayT0MXzpxyZjR28yderJHxcmYA==} + /svelte@4.2.12: + resolution: {integrity: sha512-d8+wsh5TfPwqVzbm4/HCXC783/KPHV60NvwitJnyTA5lWn1elhXMNWhXGCJ7PwPa8qFUnyJNIyuIRt2mT0WMug==} engines: {node: '>=16'} dependencies: - '@ampproject/remapping': 2.2.1 + '@ampproject/remapping': 2.3.0 '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.20 + '@jridgewell/trace-mapping': 0.3.25 + '@types/estree': 1.0.5 acorn: 8.11.3 aria-query: 5.3.0 - axobject-query: 3.2.1 + axobject-query: 4.0.0 code-red: 1.0.4 css-tree: 2.3.1 estree-walker: 3.0.3 is-reference: 3.0.2 locate-character: 3.0.0 - magic-string: 0.30.5 + magic-string: 0.30.8 periscopic: 3.1.0 /svg-tags@1.0.0: @@ -15632,18 +15703,18 @@ packages: resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==} engines: {node: ^14.18.0 || >=16.0.0} dependencies: - '@pkgr/core': 0.1.0 + '@pkgr/core': 0.1.1 tslib: 2.6.2 dev: true - /tailwindcss@3.4.0: - resolution: {integrity: sha512-VigzymniH77knD1dryXbyxR+ePHihHociZbXnLZHUyzf2MMs2ZVqlUrZ3FvpXP8pno9JzmILt1sZPD19M3IxtA==} + /tailwindcss@3.4.1: + resolution: {integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==} engines: {node: '>=14.0.0'} hasBin: true dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 - chokidar: 3.5.3 + chokidar: 3.6.0 didyoumean: 1.2.2 dlv: 1.1.3 fast-glob: 3.3.2 @@ -15655,12 +15726,12 @@ packages: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.0.0 - postcss: 8.4.35 - postcss-import: 15.1.0(postcss@8.4.35) - postcss-js: 4.0.1(postcss@8.4.35) - postcss-load-config: 4.0.2(postcss@8.4.35) - postcss-nested: 6.0.1(postcss@8.4.35) - postcss-selector-parser: 6.0.15 + postcss: 8.4.36 + postcss-import: 15.1.0(postcss@8.4.36) + postcss-js: 4.0.1(postcss@8.4.36) + postcss-load-config: 4.0.2(postcss@8.4.36) + postcss-nested: 6.0.1(postcss@8.4.36) + postcss-selector-parser: 6.0.16 resolve: 1.22.8 sucrase: 3.35.0 transitivePeerDependencies: @@ -15681,13 +15752,15 @@ packages: tar-stream: 2.2.0 dev: false - /tar-fs@3.0.4: - resolution: {integrity: sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==} + /tar-fs@3.0.5: + resolution: {integrity: sha512-JOgGAmZyMgbqpLwct7ZV8VzkEB6pxXFBVErLtb+XCOqzc6w1xiWKI9GVd6bwk68EX7eJ4DWmfXVmq8K2ziZTGg==} requiresBuild: true dependencies: - mkdirp-classic: 0.5.3 pump: 3.0.0 - tar-stream: 3.1.6 + tar-stream: 3.1.7 + optionalDependencies: + bare-fs: 2.2.2 + bare-path: 2.1.0 dev: false /tar-stream@2.2.0: @@ -15702,13 +15775,13 @@ packages: readable-stream: 3.6.2 dev: false - /tar-stream@3.1.6: - resolution: {integrity: sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==} + /tar-stream@3.1.7: + resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} requiresBuild: true dependencies: - b4a: 1.6.4 + b4a: 1.6.6 fast-fifo: 1.3.2 - streamx: 2.15.6 + streamx: 2.16.1 dev: false /tar@6.2.0: @@ -15751,16 +15824,6 @@ packages: dependencies: any-promise: 1.3.0 - /thingies@1.15.0: - resolution: {integrity: sha512-ZSJlvEpD8QllYim0VSGlbAoob/iPrTWNlV/m8ltizMvMmzzU2gVJvHfH9ijLstyciWF70ZiQXqz+BCXWJq+ZQw==} - engines: {node: '>=10.18'} - peerDependencies: - tslib: ^2 - peerDependenciesMeta: - tslib: - optional: true - dev: true - /timestring@6.0.0: resolution: {integrity: sha512-wMctrWD2HZZLuIlchlkE2dfXJh7J2KDI9Dwl+2abPYg0mswQHfOAyQW3jJg1pY5VfttSINZuKcXoB3FGypVklA==} engines: {node: '>=8'} @@ -15836,12 +15899,12 @@ packages: engines: {node: '>=8'} dev: true - /trough@2.1.0: - resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} + /trough@2.2.0: + resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - /ts-api-utils@1.0.3(typescript@5.2.2): - resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} - engines: {node: '>=16.13.0'} + /ts-api-utils@1.3.0(typescript@5.2.2): + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} + engines: {node: '>=16'} peerDependencies: typescript: '>=4.2.0' dependencies: @@ -15858,8 +15921,8 @@ packages: code-block-writer: 12.0.0 dev: true - /tsconfck@3.0.0(typescript@5.2.2): - resolution: {integrity: sha512-w3wnsIrJNi7avf4Zb0VjOoodoO0woEqGgZGQm+LHH9przdUI+XDKsWAXwxHA1DaRTjeuZNcregSzr7RaA8zG9A==} + /tsconfck@3.0.3(typescript@5.2.2): + resolution: {integrity: sha512-4t0noZX9t6GcPTfBAbIbbIU4pfpCwh0ueq3S4O/5qXI1VwK1outmxhe9dOiEWqMz3MW2LKgDTpqWV+37IWuVbA==} engines: {node: ^18 || >=20} hasBin: true peerDependencies: @@ -15919,64 +15982,64 @@ packages: safe-buffer: 5.2.1 dev: false - /turbo-darwin-64@1.12.4: - resolution: {integrity: sha512-dBwFxhp9isTa9RS/fz2gDVk5wWhKQsPQMozYhjM7TT4jTrnYn0ZJMzr7V3B/M/T8QF65TbniW7w1gtgxQgX5Zg==} + /turbo-darwin-64@1.12.5: + resolution: {integrity: sha512-0GZ8reftwNQgIQLHkHjHEXTc/Z1NJm+YjsrBP+qhM/7yIZ3TEy9gJhuogDt2U0xIWwFgisTyzbtU7xNaQydtoA==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /turbo-darwin-arm64@1.12.4: - resolution: {integrity: sha512-1Uo5iI6xsJ1j9ObsqxYRsa3W26mEbUe6fnj4rQYV6kDaqYD54oAMJ6hM53q9rB8JvFxwdrUXGp3PwTw9A0qqkA==} + /turbo-darwin-arm64@1.12.5: + resolution: {integrity: sha512-8WpOLNNzvH6kohQOjihD+gaWL+ZFNfjvBwhOF0rjEzvW+YR3Pa7KjhulrjWyeN2yMFqAPubTbZIGOz1EVXLuQA==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /turbo-linux-64@1.12.4: - resolution: {integrity: sha512-ONg2aSqKP7LAQOg7ysmU5WpEQp4DGNxSlAiR7um+LKtbmC/UxogbR5+T+Uuq6zGuQ5kJyKjWJ4NhtvUswOqBsA==} + /turbo-linux-64@1.12.5: + resolution: {integrity: sha512-INit73+bNUpwqGZCxgXCR3I+cQsdkQ3/LkfkgSOibkpg+oGqxJRzeXw3sp990d7SCoE8QOcs3iw+PtiFX/LDAA==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /turbo-linux-arm64@1.12.4: - resolution: {integrity: sha512-9FPufkwdgfIKg/9jj87Cdtftw8o36y27/S2vLN7FTR2pp9c0MQiTBOLVYadUr1FlShupddmaMbTkXEhyt9SdrA==} + /turbo-linux-arm64@1.12.5: + resolution: {integrity: sha512-6lkRBvxtI/GQdGtaAec9LvVQUoRw6nXFp0kM+Eu+5PbZqq7yn6cMkgDJLI08zdeui36yXhone8XGI8pHg8bpUQ==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /turbo-windows-64@1.12.4: - resolution: {integrity: sha512-2mOtxHW5Vjh/5rDVu/aFwsMzI+chs8XcEuJHlY1sYOpEymYTz+u6AXbnzRvwZFMrLKr7J7fQOGl+v96sLKbNdA==} + /turbo-windows-64@1.12.5: + resolution: {integrity: sha512-gQYbOhZg5Ww0bQ/bC0w/4W6yQRwBumUUnkB+QPo15VznwxZe2a7bo6JM+9Xy9dKLa/kn+p7zTqme4OEp6M3/Yg==} cpu: [x64] os: [win32] requiresBuild: true dev: true optional: true - /turbo-windows-arm64@1.12.4: - resolution: {integrity: sha512-nOY5wae9qnxPOpT1fRuYO0ks6dTwpKMPV6++VkDkamFDLFHUDVM/9kmD2UTeh1yyrKnrZksbb9zmShhmfj1wog==} + /turbo-windows-arm64@1.12.5: + resolution: {integrity: sha512-auvhZ9FrhnvQ4mgBlY9O68MT4dIfprYGvd2uPICba/mHUZZvVy5SGgbHJ0KbMwaJfnnFoPgLJO6M+3N2gDprKw==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /turbo@1.12.4: - resolution: {integrity: sha512-yUJ7elEUSToiGwFZogXpYKJpQ0BvaMbkEuQECIWtkBLcmWzlMOt6bActsIm29oN83mRU0WbzGt4e8H1KHWedhg==} + /turbo@1.12.5: + resolution: {integrity: sha512-FATU5EnhrYG8RvQJYFJnDd18DpccDjyvd53hggw9T9JEg9BhWtIEoeaKtBjYbpXwOVrJQMDdXcIB4f2nD3QPPg==} hasBin: true optionalDependencies: - turbo-darwin-64: 1.12.4 - turbo-darwin-arm64: 1.12.4 - turbo-linux-64: 1.12.4 - turbo-linux-arm64: 1.12.4 - turbo-windows-64: 1.12.4 - turbo-windows-arm64: 1.12.4 + turbo-darwin-64: 1.12.5 + turbo-darwin-arm64: 1.12.5 + turbo-linux-64: 1.12.5 + turbo-linux-arm64: 1.12.5 + turbo-windows-64: 1.12.5 + turbo-windows-arm64: 1.12.5 dev: true /type-check@0.4.0: @@ -16033,42 +16096,48 @@ packages: mime-types: 2.1.35 dev: true - /typed-array-buffer@1.0.0: - resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} + /typed-array-buffer@1.0.2: + resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - is-typed-array: 1.1.12 + call-bind: 1.0.7 + es-errors: 1.3.0 + is-typed-array: 1.1.13 dev: true - /typed-array-byte-length@1.0.0: - resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} + /typed-array-byte-length@1.0.1: + resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 for-each: 0.3.3 - has-proto: 1.0.1 - is-typed-array: 1.1.12 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 dev: true - /typed-array-byte-offset@1.0.0: - resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} + /typed-array-byte-offset@1.0.2: + resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} engines: {node: '>= 0.4'} dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.5 + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 for-each: 0.3.3 - has-proto: 1.0.1 - is-typed-array: 1.1.12 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 dev: true - /typed-array-length@1.0.4: - resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + /typed-array-length@1.0.5: + resolution: {integrity: sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 for-each: 0.3.3 - is-typed-array: 1.1.12 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + possible-typed-array-names: 1.0.0 dev: true /typesafe-path@0.2.2: @@ -16077,21 +16146,20 @@ packages: /typescript-auto-import-cache@0.3.2: resolution: {integrity: sha512-+laqe5SFL1vN62FPOOJSUDTZxtgsoOXjneYOXIpx5rQ4UMiN89NAtJLpqLqyebv9fgQ/IMeeTX+mQyRnwvJzvg==} dependencies: - semver: 7.5.4 + semver: 7.6.0 /typescript@5.2.2: resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} engines: {node: '>=14.17'} hasBin: true - /typescript@5.3.2: - resolution: {integrity: sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==} + /typescript@5.4.2: + resolution: {integrity: sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==} engines: {node: '>=14.17'} hasBin: true - dev: false - /ufo@1.4.0: - resolution: {integrity: sha512-Hhy+BhRBleFjpJ2vchUNN40qgkh0366FWJGqVLYBHev0vpHTrXSA0ryT+74UiW6KWsldNurQMKGqCm1M2zBciQ==} + /ufo@1.5.2: + resolution: {integrity: sha512-eiutMaL0J2MKdhcOM1tUy13pIrYnyR87fEd8STJQFrrAwImwvlXkxlZEjaKah8r2viPohld08lt73QfLG1NxMg==} dev: false /uglify-js@3.17.4: @@ -16108,14 +16176,14 @@ packages: resolution: {integrity: sha512-P24ulZdT9UKyQuKA1IApdAZ+F9lwruGvmKb4pG3+sMvR3CjN0pjawPnxuSABHQFB+XqnB35TVXzJPOBYjCv6Kw==} dev: false - /ultrahtml@1.5.2: - resolution: {integrity: sha512-qh4mBffhlkiXwDAOxvSGxhL0QEQsTbnP9BozOK3OYPEGvPvdWzvAUaXNtUSMdNsKDtuyjEbyVUPFZ52SSLhLqw==} + /ultrahtml@1.5.3: + resolution: {integrity: sha512-GykOvZwgDWZlTQMtp5jrD4BVL+gNn2NVlVafjcFUJ7taY20tqYdwdoWBFy6GBJsNTZe1GkGPkSl5knQAjtgceg==} dev: false /unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 has-bigints: 1.0.2 has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 @@ -16124,11 +16192,9 @@ packages: /undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - /undici@6.2.1: - resolution: {integrity: sha512-7Wa9thEM6/LMnnKtxJHlc8SrTlDmxqJecgz1iy8KlsN0/iskQXOQCuPkrZLXbElPaSw5slFFyKIKXyJ3UtbApw==} + /undici@6.9.0: + resolution: {integrity: sha512-XPWfXzJedevUziHwun70EKNvGnxv4CnfraFZ4f/JV01+fcvMYzHE26r/j8AY/9c/70nkN4B1zX7E2Oyuqwz4+Q==} engines: {node: '>=18.0'} - dependencies: - '@fastify/busboy': 2.1.0 dev: true /unherit@3.0.1: @@ -16147,7 +16213,7 @@ packages: extend: 3.0.2 is-buffer: 2.0.5 is-plain-obj: 4.1.0 - trough: 2.1.0 + trough: 2.2.0 vfile: 5.3.7 dev: false @@ -16159,7 +16225,7 @@ packages: devlop: 1.1.0 extend: 3.0.2 is-plain-obj: 4.1.0 - trough: 2.1.0 + trough: 2.2.0 vfile: 6.0.1 /unist-util-find-after@5.0.0: @@ -16312,14 +16378,14 @@ packages: engines: {node: '>= 0.8'} dev: true - /update-browserslist-db@1.0.13(browserslist@4.22.2): + /update-browserslist-db@1.0.13(browserslist@4.23.0): resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' dependencies: - browserslist: 4.22.2 - escalade: 3.1.1 + browserslist: 4.23.0 + escalade: 3.1.2 picocolors: 1.0.0 /upper-case@1.1.3: @@ -16407,8 +16473,8 @@ packages: unist-util-stringify-position: 4.0.0 vfile-message: 4.0.2 - /vite-node@1.3.1(@types/node@18.19.4): - resolution: {integrity: sha512-azbRrqRxlWTJEVbzInZCTchx0X69M/XPTCz4H+TLvlTcR/xH/3hkRqhOakT41fMJCMzXTu4UvegkZiEoJAWvng==} + /vite-node@1.4.0(@types/node@18.19.24): + resolution: {integrity: sha512-VZDAseqjrHgNd4Kh8icYHWzTKSCZMhia7GyHfhtzLW33fZlG9SwsB6CEhgyVOWkJfJ2pFLrp/Gj1FSfAiqH9Lw==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true dependencies: @@ -16416,7 +16482,7 @@ packages: debug: 4.3.4(supports-color@8.1.1) pathe: 1.1.2 picocolors: 1.0.0 - vite: 5.1.4(@types/node@18.19.4)(sass@1.69.6) + vite: 5.1.6(@types/node@18.19.24)(sass@1.72.0) transitivePeerDependencies: - '@types/node' - less @@ -16428,23 +16494,25 @@ packages: - terser dev: false - /vite-plugin-solid@2.8.0(solid-js@1.8.7): - resolution: {integrity: sha512-n5FAm7ZmTl94VWUoiJCgG7bouF2NlC9CA1wY/qbVnkFbYDWk++bFWyNoU48aLJ+lMtzNeYzJypJXOHzFKxL9xA==} + /vite-plugin-solid@2.10.2(solid-js@1.8.15): + resolution: {integrity: sha512-AOEtwMe2baBSXMXdo+BUwECC8IFHcKS6WQV/1NEd+Q7vHPap5fmIhLcAzr+DUJ04/KHx/1UBU0l1/GWP+rMAPQ==} peerDependencies: + '@testing-library/jest-dom': ^5.16.6 || ^5.17.0 || ^6.* solid-js: ^1.7.2 vite: ^3.0.0 || ^4.0.0 || ^5.0.0 peerDependenciesMeta: + '@testing-library/jest-dom': + optional: true vite: optional: true dependencies: '@babel/core': 7.24.3 - '@babel/preset-typescript': 7.23.3(@babel/core@7.24.3) '@types/babel__core': 7.20.5 - babel-preset-solid: 1.8.6(@babel/core@7.24.3) + babel-preset-solid: 1.8.15(@babel/core@7.24.3) merge-anything: 5.1.7 - solid-js: 1.8.7 - solid-refresh: 0.5.3(solid-js@1.8.7) - vitefu: 0.2.5(vite@5.1.4) + solid-js: 1.8.15 + solid-refresh: 0.6.3(solid-js@1.8.15) + vitefu: 0.2.5(vite@5.1.6) transitivePeerDependencies: - supports-color dev: false @@ -16457,7 +16525,7 @@ packages: vue: optional: true dependencies: - '@vue/compiler-sfc': 3.4.3 + '@vue/compiler-sfc': 3.4.21 svgo: 3.2.0 dev: false @@ -16472,8 +16540,8 @@ packages: svgo: 3.2.0 dev: false - /vite@5.1.4(@types/node@18.19.4)(sass@1.69.6): - resolution: {integrity: sha512-n+MPqzq+d9nMVTKyewqw6kSt+R3CkvF9QAKY8obiQn8g1fwTscKxyfaYnC632HtBXAQGc1Yjomphwn1dtwGAHg==} + /vite@5.1.6(@types/node@18.19.24)(sass@1.72.0): + resolution: {integrity: sha512-yYIAZs9nVfRJ/AiOLCA91zzhjsHUgMjB+EigzFb6W2XTLO8JixBCKCjvhKZaye+NKYHCrkv3Oh50dH9EdLU2RA==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -16500,15 +16568,15 @@ packages: terser: optional: true dependencies: - '@types/node': 18.19.4 - esbuild: 0.19.11 - postcss: 8.4.35 - rollup: 4.9.2 - sass: 1.69.6 + '@types/node': 18.19.24 + esbuild: 0.19.12 + postcss: 8.4.36 + rollup: 4.13.0 + sass: 1.72.0 optionalDependencies: fsevents: 2.3.3 - /vitefu@0.2.5(vite@5.1.4): + /vitefu@0.2.5(vite@5.1.6): resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} peerDependencies: vite: ^3.0.0 || ^4.0.0 || ^5.0.0 @@ -16516,18 +16584,18 @@ packages: vite: optional: true dependencies: - vite: 5.1.4(@types/node@18.19.4)(sass@1.69.6) + vite: 5.1.6(@types/node@18.19.24)(sass@1.72.0) dev: false - /vitest@1.3.1(@types/node@18.19.4): - resolution: {integrity: sha512-/1QJqXs8YbCrfv/GPQ05wAZf2eakUPLPa18vkJAKE7RXOKfVHqMZZ1WlTjiwl6Gcn65M5vpNUB6EFLnEdRdEXQ==} + /vitest@1.4.0(@types/node@18.19.24): + resolution: {integrity: sha512-gujzn0g7fmwf83/WzrDTnncZt2UiXP41mHuFYFrdwaLRVQ6JYQEiME2IfEjU3vcFL3VKa75XhI3lFgn+hfVsQw==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 1.3.1 - '@vitest/ui': 1.3.1 + '@vitest/browser': 1.4.0 + '@vitest/ui': 1.4.0 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -16544,26 +16612,26 @@ packages: jsdom: optional: true dependencies: - '@types/node': 18.19.4 - '@vitest/expect': 1.3.1 - '@vitest/runner': 1.3.1 - '@vitest/snapshot': 1.3.1 - '@vitest/spy': 1.3.1 - '@vitest/utils': 1.3.1 + '@types/node': 18.19.24 + '@vitest/expect': 1.4.0 + '@vitest/runner': 1.4.0 + '@vitest/snapshot': 1.4.0 + '@vitest/spy': 1.4.0 + '@vitest/utils': 1.4.0 acorn-walk: 8.3.2 chai: 4.4.1 debug: 4.3.4(supports-color@8.1.1) execa: 8.0.1 local-pkg: 0.5.0 - magic-string: 0.30.7 + magic-string: 0.30.8 pathe: 1.1.2 picocolors: 1.0.0 std-env: 3.7.0 strip-literal: 2.0.0 tinybench: 2.6.0 tinypool: 0.8.2 - vite: 5.1.4(@types/node@18.19.4)(sass@1.69.6) - vite-node: 1.3.1(@types/node@18.19.4) + vite: 5.1.6(@types/node@18.19.24)(sass@1.72.0) + vite-node: 1.4.0(@types/node@18.19.24) why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -16575,20 +16643,7 @@ packages: - terser dev: false - /volar-service-css@0.0.30(@volar/language-service@2.0.4): - resolution: {integrity: sha512-jui+1N0HBfjW43tRfhyZp0axhBee4997BRyX4os8xQm/7cjD2KjAuyz92nMIPRt1QDoG4/7uQT28xNhy0TPJTA==} - peerDependencies: - '@volar/language-service': ~2.0.1 - peerDependenciesMeta: - '@volar/language-service': - optional: true - dependencies: - '@volar/language-service': 2.0.4 - vscode-css-languageservice: 6.2.11 - vscode-uri: 3.0.8 - dev: false - - /volar-service-css@0.0.34(@volar/language-service@2.1.5): + /volar-service-css@0.0.34(@volar/language-service@2.1.2): resolution: {integrity: sha512-C7ua0j80ZD7bsgALAz/cA1bykPehoIa5n+3+Ccr+YLpj0fypqw9iLUmGLX11CqzqNCO2XFGe/1eXB/c+SWrF/g==} peerDependencies: '@volar/language-service': ~2.1.0 @@ -16596,26 +16651,12 @@ packages: '@volar/language-service': optional: true dependencies: - '@volar/language-service': 2.1.5 - vscode-css-languageservice: 6.2.11 + '@volar/language-service': 2.1.2 + vscode-css-languageservice: 6.2.12 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 - dev: true - - /volar-service-emmet@0.0.30(@volar/language-service@2.0.4): - resolution: {integrity: sha512-HEeIrmqQ/DTfuQDI9ER5+YReXXjE9f7W6MlBmn5biUuPyizVTGfuILN8pJhmYvmPHCA7qHhU7CJqwE9DAh9AJg==} - peerDependencies: - '@volar/language-service': ~2.0.1 - peerDependenciesMeta: - '@volar/language-service': - optional: true - dependencies: - '@volar/language-service': 2.0.4 - '@vscode/emmet-helper': 2.9.2 - volar-service-html: 0.0.30(@volar/language-service@2.0.4) - dev: false - /volar-service-emmet@0.0.34(@volar/language-service@2.1.5): + /volar-service-emmet@0.0.34(@volar/language-service@2.1.2): resolution: {integrity: sha512-ubQvMCmHPp8Ic82LMPkgrp9ot+u2p/RDd0RyT0EykRkZpWsagHUF5HWkVheLfiMyx2rFuWx/+7qZPOgypx6h6g==} peerDependencies: '@volar/language-service': ~2.1.0 @@ -16623,25 +16664,11 @@ packages: '@volar/language-service': optional: true dependencies: - '@volar/language-service': 2.1.5 + '@volar/language-service': 2.1.2 '@vscode/emmet-helper': 2.9.2 vscode-html-languageservice: 5.1.2 - dev: true - - /volar-service-html@0.0.30(@volar/language-service@2.0.4): - resolution: {integrity: sha512-wW3TEeRTeHv/3mC8Ik6T62SwewMWFungb8ydyEK/2GDHEntBEG/J9wtuh01/J0kYqPerhlT9zhdGB6PGYHAGuA==} - peerDependencies: - '@volar/language-service': ~2.0.1 - peerDependenciesMeta: - '@volar/language-service': - optional: true - dependencies: - '@volar/language-service': 2.0.4 - vscode-html-languageservice: 5.1.2 - vscode-uri: 3.0.8 - dev: false - /volar-service-html@0.0.34(@volar/language-service@2.1.5): + /volar-service-html@0.0.34(@volar/language-service@2.1.2): resolution: {integrity: sha512-kMEneea1tQbiRcyKavqdrSVt8zV06t+0/3pGkjO3gV6sikXTNShIDkdtB4Tq9vE2cQdM50TuS7utVV7iysUxHw==} peerDependencies: '@volar/language-service': ~2.1.0 @@ -16649,29 +16676,12 @@ packages: '@volar/language-service': optional: true dependencies: - '@volar/language-service': 2.1.5 + '@volar/language-service': 2.1.2 vscode-html-languageservice: 5.1.2 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 - dev: true - - /volar-service-prettier@0.0.30(@volar/language-service@2.0.4)(prettier@3.1.1): - resolution: {integrity: sha512-Qdc5Zc0y4hJmJbpIQ52cSDjs0uvVug/e2nuL/XZWPJM6Cr5/3RjjoRVKtDQbKItFYlGk+JH+LSXvwQeD5TXZqg==} - peerDependencies: - '@volar/language-service': ~2.0.1 - prettier: ^2.2 || ^3.0 - peerDependenciesMeta: - '@volar/language-service': - optional: true - prettier: - optional: true - dependencies: - '@volar/language-service': 2.0.4 - prettier: 3.1.1 - vscode-uri: 3.0.8 - dev: false - /volar-service-prettier@0.0.34(@volar/language-service@2.1.5)(prettier@3.1.1): + /volar-service-prettier@0.0.34(@volar/language-service@2.1.2)(prettier@3.2.5): resolution: {integrity: sha512-BNfJ8FwfPi1Wm/JkuzNjraOLdtKieGksNT/bDyquygVawv1QUzO2HB1hiMKfZGdcSFG5ZL9R0j7bBfRTfXA2gg==} peerDependencies: '@volar/language-service': ~2.1.0 @@ -16682,23 +16692,11 @@ packages: prettier: optional: true dependencies: - '@volar/language-service': 2.1.5 - prettier: 3.1.1 + '@volar/language-service': 2.1.2 + prettier: 3.2.5 vscode-uri: 3.0.8 - dev: true - - /volar-service-typescript-twoslash-queries@0.0.30(@volar/language-service@2.0.4): - resolution: {integrity: sha512-ahj6woBxhkZu7icQR58x5TnUaS8ZRKn7a+UvY+andmiTWsOaSu85zj36+LPZgZQi1MG+BtjNwUjKoxtZiN51PA==} - peerDependencies: - '@volar/language-service': ~2.0.1 - peerDependenciesMeta: - '@volar/language-service': - optional: true - dependencies: - '@volar/language-service': 2.0.4 - dev: false - /volar-service-typescript-twoslash-queries@0.0.34(@volar/language-service@2.1.5): + /volar-service-typescript-twoslash-queries@0.0.34(@volar/language-service@2.1.2): resolution: {integrity: sha512-XAY2YtWKUp6ht89gxt3L5Dr46LU45d/VlBkj1KXUwNlinpoWiGN4Nm3B6DRF3VoBThAnQgm4c7WD0S+5yTzh+w==} peerDependencies: '@volar/language-service': ~2.1.0 @@ -16706,29 +16704,9 @@ packages: '@volar/language-service': optional: true dependencies: - '@volar/language-service': 2.1.5 - dev: true - - /volar-service-typescript@0.0.30(@volar/language-service@2.0.4)(@volar/typescript@2.0.4): - resolution: {integrity: sha512-jA8c0Mhy9rgAsrgtwocK95Smws1M2E0MxlQ/SVo/rmOGH32cX9UGgI0IENWKa3yagp/khfoemOIQDz/KNhI3zg==} - peerDependencies: - '@volar/language-service': ~2.0.1 - '@volar/typescript': ~2.0.1 - peerDependenciesMeta: - '@volar/language-service': - optional: true - dependencies: - '@volar/language-service': 2.0.4 - '@volar/typescript': 2.0.4 - path-browserify: 1.0.1 - semver: 7.5.4 - typescript-auto-import-cache: 0.3.2 - vscode-languageserver-textdocument: 1.0.11 - vscode-nls: 5.2.0 - vscode-uri: 3.0.8 - dev: false + '@volar/language-service': 2.1.2 - /volar-service-typescript@0.0.34(@volar/language-service@2.1.5): + /volar-service-typescript@0.0.34(@volar/language-service@2.1.2): resolution: {integrity: sha512-NbAry0w8ZXFgGsflvMwmPDCzgJGx3C+eYxFEbldaumkpTAJiywECWiUbPIOfmEHgpOllUKSnhwtLlWFK4YnfQg==} peerDependencies: '@volar/language-service': ~2.1.0 @@ -16736,18 +16714,17 @@ packages: '@volar/language-service': optional: true dependencies: - '@volar/language-service': 2.1.5 + '@volar/language-service': 2.1.2 path-browserify: 1.0.1 - semver: 7.5.4 + semver: 7.6.0 typescript-auto-import-cache: 0.3.2 vscode-languageserver-textdocument: 1.0.11 vscode-nls: 5.2.0 - dev: true - /vscode-css-languageservice@6.2.11: - resolution: {integrity: sha512-qn49Wa6K94LnizpVxmlYrcPf1Cb36gq1nNueW0COhi4shylXBzET5wuDbH8ZWQlJD0HM5Mmnn7WE9vQVVs+ULA==} + /vscode-css-languageservice@6.2.12: + resolution: {integrity: sha512-PS9r7HgNjqzRl3v91sXpCyZPc8UDotNo6gntFNtGCKPhGA9Frk7g/VjX1Mbv3F00pn56D+rxrFzR9ep4cawOgA==} dependencies: - '@vscode/l10n': 0.0.16 + '@vscode/l10n': 0.0.18 vscode-languageserver-textdocument: 1.0.11 vscode-languageserver-types: 3.17.5 vscode-uri: 3.0.8 @@ -16799,19 +16776,19 @@ packages: /vscode-uri@3.0.8: resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} - /vue@3.4.3(typescript@5.2.2): - resolution: {integrity: sha512-GjN+culMAGv/mUbkIv8zMKItno8npcj5gWlXkSxf1SPTQf8eJ4A+YfHIvQFyL1IfuJcMl3soA7SmN1fRxbf/wA==} + /vue@3.4.21(typescript@5.2.2): + resolution: {integrity: sha512-5hjyV/jLEIKD/jYl4cavMcnzKwjMKohureP8ejn3hhEjwhWIhWeuzL2kJAjzl/WyVsgPY56Sy4Z40C3lVshxXA==} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@vue/compiler-dom': 3.4.3 - '@vue/compiler-sfc': 3.4.3 - '@vue/runtime-dom': 3.4.3 - '@vue/server-renderer': 3.4.3(vue@3.4.3) - '@vue/shared': 3.4.3 + '@vue/compiler-dom': 3.4.21 + '@vue/compiler-sfc': 3.4.21 + '@vue/runtime-dom': 3.4.21 + '@vue/server-renderer': 3.4.21(vue@3.4.21) + '@vue/shared': 3.4.21 typescript: 5.2.2 /w3c-xmlserializer@4.0.0: @@ -16830,13 +16807,13 @@ packages: /web-namespaces@2.0.1: resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} - /web-streams-polyfill@3.2.1: - resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==} + /web-streams-polyfill@3.3.3: + resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} engines: {node: '>= 8'} dev: false - /web-vitals@3.5.1: - resolution: {integrity: sha512-xQ9lvIpfLxUj0eSmT79ZjRoU5wIRfIr7pNukL7ZE4EcWZSmfZQqOlhuAGfkVa3EFmzPHZhWhXfm2i5ys+THVPg==} + /web-vitals@3.5.2: + resolution: {integrity: sha512-c0rhqNcHXRkY/ogGDJQxZ9Im9D19hDihbzSQJrsioex+KnFgmMzBiy57Z1EjkhX/+OjyBpclDCzz2ITtjokFmg==} dev: false /webidl-conversions@3.0.1: @@ -16906,15 +16883,15 @@ packages: path-exists: 4.0.0 dev: false - /which-typed-array@1.1.13: - resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==} + /which-typed-array@1.1.15: + resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} engines: {node: '>= 0.4'} dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.5 + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 for-each: 0.3.3 gopd: 1.0.1 - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 dev: true /which@1.3.1: @@ -17047,9 +17024,10 @@ packages: /yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - /yaml@2.3.4: - resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} + /yaml@2.4.1: + resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==} engines: {node: '>= 14'} + hasBin: true /yargs-parser@18.1.3: resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} @@ -17100,7 +17078,7 @@ packages: engines: {node: '>=10'} dependencies: cliui: 7.0.4 - escalade: 3.1.1 + escalade: 3.1.2 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 @@ -17113,7 +17091,7 @@ packages: engines: {node: '>=12'} dependencies: cliui: 8.0.1 - escalade: 3.1.1 + escalade: 3.1.2 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 @@ -17168,5 +17146,5 @@ packages: resolution: {directory: packages/astro/test/fixtures/solid-component/deps/solid-jsx-component, type: directory} name: '@test/solid-jsx-component' dependencies: - solid-js: 1.8.7 + solid-js: 1.8.15 dev: false From e43e04a93ad42f468d43669790e6609ff8d310c0 Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Tue, 26 Mar 2024 10:31:14 +0000 Subject: [PATCH 15/33] increase timeout? --- .../astro/test/fixtures/i18n-routing-manual/src/middleware.js | 1 - scripts/cmd/test.js | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/astro/test/fixtures/i18n-routing-manual/src/middleware.js b/packages/astro/test/fixtures/i18n-routing-manual/src/middleware.js index ef64547df7af..29634e3ffea1 100644 --- a/packages/astro/test/fixtures/i18n-routing-manual/src/middleware.js +++ b/packages/astro/test/fixtures/i18n-routing-manual/src/middleware.js @@ -4,7 +4,6 @@ import { redirectToDefaultLocale, requestHasLocale } from 'astro:i18n'; const allowList = new Set(['/help', '/help/']); export const onRequest = defineMiddleware(async (context, next) => { - console.log('========== CALLED =========='); if (allowList.has(context.url.pathname)) { return await next(); } diff --git a/scripts/cmd/test.js b/scripts/cmd/test.js index 87b34987ab28..04f02f73afc0 100644 --- a/scripts/cmd/test.js +++ b/scripts/cmd/test.js @@ -7,7 +7,7 @@ import arg from 'arg'; import glob from 'tiny-glob'; const isCI = !!process.env.CI; -const defaultTimeout = isCI ? 1200000 : 600000; +const defaultTimeout = isCI ? 1400000 : 600000; export default async function test() { const args = arg({ From e87d968157fa50052a4f92ea78c6c6936b83abb7 Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Tue, 26 Mar 2024 11:44:00 +0000 Subject: [PATCH 16/33] fix regression --- packages/astro/src/i18n/index.ts | 4 ++++ packages/astro/src/vite-plugin-astro-server/route.ts | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/astro/src/i18n/index.ts b/packages/astro/src/i18n/index.ts index a1ae885b9fea..7c4c0c1d10f9 100644 --- a/packages/astro/src/i18n/index.ts +++ b/packages/astro/src/i18n/index.ts @@ -314,6 +314,7 @@ export function notFound({ base, locales }: MiddlewarePayload) { const isRoot = url.pathname === base + '/' || url.pathname === base; if (!(isRoot || pathHasLocale(url.pathname, locales))) { if (response) { + response.headers.set(REROUTE_DIRECTIVE_HEADER, 'no'); return new Response(null, { status: 404, headers: response.headers, @@ -321,6 +322,9 @@ export function notFound({ base, locales }: MiddlewarePayload) { } else { return new Response(null, { status: 404, + headers: { + [REROUTE_DIRECTIVE_HEADER]: 'no', + }, }); } } diff --git a/packages/astro/src/vite-plugin-astro-server/route.ts b/packages/astro/src/vite-plugin-astro-server/route.ts index f10d9e1842ad..f1bfdfc4e13d 100644 --- a/packages/astro/src/vite-plugin-astro-server/route.ts +++ b/packages/astro/src/vite-plugin-astro-server/route.ts @@ -168,6 +168,7 @@ export async function handleRoute({ let options: SSROptions | undefined = undefined; let route: RouteData; const middleware = (await loadMiddleware(loader)).onRequest; + const locals = Reflect.get(incomingRequest, clientLocalsSymbol); if (!matchedRoute) { if (config.i18n) { @@ -235,7 +236,6 @@ export async function handleRoute({ const { preloadedComponent } = matchedRoute; route = matchedRoute.route; // Allows adapters to pass in locals in dev mode. - const locals = Reflect.get(incomingRequest, clientLocalsSymbol); request = createRequest({ base: config.base, url, From a37729516b2ed9c6628baa488730ef87afc565fe Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Wed, 27 Mar 2024 13:04:03 +0000 Subject: [PATCH 17/33] merge conflict --- pnpm-lock.yaml | 75 ++++++++++++++++++++++++++------------------------ 1 file changed, 39 insertions(+), 36 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1cdf2403f76d..93b424f3c760 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -134,28 +134,28 @@ importers: examples/basics: dependencies: astro: - specifier: ^4.5.9 + specifier: ^4.5.10 version: link:../../packages/astro examples/blog: dependencies: '@astrojs/mdx': - specifier: ^2.2.1 + specifier: ^2.2.2 version: link:../../packages/integrations/mdx '@astrojs/rss': specifier: ^4.0.5 version: link:../../packages/astro-rss '@astrojs/sitemap': - specifier: ^3.1.1 + specifier: ^3.1.2 version: link:../../packages/integrations/sitemap astro: - specifier: ^4.5.9 + specifier: ^4.5.10 version: link:../../packages/astro examples/component: devDependencies: astro: - specifier: ^4.5.9 + specifier: ^4.5.10 version: link:../../packages/astro examples/framework-alpine: @@ -170,7 +170,7 @@ importers: specifier: ^3.13.3 version: 3.13.7 astro: - specifier: ^4.5.9 + specifier: ^4.5.10 version: link:../../packages/astro examples/framework-lit: @@ -182,7 +182,7 @@ importers: specifier: ^0.2.1 version: 0.2.1 astro: - specifier: ^4.5.9 + specifier: ^4.5.10 version: link:../../packages/astro lit: specifier: ^3.1.2 @@ -212,7 +212,7 @@ importers: specifier: ^18.2.15 version: 18.2.22 astro: - specifier: ^4.5.9 + specifier: ^4.5.10 version: link:../../packages/astro preact: specifier: ^10.19.2 @@ -242,7 +242,7 @@ importers: specifier: ^1.2.1 version: 1.2.1(preact@10.19.6) astro: - specifier: ^4.5.9 + specifier: ^4.5.10 version: link:../../packages/astro preact: specifier: ^10.19.2 @@ -260,7 +260,7 @@ importers: specifier: ^18.2.15 version: 18.2.22 astro: - specifier: ^4.5.9 + specifier: ^4.5.10 version: link:../../packages/astro react: specifier: ^18.2.0 @@ -275,7 +275,7 @@ importers: specifier: ^4.0.1 version: link:../../packages/integrations/solid astro: - specifier: ^4.5.9 + specifier: ^4.5.10 version: link:../../packages/astro solid-js: specifier: ^1.8.5 @@ -287,7 +287,7 @@ importers: specifier: ^5.2.0 version: link:../../packages/integrations/svelte astro: - specifier: ^4.5.9 + specifier: ^4.5.10 version: link:../../packages/astro svelte: specifier: ^4.2.5 @@ -299,7 +299,7 @@ importers: specifier: ^4.0.9 version: link:../../packages/integrations/vue astro: - specifier: ^4.5.9 + specifier: ^4.5.10 version: link:../../packages/astro vue: specifier: ^3.3.8 @@ -311,13 +311,13 @@ importers: specifier: ^8.2.5 version: link:../../packages/integrations/node astro: - specifier: ^4.5.9 + specifier: ^4.5.10 version: link:../../packages/astro examples/integration: devDependencies: astro: - specifier: ^4.5.9 + specifier: ^4.5.10 version: link:../../packages/astro examples/middleware: @@ -326,7 +326,7 @@ importers: specifier: ^8.2.5 version: link:../../packages/integrations/node astro: - specifier: ^4.5.9 + specifier: ^4.5.10 version: link:../../packages/astro html-minifier: specifier: ^4.0.0 @@ -339,19 +339,19 @@ importers: examples/minimal: dependencies: astro: - specifier: ^4.5.9 + specifier: ^4.5.10 version: link:../../packages/astro examples/non-html-pages: dependencies: astro: - specifier: ^4.5.9 + specifier: ^4.5.10 version: link:../../packages/astro examples/portfolio: dependencies: astro: - specifier: ^4.5.9 + specifier: ^4.5.10 version: link:../../packages/astro examples/ssr: @@ -363,7 +363,7 @@ importers: specifier: ^5.2.0 version: link:../../packages/integrations/svelte astro: - specifier: ^4.5.9 + specifier: ^4.5.10 version: link:../../packages/astro svelte: specifier: ^4.2.5 @@ -372,7 +372,7 @@ importers: examples/starlog: dependencies: astro: - specifier: ^4.5.9 + specifier: ^4.5.10 version: link:../../packages/astro sass: specifier: ^1.69.5 @@ -390,7 +390,7 @@ importers: specifier: ^5.1.0 version: link:../../packages/integrations/tailwind astro: - specifier: ^4.5.9 + specifier: ^4.5.10 version: link:../../packages/astro examples/with-markdoc: @@ -399,16 +399,16 @@ importers: specifier: ^0.9.2 version: link:../../packages/integrations/markdoc astro: - specifier: ^4.5.9 + specifier: ^4.5.10 version: link:../../packages/astro examples/with-markdown-plugins: dependencies: '@astrojs/markdown-remark': - specifier: ^4.3.1 + specifier: ^4.3.2 version: link:../../packages/markdown/remark astro: - specifier: ^4.5.9 + specifier: ^4.5.10 version: link:../../packages/astro hast-util-select: specifier: ^6.0.2 @@ -429,19 +429,19 @@ importers: examples/with-markdown-shiki: dependencies: astro: - specifier: ^4.5.9 + specifier: ^4.5.10 version: link:../../packages/astro examples/with-mdx: dependencies: '@astrojs/mdx': - specifier: ^2.2.1 + specifier: ^2.2.2 version: link:../../packages/integrations/mdx '@astrojs/preact': specifier: ^3.1.1 version: link:../../packages/integrations/preact astro: - specifier: ^4.5.9 + specifier: ^4.5.10 version: link:../../packages/astro preact: specifier: ^10.19.2 @@ -456,7 +456,7 @@ importers: specifier: ^0.5.0 version: 0.5.1(nanostores@0.9.5)(preact@10.19.6) astro: - specifier: ^4.5.9 + specifier: ^4.5.10 version: link:../../packages/astro nanostores: specifier: ^0.9.5 @@ -468,7 +468,7 @@ importers: examples/with-tailwindcss: dependencies: '@astrojs/mdx': - specifier: ^2.2.1 + specifier: ^2.2.2 version: link:../../packages/integrations/mdx '@astrojs/tailwind': specifier: ^5.1.0 @@ -477,7 +477,7 @@ importers: specifier: ^1.6.3 version: 1.6.4 astro: - specifier: ^4.5.9 + specifier: ^4.5.10 version: link:../../packages/astro autoprefixer: specifier: ^10.4.15 @@ -495,7 +495,7 @@ importers: examples/with-vitest: dependencies: astro: - specifier: ^4.5.9 + specifier: ^4.5.10 version: link:../../packages/astro vitest: specifier: ^1.3.1 @@ -3854,8 +3854,8 @@ importers: specifier: ^1.0.2 version: 1.0.2 drizzle-orm: - specifier: ^0.30.2 - version: 0.30.2(@libsql/client@0.5.6) + specifier: ^0.30.4 + version: 0.30.4(@libsql/client@0.5.6) github-slugger: specifier: ^2.0.0 version: 2.0.0 @@ -10145,8 +10145,8 @@ packages: engines: {node: '>=10'} dev: true - /drizzle-orm@0.30.2(@libsql/client@0.5.6): - resolution: {integrity: sha512-DNd3djg03o+WxZX3pGD8YD+qrWT8gbrbhaZ2W0PVb6yH4rtM/VTB92cTGvumcRh7SSd2KfV0NWYDB70BHIXQTg==} + /drizzle-orm@0.30.4(@libsql/client@0.5.6): + resolution: {integrity: sha512-kWoSMGbrOFkmkAweLTFtHJMpN+nwhx89q0mLELqT2aEU+1szNV8jrnBmJwZ0WGNp7J7yQn/ezEtxBI/qzTSElQ==} peerDependencies: '@aws-sdk/client-rds-data': '>=3' '@cloudflare/workers-types': '>=3' @@ -10160,6 +10160,7 @@ packages: '@types/react': '>=18' '@types/sql.js': '*' '@vercel/postgres': '*' + '@xata.io/client': '*' better-sqlite3: '>=7' bun-types: '*' expo-sqlite: '>=13.2.0' @@ -10196,6 +10197,8 @@ packages: optional: true '@vercel/postgres': optional: true + '@xata.io/client': + optional: true better-sqlite3: optional: true bun-types: From 4057715aae608ff15f9f55923798572fbc1d7e91 Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Wed, 27 Mar 2024 13:22:08 +0000 Subject: [PATCH 18/33] add changeset --- .changeset/little-hornets-give.md | 34 +++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 .changeset/little-hornets-give.md diff --git a/.changeset/little-hornets-give.md b/.changeset/little-hornets-give.md new file mode 100644 index 000000000000..c078de0fc904 --- /dev/null +++ b/.changeset/little-hornets-give.md @@ -0,0 +1,34 @@ +--- +"astro": minor +--- + +Astro now allows to create your know i18n middleware: + +```js +import { defineConfig } from "astro/config" +// astro.config.mjs +export default defineConfig({ + i18n: { + locales: ["en", "fr"], + defaultLocale: "fr", + routing: "manual" + } +}) +``` + +```js +// middleware.js +import { redirectToDefaultLocale } from "astro:i18n"; +export const onRequest = defineMiddleawre(async (context, next) => { + if (context.url.startsWith("/about")) { + return next() + } else { + return redirectToDefaultLocale(context, 302); + } +}) +``` + +When `routing: "manual"` is provided, the virtual module `astro:i18n` exports new functions: +- `redirectToDefaultLocale` +- `notFound` +- `useFallback` \ No newline at end of file From bda256c434f011b900f4b04c9b2aa7e3c3298da8 Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Fri, 29 Mar 2024 15:11:27 +0000 Subject: [PATCH 19/33] chore: apply suggestions --- packages/astro/src/i18n/index.ts | 4 +- packages/astro/src/virtual-modules/i18n.ts | 148 +++++++++++------- ...ing-manual-with-default-middleware.test.js | 17 -- 3 files changed, 90 insertions(+), 79 deletions(-) diff --git a/packages/astro/src/i18n/index.ts b/packages/astro/src/i18n/index.ts index 7c4c0c1d10f9..6d562ba88f62 100644 --- a/packages/astro/src/i18n/index.ts +++ b/packages/astro/src/i18n/index.ts @@ -14,7 +14,7 @@ import { createI18nMiddleware } from './middleware.js'; import { REROUTE_DIRECTIVE_HEADER } from '../core/constants.js'; export function requestHasLocale(locales: Locales) { - return function (context: APIContext) { + return function (context: APIContext): boolean { return pathHasLocale(context.url.pathname, locales); }; } @@ -304,7 +304,7 @@ export function redirectToDefaultLocale({ } export function notFound({ base, locales }: MiddlewarePayload) { - return function (context: APIContext, response?: Response) { + return function (context: APIContext, response?: Response): Response | undefined { if (response?.headers.get(REROUTE_DIRECTIVE_HEADER) === 'no') return response; const url = context.url; diff --git a/packages/astro/src/virtual-modules/i18n.ts b/packages/astro/src/virtual-modules/i18n.ts index 156e1d1284fa..458aff131d43 100644 --- a/packages/astro/src/virtual-modules/i18n.ts +++ b/packages/astro/src/virtual-modules/i18n.ts @@ -4,7 +4,12 @@ import { AstroError } from '../core/errors/index.js'; import { IncorrectStrategy } from '../core/errors/errors-data.js'; import type { UseFallback } from '../i18n/index.js'; import type { SSRManifest } from '../core/app/types.js'; -import type { AstroConfig } from '../@types/astro.js'; +import type { + APIContext, + AstroConfig, + MiddlewareHandler, + ValidRedirectStatus, +} from '../@types/astro.js'; import type { I18nInternalConfig } from '../i18n/vite-plugin-i18n.js'; export { normalizeTheLocale, toCodes, toPaths } from '../i18n/index.js'; @@ -243,20 +248,25 @@ export const pathHasLocale = (path: string) => I18nInternals.pathHasLocale(path, * @param {APIContext} context The context passed to the middleware * @param {ValidRedirectStatus?} statusCode An optional status code for the redirect. */ -export const redirectToDefaultLocale = - i18n?.routing === 'manual' - ? I18nInternals.redirectToDefaultLocale({ - base, - trailingSlash, - format, - defaultLocale, - locales, - routing: strategy, - domains, - fallback, - }) - : noop('redirectToDefaultLocale'); +export let redirectToDefaultLocale: ( + context: APIContext, + statusCode?: ValidRedirectStatus +) => Response | undefined; +if (i18n?.routing === 'manual') { + redirectToDefaultLocale = I18nInternals.redirectToDefaultLocale({ + base, + trailingSlash, + format, + defaultLocale, + locales, + routing: strategy, + domains, + fallback, + }); +} else { + redirectToDefaultLocale = noop('redirectToDefaultLocale'); +} /** * * Use this function to return a 404 when: @@ -269,43 +279,58 @@ export const redirectToDefaultLocale = * @param {Response?} response An optional `Response` in case you're handling a `Response` coming from the `next` function. * */ -export const notFound = - i18n?.routing === 'manual' - ? I18nInternals.notFound({ - base, - trailingSlash, - format, - defaultLocale, - locales, - routing: strategy, - domains, - fallback, - }) - : noop('notFound'); +export let notFound: (context: APIContext, response?: Response) => Response | undefined; + +if (i18n?.routing === 'manual') { + notFound = I18nInternals.notFound({ + base, + trailingSlash, + format, + defaultLocale, + locales, + routing: strategy, + domains, + fallback, + }); +} else { + notFound = noop('notFound'); +} /** * Checks whether the current URL contains a configured locale. Internally, this function will use `APIContext#url.pathname` * * @param {APIContext} context The context passed to the middleware + */ +export let requestHasLocale: (context: APIContext) => boolean; + +if (i18n?.routing === 'manual') { + requestHasLocale = I18nInternals.requestHasLocale(locales); +} else { + requestHasLocale = noop('requestHasLocale'); +} + +/** + * Allows to use the build-in fallback system of Astro * - * + * @param {APIContext} context The context passed to the middleware + * @param {Response?} response An optional `Response` in case you're handling a `Response` coming from the `next` function. */ -export const requestHasLocale = - i18n?.routing === 'manual' ? I18nInternals.requestHasLocale(locales) : noop('requestHasLocale'); +export let useFallback: UseFallback; -export const useFallback: UseFallback = - i18n?.routing === 'manual' - ? I18nInternals.useFallback({ - base, - trailingSlash, - format, - defaultLocale, - locales, - routing: strategy, - domains, - fallback, - }) - : noop('useFallback'); +if (i18n?.routing === 'manual') { + useFallback = I18nInternals.useFallback({ + base, + trailingSlash, + format, + defaultLocale, + locales, + routing: strategy, + domains, + fallback, + }); +} else { + useFallback = noop('useFallback'); +} // @ematipico: This is a helper type because, because I don't know how to extract from TS type Options = { @@ -342,20 +367,23 @@ type Options = { * * ``` */ -export const middleware = - i18n?.routing === 'manual' - ? (customOptions?: Options) => { - const manifest: SSRManifest['i18n'] = { - ...i18n, - fallback: undefined, - strategy: toRoutingStrategy({ - ...i18n, - // To review the types, I'm sure there's a way to extract the correct ones and make TS happy - // @ts-expect-error - routing: customOptions, - }), - domainLookupTable: {}, - }; - return I18nInternals.createMiddleware(manifest, base, trailingSlash, format); - } - : noop('middleware'); +export let middleware: (customOptions?: Options) => MiddlewareHandler; + +if (i18n?.routing === 'manual') { + middleware = (customOptions?: Options) => { + const manifest: SSRManifest['i18n'] = { + ...i18n, + fallback: undefined, + strategy: toRoutingStrategy({ + ...i18n, + // To review the types, I'm sure there's a way to extract the correct ones and make TS happy + // @ts-expect-error + routing: customOptions, + }), + domainLookupTable: {}, + }; + return I18nInternals.createMiddleware(manifest, base, trailingSlash, format); + }; +} else { + middleware = noop('middleware'); +} diff --git a/packages/astro/test/i18n-routing-manual-with-default-middleware.test.js b/packages/astro/test/i18n-routing-manual-with-default-middleware.test.js index fb42fac44221..2a80b04b9577 100644 --- a/packages/astro/test/i18n-routing-manual-with-default-middleware.test.js +++ b/packages/astro/test/i18n-routing-manual-with-default-middleware.test.js @@ -35,23 +35,6 @@ describe('Dev server manual routing', () => { const text = await response.text(); assert.equal(text.includes('ABOUT ME'), true); }); - // - // it('should render a i18n route', async () => { - // let response = await fixture.fetch('/en/blog'); - // assert.equal(response.status, 200); - // let text = await response.text(); - // assert.equal(text.includes('Blog start'), true); - // - // response = await fixture.fetch('/pt/start'); - // assert.equal(response.status, 200); - // text = await response.text(); - // assert.equal(text.includes('Oi'), true); - // - // response = await fixture.fetch('/spanish'); - // assert.equal(response.status, 200); - // text = await response.text(); - // assert.equal(text.includes('Hola.'), true); - // }); }); // // // SSG From d3a8d186c586ea717a3411bdd427577c7c80b911 Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Tue, 2 Apr 2024 13:26:41 +0100 Subject: [PATCH 20/33] apply suggestion --- packages/astro/src/core/errors/errors-data.ts | 4 ++-- packages/astro/src/virtual-modules/i18n.ts | 7 +++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/astro/src/core/errors/errors-data.ts b/packages/astro/src/core/errors/errors-data.ts index de7c42743ea5..0f862eeb4acc 100644 --- a/packages/astro/src/core/errors/errors-data.ts +++ b/packages/astro/src/core/errors/errors-data.ts @@ -1072,8 +1072,8 @@ export const MissingIndexForInternationalization = { * @description * Some internationalization functions can't be exposed unless the default routing is disabled */ -export const IncorrectStrategy = { - name: 'IncorrectStrategy', +export const IncorrectStrategyForI18n = { + name: 'IncorrectStrategyForI18n', title: "You can't use the current function with the current strategy", message: (functionName: string) => `The function \`${functionName}\' can't be used because it can only be used when the \`i18n.routing.strategy\` is set to \`"manual"\`.`, diff --git a/packages/astro/src/virtual-modules/i18n.ts b/packages/astro/src/virtual-modules/i18n.ts index 458aff131d43..b5a1544d201d 100644 --- a/packages/astro/src/virtual-modules/i18n.ts +++ b/packages/astro/src/virtual-modules/i18n.ts @@ -1,7 +1,7 @@ import * as I18nInternals from '../i18n/index.js'; import { toRoutingStrategy } from '../i18n/utils.js'; import { AstroError } from '../core/errors/index.js'; -import { IncorrectStrategy } from '../core/errors/errors-data.js'; +import { IncorrectStrategyForI18n } from '../core/errors/errors-data.js'; import type { UseFallback } from '../i18n/index.js'; import type { SSRManifest } from '../core/app/types.js'; import type { @@ -25,7 +25,10 @@ export type GetLocaleOptions = I18nInternals.GetLocaleOptions; const noop = (method: string) => function () { - throw new AstroError({ ...IncorrectStrategy, message: IncorrectStrategy.message(method) }); + throw new AstroError({ + ...IncorrectStrategyForI18n, + message: IncorrectStrategyForI18n.message(method), + }); }; /** From 4d9f6a72609e289fdf9cb940053b9216d0cc0619 Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Mon, 8 Apr 2024 13:06:58 +0100 Subject: [PATCH 21/33] Update .changeset/little-hornets-give.md Co-authored-by: Erika <3019731+Princesseuh@users.noreply.github.com> --- .changeset/little-hornets-give.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/little-hornets-give.md b/.changeset/little-hornets-give.md index c078de0fc904..21b4306bb753 100644 --- a/.changeset/little-hornets-give.md +++ b/.changeset/little-hornets-give.md @@ -19,7 +19,7 @@ export default defineConfig({ ```js // middleware.js import { redirectToDefaultLocale } from "astro:i18n"; -export const onRequest = defineMiddleawre(async (context, next) => { +export const onRequest = defineMiddleware(async (context, next) => { if (context.url.startsWith("/about")) { return next() } else { From ba18514677241a841bedb9887fca14a8e1c56f78 Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Mon, 8 Apr 2024 13:10:17 +0100 Subject: [PATCH 22/33] chore: address feedback --- packages/astro/src/core/config/schema.ts | 2 +- packages/astro/src/core/errors/errors-data.ts | 5 ++- packages/astro/src/i18n/index.ts | 12 ++++-- packages/astro/src/i18n/middleware.ts | 42 ++----------------- packages/astro/src/virtual-modules/i18n.ts | 10 ++--- 5 files changed, 23 insertions(+), 48 deletions(-) diff --git a/packages/astro/src/core/config/schema.ts b/packages/astro/src/core/config/schema.ts index 78c791fd842c..08221ce22cb3 100644 --- a/packages/astro/src/core/config/schema.ts +++ b/packages/astro/src/core/config/schema.ts @@ -386,7 +386,7 @@ export const AstroConfigSchema = z.object({ .optional(), fallback: z.record(z.string(), z.string()).optional(), routing: z - .enum(['manual']) + .literal('manual') .or( z .object({ diff --git a/packages/astro/src/core/errors/errors-data.ts b/packages/astro/src/core/errors/errors-data.ts index 0f862eeb4acc..ca85f4a0def2 100644 --- a/packages/astro/src/core/errors/errors-data.ts +++ b/packages/astro/src/core/errors/errors-data.ts @@ -1070,7 +1070,10 @@ export const MissingIndexForInternationalization = { /** * @docs * @description - * Some internationalization functions can't be exposed unless the default routing is disabled + * Some internationalization functions can't be exposed unless the i18n routing is disabled by assigning to `i18n.routing` the value "manual"`. + * + * @see + * - [`i18n` routing](https://docs.astro.build/en/guides/internationalization/#routing) */ export const IncorrectStrategyForI18n = { name: 'IncorrectStrategyForI18n', diff --git a/packages/astro/src/i18n/index.ts b/packages/astro/src/i18n/index.ts index 6d562ba88f62..a2af6c64068a 100644 --- a/packages/astro/src/i18n/index.ts +++ b/packages/astro/src/i18n/index.ts @@ -333,9 +333,14 @@ export function notFound({ base, locales }: MiddlewarePayload) { }; } -export type UseFallback = (context: APIContext, response: Response) => Response | undefined; -export function useFallback({ fallback, locales, defaultLocale, routing }: MiddlewarePayload) { - return function (context: APIContext, response: Response): Response | undefined { +export type RedirectToFallback = (context: APIContext, response: Response) => Response; +export function redirectToFallback({ + fallback, + locales, + defaultLocale, + routing, +}: MiddlewarePayload) { + return function (context: APIContext, response: Response): Response { if (response.status >= 300 && fallback) { const url = new URL(response.url); const fallbackKeys = fallback ? Object.keys(fallback) : []; @@ -371,6 +376,7 @@ export function useFallback({ fallback, locales, defaultLocale, routing }: Middl return context.redirect(newPathname); } } + return response; }; } diff --git a/packages/astro/src/i18n/middleware.ts b/packages/astro/src/i18n/middleware.ts index 91246525b5e8..54aa1249f8fb 100644 --- a/packages/astro/src/i18n/middleware.ts +++ b/packages/astro/src/i18n/middleware.ts @@ -5,6 +5,7 @@ import { normalizeTheLocale, requestHasLocale, redirectToDefaultLocale, + redirectToFallback, } from './index.js'; import type { APIContext, MiddlewareHandler, SSRManifest } from '../@types/astro.js'; import type { SSRManifestI18n } from '../core/app/types.js'; @@ -27,6 +28,7 @@ export function createI18nMiddleware( const _redirectToDefaultLocale = redirectToDefaultLocale(payload); const _noFoundForNonLocaleRoute = notFound(payload); const _requestHasLocale = requestHasLocale(payload.locales); + const _redirectToFallback = redirectToFallback(payload); const prefixAlways = (context: APIContext): Response | undefined => { const url = context.url; @@ -68,8 +70,7 @@ export function createI18nMiddleware( return response; } - const { url, currentLocale } = context; - const { locales, defaultLocale, fallback, strategy } = i18n; + const { currentLocale } = context; switch (i18n.strategy) { // NOTE: theoretically, we should never hit this code path @@ -129,42 +130,7 @@ export function createI18nMiddleware( } } - if (response.status >= 300 && fallback) { - const fallbackKeys = i18n.fallback ? Object.keys(i18n.fallback) : []; - - // we split the URL using the `/`, and then check in the returned array we have the locale - const segments = url.pathname.split('/'); - const urlLocale = segments.find((segment) => { - for (const locale of locales) { - if (typeof locale === 'string') { - if (locale === segment) { - return true; - } - } else if (locale.path === segment) { - return true; - } - } - return false; - }); - - if (urlLocale && fallbackKeys.includes(urlLocale)) { - const fallbackLocale = fallback[urlLocale]; - // the user might have configured the locale using the granular locales, so we want to retrieve its corresponding path instead - const pathFallbackLocale = getPathByLocale(fallbackLocale, locales); - let newPathname: string; - // If a locale falls back to the default locale, we want to **remove** the locale because - // the default locale doesn't have a prefix - if (pathFallbackLocale === defaultLocale && strategy === 'pathname-prefix-other-locales') { - newPathname = url.pathname.replace(`/${urlLocale}`, ``); - } else { - newPathname = url.pathname.replace(`/${urlLocale}`, `/${pathFallbackLocale}`); - } - - return context.redirect(newPathname); - } - } - - return response; + return _redirectToFallback(context, response); }; } diff --git a/packages/astro/src/virtual-modules/i18n.ts b/packages/astro/src/virtual-modules/i18n.ts index b5a1544d201d..4a84980307a3 100644 --- a/packages/astro/src/virtual-modules/i18n.ts +++ b/packages/astro/src/virtual-modules/i18n.ts @@ -2,7 +2,7 @@ import * as I18nInternals from '../i18n/index.js'; import { toRoutingStrategy } from '../i18n/utils.js'; import { AstroError } from '../core/errors/index.js'; import { IncorrectStrategyForI18n } from '../core/errors/errors-data.js'; -import type { UseFallback } from '../i18n/index.js'; +import type { RedirectToFallback } from '../i18n/index.js'; import type { SSRManifest } from '../core/app/types.js'; import type { APIContext, @@ -316,12 +316,12 @@ if (i18n?.routing === 'manual') { * Allows to use the build-in fallback system of Astro * * @param {APIContext} context The context passed to the middleware - * @param {Response?} response An optional `Response` in case you're handling a `Response` coming from the `next` function. + * @param {Response} response An optional `Response` in case you're handling a `Response` coming from the `next` function. */ -export let useFallback: UseFallback; +export let redirectToFallback: RedirectToFallback; if (i18n?.routing === 'manual') { - useFallback = I18nInternals.useFallback({ + redirectToFallback = I18nInternals.redirectToFallback({ base, trailingSlash, format, @@ -332,7 +332,7 @@ if (i18n?.routing === 'manual') { fallback, }); } else { - useFallback = noop('useFallback'); + redirectToFallback = noop('useFallback'); } // @ematipico: This is a helper type because, because I don't know how to extract from TS From e43236a1a97eb3d654d87dd7e67757f7dfea37a2 Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Mon, 8 Apr 2024 13:36:24 +0100 Subject: [PATCH 23/33] fix regression of last commit --- packages/astro/src/i18n/index.ts | 15 ++++---- packages/astro/src/i18n/middleware.ts | 41 +++++++++++++++++++++- packages/astro/src/virtual-modules/i18n.ts | 6 ++-- 3 files changed, 49 insertions(+), 13 deletions(-) diff --git a/packages/astro/src/i18n/index.ts b/packages/astro/src/i18n/index.ts index a2af6c64068a..ea2cacb9b9e0 100644 --- a/packages/astro/src/i18n/index.ts +++ b/packages/astro/src/i18n/index.ts @@ -282,7 +282,7 @@ export type MiddlewarePayload = { locales: Locales; trailingSlash: AstroConfig['trailingSlash']; format: AstroConfig['build']['format']; - routing?: RoutingStrategies; + strategy: RoutingStrategies; defaultLocale: string; domains: Record | undefined; fallback: Record | undefined; @@ -338,15 +338,13 @@ export function redirectToFallback({ fallback, locales, defaultLocale, - routing, + strategy, }: MiddlewarePayload) { return function (context: APIContext, response: Response): Response { if (response.status >= 300 && fallback) { - const url = new URL(response.url); const fallbackKeys = fallback ? Object.keys(fallback) : []; - // we split the URL using the `/`, and then check in the returned array we have the locale - const segments = url.pathname.split('/'); + const segments = context.url.pathname.split('/'); const urlLocale = segments.find((segment) => { for (const locale of locales) { if (typeof locale === 'string') { @@ -367,12 +365,11 @@ export function redirectToFallback({ let newPathname: string; // If a locale falls back to the default locale, we want to **remove** the locale because // the default locale doesn't have a prefix - if (pathFallbackLocale === defaultLocale && routing === 'pathname-prefix-other-locales') { - newPathname = url.pathname.replace(`/${urlLocale}`, ``); + if (pathFallbackLocale === defaultLocale && strategy === 'pathname-prefix-other-locales') { + newPathname = context.url.pathname.replace(`/${urlLocale}`, ``); } else { - newPathname = url.pathname.replace(`/${urlLocale}`, `/${pathFallbackLocale}`); + newPathname = context.url.pathname.replace(`/${urlLocale}`, `/${pathFallbackLocale}`); } - return context.redirect(newPathname); } } diff --git a/packages/astro/src/i18n/middleware.ts b/packages/astro/src/i18n/middleware.ts index 54aa1249f8fb..da7654657fd6 100644 --- a/packages/astro/src/i18n/middleware.ts +++ b/packages/astro/src/i18n/middleware.ts @@ -25,6 +25,7 @@ export function createI18nMiddleware( format, domains: {}, }; + console.log('I18N ROUTING STRATEGY', i18n.strategy); const _redirectToDefaultLocale = redirectToDefaultLocale(payload); const _noFoundForNonLocaleRoute = notFound(payload); const _requestHasLocale = requestHasLocale(payload.locales); @@ -70,7 +71,8 @@ export function createI18nMiddleware( return response; } - const { currentLocale } = context; + const { url, currentLocale } = context; + const { locales, defaultLocale, fallback, strategy } = i18n; switch (i18n.strategy) { // NOTE: theoretically, we should never hit this code path @@ -131,6 +133,43 @@ export function createI18nMiddleware( } return _redirectToFallback(context, response); + + // if (response.status >= 300 && fallback) { + // const fallbackKeys = i18n.fallback ? Object.keys(i18n.fallback) : []; + // + // // we split the URL using the `/`, and then check in the returned array we have the locale + // const segments = url.pathname.split('/'); + // const urlLocale = segments.find((segment) => { + // for (const locale of locales) { + // if (typeof locale === 'string') { + // if (locale === segment) { + // return true; + // } + // } else if (locale.path === segment) { + // return true; + // } + // } + // return false; + // }); + // + // if (urlLocale && fallbackKeys.includes(urlLocale)) { + // const fallbackLocale = fallback[urlLocale]; + // // the user might have configured the locale using the granular locales, so we want to retrieve its corresponding path instead + // const pathFallbackLocale = getPathByLocale(fallbackLocale, locales); + // let newPathname: string; + // // If a locale falls back to the default locale, we want to **remove** the locale because + // // the default locale doesn't have a prefix + // if (pathFallbackLocale === defaultLocale && strategy === 'pathname-prefix-other-locales') { + // newPathname = url.pathname.replace(`/${urlLocale}`, ``); + // } else { + // newPathname = url.pathname.replace(`/${urlLocale}`, `/${pathFallbackLocale}`); + // } + // + // return context.redirect(newPathname); + // } + // } + // + // return response; }; } diff --git a/packages/astro/src/virtual-modules/i18n.ts b/packages/astro/src/virtual-modules/i18n.ts index 4a84980307a3..da9206b5f0bb 100644 --- a/packages/astro/src/virtual-modules/i18n.ts +++ b/packages/astro/src/virtual-modules/i18n.ts @@ -263,7 +263,7 @@ if (i18n?.routing === 'manual') { format, defaultLocale, locales, - routing: strategy, + strategy, domains, fallback, }); @@ -291,7 +291,7 @@ if (i18n?.routing === 'manual') { format, defaultLocale, locales, - routing: strategy, + strategy, domains, fallback, }); @@ -327,7 +327,7 @@ if (i18n?.routing === 'manual') { format, defaultLocale, locales, - routing: strategy, + strategy, domains, fallback, }); From 742c627bb9f879be620095238ed15d7ac9e35d3c Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Mon, 8 Apr 2024 14:45:53 +0100 Subject: [PATCH 24/33] update name --- .changeset/little-hornets-give.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/little-hornets-give.md b/.changeset/little-hornets-give.md index 21b4306bb753..b42f8eeddbd9 100644 --- a/.changeset/little-hornets-give.md +++ b/.changeset/little-hornets-give.md @@ -31,4 +31,4 @@ export const onRequest = defineMiddleware(async (context, next) => { When `routing: "manual"` is provided, the virtual module `astro:i18n` exports new functions: - `redirectToDefaultLocale` - `notFound` -- `useFallback` \ No newline at end of file +- `redirectToFallback` From e75b46c01fe5a3284a59e91c15a2cb79cd5dfc6b Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Mon, 8 Apr 2024 14:47:34 +0100 Subject: [PATCH 25/33] add comments --- packages/astro/src/i18n/index.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/astro/src/i18n/index.ts b/packages/astro/src/i18n/index.ts index ea2cacb9b9e0..ccb4a5eac8e9 100644 --- a/packages/astro/src/i18n/index.ts +++ b/packages/astro/src/i18n/index.ts @@ -288,6 +288,7 @@ export type MiddlewarePayload = { fallback: Record | undefined; }; +// NOTE: public function exported to the users via `astro:i18n` module export function redirectToDefaultLocale({ trailingSlash, format, @@ -303,6 +304,7 @@ export function redirectToDefaultLocale({ }; } +// NOTE: public function exported to the users via `astro:i18n` module export function notFound({ base, locales }: MiddlewarePayload) { return function (context: APIContext, response?: Response): Response | undefined { if (response?.headers.get(REROUTE_DIRECTIVE_HEADER) === 'no') return response; @@ -333,7 +335,7 @@ export function notFound({ base, locales }: MiddlewarePayload) { }; } -export type RedirectToFallback = (context: APIContext, response: Response) => Response; +// NOTE: public function exported to the users via `astro:i18n` module export function redirectToFallback({ fallback, locales, @@ -377,6 +379,7 @@ export function redirectToFallback({ }; } +// NOTE: public function exported to the users via `astro:i18n` module export function createMiddleware( i18nManifest: SSRManifest['i18n'], base: SSRManifest['base'], From 6c4aa8d2aa74e08c545ea362305925a2ad7cdef8 Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Mon, 8 Apr 2024 14:51:27 +0100 Subject: [PATCH 26/33] fix regression --- packages/astro/src/i18n/index.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/astro/src/i18n/index.ts b/packages/astro/src/i18n/index.ts index ccb4a5eac8e9..58cd1a20007d 100644 --- a/packages/astro/src/i18n/index.ts +++ b/packages/astro/src/i18n/index.ts @@ -336,6 +336,8 @@ export function notFound({ base, locales }: MiddlewarePayload) { } // NOTE: public function exported to the users via `astro:i18n` module +export type RedirectToFallback = (context: APIContext, response: Response) => Response; + export function redirectToFallback({ fallback, locales, From fe0c01a7ff212b1cabd615cc3722160e48ac272d Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Mon, 8 Apr 2024 16:25:55 +0100 Subject: [PATCH 27/33] remove unused code --- packages/astro/src/i18n/middleware.ts | 41 +-------------------------- 1 file changed, 1 insertion(+), 40 deletions(-) diff --git a/packages/astro/src/i18n/middleware.ts b/packages/astro/src/i18n/middleware.ts index da7654657fd6..54aa1249f8fb 100644 --- a/packages/astro/src/i18n/middleware.ts +++ b/packages/astro/src/i18n/middleware.ts @@ -25,7 +25,6 @@ export function createI18nMiddleware( format, domains: {}, }; - console.log('I18N ROUTING STRATEGY', i18n.strategy); const _redirectToDefaultLocale = redirectToDefaultLocale(payload); const _noFoundForNonLocaleRoute = notFound(payload); const _requestHasLocale = requestHasLocale(payload.locales); @@ -71,8 +70,7 @@ export function createI18nMiddleware( return response; } - const { url, currentLocale } = context; - const { locales, defaultLocale, fallback, strategy } = i18n; + const { currentLocale } = context; switch (i18n.strategy) { // NOTE: theoretically, we should never hit this code path @@ -133,43 +131,6 @@ export function createI18nMiddleware( } return _redirectToFallback(context, response); - - // if (response.status >= 300 && fallback) { - // const fallbackKeys = i18n.fallback ? Object.keys(i18n.fallback) : []; - // - // // we split the URL using the `/`, and then check in the returned array we have the locale - // const segments = url.pathname.split('/'); - // const urlLocale = segments.find((segment) => { - // for (const locale of locales) { - // if (typeof locale === 'string') { - // if (locale === segment) { - // return true; - // } - // } else if (locale.path === segment) { - // return true; - // } - // } - // return false; - // }); - // - // if (urlLocale && fallbackKeys.includes(urlLocale)) { - // const fallbackLocale = fallback[urlLocale]; - // // the user might have configured the locale using the granular locales, so we want to retrieve its corresponding path instead - // const pathFallbackLocale = getPathByLocale(fallbackLocale, locales); - // let newPathname: string; - // // If a locale falls back to the default locale, we want to **remove** the locale because - // // the default locale doesn't have a prefix - // if (pathFallbackLocale === defaultLocale && strategy === 'pathname-prefix-other-locales') { - // newPathname = url.pathname.replace(`/${urlLocale}`, ``); - // } else { - // newPathname = url.pathname.replace(`/${urlLocale}`, `/${pathFallbackLocale}`); - // } - // - // return context.redirect(newPathname); - // } - // } - // - // return response; }; } From dbcee6edb0e200dc096f644adcbc87f31147e380 Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Tue, 9 Apr 2024 16:01:58 +0100 Subject: [PATCH 28/33] Apply suggestions from code review Co-authored-by: Sarah Rainsberger --- .changeset/little-hornets-give.md | 24 +++++++++++++++---- packages/astro/src/core/errors/errors-data.ts | 8 +++---- 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/.changeset/little-hornets-give.md b/.changeset/little-hornets-give.md index b42f8eeddbd9..fdbb6492eec0 100644 --- a/.changeset/little-hornets-give.md +++ b/.changeset/little-hornets-give.md @@ -2,7 +2,7 @@ "astro": minor --- -Astro now allows to create your know i18n middleware: +Adds a new i18n routing option `manual` to allow you to write your own i18n middleware: ```js import { defineConfig } from "astro/config" @@ -16,6 +16,8 @@ export default defineConfig({ }) ``` +Adding `routing: "manual"` to your i18n config disables Astro's own i18n middleware and provides you with helper functions to write your own: `redirectToDefaultLocale`, `notFound`, and `redirectToFallback`: + ```js // middleware.js import { redirectToDefaultLocale } from "astro:i18n"; @@ -28,7 +30,19 @@ export const onRequest = defineMiddleware(async (context, next) => { }) ``` -When `routing: "manual"` is provided, the virtual module `astro:i18n` exports new functions: -- `redirectToDefaultLocale` -- `notFound` -- `redirectToFallback` +Also adds a `middleware` function that manually creates Astro's i18n middleware. This allows you to extend Astro's i18n routing instead of completely replacing it. Run `middleware` in combination with your own middleware, using the `sequence` utility to determine the order: + +```js title="src/middleware.js" +import {defineMiddleware, sequence} from "astro:middleware"; +import { middleware } from "astro:i18n"; // Astro's own i18n routing config + +export const userMiddleware = defineMiddleware(); + +export const onRequest = sequence( + userMiddleware, + middleware({ + redirectToDefaultLocale: false, + prefixDefaultLocale: true + }) +) +``` diff --git a/packages/astro/src/core/errors/errors-data.ts b/packages/astro/src/core/errors/errors-data.ts index ca85f4a0def2..e18221c428f1 100644 --- a/packages/astro/src/core/errors/errors-data.ts +++ b/packages/astro/src/core/errors/errors-data.ts @@ -1070,7 +1070,7 @@ export const MissingIndexForInternationalization = { /** * @docs * @description - * Some internationalization functions can't be exposed unless the i18n routing is disabled by assigning to `i18n.routing` the value "manual"`. + * Some internationalization functions are only available when Astro's own i18n routing is disabled by the configuration setting `i18n.routing: "manual"`. * * @see * - [`i18n` routing](https://docs.astro.build/en/guides/internationalization/#routing) @@ -1079,7 +1079,7 @@ export const IncorrectStrategyForI18n = { name: 'IncorrectStrategyForI18n', title: "You can't use the current function with the current strategy", message: (functionName: string) => - `The function \`${functionName}\' can't be used because it can only be used when the \`i18n.routing.strategy\` is set to \`"manual"\`.`, + `The function \`${functionName}\' can only be used when the \`i18n.routing.strategy\` is set to \`"manual"\`.`, } satisfies ErrorData; /** @@ -1091,7 +1091,7 @@ export const NoPrerenderedRoutesWithDomains = { name: 'NoPrerenderedRoutesWithDomains', title: "Prerendered routes aren't supported when internationalization domains are enabled.", message: (component: string) => - `Static pages aren't yet supported with multiple domains. If you wish to enable this feature, you have to disable prerendering for the page ${component}`, + `Static pages aren't yet supported with multiple domains. To enable this feature, you must disable prerendering for the page ${component}`, } satisfies ErrorData; /** @@ -1103,7 +1103,7 @@ export const MissingMiddlewareForInternationalization = { name: 'MissingMiddlewareForInternationalization', title: 'Enabled manual internationalization routing without having a middleware.', message: - "You enabled manual routing for internationalization via `i18n.routing: 'manual'`, but you must have a `middleware` file in order to use this feature.", + "Your configuration setting `i18n.routing: 'manual'` requires you to provide your own i18n `middleware` file.", } satisfies ErrorData; /** From d74675322a0a44cdfabe84631e684c80610d1950 Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Tue, 9 Apr 2024 16:07:46 +0100 Subject: [PATCH 29/33] chore: update reference --- packages/astro/src/@types/astro.ts | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/packages/astro/src/@types/astro.ts b/packages/astro/src/@types/astro.ts index e13b5b05ad0d..9b86c4e7afa9 100644 --- a/packages/astro/src/@types/astro.ts +++ b/packages/astro/src/@types/astro.ts @@ -1497,8 +1497,20 @@ export interface AstroUserConfig { * * Controls the routing strategy to determine your site URLs. Set this based on your folder/URL path configuration for your default language. */ - routing?: - | 'manual' + // prettier-ignore + routing?: + /** + * + * @docs + * @name i18n.routing + * @type {string} + * @version 4.6.0 + * @description + * When this option is enabled, Astro will **disable** its i18n middleware so that you can implement your own custom logic. No other `routing` options (e.g. `prefixDefaultLocale`) may be configured with `routing: "manual"`. + * + * You will be responsible for writing your own routing logic, or executing Astro's i18n middleware manually alongside your own. + */ + 'manual' | { /** * @docs From 1516cbde98ada3d7d62c1bbbd17db6070cffd44b Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Tue, 9 Apr 2024 17:10:42 +0100 Subject: [PATCH 30/33] Update packages/astro/src/@types/astro.ts Co-authored-by: Sarah Rainsberger --- packages/astro/src/@types/astro.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/astro/src/@types/astro.ts b/packages/astro/src/@types/astro.ts index 9b86c4e7afa9..b60faa00b94d 100644 --- a/packages/astro/src/@types/astro.ts +++ b/packages/astro/src/@types/astro.ts @@ -1502,7 +1502,7 @@ export interface AstroUserConfig { /** * * @docs - * @name i18n.routing + * @name i18n.routing.manual * @type {string} * @version 4.6.0 * @description From bbb37879e5d3b7323af4325f72176b970c075b2c Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Tue, 9 Apr 2024 17:25:44 +0100 Subject: [PATCH 31/33] chore: improve types --- packages/astro/src/core/build/generate.ts | 2 +- .../src/core/build/plugins/plugin-manifest.ts | 2 +- packages/astro/src/core/config/schema.ts | 5 ++-- .../astro/src/core/routing/manifest/create.ts | 2 +- packages/astro/src/i18n/utils.ts | 6 +++-- packages/astro/src/virtual-modules/i18n.ts | 25 +++++++------------ .../src/vite-plugin-astro-server/plugin.ts | 2 +- 7 files changed, 20 insertions(+), 24 deletions(-) diff --git a/packages/astro/src/core/build/generate.ts b/packages/astro/src/core/build/generate.ts index 7dc00073fc5b..e7008322b005 100644 --- a/packages/astro/src/core/build/generate.ts +++ b/packages/astro/src/core/build/generate.ts @@ -592,7 +592,7 @@ function createBuildManifest( if (settings.config.i18n) { i18nManifest = { fallback: settings.config.i18n.fallback, - strategy: toRoutingStrategy(settings.config.i18n), + strategy: toRoutingStrategy(settings.config.i18n.routing, settings.config.i18n.domains), defaultLocale: settings.config.i18n.defaultLocale, locales: settings.config.i18n.locales, domainLookupTable: {}, diff --git a/packages/astro/src/core/build/plugins/plugin-manifest.ts b/packages/astro/src/core/build/plugins/plugin-manifest.ts index 24437d4e5765..deb71155e94e 100644 --- a/packages/astro/src/core/build/plugins/plugin-manifest.ts +++ b/packages/astro/src/core/build/plugins/plugin-manifest.ts @@ -253,7 +253,7 @@ function buildManifest( if (settings.config.i18n) { i18nManifest = { fallback: settings.config.i18n.fallback, - strategy: toRoutingStrategy(settings.config.i18n), + strategy: toRoutingStrategy(settings.config.i18n.routing, settings.config.i18n.domains), locales: settings.config.i18n.locales, defaultLocale: settings.config.i18n.defaultLocale, domainLookupTable, diff --git a/packages/astro/src/core/config/schema.ts b/packages/astro/src/core/config/schema.ts index 08221ce22cb3..de820d6837c1 100644 --- a/packages/astro/src/core/config/schema.ts +++ b/packages/astro/src/core/config/schema.ts @@ -390,8 +390,8 @@ export const AstroConfigSchema = z.object({ .or( z .object({ - prefixDefaultLocale: z.boolean().default(false), - redirectToDefaultLocale: z.boolean().default(true), + prefixDefaultLocale: z.boolean().optional().default(false), + redirectToDefaultLocale: z.boolean().optional().default(true), }) .refine( ({ prefixDefaultLocale, redirectToDefaultLocale }) => { @@ -403,6 +403,7 @@ export const AstroConfigSchema = z.object({ } ) ) + .optional() .default({}), }) .optional() diff --git a/packages/astro/src/core/routing/manifest/create.ts b/packages/astro/src/core/routing/manifest/create.ts index e30440fa4f8d..a6ddc93a3f6f 100644 --- a/packages/astro/src/core/routing/manifest/create.ts +++ b/packages/astro/src/core/routing/manifest/create.ts @@ -693,7 +693,7 @@ export function createRouteManifest( const i18n = settings.config.i18n; if (i18n) { - const strategy = toRoutingStrategy(i18n); + const strategy = toRoutingStrategy(i18n.routing, i18n.domains); // First we check if the user doesn't have an index page. if (strategy === 'pathname-prefix-always') { let index = routes.find((route) => route.route === '/'); diff --git a/packages/astro/src/i18n/utils.ts b/packages/astro/src/i18n/utils.ts index 04b52b922ad6..1567f43db8b1 100644 --- a/packages/astro/src/i18n/utils.ts +++ b/packages/astro/src/i18n/utils.ts @@ -185,8 +185,10 @@ export type RoutingStrategies = | 'domains-prefix-always' | 'domains-prefix-other-locales' | 'domains-prefix-always-no-redirect'; -export function toRoutingStrategy(i18n: NonNullable) { - let { routing, domains } = i18n; +export function toRoutingStrategy( + routing: NonNullable['routing'], + domains: NonNullable['domains'] +) { let strategy: RoutingStrategies; const hasDomains = domains ? Object.keys(domains).length > 0 : false; if (routing === 'manual') { diff --git a/packages/astro/src/virtual-modules/i18n.ts b/packages/astro/src/virtual-modules/i18n.ts index da9206b5f0bb..0714c08b7949 100644 --- a/packages/astro/src/virtual-modules/i18n.ts +++ b/packages/astro/src/virtual-modules/i18n.ts @@ -16,10 +16,10 @@ export { normalizeTheLocale, toCodes, toPaths } from '../i18n/index.js'; const { trailingSlash, format, site, i18n, isBuild } = // @ts-expect-error __ASTRO_INTERNAL_I18N_CONFIG__ as I18nInternalConfig; -const { defaultLocale, locales, domains, fallback } = i18n!; +const { defaultLocale, locales, domains, fallback, routing } = i18n!; const base = import.meta.env.BASE_URL; -const strategy = toRoutingStrategy(i18n!); +const strategy = toRoutingStrategy(routing, domains); export type GetLocaleOptions = I18nInternals.GetLocaleOptions; @@ -335,13 +335,11 @@ if (i18n?.routing === 'manual') { redirectToFallback = noop('useFallback'); } -// @ematipico: This is a helper type because, because I don't know how to extract from TS -type Options = { - prefixDefaultLocale?: boolean; - redirectToDefaultLocale?: boolean; -}; +type OnlyObject = T extends object ? T : never; +type NewAstroRoutingConfigWithoutManual = OnlyObject['routing']>; + /** - * @param {AstroConfig['i18n']} customOptions + * @param {AstroConfig['i18n']['routing']} customOptions * * A function that allows to programmatically create the Astro i18n middleware. * @@ -370,19 +368,14 @@ type Options = { * * ``` */ -export let middleware: (customOptions?: Options) => MiddlewareHandler; +export let middleware: (customOptions: NewAstroRoutingConfigWithoutManual) => MiddlewareHandler; if (i18n?.routing === 'manual') { - middleware = (customOptions?: Options) => { + middleware = (customOptions: NewAstroRoutingConfigWithoutManual) => { const manifest: SSRManifest['i18n'] = { ...i18n, fallback: undefined, - strategy: toRoutingStrategy({ - ...i18n, - // To review the types, I'm sure there's a way to extract the correct ones and make TS happy - // @ts-expect-error - routing: customOptions, - }), + strategy: toRoutingStrategy(customOptions, {}), domainLookupTable: {}, }; return I18nInternals.createMiddleware(manifest, base, trailingSlash, format); diff --git a/packages/astro/src/vite-plugin-astro-server/plugin.ts b/packages/astro/src/vite-plugin-astro-server/plugin.ts index b08bcb4ebd57..ff0eaf3147aa 100644 --- a/packages/astro/src/vite-plugin-astro-server/plugin.ts +++ b/packages/astro/src/vite-plugin-astro-server/plugin.ts @@ -121,7 +121,7 @@ export function createDevelopmentManifest(settings: AstroSettings): SSRManifest if (settings.config.i18n) { i18nManifest = { fallback: settings.config.i18n.fallback, - strategy: toRoutingStrategy(settings.config.i18n), + strategy: toRoutingStrategy(settings.config.i18n.routing, settings.config.i18n.domains), defaultLocale: settings.config.i18n.defaultLocale, locales: settings.config.i18n.locales, domainLookupTable: {}, From 52fcbe0b5f77243f8a35c2123740110ec639597f Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Wed, 10 Apr 2024 08:52:48 +0100 Subject: [PATCH 32/33] fix regression in tests --- .../astro/test/units/i18n/astro_i18n.test.js | 78 +++++++++---------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/packages/astro/test/units/i18n/astro_i18n.test.js b/packages/astro/test/units/i18n/astro_i18n.test.js index 6622308cc539..b55d2db21d98 100644 --- a/packages/astro/test/units/i18n/astro_i18n.test.js +++ b/packages/astro/test/units/i18n/astro_i18n.test.js @@ -245,7 +245,7 @@ describe('getLocaleRelativeUrl', () => { ...config.i18n, trailingSlash: 'always', format: 'directory', - strategy: toRoutingStrategy(config.i18n), + strategy: toRoutingStrategy(config.i18n.routing, {}), }), '/blog/en-us/' ); @@ -258,7 +258,7 @@ describe('getLocaleRelativeUrl', () => { trailingSlash: 'always', format: 'directory', normalizeLocale: false, - strategy: toRoutingStrategy(config.i18n), + strategy: toRoutingStrategy(config.i18n.routing, {}), }), '/blog/en_US/' ); @@ -270,7 +270,7 @@ describe('getLocaleRelativeUrl', () => { ...config.i18n, trailingSlash: 'always', format: 'directory', - strategy: toRoutingStrategy(config.i18n), + strategy: toRoutingStrategy(config.i18n.routing, {}), }), '/blog/en-au/' ); @@ -300,7 +300,7 @@ describe('getLocaleRelativeUrl', () => { trailingSlash: 'always', format: 'directory', ...config.i18n, - strategy: toRoutingStrategy(config.i18n), + strategy: toRoutingStrategy(config.i18n.routing, {}), }), '/blog/en/' ); @@ -311,7 +311,7 @@ describe('getLocaleRelativeUrl', () => { ...config.i18n, trailingSlash: 'always', format: 'directory', - strategy: toRoutingStrategy(config.i18n), + strategy: toRoutingStrategy(config.i18n.routing, {}), }), '/blog/es/' ); @@ -324,7 +324,7 @@ describe('getLocaleRelativeUrl', () => { ...config.i18n, trailingSlash: 'always', format: 'file', - strategy: toRoutingStrategy(config.i18n), + strategy: toRoutingStrategy(config.i18n.routing, {}), }), '/blog/en/' ); @@ -335,7 +335,7 @@ describe('getLocaleRelativeUrl', () => { ...config.i18n, trailingSlash: 'always', format: 'file', - strategy: toRoutingStrategy(config.i18n), + strategy: toRoutingStrategy(config.i18n.routing, {}), }), '/blog/es/' ); @@ -366,7 +366,7 @@ describe('getLocaleRelativeUrl', () => { trailingSlash: 'always', format: 'directory', ...config.i18n, - strategy: toRoutingStrategy(config.i18n), + strategy: toRoutingStrategy(config.i18n.routing, {}), }), '/blog/en/' ); @@ -377,7 +377,7 @@ describe('getLocaleRelativeUrl', () => { ...config.i18n, trailingSlash: 'always', format: 'directory', - strategy: toRoutingStrategy(config.i18n), + strategy: toRoutingStrategy(config.i18n.routing, {}), }), '/blog/es/' ); @@ -390,7 +390,7 @@ describe('getLocaleRelativeUrl', () => { ...config.i18n, trailingSlash: 'always', format: 'file', - strategy: toRoutingStrategy(config.i18n), + strategy: toRoutingStrategy(config.i18n.routing, {}), }), '/blog/en/' ); @@ -401,7 +401,7 @@ describe('getLocaleRelativeUrl', () => { ...config.i18n, trailingSlash: 'always', format: 'file', - strategy: toRoutingStrategy(config.i18n), + strategy: toRoutingStrategy(config.i18n.routing, {}), }), '/blog/es/' ); @@ -603,7 +603,7 @@ describe('getLocaleRelativeUrlList', () => { ...config.i18n, trailingSlash: 'never', format: 'directory', - strategy: toRoutingStrategy(config.i18n), + strategy: toRoutingStrategy(config.i18n.routing, {}), }), ['/blog/en', '/blog/en-us', '/blog/es'] ); @@ -632,7 +632,7 @@ describe('getLocaleRelativeUrlList', () => { ...config.i18n, trailingSlash: 'never', format: 'directory', - strategy: toRoutingStrategy(config.i18n), + strategy: toRoutingStrategy(config.i18n.routing, {}), }), ['/blog/en', '/blog/en-us', '/blog/es'] ); @@ -830,7 +830,7 @@ describe('getLocaleAbsoluteUrl', () => { format: 'directory', site: 'https://example.com', ...config.i18n, - strategy: toRoutingStrategy(config.i18n), + strategy: toRoutingStrategy(config.i18n.routing, {}), }), 'https://example.com/blog/en/' ); @@ -843,7 +843,7 @@ describe('getLocaleAbsoluteUrl', () => { trailingSlash: 'always', format: 'directory', site: 'https://example.com', - strategy: toRoutingStrategy(config.i18n), + strategy: toRoutingStrategy(config.i18n.routing, {}), }), 'https://example.com/blog/es/' ); @@ -857,7 +857,7 @@ describe('getLocaleAbsoluteUrl', () => { trailingSlash: 'always', format: 'file', site: 'https://example.com', - strategy: toRoutingStrategy(config.i18n), + strategy: toRoutingStrategy(config.i18n.routing, {}), }), 'https://example.com/blog/en/' ); @@ -869,7 +869,7 @@ describe('getLocaleAbsoluteUrl', () => { trailingSlash: 'always', format: 'file', site: 'https://example.com', - strategy: toRoutingStrategy(config.i18n), + strategy: toRoutingStrategy(config.i18n.routing, {}), }), 'https://example.com/blog/es/' ); @@ -883,7 +883,7 @@ describe('getLocaleAbsoluteUrl', () => { format: 'file', site: 'https://example.com', isBuild: true, - strategy: toRoutingStrategy(config.i18n), + strategy: toRoutingStrategy(config.i18n.routing, {}), }), 'https://es.example.com/blog/' ); @@ -899,7 +899,7 @@ describe('getLocaleAbsoluteUrl', () => { site: 'https://example.com', path: 'first-post', isBuild: true, - strategy: toRoutingStrategy(config.i18n), + strategy: toRoutingStrategy(config.i18n.routing, {}), }), 'https://es.example.com/blog/some-name/first-post/' ); @@ -927,7 +927,7 @@ describe('getLocaleAbsoluteUrl', () => { trailingSlash: 'always', format: 'directory', site: 'https://example.com', - strategy: toRoutingStrategy(config.i18n), + strategy: toRoutingStrategy(config.i18n.routing, {}), }), 'https://example.com/en/' ); @@ -939,7 +939,7 @@ describe('getLocaleAbsoluteUrl', () => { trailingSlash: 'always', format: 'directory', site: 'https://example.com', - strategy: toRoutingStrategy(config.i18n), + strategy: toRoutingStrategy(config.i18n.routing, {}), }), 'https://example.com/es/' ); @@ -968,7 +968,7 @@ describe('getLocaleAbsoluteUrl', () => { trailingSlash: 'never', format: 'directory', site: 'https://example.com', - strategy: toRoutingStrategy(config.i18n), + strategy: toRoutingStrategy(config.i18n.routing, {}), }), 'https://example.com/blog/en' ); @@ -980,7 +980,7 @@ describe('getLocaleAbsoluteUrl', () => { trailingSlash: 'always', format: 'directory', site: 'https://example.com', - strategy: toRoutingStrategy(config.i18n), + strategy: toRoutingStrategy(config.i18n.routing, {}), }), 'https://example.com/blog/es/' ); @@ -993,7 +993,7 @@ describe('getLocaleAbsoluteUrl', () => { trailingSlash: 'ignore', format: 'directory', site: 'https://example.com', - strategy: toRoutingStrategy(config.i18n), + strategy: toRoutingStrategy(config.i18n.routing, {}), }), 'https://example.com/blog/en/' ); @@ -1007,7 +1007,7 @@ describe('getLocaleAbsoluteUrl', () => { trailingSlash: 'never', format: 'file', site: 'https://example.com', - strategy: toRoutingStrategy(config.i18n), + strategy: toRoutingStrategy(config.i18n.routing, {}), }), 'https://example.com/blog/en' ); @@ -1019,7 +1019,7 @@ describe('getLocaleAbsoluteUrl', () => { trailingSlash: 'always', format: 'file', site: 'https://example.com', - strategy: toRoutingStrategy(config.i18n), + strategy: toRoutingStrategy(config.i18n.routing, {}), }), 'https://example.com/blog/es/' ); @@ -1033,7 +1033,7 @@ describe('getLocaleAbsoluteUrl', () => { trailingSlash: 'ignore', format: 'file', site: 'https://example.com', - strategy: toRoutingStrategy(config.i18n), + strategy: toRoutingStrategy(config.i18n.routing, {}), }), 'https://example.com/blog/en' ); @@ -1115,7 +1115,7 @@ describe('getLocaleAbsoluteUrl', () => { site: 'https://example.com', format: 'directory', ...config.i18n, - strategy: toRoutingStrategy(config.i18n), + strategy: toRoutingStrategy(config.i18n.routing, {}), }), 'https://example.com/blog/en/' ); @@ -1127,7 +1127,7 @@ describe('getLocaleAbsoluteUrl', () => { site: 'https://example.com', trailingSlash: 'always', format: 'directory', - strategy: toRoutingStrategy(config.i18n), + strategy: toRoutingStrategy(config.i18n.routing, {}), }), 'https://example.com/blog/es/' ); @@ -1141,7 +1141,7 @@ describe('getLocaleAbsoluteUrl', () => { site: 'https://example.com', trailingSlash: 'always', format: 'file', - strategy: toRoutingStrategy(config.i18n), + strategy: toRoutingStrategy(config.i18n.routing, {}), }), 'https://example.com/blog/en/' ); @@ -1153,7 +1153,7 @@ describe('getLocaleAbsoluteUrl', () => { site: 'https://example.com', trailingSlash: 'always', format: 'file', - strategy: toRoutingStrategy(config.i18n), + strategy: toRoutingStrategy(config.i18n.routing, {}), }), 'https://example.com/blog/es/' ); @@ -1185,7 +1185,7 @@ describe('getLocaleAbsoluteUrl', () => { site: 'https://example.com', format: 'directory', ...config.i18n, - strategy: toRoutingStrategy(config.i18n), + strategy: toRoutingStrategy(config.i18n.routing, {}), }), 'https://example.com/blog/en/' ); @@ -1197,7 +1197,7 @@ describe('getLocaleAbsoluteUrl', () => { site: 'https://example.com', trailingSlash: 'always', format: 'directory', - strategy: toRoutingStrategy(config.i18n), + strategy: toRoutingStrategy(config.i18n.routing, {}), }), 'https://example.com/blog/es/' ); @@ -1211,7 +1211,7 @@ describe('getLocaleAbsoluteUrl', () => { site: 'https://example.com', trailingSlash: 'always', format: 'file', - strategy: toRoutingStrategy(config.i18n), + strategy: toRoutingStrategy(config.i18n.routing, {}), }), 'https://example.com/blog/en/' ); @@ -1223,7 +1223,7 @@ describe('getLocaleAbsoluteUrl', () => { site: 'https://example.com', trailingSlash: 'always', format: 'file', - strategy: toRoutingStrategy(config.i18n), + strategy: toRoutingStrategy(config.i18n.routing, {}), }), 'https://example.com/blog/es/' ); @@ -1530,7 +1530,7 @@ describe('getLocaleAbsoluteUrlList', () => { path: 'download', ...config, ...config.i18n, - strategy: toRoutingStrategy(config.i18n), + strategy: toRoutingStrategy(config.i18n.routing, {}), }), [ 'https://example.com/en/download/', @@ -1570,7 +1570,7 @@ describe('getLocaleAbsoluteUrlList', () => { path: 'download', ...config, ...config.i18n, - strategy: toRoutingStrategy(config.i18n), + strategy: toRoutingStrategy(config.i18n.routing, {}), isBuild: true, }), [ @@ -1726,7 +1726,7 @@ describe('getLocaleAbsoluteUrlList', () => { locale: 'en', base: '/blog/', ...config.i18n, - strategy: toRoutingStrategy(config.i18n), + strategy: toRoutingStrategy(config.i18n.routing, {}), trailingSlash: 'ignore', format: 'directory', site: 'https://example.com', @@ -1760,7 +1760,7 @@ describe('getLocaleAbsoluteUrlList', () => { locale: 'en', base: '/blog/', ...config.i18n, - strategy: toRoutingStrategy(config.i18n), + strategy: toRoutingStrategy(config.i18n.routing, {}), trailingSlash: 'ignore', format: 'directory', site: 'https://example.com', From e781cb27fc2a97758146b9827e5324b7294465c4 Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Wed, 10 Apr 2024 15:02:05 +0100 Subject: [PATCH 33/33] apply Sarah's suggestion --- packages/astro/src/@types/astro.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/astro/src/@types/astro.ts b/packages/astro/src/@types/astro.ts index b60faa00b94d..517c7dfe78e3 100644 --- a/packages/astro/src/@types/astro.ts +++ b/packages/astro/src/@types/astro.ts @@ -1606,7 +1606,7 @@ export interface AstroUserConfig { * }) * ``` * - * Both page routes built and URLs returned by the `astro:i18n` helper functions [`getAbsoluteLocaleUrl()`](https://docs.astro.build/en/guides/internationalization/#getabsolutelocaleurl) and [`getAbsoluteLocaleUrlList()`](https://docs.astro.build/en/guides/internationalization/#getabsolutelocaleurllist) will use the options set in `i18n.domains`. + * Both page routes built and URLs returned by the `astro:i18n` helper functions [`getAbsoluteLocaleUrl()`](https://docs.astro.build/en/reference/api-reference/#getabsolutelocaleurl) and [`getAbsoluteLocaleUrlList()`](https://docs.astro.build/en/reference/api-reference/#getabsolutelocaleurllist) will use the options set in `i18n.domains`. * * See the [Internationalization Guide](https://docs.astro.build/en/guides/internationalization/#domains) for more details, including the limitations of this feature. */