diff --git a/docs/components/CodeSnippets.tsx b/docs/components/CodeSnippets.tsx index e2b0d823a..0e3d2c384 100644 --- a/docs/components/CodeSnippets.tsx +++ b/docs/components/CodeSnippets.tsx @@ -334,7 +334,7 @@ function buildOutput() { kB {' '} - 87.6 kB + 89.7 kB @@ -344,7 +344,7 @@ function buildOutput() { B {' '} - 86.2 kB + 89.3 kB @@ -354,7 +354,7 @@ function buildOutput() { kB {' '} - 89.3 kB + 91.1 kB diff --git a/packages/next-intl/.size-limit.ts b/packages/next-intl/.size-limit.ts new file mode 100644 index 000000000..48ee299be --- /dev/null +++ b/packages/next-intl/.size-limit.ts @@ -0,0 +1,48 @@ +import type {SizeLimitConfig} from 'size-limit'; + +const config: SizeLimitConfig = [ + { + path: 'dist/production/index.react-client.js', + limit: '14.084 KB' + }, + { + path: 'dist/production/index.react-server.js', + limit: '14.665 KB' + }, + { + path: 'dist/production/navigation.react-client.js', + limit: '3.155 KB' + }, + { + path: 'dist/production/navigation.react-server.js', + limit: '15.975 KB' + }, + { + path: 'dist/production/server.react-client.js', + limit: '1 KB' + }, + { + path: 'dist/production/server.react-server.js', + limit: '13.975 KB' + }, + { + path: 'dist/production/middleware.js', + limit: '9.535 KB' + }, + { + path: 'dist/production/routing.js', + limit: '0 KB' + }, + { + path: 'dist/esm/index.react-client.js', + import: '*', + limit: '14.265 kB' + }, + { + path: 'dist/esm/index.react-client.js', + import: '{NextIntlClientProvider}', + limit: '1.425 kB' + } +]; + +module.exports = config; diff --git a/packages/next-intl/package.json b/packages/next-intl/package.json index 06a7a4bba..d7b40b824 100644 --- a/packages/next-intl/package.json +++ b/packages/next-intl/package.json @@ -96,7 +96,7 @@ "devDependencies": { "@arethetypeswrong/cli": "^0.15.3", "@edge-runtime/vm": "^3.2.0", - "@size-limit/preset-big-lib": "^8.2.6", + "@size-limit/preset-big-lib": "^11.1.4", "@testing-library/react": "^16.0.0", "@types/negotiator": "^0.6.3", "@types/node": "^20.14.5", @@ -112,43 +112,9 @@ "react-dom": "^18.3.1", "rollup": "^4.18.0", "rollup-plugin-preserve-directives": "0.4.0", - "size-limit": "^8.2.6", + "size-limit": "^11.1.4", "typescript": "^5.5.3", "vitest": "^2.0.2" }, - "prettier": "../../.prettierrc.json", - "size-limit": [ - { - "path": "dist/production/index.react-client.js", - "limit": "16.055 KB" - }, - { - "path": "dist/production/index.react-server.js", - "limit": "16.875 KB" - }, - { - "path": "dist/production/navigation.react-client.js", - "limit": "3.55 KB" - }, - { - "path": "dist/production/navigation.react-server.js", - "limit": "18.355 KB" - }, - { - "path": "dist/production/server.react-client.js", - "limit": "1 KB" - }, - { - "path": "dist/production/server.react-server.js", - "limit": "16.025 KB" - }, - { - "path": "dist/production/middleware.js", - "limit": "11.515 KB" - }, - { - "path": "dist/production/routing.js", - "limit": "0 KB" - } - ] + "prettier": "../../.prettierrc.json" } diff --git a/packages/next-intl/src/react-server/index.test.tsx b/packages/next-intl/src/react-server/index.test.tsx index 702bbf227..a358d784b 100644 --- a/packages/next-intl/src/react-server/index.test.tsx +++ b/packages/next-intl/src/react-server/index.test.tsx @@ -1,14 +1,14 @@ import React from 'react'; import {describe, expect, vi, it} from 'vitest'; import {getTranslations} from '../server.react-server'; -import {renderToStream} from './utils'; +import {renderToStream} from './testUtils'; import { - createTranslator, useFormatter, useLocale, useMessages, useNow, - useTranslations + useTranslations, + _createCache } from '.'; vi.mock('react'); @@ -32,10 +32,9 @@ vi.mock('../../src/server/react-server/RequestLocale', () => ({ vi.mock('use-intl/core', async (importActual) => { const actual: any = await importActual(); - const {createTranslator: actualCreateTranslator} = actual; return { ...actual, - createTranslator: vi.fn(actualCreateTranslator) + _createCache: vi.fn(actual._createCache) }; }); @@ -73,8 +72,7 @@ describe('performance', () => { }); it('shares a formatter cache between `useTranslations` and `getTranslations`', async () => { - // First invocation - // (simulate React rendering) + // First invocation (simulate React rendering) try { useTranslations('Component'); } catch (promiseOrError) { @@ -89,12 +87,7 @@ describe('performance', () => { // Second invocation with a different namespace await getTranslations('Component2'); - // Verify the cached formatters are shared - expect(vi.mocked(createTranslator).mock.calls[0][0]._formatters).toBe( - vi.mocked(createTranslator).mock.calls[1][0]._formatters - ); - expect(vi.mocked(createTranslator).mock.calls.length).toBe(2); - - vi.mocked(createTranslator).mockReset(); + expect(vi.mocked(_createCache).mock.calls.length).toBe(1); + vi.mocked(_createCache).mockReset(); }); }); diff --git a/packages/next-intl/src/react-server/utils.tsx b/packages/next-intl/src/react-server/testUtils.tsx similarity index 100% rename from packages/next-intl/src/react-server/utils.tsx rename to packages/next-intl/src/react-server/testUtils.tsx diff --git a/packages/next-intl/src/react-server/useTranslations.test.tsx b/packages/next-intl/src/react-server/useTranslations.test.tsx index ea36ea8b2..396841934 100644 --- a/packages/next-intl/src/react-server/useTranslations.test.tsx +++ b/packages/next-intl/src/react-server/useTranslations.test.tsx @@ -1,6 +1,6 @@ import React, {cache} from 'react'; import {describe, expect, it, vi, beforeEach} from 'vitest'; -import {renderToStream} from './utils'; +import {renderToStream} from './testUtils'; import {createTranslator, useTranslations} from '.'; vi.mock('../../src/server/react-server/createRequestConfig', () => ({ diff --git a/packages/next-intl/src/server/react-server/getConfig.tsx b/packages/next-intl/src/server/react-server/getConfig.tsx index 4796e15fb..13c7834f7 100644 --- a/packages/next-intl/src/server/react-server/getConfig.tsx +++ b/packages/next-intl/src/server/react-server/getConfig.tsx @@ -1,5 +1,10 @@ import {cache} from 'react'; -import {initializeConfig, IntlConfig, _createFormatters} from 'use-intl/core'; +import { + initializeConfig, + IntlConfig, + _createIntlFormatters, + _createCache +} from 'use-intl/core'; import {getRequestLocale} from './RequestLocale'; import createRequestConfig from './createRequestConfig'; @@ -52,7 +57,8 @@ async function receiveRuntimeConfigImpl( } const receiveRuntimeConfig = cache(receiveRuntimeConfigImpl); -const getFormatters = cache(_createFormatters); +const getFormatters = cache(_createIntlFormatters); +const getCache = cache(_createCache); async function getConfigImpl(localeOverride?: string): Promise< IntlConfig & { @@ -60,14 +66,17 @@ async function getConfigImpl(localeOverride?: string): Promise< now: NonNullable; onError: NonNullable; timeZone: NonNullable; - _formatters: ReturnType; + _formatters: ReturnType; } > { const runtimeConfig = await receiveRuntimeConfig( createRequestConfig, localeOverride ); - return {...initializeConfig(runtimeConfig), _formatters: getFormatters()}; + return { + ...initializeConfig(runtimeConfig), + _formatters: getFormatters(getCache()) + }; } const getConfig = cache(getConfigImpl); export default getConfig; diff --git a/packages/use-intl/.size-limit.ts b/packages/use-intl/.size-limit.ts new file mode 100644 index 000000000..b3650ce65 --- /dev/null +++ b/packages/use-intl/.size-limit.ts @@ -0,0 +1,24 @@ +import type {SizeLimitConfig} from 'size-limit'; + +const config: SizeLimitConfig = [ + { + name: './ (ESM)', + import: '*', + path: 'dist/esm/index.js', + limit: '14.065 kB' + }, + { + name: './ (no useTranslations, ESM)', + path: 'dist/esm/index.js', + import: + '{IntlProvider, useLocale, useNow, useTimeZone, useMessages, useFormatter}', + limit: '2.865 kB' + }, + { + name: './ (CJS)', + path: 'dist/production/index.js', + limit: '15.65 kB' + } +]; + +module.exports = config; diff --git a/packages/use-intl/package.json b/packages/use-intl/package.json index eb679035c..2f5949525 100644 --- a/packages/use-intl/package.json +++ b/packages/use-intl/package.json @@ -71,7 +71,7 @@ }, "devDependencies": { "@arethetypeswrong/cli": "^0.15.3", - "@size-limit/preset-big-lib": "^8.2.6", + "@size-limit/preset-big-lib": "^11.1.4", "@testing-library/react": "^16.0.0", "@types/node": "^20.14.5", "@types/react": "^18.3.3", @@ -83,16 +83,10 @@ "react": "^18.3.1", "react-dom": "^18.3.1", "rollup": "^4.18.0", - "size-limit": "^8.2.6", + "size-limit": "^11.1.4", "tinyspy": "^3.0.0", "typescript": "^5.5.3", "vitest": "^2.0.2" }, - "prettier": "../../.prettierrc.json", - "size-limit": [ - { - "path": "dist/production/index.js", - "limit": "15.545 kB" - } - ] + "prettier": "../../.prettierrc.json" } diff --git a/packages/use-intl/src/core/IntlConfig.tsx b/packages/use-intl/src/core/IntlConfig.tsx index 9b27d695f..fedaf7f78 100644 --- a/packages/use-intl/src/core/IntlConfig.tsx +++ b/packages/use-intl/src/core/IntlConfig.tsx @@ -1,7 +1,7 @@ import type AbstractIntlMessages from './AbstractIntlMessages'; -import Formats from './Formats'; -import IntlError from './IntlError'; -import TimeZone from './TimeZone'; +import type Formats from './Formats'; +import type IntlError from './IntlError'; +import type TimeZone from './TimeZone'; import type {RichTranslationValues} from './TranslationValues'; /** diff --git a/packages/use-intl/src/core/NumberFormatOptions.tsx b/packages/use-intl/src/core/NumberFormatOptions.tsx index cec2fc291..d7c498788 100644 --- a/packages/use-intl/src/core/NumberFormatOptions.tsx +++ b/packages/use-intl/src/core/NumberFormatOptions.tsx @@ -1,4 +1,4 @@ -import {Formats} from 'intl-messageformat'; +import type {Formats} from 'intl-messageformat'; // Use the already bundled version of `NumberFormat` from `@formatjs/ecma402-abstract` // that comes with `intl-messageformat` diff --git a/packages/use-intl/src/core/createBaseTranslator.tsx b/packages/use-intl/src/core/createBaseTranslator.tsx index 6e3e6351b..4e46daca6 100644 --- a/packages/use-intl/src/core/createBaseTranslator.tsx +++ b/packages/use-intl/src/core/createBaseTranslator.tsx @@ -17,12 +17,36 @@ import TranslationValues, { } from './TranslationValues'; import convertFormatsToIntlMessageFormat from './convertFormatsToIntlMessageFormat'; import {defaultGetMessageFallback, defaultOnError} from './defaults'; -import {Formatters} from './formatters'; +import { + Formatters, + IntlCache, + IntlFormatters, + memoFn, + MessageFormatter +} from './formatters'; import joinPath from './joinPath'; import MessageKeys from './utils/MessageKeys'; import NestedKeyOf from './utils/NestedKeyOf'; import NestedValueOf from './utils/NestedValueOf'; +// Placed here for improved tree shaking. Somehow when this is placed in +// `formatters.tsx`, then it can't be shaken off from `next-intl`. +function createMessageFormatter( + cache: IntlCache, + intlFormatters: IntlFormatters +): MessageFormatter { + const getMessageFormat = memoFn( + (...args: ConstructorParameters) => + new IntlMessageFormat(args[0], args[1], args[2], { + formatters: intlFormatters, + ...args[3] + }), + cache.message + ); + + return getMessageFormat; +} + function resolvePath( locale: string, messages: AbstractIntlMessages | undefined, @@ -125,6 +149,7 @@ function getMessagesOrError( } export type CreateBaseTranslatorProps = InitializedIntlConfig & { + cache: IntlCache; formatters: Formatters; defaultTranslationValues?: RichTranslationValues; namespace?: string; @@ -169,6 +194,7 @@ function createBaseTranslatorImpl< Messages extends AbstractIntlMessages, NestedKey extends NestedKeyOf >({ + cache, defaultTranslationValues, formats: globalFormats, formatters, @@ -247,6 +273,12 @@ function createBaseTranslatorImpl< const plainMessage = getPlainMessage(message as string, values); if (plainMessage) return plainMessage; + // Lazy init the message formatter for better tree + // shaking in case message formatting is not used. + if (!formatters.getMessageFormat) { + formatters.getMessageFormat = createMessageFormatter(cache, formatters); + } + try { messageFormat = formatters.getMessageFormat( message, diff --git a/packages/use-intl/src/core/createFormatter.tsx b/packages/use-intl/src/core/createFormatter.tsx index fae88cd78..95b7e18f0 100644 --- a/packages/use-intl/src/core/createFormatter.tsx +++ b/packages/use-intl/src/core/createFormatter.tsx @@ -6,7 +6,12 @@ import NumberFormatOptions from './NumberFormatOptions'; import RelativeTimeFormatOptions from './RelativeTimeFormatOptions'; import TimeZone from './TimeZone'; import {defaultOnError} from './defaults'; -import {createFormatters, Formatters} from './formatters'; +import { + createCache, + createIntlFormatters, + Formatters, + IntlCache +} from './formatters'; const SECOND = 1; const MINUTE = SECOND * 60; @@ -72,10 +77,13 @@ type Props = { now?: Date; /** @private */ _formatters?: Formatters; + /** @private */ + _cache?: IntlCache; }; export default function createFormatter({ - _formatters: formatters = createFormatters(), + _cache: cache = createCache(), + _formatters: formatters = createIntlFormatters(cache), formats, locale, now: globalNow, diff --git a/packages/use-intl/src/core/createTranslator.tsx b/packages/use-intl/src/core/createTranslator.tsx index ea904a6de..ad95fb832 100644 --- a/packages/use-intl/src/core/createTranslator.tsx +++ b/packages/use-intl/src/core/createTranslator.tsx @@ -7,7 +7,12 @@ import TranslationValues, { } from './TranslationValues'; import createTranslatorImpl from './createTranslatorImpl'; import {defaultGetMessageFallback, defaultOnError} from './defaults'; -import {createFormatters, Formatters} from './formatters'; +import { + createCache, + createIntlFormatters, + Formatters, + IntlCache +} from './formatters'; import MessageKeys from './utils/MessageKeys'; import NamespaceKeys from './utils/NamespaceKeys'; import NestedKeyOf from './utils/NestedKeyOf'; @@ -27,7 +32,8 @@ export default function createTranslator< NestedKeyOf > = never >({ - _formatters = createFormatters(), + _cache = createCache(), + _formatters = createIntlFormatters(_cache), getMessageFallback = defaultGetMessageFallback, messages, namespace, @@ -38,6 +44,8 @@ export default function createTranslator< namespace?: NestedKey; /** @private */ _formatters?: Formatters; + /** @private */ + _cache?: IntlCache; }): // Explicitly defining the return type is necessary as TypeScript would get it wrong { // Default invocation @@ -128,6 +136,7 @@ export default function createTranslator< { ...rest, onError, + cache: _cache, formatters: _formatters, getMessageFallback, // @ts-expect-error `messages` is allowed to be `undefined` here and will be handled internally diff --git a/packages/use-intl/src/core/createTranslatorImpl.tsx b/packages/use-intl/src/core/createTranslatorImpl.tsx index 8e9cff2f6..64dd9f2dd 100644 --- a/packages/use-intl/src/core/createTranslatorImpl.tsx +++ b/packages/use-intl/src/core/createTranslatorImpl.tsx @@ -1,7 +1,7 @@ import AbstractIntlMessages from './AbstractIntlMessages'; import {InitializedIntlConfig} from './IntlConfig'; import createBaseTranslator from './createBaseTranslator'; -import {Formatters} from './formatters'; +import {Formatters, IntlCache} from './formatters'; import resolveNamespace from './resolveNamespace'; import NestedKeyOf from './utils/NestedKeyOf'; @@ -12,6 +12,7 @@ export type CreateTranslatorImplProps = Omit< namespace: string; messages: Messages; formatters: Formatters; + cache: IntlCache; }; export default function createTranslatorImpl< diff --git a/packages/use-intl/src/core/formatters.tsx b/packages/use-intl/src/core/formatters.tsx index d141731b0..9b24f4a1e 100644 --- a/packages/use-intl/src/core/formatters.tsx +++ b/packages/use-intl/src/core/formatters.tsx @@ -1,16 +1,26 @@ import {memoize, Cache, strategies} from '@formatjs/fast-memoize'; // eslint-disable-next-line import/no-named-as-default -- False positive -import IntlMessageFormat from 'intl-messageformat'; +import type IntlMessageFormat from 'intl-messageformat'; -export function createIntlCache() { +export type IntlCache = { + dateTime: Record; + number: Record; + message: Record; + relativeTime: Record; + pluralRules: Record; + list: Record; + displayNames: Record; +}; + +export function createCache(): IntlCache { return { - dateTime: {} as Record, - number: {} as Record, - message: {} as Record, - relativeTime: {} as Record, - pluralRules: {} as Record, - list: {} as Record, - displayNames: {} as Record + dateTime: {}, + number: {}, + message: {}, + relativeTime: {}, + pluralRules: {}, + list: {}, + displayNames: {} }; } @@ -31,7 +41,7 @@ function createMemoCache( }; } -function memoFn) => any>( +export function memoFn) => any>( fn: Fn, cache: Record | undefined> ) { @@ -51,7 +61,7 @@ function memoConstructor) => unknown>( ) as (...args: ConstructorParameters) => InstanceType; } -export function createFormatters(): { +export type IntlFormatters = { getDateTimeFormat( ...args: ConstructorParameters ): Intl.DateTimeFormat; @@ -61,9 +71,6 @@ export function createFormatters(): { getPluralRules( ...args: ConstructorParameters ): Intl.PluralRules; - getMessageFormat( - ...args: ConstructorParameters - ): IntlMessageFormat; getRelativeTimeFormat( ...args: ConstructorParameters ): Intl.RelativeTimeFormat; @@ -73,9 +80,9 @@ export function createFormatters(): { getDisplayNames( ...args: ConstructorParameters ): Intl.DisplayNames; -} { - const cache = createIntlCache(); +}; +export function createIntlFormatters(cache: IntlCache): IntlFormatters { const getDateTimeFormat = memoConstructor( Intl.DateTimeFormat, cache.dateTime @@ -91,28 +98,21 @@ export function createFormatters(): { Intl.DisplayNames, cache.displayNames ); - const getMessageFormat = memoFn( - (...args: ConstructorParameters) => - new IntlMessageFormat(args[0], args[1], args[2], { - formatters: { - getNumberFormat, - getDateTimeFormat, - getPluralRules - }, - ...args[3] - }), - cache.message - ); return { getDateTimeFormat, getNumberFormat, getPluralRules, - getMessageFormat, getRelativeTimeFormat, getListFormat, getDisplayNames }; } -export type Formatters = ReturnType; +export type MessageFormatter = ( + ...args: ConstructorParameters +) => IntlMessageFormat; + +export type Formatters = IntlFormatters & { + getMessageFormat?: MessageFormatter; +}; diff --git a/packages/use-intl/src/core/index.tsx b/packages/use-intl/src/core/index.tsx index d45b89671..cfc3cc0e4 100644 --- a/packages/use-intl/src/core/index.tsx +++ b/packages/use-intl/src/core/index.tsx @@ -16,4 +16,5 @@ export type {default as MessageKeys} from './utils/MessageKeys'; export type {default as NamespaceKeys} from './utils/NamespaceKeys'; export type {default as NestedKeyOf} from './utils/NestedKeyOf'; export type {default as NestedValueOf} from './utils/NestedValueOf'; -export {createFormatters as _createFormatters} from './formatters'; +export {createIntlFormatters as _createIntlFormatters} from './formatters'; +export {createCache as _createCache} from './formatters'; diff --git a/packages/use-intl/src/react/IntlContext.tsx b/packages/use-intl/src/react/IntlContext.tsx index 9c7470d4f..3606b83d6 100644 --- a/packages/use-intl/src/react/IntlContext.tsx +++ b/packages/use-intl/src/react/IntlContext.tsx @@ -1,9 +1,10 @@ import {createContext} from 'react'; import type {InitializedIntlConfig} from '../core/IntlConfig'; -import type {Formatters} from '../core/formatters'; +import type {Formatters, IntlCache} from '../core/formatters'; export type IntlContextValue = InitializedIntlConfig & { formatters: Formatters; + cache: IntlCache; }; const IntlContext = createContext(undefined); diff --git a/packages/use-intl/src/react/IntlProvider.tsx b/packages/use-intl/src/react/IntlProvider.tsx index ab0fbac36..9480d7f66 100644 --- a/packages/use-intl/src/react/IntlProvider.tsx +++ b/packages/use-intl/src/react/IntlProvider.tsx @@ -1,6 +1,10 @@ import React, {ReactNode, useMemo} from 'react'; import IntlConfig from '../core/IntlConfig'; -import {createFormatters} from '../core/formatters'; +import { + createCache, + createIntlFormatters, + Formatters +} from '../core/formatters'; import initializeConfig from '../core/initializeConfig'; import IntlContext from './IntlContext'; @@ -23,7 +27,11 @@ export default function IntlProvider({ // long-running apps with a persistent `IntlProvider` at the root, // this can reduce the memory footprint (e.g. in React Native). // eslint-disable-next-line react-hooks/exhaustive-deps - const formatters = useMemo(() => createFormatters(), [locale]); + const cache = useMemo(() => createCache(), [locale]); + const formatters: Formatters = useMemo( + () => createIntlFormatters(cache), + [cache] + ); // Memoizing this value helps to avoid triggering a re-render of all // context consumers in case the configuration didn't change. However, @@ -45,9 +53,11 @@ export default function IntlProvider({ onError, timeZone }), - formatters + formatters, + cache }), [ + cache, defaultTranslationValues, formats, formatters, diff --git a/packages/use-intl/src/react/useTranslationsImpl.tsx b/packages/use-intl/src/react/useTranslationsImpl.tsx index 42809ad0b..8d1c8cbbd 100644 --- a/packages/use-intl/src/react/useTranslationsImpl.tsx +++ b/packages/use-intl/src/react/useTranslationsImpl.tsx @@ -14,6 +14,7 @@ export default function useTranslationsImpl< NestedKey extends NestedKeyOf >(allMessages: Messages, namespace: NestedKey, namespacePrefix: string) { const { + cache, defaultTranslationValues, formats: globalFormats, formatters, @@ -43,6 +44,7 @@ export default function useTranslationsImpl< const translate = useMemo( () => createBaseTranslator({ + cache, formatters, getMessageFallback, messages: allMessages, @@ -54,6 +56,7 @@ export default function useTranslationsImpl< timeZone }), [ + cache, formatters, getMessageFallback, allMessages, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dd3d54e1c..ebfa62319 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -346,7 +346,7 @@ importers: version: 29.7.0 '@mdx-js/loader': specifier: ^3.0.1 - version: 3.0.1(webpack@5.88.1) + version: 3.0.1(webpack@5.94.0) '@next/mdx': specifier: ^14.2.5 version: 14.2.5(@mdx-js/loader@3.0.1)(@mdx-js/react@3.0.1) @@ -355,7 +355,7 @@ importers: version: 1.44.1 '@storybook/nextjs': specifier: ^8.2.9 - version: 8.2.9(@jest/globals@29.7.0)(@types/jest@29.5.12)(esbuild@0.21.5)(jest@29.7.0)(next@14.2.4)(react-dom@18.3.1)(react@18.3.1)(storybook@8.2.9)(typescript@5.5.3)(webpack@5.88.1) + version: 8.2.9(@jest/globals@29.7.0)(@types/jest@29.5.12)(esbuild@0.21.5)(jest@29.7.0)(next@14.2.4)(react-dom@18.3.1)(react@18.3.1)(storybook@8.2.9)(typescript@5.5.3)(webpack@5.94.0) '@storybook/react': specifier: ^8.2.9 version: 8.2.9(react-dom@18.3.1)(react@18.3.1)(storybook@8.2.9)(typescript@5.5.3) @@ -385,7 +385,7 @@ importers: version: 3.0.0 css-loader: specifier: ^6.8.1 - version: 6.11.0(webpack@5.88.1) + version: 6.11.0(webpack@5.94.0) eslint: specifier: ^8.56.0 version: 8.56.0 @@ -755,8 +755,8 @@ importers: specifier: ^3.2.0 version: 3.2.0 '@size-limit/preset-big-lib': - specifier: ^8.2.6 - version: 8.2.6(size-limit@8.2.6) + specifier: ^11.1.4 + version: 11.1.4(size-limit@11.1.4) '@testing-library/react': specifier: ^16.0.0 version: 16.0.0(@testing-library/dom@10.3.1)(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) @@ -803,8 +803,8 @@ importers: specifier: 0.4.0 version: 0.4.0(rollup@4.18.0) size-limit: - specifier: ^8.2.6 - version: 8.2.6 + specifier: ^11.1.4 + version: 11.1.4 typescript: specifier: ^5.5.3 version: 5.5.3 @@ -825,8 +825,8 @@ importers: specifier: ^0.15.3 version: 0.15.3 '@size-limit/preset-big-lib': - specifier: ^8.2.6 - version: 8.2.6(size-limit@8.2.6) + specifier: ^11.1.4 + version: 11.1.4(size-limit@11.1.4) '@testing-library/react': specifier: ^16.0.0 version: 16.0.0(@testing-library/dom@10.3.1)(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1)(react@18.3.1) @@ -861,8 +861,8 @@ importers: specifier: ^4.18.0 version: 4.18.0 size-limit: - specifier: ^8.2.6 - version: 8.2.6 + specifier: ^11.1.4 + version: 11.1.4 tinyspy: specifier: ^3.0.0 version: 3.0.0 @@ -1399,7 +1399,7 @@ packages: '@babel/core': 7.24.7 '@babel/helper-compilation-targets': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - debug: 4.3.5(supports-color@6.1.0) + debug: 4.3.6 lodash.debounce: 4.0.8 resolve: 1.22.8 semver: 6.3.1 @@ -6657,14 +6657,14 @@ packages: - typescript dev: true - /@mdx-js/loader@3.0.1(webpack@5.88.1): + /@mdx-js/loader@3.0.1(webpack@5.94.0): resolution: {integrity: sha512-YbYUt7YyEOdFxhyuCWmLKf5vKhID/hJAojEUnheJk4D8iYVLFQw+BAoBWru/dHGch1omtmZOPstsmKPyBF68Tw==} peerDependencies: webpack: '>=5' dependencies: '@mdx-js/mdx': 3.0.1 source-map: 0.7.4 - webpack: 5.88.1(esbuild@0.21.5) + webpack: 5.94.0(esbuild@0.21.5) transitivePeerDependencies: - supports-color dev: true @@ -6882,7 +6882,7 @@ packages: '@mdx-js/react': optional: true dependencies: - '@mdx-js/loader': 3.0.1(webpack@5.88.1) + '@mdx-js/loader': 3.0.1(webpack@5.94.0) '@mdx-js/react': 3.0.1(@types/react@18.3.3)(react@18.3.1) source-map: 0.7.4 dev: true @@ -7339,7 +7339,7 @@ packages: dependencies: playwright: 1.44.1 - /@pmmmwh/react-refresh-webpack-plugin@0.5.15(react-refresh@0.14.2)(webpack@5.88.1): + /@pmmmwh/react-refresh-webpack-plugin@0.5.15(react-refresh@0.14.2)(webpack@5.94.0): resolution: {integrity: sha512-LFWllMA55pzB9D34w/wXUCf8+c+IYKuJDgxiZ3qMhl64KRMBHYM1I3VdGaD2BV5FNPV2/S2596bppxHbv2ZydQ==} engines: {node: '>= 10.13'} peerDependencies: @@ -7373,13 +7373,47 @@ packages: react-refresh: 0.14.2 schema-utils: 4.2.0 source-map: 0.7.4 - webpack: 5.88.1(esbuild@0.21.5) + webpack: 5.94.0(esbuild@0.21.5) dev: true /@popperjs/core@2.11.8: resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} dev: false + /@puppeteer/browsers@2.2.2: + resolution: {integrity: sha512-hZ/JhxPIceWaGSEzUZp83/8M49CoxlkuThfTR7t4AoCu5+ZvJ3vktLm60Otww2TXeROB5igiZ8D9oPQh6ckBVg==} + engines: {node: '>=18'} + hasBin: true + dependencies: + debug: 4.3.4 + extract-zip: 2.0.1 + progress: 2.0.3 + proxy-agent: 6.4.0 + semver: 7.6.0 + tar-fs: 3.0.5 + unbzip2-stream: 1.4.3 + yargs: 17.7.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@puppeteer/browsers@2.3.1: + resolution: {integrity: sha512-uK7o3hHkK+naEobMSJ+2ySYyXtQkBxIH8Gn4MK9ciePjNV+Pf+PgY/W7iPzn2MTjl3stcYB5AlcTmPYw7AXDwA==} + engines: {node: '>=18'} + hasBin: true + dependencies: + debug: 4.3.6 + extract-zip: 2.0.1 + progress: 2.0.3 + proxy-agent: 6.4.0 + semver: 7.6.3 + tar-fs: 3.0.6 + unbzip2-stream: 1.4.3 + yargs: 17.7.2 + transitivePeerDependencies: + - supports-color + dev: true + /@radix-ui/number@1.1.0: resolution: {integrity: sha512-V3gRzhVNU1ldS5XhAPTom1fOIo4ccrjjJgmE+LI2h/WaFpHmx0MQApT+KZHnx8abG6Avtfcz4WoEciMnpFT3HQ==} dev: false @@ -8588,29 +8622,27 @@ packages: - supports-color dev: true - /@size-limit/file@8.2.6(size-limit@8.2.6): - resolution: {integrity: sha512-B7ayjxiJsbtXdIIWazJkB5gezi5WBMecdHTFPMDhI3NwEML1RVvUjAkrb1mPAAkIpt2LVHPnhdCUHjqDdjugwg==} - engines: {node: ^14.0.0 || ^16.0.0 || >=18.0.0} + /@size-limit/file@11.1.4(size-limit@11.1.4): + resolution: {integrity: sha512-QxnGj9cxhCEuqMAV01gqonXIKcc+caZqFHZpV51oL2ZJNGSPP9Q/yyf+7HbVe00faOFd1dZZwMwzZmX7HQ9LbA==} + engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: - size-limit: 8.2.6 + size-limit: 11.1.4 dependencies: - semver: 7.5.3 - size-limit: 8.2.6 + size-limit: 11.1.4 dev: true - /@size-limit/preset-big-lib@8.2.6(size-limit@8.2.6): - resolution: {integrity: sha512-63a+yos0QNMVCfx1OWnxBrdQVTlBVGzW5fDXwpWq/hKfP3B89XXHYGeL2Z2f8IXSVeGkAHXnDcTZyIPRaXffVg==} + /@size-limit/preset-big-lib@11.1.4(size-limit@11.1.4): + resolution: {integrity: sha512-bejHzQXW+RkWNmCRsny/MmmjshQsU0/vVKSYnZKiu8J2zWIpxZ2pFT79ud+pCQoXeH11rI/YObItcaPf+URAng==} peerDependencies: - size-limit: 8.2.6 + size-limit: 11.1.4 dependencies: - '@size-limit/file': 8.2.6(size-limit@8.2.6) - '@size-limit/time': 8.2.6(size-limit@8.2.6) - '@size-limit/webpack': 8.2.6(size-limit@8.2.6) - size-limit: 8.2.6 + '@size-limit/file': 11.1.4(size-limit@11.1.4) + '@size-limit/time': 11.1.4(size-limit@11.1.4) + '@size-limit/webpack': 11.1.4(size-limit@11.1.4) + size-limit: 11.1.4 transitivePeerDependencies: - '@swc/core' - bufferutil - - encoding - esbuild - supports-color - uglify-js @@ -8618,31 +8650,29 @@ packages: - webpack-cli dev: true - /@size-limit/time@8.2.6(size-limit@8.2.6): - resolution: {integrity: sha512-fUEPvz7Uq6+oUQxSYbNlJt3tTgQBl1VY21USi/B7ebdnVKLnUx1JyPI9v7imN6XEkB2VpJtnYgjFeLgNrirzMA==} - engines: {node: ^14.0.0 || ^16.0.0 || >=18.0.0} + /@size-limit/time@11.1.4(size-limit@11.1.4): + resolution: {integrity: sha512-TxEeDZrNWQ1uwFjQT0d4NHUG7MGGrjnKSn9CwuF+Wb4AeZWy1nb93HjPCfe8LbQedV7xRY6dV/oSiARYvReuYg==} + engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: - size-limit: 8.2.6 + size-limit: 11.1.4 dependencies: - estimo: 2.3.6 - react: 17.0.2 - size-limit: 8.2.6 + estimo: 3.0.3 + size-limit: 11.1.4 transitivePeerDependencies: - bufferutil - - encoding - supports-color - utf-8-validate dev: true - /@size-limit/webpack@8.2.6(size-limit@8.2.6): - resolution: {integrity: sha512-y2sB66m5sJxIjZ8SEAzpWbiw3/+bnQHDHfk9cSbV5ChKklq02AlYg8BS5KxGWmMpdyUo4TzpjSCP9oEudY+hxQ==} - engines: {node: ^14.0.0 || ^16.0.0 || >=18.0.0} + /@size-limit/webpack@11.1.4(size-limit@11.1.4): + resolution: {integrity: sha512-ikkvhPID8smxuBpO0VO2cgTutHcY3INPtVO4z9Qzb/ZdLV4zQ0MwtxWA9mZz92p+wLvTBKkMrewCdUYO2CIIaQ==} + engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: - size-limit: 8.2.6 + size-limit: 11.1.4 dependencies: - nanoid: 3.3.6 - size-limit: 8.2.6 - webpack: 5.88.1 + nanoid: 5.0.7 + size-limit: 11.1.4 + webpack: 5.94.0 transitivePeerDependencies: - '@swc/core' - esbuild @@ -8792,7 +8822,7 @@ packages: storybook: 8.2.9(@babel/preset-env@7.24.7) dev: true - /@storybook/nextjs@8.2.9(@jest/globals@29.7.0)(@types/jest@29.5.12)(esbuild@0.21.5)(jest@29.7.0)(next@14.2.4)(react-dom@18.3.1)(react@18.3.1)(storybook@8.2.9)(typescript@5.5.3)(webpack@5.88.1): + /@storybook/nextjs@8.2.9(@jest/globals@29.7.0)(@types/jest@29.5.12)(esbuild@0.21.5)(jest@29.7.0)(next@14.2.4)(react-dom@18.3.1)(react@18.3.1)(storybook@8.2.9)(typescript@5.5.3)(webpack@5.94.0): resolution: {integrity: sha512-grWabBWTKp0ltJv+DuHtIH88oVIq2xFeTchVaA6mC9jqxmOilKe2KAQA2QNH6/5CXrGo+MuUO62UsHrYOIwsSg==} engines: {node: '>=18.0.0'} peerDependencies: @@ -8821,38 +8851,38 @@ packages: '@babel/preset-react': 7.24.7(@babel/core@7.24.8) '@babel/preset-typescript': 7.24.7(@babel/core@7.24.8) '@babel/runtime': 7.24.8 - '@pmmmwh/react-refresh-webpack-plugin': 0.5.15(react-refresh@0.14.2)(webpack@5.88.1) + '@pmmmwh/react-refresh-webpack-plugin': 0.5.15(react-refresh@0.14.2)(webpack@5.94.0) '@storybook/builder-webpack5': 8.2.9(esbuild@0.21.5)(storybook@8.2.9)(typescript@5.5.3) '@storybook/preset-react-webpack': 8.2.9(esbuild@0.21.5)(react-dom@18.3.1)(react@18.3.1)(storybook@8.2.9)(typescript@5.5.3) '@storybook/react': 8.2.9(react-dom@18.3.1)(react@18.3.1)(storybook@8.2.9)(typescript@5.5.3) '@storybook/test': 8.2.9(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0)(storybook@8.2.9) '@types/node': 18.19.44 '@types/semver': 7.5.0 - babel-loader: 9.1.3(@babel/core@7.24.8)(webpack@5.88.1) - css-loader: 6.11.0(webpack@5.88.1) + babel-loader: 9.1.3(@babel/core@7.24.8)(webpack@5.94.0) + css-loader: 6.11.0(webpack@5.94.0) find-up: 5.0.0 fs-extra: 11.2.0 image-size: 1.0.2 loader-utils: 3.2.1 next: 14.2.4(@babel/core@7.24.8)(@playwright/test@1.44.1)(react-dom@18.3.1)(react@18.3.1) - node-polyfill-webpack-plugin: 2.0.1(webpack@5.88.1) + node-polyfill-webpack-plugin: 2.0.1(webpack@5.94.0) pnp-webpack-plugin: 1.7.0(typescript@5.5.3) postcss: 8.4.39 - postcss-loader: 8.1.1(postcss@8.4.39)(typescript@5.5.3)(webpack@5.88.1) + postcss-loader: 8.1.1(postcss@8.4.39)(typescript@5.5.3)(webpack@5.94.0) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) react-refresh: 0.14.2 resolve-url-loader: 5.0.0 - sass-loader: 12.6.0(webpack@5.88.1) + sass-loader: 12.6.0(webpack@5.94.0) semver: 7.6.2 storybook: 8.2.9(@babel/preset-env@7.24.7) - style-loader: 3.3.4(webpack@5.88.1) + style-loader: 3.3.4(webpack@5.94.0) styled-jsx: 5.1.1(@babel/core@7.24.8)(react@18.3.1) ts-dedent: 2.2.0 tsconfig-paths: 4.2.0 tsconfig-paths-webpack-plugin: 4.1.0 typescript: 5.5.3 - webpack: 5.88.1(esbuild@0.21.5) + webpack: 5.94.0(esbuild@0.21.5) optionalDependencies: sharp: 0.33.4 transitivePeerDependencies: @@ -9167,6 +9197,10 @@ packages: engines: {node: '>= 10'} dev: true + /@tootallnate/quickjs-emscripten@0.23.0: + resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} + dev: true + /@tufjs/canonical-json@2.0.0: resolution: {integrity: sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==} engines: {node: ^16.14.0 || >=18.0.0} @@ -10188,6 +10222,13 @@ packages: '@webassemblyjs/helper-wasm-bytecode': 1.11.6 dev: true + /@webassemblyjs/ast@1.12.1: + resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} + dependencies: + '@webassemblyjs/helper-numbers': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + dev: true + /@webassemblyjs/ast@1.9.0: resolution: {integrity: sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==} dependencies: @@ -10216,6 +10257,10 @@ packages: resolution: {integrity: sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==} dev: true + /@webassemblyjs/helper-buffer@1.12.1: + resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==} + dev: true + /@webassemblyjs/helper-buffer@1.9.0: resolution: {integrity: sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==} dev: false @@ -10261,6 +10306,15 @@ packages: '@webassemblyjs/wasm-gen': 1.11.6 dev: true + /@webassemblyjs/helper-wasm-section@1.12.1: + resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==} + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/wasm-gen': 1.12.1 + dev: true + /@webassemblyjs/helper-wasm-section@1.9.0: resolution: {integrity: sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==} dependencies: @@ -10315,6 +10369,19 @@ packages: '@webassemblyjs/wast-printer': 1.11.6 dev: true + /@webassemblyjs/wasm-edit@1.12.1: + resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==} + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/helper-wasm-section': 1.12.1 + '@webassemblyjs/wasm-gen': 1.12.1 + '@webassemblyjs/wasm-opt': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + '@webassemblyjs/wast-printer': 1.12.1 + dev: true + /@webassemblyjs/wasm-edit@1.9.0: resolution: {integrity: sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==} dependencies: @@ -10338,6 +10405,16 @@ packages: '@webassemblyjs/utf8': 1.11.6 dev: true + /@webassemblyjs/wasm-gen@1.12.1: + resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==} + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/ieee754': 1.11.6 + '@webassemblyjs/leb128': 1.11.6 + '@webassemblyjs/utf8': 1.11.6 + dev: true + /@webassemblyjs/wasm-gen@1.9.0: resolution: {integrity: sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==} dependencies: @@ -10357,6 +10434,15 @@ packages: '@webassemblyjs/wasm-parser': 1.11.6 dev: true + /@webassemblyjs/wasm-opt@1.12.1: + resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==} + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/wasm-gen': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + dev: true + /@webassemblyjs/wasm-opt@1.9.0: resolution: {integrity: sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==} dependencies: @@ -10377,6 +10463,17 @@ packages: '@webassemblyjs/utf8': 1.11.6 dev: true + /@webassemblyjs/wasm-parser@1.12.1: + resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==} + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-api-error': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/ieee754': 1.11.6 + '@webassemblyjs/leb128': 1.11.6 + '@webassemblyjs/utf8': 1.11.6 + dev: true + /@webassemblyjs/wasm-parser@1.9.0: resolution: {integrity: sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==} dependencies: @@ -10406,6 +10503,13 @@ packages: '@xtuc/long': 4.2.2 dev: true + /@webassemblyjs/wast-printer@1.12.1: + resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==} + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@xtuc/long': 4.2.2 + dev: true + /@webassemblyjs/wast-printer@1.9.0: resolution: {integrity: sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==} dependencies: @@ -10500,6 +10604,14 @@ packages: acorn: 8.12.0 dev: true + /acorn-import-attributes@1.9.5(acorn@8.12.0): + resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} + peerDependencies: + acorn: ^8 + dependencies: + acorn: 8.12.0 + dev: true + /acorn-jsx@5.3.2(acorn@7.4.1): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -11057,6 +11169,13 @@ packages: resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} dev: true + /ast-types@0.13.4: + resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} + engines: {node: '>=4'} + dependencies: + tslib: 2.6.3 + dev: true + /ast-types@0.14.2: resolution: {integrity: sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==} engines: {node: '>=4'} @@ -11165,6 +11284,10 @@ packages: dequal: 2.0.3 dev: true + /b4a@1.6.6: + resolution: {integrity: sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==} + dev: true + /babel-core@7.0.0-bridge.0(@babel/core@7.24.7): resolution: {integrity: sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==} peerDependencies: @@ -11215,7 +11338,7 @@ packages: webpack: 4.43.0 dev: false - /babel-loader@9.1.3(@babel/core@7.24.8)(webpack@5.88.1): + /babel-loader@9.1.3(@babel/core@7.24.8)(webpack@5.94.0): resolution: {integrity: sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==} engines: {node: '>= 14.15.0'} peerDependencies: @@ -11225,7 +11348,7 @@ packages: '@babel/core': 7.24.8 find-cache-dir: 4.0.0 schema-utils: 4.2.0 - webpack: 5.88.1(esbuild@0.21.5) + webpack: 5.94.0(esbuild@0.21.5) dev: true /babel-plugin-istanbul@6.1.1: @@ -11462,6 +11585,44 @@ packages: /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + /bare-events@2.4.2: + resolution: {integrity: sha512-qMKFd2qG/36aA4GwvKq8MxnPgCQAmBWmSyLWsJcbn8v03wvIPQ/hG1Ms8bPzndZxMDoHpxez5VOS+gC9Yi24/Q==} + requiresBuild: true + dev: true + optional: true + + /bare-fs@2.3.1: + resolution: {integrity: sha512-W/Hfxc/6VehXlsgFtbB5B4xFcsCl+pAh30cYhoFyXErf6oGrwjh8SwiPAdHgpmWonKuYpZgGywN0SXt7dgsADA==} + requiresBuild: true + dependencies: + bare-events: 2.4.2 + bare-path: 2.1.3 + bare-stream: 2.1.3 + dev: true + optional: true + + /bare-os@2.4.0: + resolution: {integrity: sha512-v8DTT08AS/G0F9xrhyLtepoo9EJBJ85FRSMbu1pQUlAf6A8T0tEEQGMVObWeqpjhSPXsE0VGlluFBJu2fdoTNg==} + requiresBuild: true + dev: true + optional: true + + /bare-path@2.1.3: + resolution: {integrity: sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA==} + requiresBuild: true + dependencies: + bare-os: 2.4.0 + dev: true + optional: true + + /bare-stream@2.1.3: + resolution: {integrity: sha512-tiDAH9H/kP+tvNO5sczyn9ZAA7utrSMobyDchsnyyXBuUe2FSQWbxhtuHB8jwpHYYevVo2UJpcmvvjrbHboUUQ==} + requiresBuild: true + dependencies: + streamx: 2.19.0 + dev: true + optional: true + /base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} @@ -11484,6 +11645,11 @@ packages: dependencies: safe-buffer: 5.1.2 + /basic-ftp@5.0.5: + resolution: {integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==} + engines: {node: '>=10.0.0'} + dev: true + /batch@0.6.1: resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} dev: false @@ -12225,6 +12391,17 @@ packages: resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} engines: {node: '>=6.0'} + /chromium-bidi@0.5.17(devtools-protocol@0.0.1262051): + resolution: {integrity: sha512-BqOuIWUgTPj8ayuBFJUYCCuwIcwjBsb3/614P7tt1bEPJ4i1M0kCdIl0Wi9xhtswBXnfO2bTpTMkHD71H8rJMg==} + peerDependencies: + devtools-protocol: '*' + dependencies: + devtools-protocol: 0.0.1262051 + mitt: 3.0.1 + urlpattern-polyfill: 10.0.0 + zod: 3.22.4 + dev: true + /ci-info@2.0.0: resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} dev: false @@ -12505,6 +12682,11 @@ packages: engines: {node: '>=14'} dev: true + /commander@12.1.0: + resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} + engines: {node: '>=18'} + dev: true + /commander@2.13.0: resolution: {integrity: sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==} dev: false @@ -12537,6 +12719,7 @@ packages: /commander@9.5.0: resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} engines: {node: ^12.20.0 || >=14} + dev: false /common-ancestor-path@1.0.1: resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} @@ -12918,6 +13101,7 @@ packages: node-fetch: 2.6.7 transitivePeerDependencies: - encoding + dev: false /cross-spawn@5.1.0: resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} @@ -13045,6 +13229,29 @@ packages: webpack: 5.88.1(esbuild@0.21.5) dev: true + /css-loader@6.11.0(webpack@5.94.0): + resolution: {integrity: sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==} + engines: {node: '>= 12.13.0'} + peerDependencies: + '@rspack/core': 0.x || 1.x + webpack: ^5.0.0 + peerDependenciesMeta: + '@rspack/core': + optional: true + webpack: + optional: true + dependencies: + icss-utils: 5.1.0(postcss@8.4.39) + postcss: 8.4.39 + postcss-modules-extract-imports: 3.1.0(postcss@8.4.39) + postcss-modules-local-by-default: 4.0.5(postcss@8.4.39) + postcss-modules-scope: 3.2.0(postcss@8.4.39) + postcss-modules-values: 4.0.0(postcss@8.4.39) + postcss-value-parser: 4.2.0 + semver: 7.6.2 + webpack: 5.94.0(esbuild@0.21.5) + dev: true + /css-select-base-adapter@0.1.1: resolution: {integrity: sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==} dev: false @@ -13517,6 +13724,11 @@ packages: engines: {node: '>= 12'} dev: true + /data-uri-to-buffer@6.0.2: + resolution: {integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==} + engines: {node: '>= 14'} + dev: true + /data-urls@3.0.2: resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} engines: {node: '>=12'} @@ -13607,6 +13819,17 @@ packages: ms: 2.1.2 supports-color: 6.1.0 + /debug@4.3.6: + resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + /decamelize@1.2.0: resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} engines: {node: '>=0.10.0'} @@ -13779,6 +14002,15 @@ packages: resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} dev: true + /degenerator@5.0.1: + resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==} + engines: {node: '>= 14'} + dependencies: + ast-types: 0.13.4 + escodegen: 2.1.0 + esprima: 4.0.1 + dev: true + /del@4.1.1: resolution: {integrity: sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==} engines: {node: '>=6'} @@ -13887,8 +14119,8 @@ packages: dependencies: dequal: 2.0.3 - /devtools-protocol@0.0.981744: - resolution: {integrity: sha512-0cuGS8+jhR67Fy7qG3i3Pc7Aw494sb9yG9QgpG97SFVWwolgYjlhJg7n+UaHxOQT30d1TYu/EYe9k01ivLErIg==} + /devtools-protocol@0.0.1262051: + resolution: {integrity: sha512-YJe4CT5SA8on3Spa+UDtNhEqtuV6Epwz3OZ4HQVLhlRccpZ9/PAYk0/cy/oKxFKRrZPBUPyxympQci4yWNWZ9g==} dev: true /didyoumean@1.2.2: @@ -14160,6 +14392,14 @@ packages: tapable: 2.2.1 dev: true + /enhanced-resolve@5.17.1: + resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} + engines: {node: '>=10.13.0'} + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + dev: true + /entities@2.2.0: resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} @@ -15023,19 +15263,18 @@ packages: dependencies: estraverse: 5.3.0 - /estimo@2.3.6: - resolution: {integrity: sha512-aPd3VTQAL1TyDyhFfn6fqBTJ9WvbRZVN4Z29Buk6+P6xsI0DuF5Mh3dGv6kYCUxWnZkB4Jt3aYglUxOtuwtxoA==} - engines: {node: '>=12'} + /estimo@3.0.3: + resolution: {integrity: sha512-qSibrDHo82yvmgeOW7onGgeOzS/nnqa8r2exQ8LyTSH8rAma10VBJE+hPSdukV1nQrqFvEz7BVe5puUK2LZJXg==} + engines: {node: '>=18'} hasBin: true dependencies: '@sitespeed.io/tracium': 0.3.3 - commander: 9.5.0 - find-chrome-bin: 0.1.0 - nanoid: 3.3.7 - puppeteer-core: 13.7.0 + commander: 12.1.0 + find-chrome-bin: 2.0.2 + nanoid: 5.0.7 + puppeteer-core: 22.6.5 transitivePeerDependencies: - bufferutil - - encoding - supports-color - utf-8-validate dev: true @@ -15572,7 +15811,7 @@ packages: engines: {node: '>= 10.17.0'} hasBin: true dependencies: - debug: 4.3.5(supports-color@6.1.0) + debug: 4.3.6 get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: @@ -15588,6 +15827,10 @@ packages: resolution: {integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==} dev: true + /fast-fifo@1.3.2: + resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} + dev: true + /fast-glob@3.3.2: resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} @@ -15834,9 +16077,13 @@ packages: pkg-dir: 7.0.0 dev: true - /find-chrome-bin@0.1.0: - resolution: {integrity: sha512-XoFZwaEn1R3pE6zNG8kH64l2e093hgB9+78eEKPmJK0o1EXEou+25cEWdtu2qq4DBQPDSe90VJAWVI2Sz9pX6Q==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + /find-chrome-bin@2.0.2: + resolution: {integrity: sha512-KlggCilbbvgETk/WEq9NG894U8yu4erIW0SjMm1sMPm2xihCHeNoybpzGoxEzHRthwF3XrKOgHYtfqgJzpCH2w==} + engines: {node: '>=18.0.0'} + dependencies: + '@puppeteer/browsers': 2.3.1 + transitivePeerDependencies: + - supports-color dev: true /find-up@3.0.0: @@ -16324,6 +16571,18 @@ packages: resolve-pkg-maps: 1.0.0 dev: true + /get-uri@6.0.3: + resolution: {integrity: sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==} + engines: {node: '>= 14'} + dependencies: + basic-ftp: 5.0.5 + data-uri-to-buffer: 6.0.2 + debug: 4.3.6 + fs-extra: 11.2.0 + transitivePeerDependencies: + - supports-color + dev: true + /get-value@2.0.6: resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} engines: {node: '>=0.10.0'} @@ -21057,6 +21316,10 @@ packages: through2: 2.0.5 dev: false + /mitt@3.0.1: + resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + dev: true + /mixin-deep@1.3.2: resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} engines: {node: '>=0.10.0'} @@ -21171,17 +21434,17 @@ packages: dev: false optional: true - /nanoid@3.3.6: - resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} - 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.7: + resolution: {integrity: sha512-oLxFY2gd2IqnjcYyOXD8XGCftpGtZP2AbHbOkthDkvRywH5ayNtPVy9YlOPcHckXzbLTCHpkb7FB+yuxKV13pQ==} + engines: {node: ^18 || >=20} + hasBin: true + dev: true + /nanomatch@1.2.13(supports-color@6.1.0): resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} engines: {node: '>=0.10.0'} @@ -21204,7 +21467,7 @@ packages: /nanospinner@1.1.0: resolution: {integrity: sha512-yFvNYMig4AthKYfHFl1sLj7B2nkHL4lzdig4osvl9/LdGbXwrdFRoqBS98gsEsOakr0yH+r5NZ/1Y9gdVB8trA==} dependencies: - picocolors: 1.0.0 + picocolors: 1.0.1 dev: true /natural-compare-lite@1.4.0: @@ -21233,6 +21496,11 @@ packages: resolution: {integrity: sha512-SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A==} dev: false + /netmask@2.0.2: + resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} + engines: {node: '>= 0.4.0'} + dev: true + /new-github-release-url@2.0.0: resolution: {integrity: sha512-NHDDGYudnvRutt/VhKFlX26IotXe1w0cmkDm6JGquh5bz/bDTw0LufSmH/GxTjEdpHEO+bVKFTwdrcGa/9XlKQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -21526,6 +21794,7 @@ packages: optional: true dependencies: whatwg-url: 5.0.0 + dev: false /node-fetch@2.6.9: resolution: {integrity: sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==} @@ -21614,7 +21883,7 @@ packages: vm-browserify: 1.1.2 dev: false - /node-polyfill-webpack-plugin@2.0.1(webpack@5.88.1): + /node-polyfill-webpack-plugin@2.0.1(webpack@5.94.0): resolution: {integrity: sha512-ZUMiCnZkP1LF0Th2caY6J/eKKoA0TefpoVa68m/LQU1I/mE8rGt4fNYGgNuCcK+aG8P8P43nbeJ2RqJMOL/Y1A==} engines: {node: '>=12'} peerDependencies: @@ -21645,7 +21914,7 @@ packages: url: 0.11.0 util: 0.12.5 vm-browserify: 1.1.2 - webpack: 5.88.1(esbuild@0.21.5) + webpack: 5.94.0(esbuild@0.21.5) dev: true /node-releases@1.1.77: @@ -21762,7 +22031,7 @@ packages: dependencies: hosted-git-info: 6.1.1 proc-log: 3.0.0 - semver: 7.6.2 + semver: 7.6.3 validate-npm-package-name: 5.0.1 dev: true @@ -22326,6 +22595,30 @@ packages: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} + /pac-proxy-agent@7.0.2: + resolution: {integrity: sha512-BFi3vZnO9X5Qt6NRz7ZOaPja3ic0PhlsmCRYLOpN11+mWBCR6XJDqW5RF3j8jm4WGGQZtBA+bTfxYzeKW73eHg==} + engines: {node: '>= 14'} + dependencies: + '@tootallnate/quickjs-emscripten': 0.23.0 + agent-base: 7.1.1 + debug: 4.3.6 + get-uri: 6.0.3 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.5 + pac-resolver: 7.0.1 + socks-proxy-agent: 8.0.4 + transitivePeerDependencies: + - supports-color + dev: true + + /pac-resolver@7.0.1: + resolution: {integrity: sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==} + engines: {node: '>= 14'} + dependencies: + degenerator: 5.0.1 + netmask: 2.0.2 + dev: true + /package-json-from-dist@1.0.0: resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} @@ -22632,10 +22925,6 @@ packages: resolution: {integrity: sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==} dev: false - /picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - dev: true - /picocolors@1.0.1: resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} @@ -22889,7 +23178,7 @@ packages: postcss: 8.4.39 yaml: 2.4.5 - /postcss-loader@8.1.1(postcss@8.4.39)(typescript@5.5.3)(webpack@5.88.1): + /postcss-loader@8.1.1(postcss@8.4.39)(typescript@5.5.3)(webpack@5.94.0): resolution: {integrity: sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==} engines: {node: '>= 18.12.0'} peerDependencies: @@ -22906,7 +23195,7 @@ packages: jiti: 1.21.6 postcss: 8.4.39 semver: 7.6.2 - webpack: 5.88.1(esbuild@0.21.5) + webpack: 5.94.0(esbuild@0.21.5) transitivePeerDependencies: - typescript dev: true @@ -23517,6 +23806,22 @@ packages: forwarded: 0.2.0 ipaddr.js: 1.9.1 + /proxy-agent@6.4.0: + resolution: {integrity: sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ==} + engines: {node: '>= 14'} + dependencies: + agent-base: 7.1.1 + debug: 4.3.6 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.5 + lru-cache: 7.18.3 + pac-proxy-agent: 7.0.2 + proxy-from-env: 1.1.0 + socks-proxy-agent: 8.0.4 + transitivePeerDependencies: + - supports-color + dev: true + /proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} dev: true @@ -23588,25 +23893,17 @@ packages: engines: {node: '>=6'} dev: true - /puppeteer-core@13.7.0: - resolution: {integrity: sha512-rXja4vcnAzFAP1OVLq/5dWNfwBGuzcOARJ6qGV7oAZhnLmVRU8G5MsdeQEAOy332ZhkIOnn9jp15R89LKHyp2Q==} - engines: {node: '>=10.18.1'} + /puppeteer-core@22.6.5: + resolution: {integrity: sha512-s0/5XkAWe0/dWISiljdrybjwDCHhgN31Nu/wznOZPKeikgcJtZtbvPKBz0t802XWqfSQnQDt3L6xiAE5JLlfuw==} + engines: {node: '>=18'} dependencies: - cross-fetch: 3.1.5 + '@puppeteer/browsers': 2.2.2 + chromium-bidi: 0.5.17(devtools-protocol@0.0.1262051) debug: 4.3.4 - devtools-protocol: 0.0.981744 - extract-zip: 2.0.1 - https-proxy-agent: 5.0.1 - pkg-dir: 4.2.0 - progress: 2.0.3 - proxy-from-env: 1.1.0 - rimraf: 3.0.2 - tar-fs: 2.1.1 - unbzip2-stream: 1.4.3 - ws: 8.5.0 + devtools-protocol: 0.0.1262051 + ws: 8.16.0 transitivePeerDependencies: - bufferutil - - encoding - supports-color - utf-8-validate dev: true @@ -23646,6 +23943,10 @@ packages: /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + /queue-tick@1.0.1: + resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} + dev: true + /queue@6.0.2: resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==} dependencies: @@ -24004,14 +24305,6 @@ packages: tslib: 2.6.3 dev: false - /react@17.0.2: - resolution: {integrity: sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==} - engines: {node: '>=0.10.0'} - dependencies: - loose-envify: 1.4.0 - object-assign: 4.1.1 - dev: true - /react@18.1.0: resolution: {integrity: sha512-4oL8ivCz5ZEPyclFQXaNksK3adutVS8l2xzZU0cqEFrE9Sb7fC0EFK5uEk74wIreL1DERyjvsU915j1pcT2uEQ==} engines: {node: '>=0.10.0'} @@ -24815,7 +25108,7 @@ packages: /safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - /sass-loader@12.6.0(webpack@5.88.1): + /sass-loader@12.6.0(webpack@5.94.0): resolution: {integrity: sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==} engines: {node: '>= 12.13.0'} peerDependencies: @@ -24836,7 +25129,7 @@ packages: dependencies: klona: 2.0.6 neo-async: 2.6.2 - webpack: 5.88.1(esbuild@0.21.5) + webpack: 5.94.0(esbuild@0.21.5) dev: true /sax@1.2.4: @@ -24957,8 +25250,8 @@ packages: lru-cache: 6.0.0 dev: false - /semver@7.5.3: - resolution: {integrity: sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==} + /semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} engines: {node: '>=10'} hasBin: true dependencies: @@ -24970,6 +25263,12 @@ packages: engines: {node: '>=10'} hasBin: true + /semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} + hasBin: true + dev: true + /send@0.18.0(supports-color@6.1.0): resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} engines: {node: '>= 0.8.0'} @@ -25229,17 +25528,18 @@ packages: /sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - /size-limit@8.2.6: - resolution: {integrity: sha512-zpznim/tX/NegjoQuRKgWTF4XiB0cn2qt90uJzxYNTFAqexk4b94DOAkBD3TwhC6c3kw2r0KcnA5upziVMZqDg==} - engines: {node: ^14.0.0 || ^16.0.0 || >=18.0.0} + /size-limit@11.1.4: + resolution: {integrity: sha512-V2JAI/Z7h8sEuxU3V+Ig3XKA5FcYbI4CZ7sh6s7wvuy+TUwDZYqw7sAqrHhQ4cgcNfPKIAHAaH8VaqOdbcwJDA==} + engines: {node: ^18.0.0 || >=20.0.0} hasBin: true dependencies: bytes-iec: 3.1.1 - chokidar: 3.5.3 - globby: 11.1.0 - lilconfig: 2.1.0 + chokidar: 3.6.0 + globby: 14.0.2 + jiti: 1.21.6 + lilconfig: 3.1.2 nanospinner: 1.1.0 - picocolors: 1.0.0 + picocolors: 1.0.1 dev: true /skin-tone@2.0.0: @@ -25339,7 +25639,7 @@ packages: engines: {node: '>= 14'} dependencies: agent-base: 7.1.1 - debug: 4.3.5(supports-color@6.1.0) + debug: 4.3.6 socks: 2.8.3 transitivePeerDependencies: - supports-color @@ -25659,6 +25959,16 @@ packages: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} engines: {node: '>=10.0.0'} + /streamx@2.19.0: + resolution: {integrity: sha512-5z6CNR4gtkPbwlxyEqoDGDmWIzoNJqCBt4Eac1ICP9YaIT08ct712cFj0u1rx4F8luAuL+3Qc+RFIdI4OX00kg==} + dependencies: + fast-fifo: 1.3.2 + queue-tick: 1.0.1 + text-decoder: 1.1.1 + optionalDependencies: + bare-events: 2.4.2 + dev: true + /string-hash@1.1.3: resolution: {integrity: sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==} dev: true @@ -25909,6 +26219,15 @@ packages: webpack: 5.88.1(esbuild@0.21.5) dev: true + /style-loader@3.3.4(webpack@5.94.0): + resolution: {integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^5.0.0 + dependencies: + webpack: 5.94.0(esbuild@0.21.5) + dev: true + /style-to-object@0.4.4: resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==} dependencies: @@ -26129,6 +26448,26 @@ packages: tar-stream: 2.2.0 dev: true + /tar-fs@3.0.5: + resolution: {integrity: sha512-JOgGAmZyMgbqpLwct7ZV8VzkEB6pxXFBVErLtb+XCOqzc6w1xiWKI9GVd6bwk68EX7eJ4DWmfXVmq8K2ziZTGg==} + dependencies: + pump: 3.0.0 + tar-stream: 3.1.7 + optionalDependencies: + bare-fs: 2.3.1 + bare-path: 2.1.3 + dev: true + + /tar-fs@3.0.6: + resolution: {integrity: sha512-iokBDQQkUyeXhgPYaZxmczGPhnhXZ0CmrqI+MOb/WFGS9DW5wnfrLgtjUJBvz50vQ3qfRwJ62QVoCFu8mPVu5w==} + dependencies: + pump: 3.0.0 + tar-stream: 3.1.7 + optionalDependencies: + bare-fs: 2.3.1 + bare-path: 2.1.3 + dev: true + /tar-stream@2.2.0: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} engines: {node: '>=6'} @@ -26140,6 +26479,14 @@ packages: readable-stream: 3.6.2 dev: true + /tar-stream@3.1.7: + resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} + dependencies: + b4a: 1.6.6 + fast-fifo: 1.3.2 + streamx: 2.19.0 + dev: true + /tar@6.1.14: resolution: {integrity: sha512-piERznXu0U7/pW7cdSn7hjqySIVTYT6F76icmFk7ptU7dDYlXTm5r9A6K04R2vU3olYgoKeo1Cg3eeu5nhftAw==} engines: {node: '>=10'} @@ -26269,8 +26616,8 @@ packages: - bluebird dev: false - /terser-webpack-plugin@5.3.9(esbuild@0.21.5)(webpack@5.88.1): - resolution: {integrity: sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==} + /terser-webpack-plugin@5.3.10(esbuild@0.21.5)(webpack@5.94.0): + resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} engines: {node: '>= 10.13.0'} peerDependencies: '@swc/core': '*' @@ -26290,11 +26637,35 @@ packages: jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.1 - terser: 5.18.2 - webpack: 5.88.1(esbuild@0.21.5) + terser: 5.31.6 + webpack: 5.94.0(esbuild@0.21.5) dev: true - /terser-webpack-plugin@5.3.9(webpack@5.88.1): + /terser-webpack-plugin@5.3.10(webpack@5.94.0): + resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + jest-worker: 27.5.1 + schema-utils: 3.3.0 + serialize-javascript: 6.0.1 + terser: 5.31.6 + webpack: 5.94.0 + dev: true + + /terser-webpack-plugin@5.3.9(esbuild@0.21.5)(webpack@5.88.1): resolution: {integrity: sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -26311,11 +26682,12 @@ packages: optional: true dependencies: '@jridgewell/trace-mapping': 0.3.25 + esbuild: 0.21.5 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.1 terser: 5.18.2 - webpack: 5.88.1 + webpack: 5.88.1(esbuild@0.21.5) dev: true /terser@4.8.1: @@ -26340,6 +26712,17 @@ packages: source-map-support: 0.5.21 dev: true + /terser@5.31.6: + resolution: {integrity: sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg==} + engines: {node: '>=10'} + hasBin: true + dependencies: + '@jridgewell/source-map': 0.3.5 + acorn: 8.12.0 + commander: 2.20.3 + source-map-support: 0.5.21 + dev: true + /test-exclude@6.0.0: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} @@ -26349,6 +26732,12 @@ packages: minimatch: 3.1.2 dev: true + /text-decoder@1.1.1: + resolution: {integrity: sha512-8zll7REEv4GDD3x4/0pW+ppIxSNs7H1J10IKFZsuOMscumCdM2a+toDGLPA3T+1+fLBql4zbt5z83GEQGGV5VA==} + dependencies: + b4a: 1.6.6 + dev: true + /text-extensions@2.4.0: resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==} engines: {node: '>=8'} @@ -26511,6 +26900,7 @@ packages: /tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + dev: false /tr46@3.0.0: resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} @@ -27277,6 +27667,10 @@ packages: punycode: 1.3.2 querystring: 0.2.0 + /urlpattern-polyfill@10.0.0: + resolution: {integrity: sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==} + dev: true + /use-callback-ref@1.3.2(@types/react@18.3.3)(react@18.3.1): resolution: {integrity: sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==} engines: {node: '>=10'} @@ -27764,6 +28158,14 @@ packages: graceful-fs: 4.2.11 dev: true + /watchpack@2.4.2: + resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==} + engines: {node: '>=10.13.0'} + dependencies: + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + dev: true + /wbuf@1.7.3: resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} dependencies: @@ -27796,6 +28198,7 @@ packages: /webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + dev: false /webidl-conversions@7.0.0: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} @@ -27968,7 +28371,7 @@ packages: - supports-color dev: false - /webpack@5.88.1: + /webpack@5.88.1(esbuild@0.21.5): resolution: {integrity: sha512-FROX3TxQnC/ox4N+3xQoWZzvGXSuscxR32rbzjpXgEzWudJFEJBpdlkkob2ylrv5yzzufD1zph1OoFsLtm6stQ==} engines: {node: '>=10.13.0'} hasBin: true @@ -27999,7 +28402,7 @@ packages: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.9(webpack@5.88.1) + terser-webpack-plugin: 5.3.9(esbuild@0.21.5)(webpack@5.88.1) watchpack: 2.4.0 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -28008,8 +28411,8 @@ packages: - uglify-js dev: true - /webpack@5.88.1(esbuild@0.21.5): - resolution: {integrity: sha512-FROX3TxQnC/ox4N+3xQoWZzvGXSuscxR32rbzjpXgEzWudJFEJBpdlkkob2ylrv5yzzufD1zph1OoFsLtm6stQ==} + /webpack@5.94.0: + resolution: {integrity: sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -28018,16 +28421,15 @@ packages: webpack-cli: optional: true dependencies: - '@types/eslint-scope': 3.7.4 '@types/estree': 1.0.5 - '@webassemblyjs/ast': 1.11.6 - '@webassemblyjs/wasm-edit': 1.11.6 - '@webassemblyjs/wasm-parser': 1.11.6 + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/wasm-edit': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 acorn: 8.12.0 - acorn-import-assertions: 1.9.0(acorn@8.12.0) + acorn-import-attributes: 1.9.5(acorn@8.12.0) browserslist: 4.23.2 chrome-trace-event: 1.0.3 - enhanced-resolve: 5.17.0 + enhanced-resolve: 5.17.1 es-module-lexer: 1.5.3 eslint-scope: 5.1.1 events: 3.3.0 @@ -28039,8 +28441,47 @@ packages: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.9(esbuild@0.21.5)(webpack@5.88.1) - watchpack: 2.4.0 + terser-webpack-plugin: 5.3.10(webpack@5.94.0) + watchpack: 2.4.2 + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + dev: true + + /webpack@5.94.0(esbuild@0.21.5): + resolution: {integrity: sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + dependencies: + '@types/estree': 1.0.5 + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/wasm-edit': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + acorn: 8.12.0 + acorn-import-attributes: 1.9.5(acorn@8.12.0) + browserslist: 4.23.2 + chrome-trace-event: 1.0.3 + enhanced-resolve: 5.17.1 + es-module-lexer: 1.5.3 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 3.3.0 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.10(esbuild@0.21.5)(webpack@5.94.0) + watchpack: 2.4.2 webpack-sources: 3.2.3 transitivePeerDependencies: - '@swc/core' @@ -28098,6 +28539,7 @@ packages: dependencies: tr46: 0.0.3 webidl-conversions: 3.0.1 + dev: false /which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} @@ -28337,8 +28779,8 @@ packages: utf-8-validate: optional: true - /ws@8.17.1: - resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} + /ws@8.16.0: + resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -28350,12 +28792,12 @@ packages: optional: true dev: true - /ws@8.5.0: - resolution: {integrity: sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==} + /ws@8.17.1: + resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 + utf-8-validate: '>=5.0.2' peerDependenciesMeta: bufferutil: optional: true @@ -28524,6 +28966,10 @@ packages: engines: {node: '>=18'} dev: true + /zod@3.22.4: + resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} + dev: true + /zod@3.23.8: resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} dev: false