diff --git a/.github/workflows/bundle-analyser.yml b/.github/workflows/bundle-analyser.yml index 2e676176987..efca5c2e526 100644 --- a/.github/workflows/bundle-analyser.yml +++ b/.github/workflows/bundle-analyser.yml @@ -18,23 +18,30 @@ jobs: run: make build working-directory: dotcom-rendering - - name: Archive code coverage results for web bundle + - name: Archive bundle analyser report for server bundle uses: actions/upload-artifact@v7 with: - name: bundle-analyser-report-web-bundles - path: dotcom-rendering/dist/stats/client.web-bundles.html + name: bundle-analyser-report-server + path: dotcom-rendering/dist/stats/server.treemap.html if-no-files-found: error - - name: Archive code coverage results for web variant bundle + - name: Archive bundle analyser report for web bundle uses: actions/upload-artifact@v7 with: name: bundle-analyser-report-web - path: dotcom-rendering/dist/stats/client.web.variant-bundles.html + path: dotcom-rendering/dist/stats/client.web.treemap.html + if-no-files-found: error + + - name: Archive bundle analyser report for web variant bundle + uses: actions/upload-artifact@v7 + with: + name: bundle-analyser-report-web-variant + path: dotcom-rendering/dist/stats/client.web.variant.treemap.html if-no-files-found: warn # Variant bundle only exists when an active experiment is going on - - name: Archive code coverage results for apps bundle + - name: Archive bundle analyser report for apps bundle uses: actions/upload-artifact@v7 with: name: bundle-analyser-report-apps - path: dotcom-rendering/dist/stats/client.apps-bundles.html + path: dotcom-rendering/dist/stats/client.apps.treemap.html if-no-files-found: error diff --git a/.prettierignore b/.prettierignore index a844678c132..0e30cc6547b 100644 --- a/.prettierignore +++ b/.prettierignore @@ -7,6 +7,7 @@ pnpm-lock.yaml dotcom-rendering/src/model/*-schema.json dotcom-rendering/src/frontend/schemas dotcom-rendering/stories/generated +dotcom-rendering/cdk.out # specific files /**/*/curl-with-js-and-domReady.js diff --git a/Production.dockerfile b/Production.dockerfile index 405bd27dc9b..9fcb8e00b6a 100644 --- a/Production.dockerfile +++ b/Production.dockerfile @@ -15,8 +15,9 @@ ENV NODE_ENV=production # Build the application FROM dependencies AS builder -RUN webpack --config webpack/webpack.config.js --progress -RUN node scripts/islands/island-descriptions.mjs +RUN node vite/build.mts +# TODO VITE FIXME +# RUN node scripts/islands/island-descriptions.mjs # Finally, create the production image with only the necessary files FROM dhi.io/node:24-alpine3.23 AS application diff --git a/dotcom-rendering/.storybook/decorators/configContextDecorator.tsx b/dotcom-rendering/.storybook/decorators/configContextDecorator.tsx index 80cfe4d8d84..90b7e28454c 100644 --- a/dotcom-rendering/.storybook/decorators/configContextDecorator.tsx +++ b/dotcom-rendering/.storybook/decorators/configContextDecorator.tsx @@ -1,6 +1,6 @@ -import type { Decorator } from '@storybook/react-webpack5'; import { ConfigProvider } from '../../src/components/ConfigContext'; -import type { Config } from '../../src/types/configContext'; +import type { Decorator } from '@storybook/react-vite'; +import { Config } from '../../src/types/configContext'; const defaultConfig = { renderingTarget: 'Web', diff --git a/dotcom-rendering/.storybook/decorators/gridDecorators.tsx b/dotcom-rendering/.storybook/decorators/gridDecorators.tsx index e1160fcc140..13715a3db40 100644 --- a/dotcom-rendering/.storybook/decorators/gridDecorators.tsx +++ b/dotcom-rendering/.storybook/decorators/gridDecorators.tsx @@ -1,6 +1,6 @@ import { css } from '@emotion/react'; import { from } from '@guardian/source/foundations'; -import type { Decorator } from '@storybook/react-webpack5'; +import type { Decorator } from '@storybook/react-vite'; import { grid } from '../../src/grid'; /** diff --git a/dotcom-rendering/.storybook/decorators/splitThemeDecorator.tsx b/dotcom-rendering/.storybook/decorators/splitThemeDecorator.tsx index 6a8f140d0e4..4a4977aa800 100644 --- a/dotcom-rendering/.storybook/decorators/splitThemeDecorator.tsx +++ b/dotcom-rendering/.storybook/decorators/splitThemeDecorator.tsx @@ -6,7 +6,8 @@ import { textSans17, textSansBold20, } from '@guardian/source/foundations'; -import type { Decorator } from '@storybook/react-webpack5'; +import { Decorator } from '@storybook/react-vite'; +import { storybookPaletteDeclarations as paletteDeclarations } from '../mocks/paletteDeclarations'; import type { ReactNode } from 'react'; import { ArticleDesign, @@ -15,7 +16,6 @@ import { Pillar, } from '../../src/lib/articleFormat'; import type { ArticleFormat } from '../../src/lib/articleFormat'; -import { storybookPaletteDeclarations as paletteDeclarations } from '../mocks/paletteDeclarations'; interface Orientation { orientation?: 'horizontal' | 'vertical'; diff --git a/dotcom-rendering/.storybook/decorators/themeDecorator.tsx b/dotcom-rendering/.storybook/decorators/themeDecorator.tsx index ed68aedbf86..513760132b1 100644 --- a/dotcom-rendering/.storybook/decorators/themeDecorator.tsx +++ b/dotcom-rendering/.storybook/decorators/themeDecorator.tsx @@ -10,7 +10,7 @@ import { type Decorator, type StoryContext, type StrictArgs, -} from '@storybook/react-webpack5'; +} from '@storybook/react-vite'; import type { CSSProperties } from 'react'; import type { ArticleFormat } from '../../src/lib/articleFormat'; import { storybookPaletteDeclarations as paletteDeclarations } from '../mocks/paletteDeclarations'; diff --git a/dotcom-rendering/.storybook/main.ts b/dotcom-rendering/.storybook/main.ts index f3cd4cd4c47..582fd649f69 100644 --- a/dotcom-rendering/.storybook/main.ts +++ b/dotcom-rendering/.storybook/main.ts @@ -1,17 +1,12 @@ -import { createRequire } from 'node:module'; +import { defineMain } from '@storybook/react-vite/node'; import path from 'node:path'; import process from 'node:process'; -import type { StorybookConfig } from '@storybook/react-webpack5'; -import { defineMain } from '@storybook/react-webpack5/node'; -import webpack from 'webpack'; import { saveStories } from '../scripts/gen-stories/get-stories.mjs'; -import { svgr } from '../webpack/svg.cjs'; -// Import CommonJS webpack config in ESM context -const require = createRequire(import.meta.url); -const { - transpileExclude, - getLoaders, -} = require('../webpack/webpack.config.client.js'); +import type { StorybookConfig } from '@storybook/react-vite'; +import svgr from 'vite-plugin-svgr'; + +// ESM equivalent of __dirname +const __dirname = import.meta.dirname; // Generate dynamic Card and Layout stories saveStories(); @@ -36,42 +31,49 @@ export default defineMain({ { from: '../src/static', to: '/static/frontend/' }, ], - addons: [ - '@storybook/addon-webpack5-compiler-swc', - '@storybook/addon-docs', - '@storybook/addon-a11y', - ], + addons: ['@storybook/addon-docs', '@storybook/addon-a11y'], - webpackFinal: async (config) => { - // Get project specific webpack options - const newConfig = webpackConfig(config); - - newConfig.resolve ??= {}; - - // Global options for webpack - newConfig.resolve.extensions?.push('.ts', '.tsx'); - - newConfig.resolve.fallback ??= {}; - // clean-css will try to import these packages - newConfig.resolve.fallback['http'] = false; - newConfig.resolve.fallback['https'] = false; - newConfig.resolve.fallback['os'] = false; - - // Required as otherwise 'process' will not be defined when included on its own (without .env) - // e.g process?.env?.SOME_VAR - newConfig.plugins?.push( - new webpack.DefinePlugin({ - 'process.env': JSON.stringify({ - SDC_URL: process.env.SDC_URL, - HOSTNAME: process.env.HOSTNAME, - }), - }), - // We rely on Buffer for our bridget thrift client - new webpack.ProvidePlugin({ - Buffer: ['buffer', 'Buffer'], + viteFinal: async (config) => { + config.plugins ??= []; + config.plugins.push( + svgr({ + svgrOptions: { svgo: false }, }), ); - return newConfig; + + config.define ??= {}; + config.define['process.env'] = JSON.stringify({ + SDC_URL: process.env.SDC_URL, + HOSTNAME: process.env.HOSTNAME, + }); + + config.resolve ??= {}; + config.resolve.alias = { + ...config.resolve.alias, + + Buffer: 'buffer', + react: 'react', + 'react-dom': 'react-dom', + + // Mock JSDOM for storybook - it relies on native node.js packages + jsdom$: path.resolve(__dirname, './mocks/jsdom.ts'), + + // log4js tries to call "fs" in storybook -- we can ignore it + [`${path.resolve(__dirname, '../src/server/lib/logging')}$`]: + path.resolve(__dirname, './mocks/log4js.ts'), + + // Mock BridgetApi for storybook + [`${path.resolve(__dirname, '../src/lib/bridgetApi')}$`]: + path.resolve(__dirname, './mocks/bridgetApi.ts'), + + // Mock identity auth frontend to prevent Storybook components from hanging in Pending + '@guardian/identity-auth-frontend': path.resolve( + __dirname, + './mocks/identityAuthFrontend.ts', + ), + }; + + return config; }, env: (config) => ({ @@ -85,7 +87,7 @@ export default defineMain({ }, framework: { - name: '@storybook/react-webpack5', + name: '@storybook/react-vite', options: {}, }, @@ -93,68 +95,3 @@ export default defineMain({ reactDocgen: 'react-docgen', }, }); - -/** the webpack.Configuration type from Storybook */ -type Configuration = Parameters< - NonNullable ->[0]; - -const webpackConfig = (config: Configuration) => { - const rules = config.module?.rules ?? []; - - config.resolve ??= {}; - - config.resolve.alias = { - ...config.resolve.alias, - - Buffer: 'buffer', - react: 'react', - 'react-dom': 'react-dom', - - // Mock JSDOM for storybook - it relies on native node.js packages - // Allows us to use enhancers in stories for better testing of components & full articles - jsdom$: path.resolve(import.meta.dirname, './mocks/jsdom.ts'), - - // log4js tries to call "fs" in storybook -- we can ignore it - [`${path.resolve(import.meta.dirname, '../src/server/lib/logging')}$`]: - path.resolve(import.meta.dirname, './mocks/log4js.ts'), - - // Mock BridgetApi for storybook - [`${path.resolve(import.meta.dirname, '../src/lib/bridgetApi')}$`]: - path.resolve(import.meta.dirname, './mocks/bridgetApi.ts'), - - // Mock identity auth frontend to prevent Storybook components from hanging in Pending - '@guardian/identity-auth-frontend': path.resolve( - import.meta.dirname, - './mocks/identityAuthFrontend.ts', - ), - }; - - const webpackLoaders = getLoaders('client.web'); - - // https://swc.rs/docs/usage/swc-loader#with-babel-loader - if (webpackLoaders[0].loader.startsWith('swc')) { - webpackLoaders[0].options.parseMap = true; - } - - // Support typescript in Storybook - // https://storybook.js.org/docs/configurations/typescript-config/ - rules.push({ - test: /\.[jt]sx?|mjs$/, - include: [path.resolve(import.meta.dirname, '../')], - exclude: transpileExclude, - use: webpackLoaders, - }); - - // modify storybook's file-loader rule to avoid conflicts with our svg - const fileLoaderRule = rules.find((rule) => { - return String(rule?.test).includes('svg'); - }); - if (fileLoaderRule && typeof fileLoaderRule !== 'string') { - fileLoaderRule.exclude = /\.svg$/; - } - rules.push(svgr); - config.resolve.modules = [...(config.resolve.modules || [])]; - - return config; -}; diff --git a/dotcom-rendering/.storybook/preview.ts b/dotcom-rendering/.storybook/preview.ts index 7761e00c4b1..982eb4b88cd 100644 --- a/dotcom-rendering/.storybook/preview.ts +++ b/dotcom-rendering/.storybook/preview.ts @@ -3,7 +3,6 @@ import { resets } from '@guardian/source/foundations'; import { palette as sourcePalette } from '@guardian/source/foundations'; import addonA11y from '@storybook/addon-a11y'; import addonDocs from '@storybook/addon-docs'; -import { definePreview } from '@storybook/react-webpack5'; import isChromatic from 'chromatic/isChromatic'; import MockDate from 'mockdate'; import { sb } from 'storybook/test'; @@ -14,6 +13,7 @@ import { mockFetch } from '../src/lib/mockRESTCalls'; import { ABTests } from '../src/experiments/lib/ab-tests'; import { setABTests } from '../src/lib/useAB'; import { ConfigContextDecorator } from './decorators/configContextDecorator'; +import { definePreview } from '@storybook/react-vite'; import { globalColourScheme, globalColourSchemeDecorator, diff --git a/dotcom-rendering/.storybook/toolbar/globalColourScheme.ts b/dotcom-rendering/.storybook/toolbar/globalColourScheme.ts index 9ddd3a0e2bf..e835f084f52 100644 --- a/dotcom-rendering/.storybook/toolbar/globalColourScheme.ts +++ b/dotcom-rendering/.storybook/toolbar/globalColourScheme.ts @@ -1,12 +1,12 @@ -import type { Decorator, Preview } from '@storybook/react-webpack5'; +import type { Decorator, Preview } from '@storybook/react-vite'; +import { lightDecorator, darkDecorator } from '../decorators/themeDecorator'; +import { splitTheme } from '../decorators/splitThemeDecorator'; import { ArticleDesign, ArticleDisplay, type ArticleFormat, Pillar, } from '../../src/lib/articleFormat'; -import { splitTheme } from '../decorators/splitThemeDecorator'; -import { darkDecorator, lightDecorator } from '../decorators/themeDecorator'; const defaultFormat: ArticleFormat = { display: ArticleDisplay.Standard, diff --git a/dotcom-rendering/webpack/.swcrc.json b/dotcom-rendering/.swcrc.jest.json similarity index 81% rename from dotcom-rendering/webpack/.swcrc.json rename to dotcom-rendering/.swcrc.jest.json index 490d70a5893..51f3d35ea92 100644 --- a/dotcom-rendering/webpack/.swcrc.json +++ b/dotcom-rendering/.swcrc.jest.json @@ -12,9 +12,6 @@ "runtime": "automatic", "importSource": "@emotion/react" } - }, - "experimental": { - "plugins": [["@swc/plugin-emotion", {}]] } }, "sourceMaps": true diff --git a/dotcom-rendering/__mocks__/islandRegistry.ts b/dotcom-rendering/__mocks__/islandRegistry.ts new file mode 100644 index 00000000000..f12c7dd07fe --- /dev/null +++ b/dotcom-rendering/__mocks__/islandRegistry.ts @@ -0,0 +1,10 @@ +/** + * Jest mock for islandRegistry.ts which uses import.meta.glob + * (not supported by Jest/SWC). + */ +export const getIslandModule = ( + // eslint-disable-next-line @typescript-eslint/no-unused-vars -- mock + _name: string, +): (() => Promise>) | undefined => { + return undefined; +}; diff --git a/dotcom-rendering/index.d.ts b/dotcom-rendering/index.d.ts index 81f13f569e1..dbb3ac1213f 100644 --- a/dotcom-rendering/index.d.ts +++ b/dotcom-rendering/index.d.ts @@ -14,6 +14,11 @@ declare module 'dynamic-import-polyfill' { }) => void; } +declare module '@babel/helper-compilation-targets' { + const getTargets: (opts: { browsers: string[] }) => Record; + export default getTargets; +} + // SVG handling declare module '*.svg' { const content: any; diff --git a/dotcom-rendering/jest.config.js b/dotcom-rendering/jest.config.js index 5257a547f9c..a751fd4be5f 100644 --- a/dotcom-rendering/jest.config.js +++ b/dotcom-rendering/jest.config.js @@ -1,4 +1,4 @@ -const swcConfig = require('./webpack/.swcrc.json'); +const swcConfig = require('./.swcrc.jest.json'); const esModules = [ '@guardian/', @@ -27,6 +27,7 @@ module.exports = { moduleNameMapper: { '^svgs/(.*)$': '/__mocks__/svgMock.tsx', '^(.*)\\.svg$': '/__mocks__/svgMock.tsx', + '(.*)/islandRegistry': '/__mocks__/islandRegistry.ts', }, transformIgnorePatterns: [`/node_modules/.pnpm/(?!${esModules})`], collectCoverageFrom: ['src/**/*.{ts,tsx}'], diff --git a/dotcom-rendering/makefile b/dotcom-rendering/makefile index c1cbe880f06..6c24f70a1d0 100644 --- a/dotcom-rendering/makefile +++ b/dotcom-rendering/makefile @@ -1,4 +1,4 @@ -.PHONY: install dev build clean-dist clear +.PHONY: install dev build clean-dist clear build dev # these means you can run the binaries in node_modules # like with npm scripts @@ -32,10 +32,10 @@ riffraff-bundle: clean-dist build cdk-synth # prod ######################################### build: clean-dist install - $(call log, "building production bundles") - @NODE_ENV=production webpack --config ./webpack/webpack.config.js --progress - $(call log, "generating Islands report card") - @node ./scripts/islands/island-descriptions.mjs + $(call log, "building production bundles with Vite") + @NODE_ENV=production node vite/build.mts +# $(call log, "generating Islands report card") +# @node ./scripts/islands/island-descriptions.mjs prod: @echo 'starting PROD server...' @@ -48,17 +48,17 @@ prod-local: prod # dev ######################################### dev: clear clean-dist install - $(call log, "starting DEV server") - @NODE_ENV=development webpack serve --config ./webpack/webpack.config.js + $(call log, "starting Vite DEV server") + @NODE_ENV=development node vite/dev-server.mts dev-variant: clear clean-dist install $(call log, "starting DEV server") - @NODE_ENV=development BUILD_VARIANT=true webpack serve --config ./webpack/webpack.config.js + @NODE_ENV=development BUILD_VARIANT=true node vite/dev-server.mts dev-debug: clear clean-dist install $(call log, "starting DEV server and debugger") $(call log, "Open chrome://inspect in Chrome to attach to the debugger") - @NODE_ENV=development NODE_OPTIONS="--inspect" webpack serve --config ./webpack/webpack.config.js + @NODE_ENV=development NODE_OPTIONS="--inspect" node vite/dev-server.ts # storybook ######################################### @@ -155,10 +155,8 @@ install: check-env reinstall: clear clean-deps install $(call log, "dependencies have been reinstalled ♻️") -validate-build: # private +validate-build: build # private $(call log, "checking bundling") - @rm -rf dist - @NODE_ENV=production webpack --config ./webpack/webpack.config.js check-env: # private $(call log, "checking environment") diff --git a/dotcom-rendering/package.json b/dotcom-rendering/package.json index 307b1a0227b..6c958ed0c31 100644 --- a/dotcom-rendering/package.json +++ b/dotcom-rendering/package.json @@ -41,18 +41,16 @@ "@guardian/libs": "32.0.0", "@guardian/ophan-tracker-js": "4.0.2", "@guardian/react-crossword": "19.0.1", - "@guardian/shimport": "1.0.2", "@guardian/source": "12.2.1", "@guardian/source-development-kitchen": "28.1.0", "@guardian/support-dotcom-components": "10.0.1", "@guardian/tsconfig": "catalog:", "@playwright/test": "1.60.0", + "@rollup/plugin-inject": "5.0.5", "@sentry/browser": "10.52.0", "@storybook/addon-a11y": "10.3.3", "@storybook/addon-docs": "10.3.3", - "@storybook/addon-webpack5-compiler-swc": "4.0.3", - "@storybook/react-webpack5": "10.3.3", - "@svgr/webpack": "8.1.0", + "@storybook/react-vite": "10.3.3", "@swc/cli": "0.8.1", "@swc/core": "1.15.41", "@swc/jest": "0.2.39", @@ -86,9 +84,6 @@ "@types/semver": "7.5.6", "@types/trusted-types": "2.0.7", "@types/twitter-for-web": "0.0.6", - "@types/webpack-bundle-analyzer": "4.7.0", - "@types/webpack-env": "1.18.8", - "@types/webpack-node-externals": "3.0.4", "@types/youtube": "0.0.50", "@typescript-eslint/eslint-plugin": "8.57.1", "ajv": "8.18.0", @@ -103,9 +98,7 @@ "compression": "1.7.4", "constructs": "catalog:", "cpy": "11.0.0", - "css-loader": "7.1.4", "dompurify": "3.4.7", - "dynamic-import-polyfill": "0.1.1", "eslint": "catalog:", "eslint-config-prettier": "10.1.8", "eslint-import-resolver-typescript": "4.4.4", @@ -137,6 +130,7 @@ "react": "18.3.1", "react-dom": "18.3.1", "react-google-recaptcha": "3.1.0", + "rollup-plugin-visualizer": "7.0.1", "rehype-autolink-headings": "7.1.0", "rehype-slug": "6.0.0", "rehype-stringify": "10.0.1", @@ -149,9 +143,7 @@ "storybook": "10.3.3", "stylelint": "16.26.1", "stylelint-config-recommended": "14.0.0", - "swc-loader": "0.2.7", "swr": "1.3.0", - "to-string-loader": "1.2.0", "trusted-types": "2.0.0", "ts-unused-exports": "10.1.0", "tslib": "catalog:", @@ -163,18 +155,9 @@ "unified": "11.0.5", "url": "0.11.4", "valibot": "0.28.1", + "vite": "8.0.11", + "vite-plugin-svgr": "5.2.0", "web-vitals": "4.2.3", - "webpack": "5.108.4", - "webpack-assets-manifest": "6.5.2", - "webpack-bundle-analyzer": "5.3.0", - "webpack-cli": "7.2.1", - "webpack-dev-server": "6.0.0", - "webpack-hot-server-middleware": "0.6.1", - "webpack-manifest-plugin": "6.0.1", - "webpack-merge": "6.0.1", - "webpack-messages": "2.0.4", - "webpack-node-externals": "3.0.0", - "webpack-sources": "3.5.1", "zod": "4.1.12" } } diff --git a/dotcom-rendering/scripts/test/build-check.js b/dotcom-rendering/scripts/test/build-check.js index b7c474bee1a..fa2d9a2b2f9 100644 --- a/dotcom-rendering/scripts/test/build-check.js +++ b/dotcom-rendering/scripts/test/build-check.js @@ -4,9 +4,8 @@ // 1. That the manifest files are output // 2. That the manifest files contain at least the entry points under the expected property -const { readFile } = require('node:fs').promises; -const find = require('find'); -const { BUILD_VARIANT } = require('../../webpack/bundles'); +const { access, readFile } = require('node:fs').promises; +const { BUILD_VARIANT } = require('../../webpack/bundles.ts'); /** * Loads a JSON file. @@ -25,37 +24,45 @@ const errorAndThrow = (error) => { throw new Error(error); }; -/** @type {(glob: string) => Promise} */ -const fileExists = async (glob) => { - await find.file(glob, `./dist/`, (files) => { - if (files.length === 1) { - console.log(`${glob} exists`); - } else { - errorAndThrow(`${glob} does not exist`); - } - }); +/** @type {(filePath: string) => Promise} */ +const fileExists = async (filePath) => { + try { + await access(filePath); + console.log(`${filePath} exists`); + } catch { + errorAndThrow(`${filePath} does not exist`); + } }; (async () => { - // Check that the manifest files exist - await fileExists('manifest.client.web.json'); + // Check that the manifest files return values for all the chunks + const manifestFiles = [ + './dist/manifest.client.web.json', + './dist/manifest.client.apps.json', + './dist/manifest.client.editionsCrossword.json', + ]; if (BUILD_VARIANT) { - await fileExists('manifest.client.web.variant.json'); + manifestFiles.push('./dist/manifest.client.web.variant.json'); } - // Check that the manifest files return values for all the chunks - const manifests = [await loadJsonFile('./dist/manifest.client.web.json')]; - if (BUILD_VARIANT) { - manifests.push( - await loadJsonFile('./dist/manifest.client.web.variant.json'), - ); + // Check that the manifest files exist + for (const file of manifestFiles) { + await fileExists(file); } - for (const manifest of manifests) { - if (manifest['index.js']) { - console.log(`A manifest has an index file`); + // Check that the manifest files contain an entry for the index chunk + const manifests = await Promise.all( + manifestFiles.map(async (file) => ({ + file, + data: await loadJsonFile(file), + })), + ); + + for (const { file, data } of manifests) { + if (Object.values(data).some((entry) => entry.name === 'index')) { + console.log(`${file} has an index entry`); } else { - errorAndThrow(`A manifest did not have an index file`); + errorAndThrow(`${file} did not have an index entry`); } } })(); diff --git a/dotcom-rendering/src/WritingStories.mdx b/dotcom-rendering/src/WritingStories.mdx index d5bf165d0ba..93b1e65e8d7 100644 --- a/dotcom-rendering/src/WritingStories.mdx +++ b/dotcom-rendering/src/WritingStories.mdx @@ -9,7 +9,7 @@ If you're not familiar with the concept of stories, see the [Storybook docs](htt We recommend using Storybook's [Component Story Format](https://storybook.js.org/docs/9/api/csf/index) version 3 (CSFv3) to write stories. The [documentation](https://storybook.js.org/docs/9/writing-stories) covers this in detail, but in brief it means that your stories file should look something like this: => { if (window.location.host !== 'www.theguardian.com') return false; // only evaluate this code if we want to adapt in response to page performance - const { isPerformingPoorly } = await import( - /* webpackMode: "eager" */ './poorPerformanceMonitoring' - ); + const { isPerformingPoorly } = await import('./poorPerformanceMonitoring'); return isPerformingPoorly(); }; diff --git a/dotcom-rendering/src/client/bootCmp.ts b/dotcom-rendering/src/client/bootCmp.ts index 62410b5a985..3a3f925234e 100644 --- a/dotcom-rendering/src/client/bootCmp.ts +++ b/dotcom-rendering/src/client/bootCmp.ts @@ -45,9 +45,7 @@ const initialiseCmp = async () => { * as a separate chunk. @see {PrivacySettingsLink.island.tsx} */ const eagerlyImportPrivacySettingsLinkIsland = () => - import( - /* webpackMode: 'eager' */ '../components/PrivacySettingsLink.island' - ); + import('../components/PrivacySettingsLink.island'); /** * Keep this file in sync with CONSENT_TIMING in static/src/javascripts/boot.js in frontend diff --git a/dotcom-rendering/src/client/debug/debug.ts b/dotcom-rendering/src/client/debug/debug.ts index 909b39556eb..bd3c6aa43dc 100644 --- a/dotcom-rendering/src/client/debug/debug.ts +++ b/dotcom-rendering/src/client/debug/debug.ts @@ -1,5 +1,4 @@ -// @ts-expect-error: Cannot find module -import debugCss from './debug.css'; +import debugCss from './debug.css?raw'; const style = document.createElement('style'); // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- We know this will be a string diff --git a/dotcom-rendering/src/client/decidePublicPath.test.ts b/dotcom-rendering/src/client/decidePublicPath.test.ts deleted file mode 100644 index 85ebbf20e3c..00000000000 --- a/dotcom-rendering/src/client/decidePublicPath.test.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { decidePublicPath } from './decidePublicPath'; - -const mockHostname = (hostname: string | undefined) => { - Object.defineProperty(window, 'location', { - value: { - hostname, - }, - writable: true, - }); -}; - -const mockFrontendAssetsFullURL = (frontendAssetsFullURL: string) => { - Object.defineProperty(window, 'guardian', { - value: { - config: { - frontendAssetsFullURL, - }, - }, - writable: true, - }); -}; - -describe('decidePublicPath', () => { - beforeEach(() => { - jest.resetModules(); - - mockHostname(undefined); - - mockFrontendAssetsFullURL('https://assets.guim.co.uk/'); - - process.env = { NODE_ENV: undefined, HOSTNAME: undefined }; - }); - - it('with development flag', () => { - process.env.NODE_ENV = 'development'; - expect(decidePublicPath()).toEqual('/assets/'); - }); - - it('with production flag', () => { - process.env.NODE_ENV = 'production'; - expect(decidePublicPath()).toEqual('https://assets.guim.co.uk/assets/'); - }); - - it('with production flag and localhost', () => { - process.env.NODE_ENV = 'production'; - mockHostname('localhost'); - expect(decidePublicPath()).toEqual('/assets/'); - }); - - it('with no flag', () => { - expect(decidePublicPath()).toEqual('https://assets.guim.co.uk/assets/'); - }); -}); diff --git a/dotcom-rendering/src/client/decidePublicPath.ts b/dotcom-rendering/src/client/decidePublicPath.ts deleted file mode 100644 index 41bb44db145..00000000000 --- a/dotcom-rendering/src/client/decidePublicPath.ts +++ /dev/null @@ -1,13 +0,0 @@ -/** - * Determine the path that webpack should use as base for dynamic imports - * - * @returns The webpack public path to use - */ -export const decidePublicPath = (): string => { - const isDev = process.env.NODE_ENV === 'development'; - const isLocalHost = window.location.hostname === 'localhost'; - // Use relative path if running locally or in CI - return isDev || isLocalHost - ? '/assets/' - : `${window.guardian.config.frontendAssetsFullURL}assets/`; -}; diff --git a/dotcom-rendering/src/client/dynamicImport.ts b/dotcom-rendering/src/client/dynamicImport.ts deleted file mode 100644 index b5e25850c4b..00000000000 --- a/dotcom-rendering/src/client/dynamicImport.ts +++ /dev/null @@ -1,40 +0,0 @@ -import dynamicImportPolyfill from 'dynamic-import-polyfill'; - -// Provides an import function to use for dynamic imports. **Only works on -// browsers that cut the mustard (support modules).** -const initialiseDynamicImport = () => { - try { - // eslint-disable-next-line @typescript-eslint/no-implied-eval - window.guardianPolyfilledImport = new Function( - 'url', - `return import(url)`, - ) as (url: string) => Promise; - } catch (e) { - dynamicImportPolyfill.initialize({ - importFunctionName: 'guardianPolyfilledImport', // must be a direct property of the window - }); - } -}; - -// Provides an import function to use for dynamic imports. **Designed for -// legacy browsers. Dynamic loads a ~4k bundle.** -const initialiseDynamicImportLegacy = async () => { - const shimport = await import( - /* webpackChunkName: "shimport" */ '@guardian/shimport' - ); - shimport.initialise(); // note this adds a __shimport__ global - window.guardianPolyfilledImport = shimport.load; -}; - -export const dynamicImport = (): Promise => { - window.guardianPolyfilledImport = (url: string) => - Promise.reject( - new Error(`import not polyfilled; attempted import(${url})`), - ); - - if (window.guardian.mustardCut) { - return Promise.resolve(initialiseDynamicImport()); - } - - return initialiseDynamicImportLegacy(); -}; diff --git a/dotcom-rendering/src/client/islands/doHydration.tsx b/dotcom-rendering/src/client/islands/doHydration.tsx index 5fb17da2515..96e936874e3 100644 --- a/dotcom-rendering/src/client/islands/doHydration.tsx +++ b/dotcom-rendering/src/client/islands/doHydration.tsx @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/no-unsafe-member-access -- necessary for calling our async loaded modules */ import type { EmotionCache } from '@emotion/react'; import { CacheProvider } from '@emotion/react'; import { isUndefined, log, startPerformanceMeasure } from '@guardian/libs'; @@ -7,6 +6,7 @@ import { hydrateRoot } from 'react-dom/client'; import { ConfigProvider } from '../../components/ConfigContext'; import { IslandProvider } from '../../components/IslandContext'; import type { Config } from '../../types/configContext'; +import { getIslandModule } from './islandRegistry'; declare global { interface DOMStringMap { @@ -48,11 +48,16 @@ export const doHydration = async ( const { endPerformanceMeasure: endImportPerformanceMeasure } = startPerformanceMeasure('dotcom', name, 'import'); - await import( - /* webpackInclude: /\.island\.tsx$/ */ - /* webpackChunkName: "[request]" */ - `../../components/${name}.island` - ) + + const loadModule = getIslandModule(name); + if (!loadModule) { + console.error( + `🚨 Island module not found: ${name}. Components must live in the root of /components and follow the [MyComponent].island.tsx naming convention 🚨`, + ); + return; + } + + await loadModule() .then((module) => { /** The duration of importing the module for this island */ const importDuration = endImportPerformanceMeasure(); @@ -68,7 +73,11 @@ export const doHydration = async ( {/* Child islands should not be hydrated separately */} {/* The component to hydrate must be a single JSX Element */} - {createElement(module[name], data)} + {createElement( + // eslint-disable-next-line @typescript-eslint/no-restricted-types -- load a component dynamically so we can't determine the type + module[name] as React.FunctionComponent, + data, + )} , @@ -93,11 +102,7 @@ export const doHydration = async ( }) .catch((error) => { element.dataset.islandStatus = undefined; // remove any island status - if (name && error.message.includes(name)) { - console.error( - `🚨 Error importing ${name}. Components must live in the root of /components and follow the [MyComponent].island.tsx naming convention 🚨`, - ); - } + console.error(`🚨 Error hydrating island: ${name} 🚨`); throw error; }); }; diff --git a/dotcom-rendering/src/client/islands/islandRegistry.ts b/dotcom-rendering/src/client/islands/islandRegistry.ts new file mode 100644 index 00000000000..b2e5af7d6d2 --- /dev/null +++ b/dotcom-rendering/src/client/islands/islandRegistry.ts @@ -0,0 +1,23 @@ +/** + * Static registry of all island components, built at compile time + * via Vite's import.meta.glob. + * + * Each matched file becomes a lazy chunk (eager: false), so each + * island is a separate dynamically-loaded chunk. + */ +const islandModules = import.meta.glob>( + '../../components/*.island.tsx', +); + +/** + * Look up the lazy loader for an island component by name. + * + * @param name The component name (e.g. "ShareButton" for ShareButton.island.tsx) + * @returns A function that returns a Promise of the module, or undefined if not found + */ +export const getIslandModule = ( + name: string, +): (() => Promise>) | undefined => { + const key = `../../components/${name}.island.tsx`; + return islandModules[key]; +}; diff --git a/dotcom-rendering/src/client/main.apps.ts b/dotcom-rendering/src/client/main.apps.ts index 2e4556346a4..c084538f8da 100644 --- a/dotcom-rendering/src/client/main.apps.ts +++ b/dotcom-rendering/src/client/main.apps.ts @@ -1,4 +1,3 @@ -import './webpackPublicPath'; import { startup } from './startup'; /************************************************************* @@ -12,19 +11,8 @@ import { startup } from './startup'; void startup( 'sentryLoader', () => - import(/* webpackMode: "eager" */ './sentryLoader/sentryLoader').then( - ({ sentryLoader }) => sentryLoader(), - ), - { - priority: 'critical', - }, -); - -void startup( - 'dynamicImport', - () => - import(/* webpackMode: "eager" */ './dynamicImport').then( - ({ dynamicImport }) => dynamicImport(), + import('./sentryLoader/sentryLoader').then(({ sentryLoader }) => + sentryLoader(), ), { priority: 'critical', @@ -33,10 +21,7 @@ void startup( void startup( 'islands', - () => - import(/* webpackMode: "eager" */ './islands/islands').then( - ({ islands }) => islands(), - ), + () => import('./islands/islands').then(({ islands }) => islands()), { priority: 'critical', }, @@ -48,47 +33,31 @@ void startup( * because they are lower priority and do not want to block * the modules above on loading these. * - * We are not assigning chunk name to allow Webpack - * to optimise chunking based on its algorithm. - * *************************************************************/ void startup( 'atomIframe', - () => - import( - /* webpackMode: 'lazy' */ - './atomIframe' - ).then(({ atomIframe }) => atomIframe()), + () => import('./atomIframe').then(({ atomIframe }) => atomIframe()), { priority: 'feature' }, ); void startup( 'embedIframe', - () => - import( - /* webpackMode: 'lazy' */ - './embedIframe' - ).then(({ embedIframe }) => embedIframe()), + () => import('./embedIframe').then(({ embedIframe }) => embedIframe()), { priority: 'feature' }, ); void startup( 'newsletterEmbedIframe', () => - import( - /* webpackMode: 'lazy' */ - './newsletterEmbedIframe' - ).then(({ newsletterEmbedIframe }) => newsletterEmbedIframe()), + import('./newsletterEmbedIframe').then(({ newsletterEmbedIframe }) => + newsletterEmbedIframe(), + ), { priority: 'feature' }, ); void startup( 'initDiscussion', - () => - import( - /* webpackMode: 'lazy' */ - './discussion' - ).then(({ discussion }) => discussion()), + () => import('./discussion').then(({ discussion }) => discussion()), { priority: 'feature' }, ); diff --git a/dotcom-rendering/src/client/main.web.ts b/dotcom-rendering/src/client/main.web.ts index 95a572c1246..bb45a394b95 100644 --- a/dotcom-rendering/src/client/main.web.ts +++ b/dotcom-rendering/src/client/main.web.ts @@ -1,4 +1,3 @@ -import './webpackPublicPath'; import { adaptSite, shouldAdapt } from './adaptiveSite'; import { startup } from './startup'; import { maybeSIndicatorCapiKey } from './userFeatures/cookies/sIndicatorCapiKey'; @@ -18,10 +17,7 @@ void (async () => { void startup( 'bootCmp', - () => - import(/* webpackMode: "eager" */ './bootCmp').then(({ bootCmp }) => - bootCmp('Web'), - ), + () => import('./bootCmp').then(({ bootCmp }) => bootCmp('Web')), { priority: 'critical', }, @@ -30,10 +26,8 @@ void (async () => { void startup( 'recordInitialPageEvents', () => - import( - /* webpackMode: "eager" */ './ophan/recordInitialPageEvents' - ).then(({ recordInitialPageEvents }) => - recordInitialPageEvents('Web'), + import('./ophan/recordInitialPageEvents').then( + ({ recordInitialPageEvents }) => recordInitialPageEvents('Web'), ), { priority: 'critical', @@ -43,9 +37,9 @@ void (async () => { void startup( 'sentryLoader', () => - import( - /* webpackMode: "eager" */ './sentryLoader/sentryLoader' - ).then(({ sentryLoader }) => sentryLoader()), + import('./sentryLoader/sentryLoader').then(({ sentryLoader }) => + sentryLoader(), + ), { priority: 'critical', }, @@ -60,29 +54,15 @@ void (async () => { void startup( 'abTesting', () => - import(/* webpackMode: 'eager' */ './abTesting').then( - ({ initWindowABTesting }) => initWindowABTesting(), + import('./abTesting').then(({ initWindowABTesting }) => + initWindowABTesting(), ), { priority: 'critical' }, ); - void startup( - 'dynamicImport', - () => - import(/* webpackMode: "eager" */ './dynamicImport').then( - ({ dynamicImport }) => dynamicImport(), - ), - { - priority: 'critical', - }, - ); - void startup( 'islands', - () => - import(/* webpackMode: "eager" */ './islands/islands').then( - ({ islands }) => islands(), - ), + () => import('./islands/islands').then(({ islands }) => islands()), { priority: 'critical', }, @@ -91,9 +71,9 @@ void (async () => { void startup( 'poorPerformanceMonitoring', () => - import( - /* webpackMode: "eager" */ './poorPerformanceMonitoring' - ).then(({ recordPoorPerformance }) => recordPoorPerformance('Web')), + import('./poorPerformanceMonitoring').then( + ({ recordPoorPerformance }) => recordPoorPerformance('Web'), + ), { priority: 'critical', }, @@ -102,9 +82,9 @@ void (async () => { void startup( 'userFeatures', () => - import( - /* webpackMode: 'eager' */ './userFeatures/user-features' - ).then(({ refresh }) => refresh()), + import('./userFeatures/user-features').then(({ refresh }) => + refresh(), + ), { priority: 'critical' }, ); @@ -114,59 +94,39 @@ void (async () => { * because they are lower priority and do not want to block * the modules above on loading these. * - * We are not assigning chunk name to allow Webpack - * to optimise chunking based on its algorithm. - * *************************************************************/ void startup( 'atomIframe', - () => - import( - /* webpackMode: 'lazy' */ - './atomIframe' - ).then(({ atomIframe }) => atomIframe()), + () => import('./atomIframe').then(({ atomIframe }) => atomIframe()), { priority: 'feature' }, ); void startup( 'embedIframe', - () => - import( - /* webpackMode: 'lazy' */ - './embedIframe' - ).then(({ embedIframe }) => embedIframe()), + () => import('./embedIframe').then(({ embedIframe }) => embedIframe()), { priority: 'feature' }, ); void startup( 'newsletterEmbedIframe', () => - import( - /* webpackMode: 'lazy' */ - './newsletterEmbedIframe' - ).then(({ newsletterEmbedIframe }) => newsletterEmbedIframe()), + import('./newsletterEmbedIframe').then( + ({ newsletterEmbedIframe }) => newsletterEmbedIframe(), + ), { priority: 'feature' }, ); void startup( 'initDiscussion', - () => - import( - /* webpackMode: 'lazy' */ - './discussion' - ).then(({ discussion }) => discussion()), + () => import('./discussion').then(({ discussion }) => discussion()), { priority: 'feature' }, ); if (maybeSIndicatorCapiKey) { void startup( 'sIndicator', - () => - import( - /* webpackMode: 'lazy' */ - './sIndicator' - ).then(({ sIndicator }) => sIndicator()), + () => import('./sIndicator').then(({ sIndicator }) => sIndicator()), { priority: 'feature' }, ); } diff --git a/dotcom-rendering/src/client/ophan/ophan.ts b/dotcom-rendering/src/client/ophan/ophan.ts index d7259ee1b8b..3c72a3305e1 100644 --- a/dotcom-rendering/src/client/ophan/ophan.ts +++ b/dotcom-rendering/src/client/ophan/ophan.ts @@ -48,9 +48,7 @@ export const getOphan = async ( } // We've taken '@guardian/ophan-tracker-js' out of the apps client bundle (made it external in webpack) because we don't ever expect this method to be called. Tracking in apps is done natively. - const { default: ophan } = await import( - /* webpackMode: "eager" */ '@guardian/ophan-tracker-js' - ); + const { default: ophan } = await import('@guardian/ophan-tracker-js'); const record: (typeof ophan)['record'] = (event, callback) => { ophan.record(event, callback); diff --git a/dotcom-rendering/src/client/sentryLoader/loadSentry.ts b/dotcom-rendering/src/client/sentryLoader/loadSentry.ts index 962b12feb62..53c6fd13e38 100644 --- a/dotcom-rendering/src/client/sentryLoader/loadSentry.ts +++ b/dotcom-rendering/src/client/sentryLoader/loadSentry.ts @@ -1,6 +1,5 @@ import { isAdBlockInUse } from '@guardian/commercial-core'; import { log, startPerformanceMeasure } from '@guardian/libs'; -import '../webpackPublicPath'; import type { ReportError } from '../../types/sentry'; type ReportErrorError = Parameters[0]; @@ -69,10 +68,7 @@ const loadSentryCreator = () => { /** * Dynamically load sentry.ts */ - const { reportError } = await import( - /* webpackChunkName: "lazy" */ - /* webpackChunkName: "sentry" */ './sentry' - ); + const { reportError } = await import('./sentry'); /** * Replace the lazy loader stub with our custom error reporting function diff --git a/dotcom-rendering/src/client/sentryLoader/sentryLoader.test.ts b/dotcom-rendering/src/client/sentryLoader/sentryLoader.test.ts index 009bcd8285c..45ac8adc57d 100644 --- a/dotcom-rendering/src/client/sentryLoader/sentryLoader.test.ts +++ b/dotcom-rendering/src/client/sentryLoader/sentryLoader.test.ts @@ -1,6 +1,5 @@ import { isSentryEnabled } from './sentryLoader'; -// Stubbed to prevent parsing of __webpack_public_path__ jest.mock('./loadSentry', () => ({ loadSentry: jest.fn() })); describe('Enable Sentry when it passes loading conditions', () => { diff --git a/dotcom-rendering/src/client/webpackPublicPath.ts b/dotcom-rendering/src/client/webpackPublicPath.ts deleted file mode 100644 index 9e6928b474d..00000000000 --- a/dotcom-rendering/src/client/webpackPublicPath.ts +++ /dev/null @@ -1,7 +0,0 @@ -// allows us to define public path dynamically -// dynamic imports will use this as the base to find their assets - -import { decidePublicPath } from './decidePublicPath'; - -// https://webpack.js.org/guides/public-path/#on-the-fly -__webpack_public_path__ = decidePublicPath(); diff --git a/dotcom-rendering/src/components/AdSlot.apps.stories.tsx b/dotcom-rendering/src/components/AdSlot.apps.stories.tsx index 40c2891669d..693de16a5c7 100644 --- a/dotcom-rendering/src/components/AdSlot.apps.stories.tsx +++ b/dotcom-rendering/src/components/AdSlot.apps.stories.tsx @@ -1,4 +1,4 @@ -import type { Meta, StoryObj } from '@storybook/react-webpack5'; +import type { Meta, StoryObj } from '@storybook/react-vite'; import { rightColumnDecorator } from '../../.storybook/decorators/gridDecorators'; import { allModes } from '../../.storybook/modes'; import { AdSlot } from './AdSlot.apps'; diff --git a/dotcom-rendering/src/components/AdSlot.web.stories.tsx b/dotcom-rendering/src/components/AdSlot.web.stories.tsx index 7c887831f3d..6fe02524693 100644 --- a/dotcom-rendering/src/components/AdSlot.web.stories.tsx +++ b/dotcom-rendering/src/components/AdSlot.web.stories.tsx @@ -1,7 +1,7 @@ import type { SerializedStyles } from '@emotion/react'; import { css } from '@emotion/react'; import { remSpace, textSans14 } from '@guardian/source/foundations'; -import type { Meta, StoryObj } from '@storybook/react-webpack5'; +import type { Meta, StoryObj } from '@storybook/react-vite'; import { createRoot } from 'react-dom/client'; import { within } from 'storybook/test'; import { diff --git a/dotcom-rendering/src/components/AppsAudioPlayButton.stories.tsx b/dotcom-rendering/src/components/AppsAudioPlayButton.stories.tsx index 3234d7b953f..d5741a4a0d7 100644 --- a/dotcom-rendering/src/components/AppsAudioPlayButton.stories.tsx +++ b/dotcom-rendering/src/components/AppsAudioPlayButton.stories.tsx @@ -1,4 +1,4 @@ -import type { Meta, StoryObj } from '@storybook/react-webpack5'; +import type { Meta, StoryObj } from '@storybook/react-vite'; import { AppsAudioPlayButton as AppsAudioPlayButtonComponent } from './AppsAudioPlayButton'; const meta = { diff --git a/dotcom-rendering/src/components/ArticleHeadline.stories.tsx b/dotcom-rendering/src/components/ArticleHeadline.stories.tsx index a356a434611..ad85dbc93d5 100644 --- a/dotcom-rendering/src/components/ArticleHeadline.stories.tsx +++ b/dotcom-rendering/src/components/ArticleHeadline.stories.tsx @@ -1,5 +1,5 @@ import { css } from '@emotion/react'; -import type { Meta, StoryObj } from '@storybook/react-webpack5'; +import type { Meta, StoryObj } from '@storybook/react-vite'; import { centreColumnDecorator } from '../../.storybook/decorators/gridDecorators'; import { allModes } from '../../.storybook/modes'; import { diff --git a/dotcom-rendering/src/components/AuthProviderButtons/AuthProviderButtons.stories.tsx b/dotcom-rendering/src/components/AuthProviderButtons/AuthProviderButtons.stories.tsx index 4cd5b56c224..4d709dcc941 100644 --- a/dotcom-rendering/src/components/AuthProviderButtons/AuthProviderButtons.stories.tsx +++ b/dotcom-rendering/src/components/AuthProviderButtons/AuthProviderButtons.stories.tsx @@ -3,7 +3,7 @@ * This file was migrated from: * https://github.com/guardian/gateway/blob/b980d008f91bd1abb108e50de9cdd1c364f37f4d/src/client/components/AuthProviderButtons.stories.tsx */ -import type { Meta } from '@storybook/react-webpack5'; +import type { Meta } from '@storybook/react-vite'; import { AuthProviderButtons } from './AuthProviderButtons'; export default { diff --git a/dotcom-rendering/src/components/BlockquoteBlockComponent.stories.tsx b/dotcom-rendering/src/components/BlockquoteBlockComponent.stories.tsx index 6b8b6fe9c37..36a3abbe25f 100644 --- a/dotcom-rendering/src/components/BlockquoteBlockComponent.stories.tsx +++ b/dotcom-rendering/src/components/BlockquoteBlockComponent.stories.tsx @@ -1,4 +1,4 @@ -import type { Meta, StoryObj } from '@storybook/react-webpack5'; +import type { Meta, StoryObj } from '@storybook/react-vite'; import { centreColumnDecorator } from '../../.storybook/decorators/gridDecorators'; import { allModes } from '../../.storybook/modes'; import { diff --git a/dotcom-rendering/src/components/Button/EditorialButton.stories.tsx b/dotcom-rendering/src/components/Button/EditorialButton.stories.tsx index c403f4ae58b..6a891ef51a5 100644 --- a/dotcom-rendering/src/components/Button/EditorialButton.stories.tsx +++ b/dotcom-rendering/src/components/Button/EditorialButton.stories.tsx @@ -1,5 +1,5 @@ import { css } from '@emotion/react'; -import type { StoryFn } from '@storybook/react-webpack5'; +import type { StoryFn } from '@storybook/react-vite'; import { lightDecorator } from '../../../.storybook/decorators/themeDecorator'; import preview from '../../../.storybook/preview'; import { diff --git a/dotcom-rendering/src/components/Button/EditorialLinkButton.stories.tsx b/dotcom-rendering/src/components/Button/EditorialLinkButton.stories.tsx index 7785134020a..a8a7ee161a5 100644 --- a/dotcom-rendering/src/components/Button/EditorialLinkButton.stories.tsx +++ b/dotcom-rendering/src/components/Button/EditorialLinkButton.stories.tsx @@ -1,5 +1,5 @@ import { css } from '@emotion/react'; -import type { StoryFn } from '@storybook/react-webpack5'; +import type { StoryFn } from '@storybook/react-vite'; import { lightDecorator } from '../../../.storybook/decorators/themeDecorator'; import preview from '../../../.storybook/preview'; import { diff --git a/dotcom-rendering/src/components/Button/ProductLinkButton.stories.tsx b/dotcom-rendering/src/components/Button/ProductLinkButton.stories.tsx index 8c8e7a9d1ec..31099763c7e 100644 --- a/dotcom-rendering/src/components/Button/ProductLinkButton.stories.tsx +++ b/dotcom-rendering/src/components/Button/ProductLinkButton.stories.tsx @@ -1,5 +1,5 @@ import { breakpoints } from '@guardian/source/foundations'; -import type { Meta, StoryObj } from '@storybook/react-webpack5'; +import type { Meta, StoryObj } from '@storybook/react-vite'; import { ProductLinkButton } from './ProductLinkButton'; const meta = { diff --git a/dotcom-rendering/src/components/CalloutBlockComponent.stories.tsx b/dotcom-rendering/src/components/CalloutBlockComponent.stories.tsx index e6f698a9811..3e618967362 100644 --- a/dotcom-rendering/src/components/CalloutBlockComponent.stories.tsx +++ b/dotcom-rendering/src/components/CalloutBlockComponent.stories.tsx @@ -1,4 +1,4 @@ -import type { Decorator, Meta, StoryObj } from '@storybook/react-webpack5'; +import type { Decorator, Meta, StoryObj } from '@storybook/react-vite'; import { centreColumnDecorator } from '../../.storybook/decorators/gridDecorators'; import { allModes } from '../../.storybook/modes'; import { calloutCampaign as calloutCampaignV2 } from '../../fixtures/manual/calloutCampaignV2'; diff --git a/dotcom-rendering/src/components/CalloutEmbedBlockComponent.stories.tsx b/dotcom-rendering/src/components/CalloutEmbedBlockComponent.stories.tsx index b25c918f8ba..922c8ff4fc8 100644 --- a/dotcom-rendering/src/components/CalloutEmbedBlockComponent.stories.tsx +++ b/dotcom-rendering/src/components/CalloutEmbedBlockComponent.stories.tsx @@ -1,4 +1,4 @@ -import type { Decorator, Meta, StoryObj } from '@storybook/react-webpack5'; +import type { Decorator, Meta, StoryObj } from '@storybook/react-vite'; import { centreColumnDecorator } from '../../.storybook/decorators/gridDecorators'; import { allModes } from '../../.storybook/modes'; import { calloutCampaign } from '../../fixtures/manual/calloutCampaign'; diff --git a/dotcom-rendering/src/components/CardHeadline.stories.tsx b/dotcom-rendering/src/components/CardHeadline.stories.tsx index 75bacfd69b6..06fbb6223cf 100644 --- a/dotcom-rendering/src/components/CardHeadline.stories.tsx +++ b/dotcom-rendering/src/components/CardHeadline.stories.tsx @@ -1,5 +1,5 @@ import { breakpoints } from '@guardian/source/foundations'; -import type { StoryObj } from '@storybook/react-webpack5'; +import type { StoryObj } from '@storybook/react-vite'; import type { StoryProps } from '../../.storybook/decorators/splitThemeDecorator'; import { splitTheme } from '../../.storybook/decorators/splitThemeDecorator'; import { diff --git a/dotcom-rendering/src/components/Carousel.stories.tsx b/dotcom-rendering/src/components/Carousel.stories.tsx index 9910ca8ce0d..bdd638e6808 100644 --- a/dotcom-rendering/src/components/Carousel.stories.tsx +++ b/dotcom-rendering/src/components/Carousel.stories.tsx @@ -1,5 +1,5 @@ import { breakpoints } from '@guardian/source/foundations'; -import type { StoryObj } from '@storybook/react-webpack5'; +import type { StoryObj } from '@storybook/react-vite'; import { splitTheme } from '../../.storybook/decorators/splitThemeDecorator'; import type { StoryProps } from '../../.storybook/decorators/splitThemeDecorator'; import { discussionApiUrl } from '../../fixtures/manual/discussionApiUrl'; diff --git a/dotcom-rendering/src/components/ClickToView.stories.tsx b/dotcom-rendering/src/components/ClickToView.stories.tsx index 5e5e5526d44..b29f6244968 100644 --- a/dotcom-rendering/src/components/ClickToView.stories.tsx +++ b/dotcom-rendering/src/components/ClickToView.stories.tsx @@ -1,6 +1,6 @@ import { css } from '@emotion/react'; import { textSans17 } from '@guardian/source/foundations'; -import type { StoryObj } from '@storybook/react-webpack5'; +import type { StoryObj } from '@storybook/react-vite'; import { splitTheme } from '../../.storybook/decorators/splitThemeDecorator'; import { ArticleDesign, diff --git a/dotcom-rendering/src/components/CricketMatchHeader/CricketMatchHeader.stories.tsx b/dotcom-rendering/src/components/CricketMatchHeader/CricketMatchHeader.stories.tsx index 40718ab7467..98a903269cc 100644 --- a/dotcom-rendering/src/components/CricketMatchHeader/CricketMatchHeader.stories.tsx +++ b/dotcom-rendering/src/components/CricketMatchHeader/CricketMatchHeader.stories.tsx @@ -1,4 +1,4 @@ -import type { Meta, StoryObj } from '@storybook/react-webpack5'; +import type { Meta, StoryObj } from '@storybook/react-vite'; import type { ComponentProps } from 'react'; import { expect, waitFor, within } from 'storybook/test'; import type { FECricketMatchHeader } from '../../frontend/feCricketMatchHeader'; diff --git a/dotcom-rendering/src/components/DateTime.stories.tsx b/dotcom-rendering/src/components/DateTime.stories.tsx index b4cfa50f2c3..a5c5410f6fe 100644 --- a/dotcom-rendering/src/components/DateTime.stories.tsx +++ b/dotcom-rendering/src/components/DateTime.stories.tsx @@ -1,6 +1,6 @@ import { css } from '@emotion/react'; import { space, textSans15 } from '@guardian/source/foundations'; -import type { Meta, StoryObj } from '@storybook/react-webpack5'; +import type { Meta, StoryObj } from '@storybook/react-vite'; import type { EditionId } from '../lib/edition'; import { ConfigProvider } from './ConfigContext'; import { DateTime } from './DateTime'; diff --git a/dotcom-rendering/src/components/Discussion.stories.tsx b/dotcom-rendering/src/components/Discussion.stories.tsx index d3ba58f6a48..688bca40995 100644 --- a/dotcom-rendering/src/components/Discussion.stories.tsx +++ b/dotcom-rendering/src/components/Discussion.stories.tsx @@ -1,5 +1,5 @@ import { storage } from '@guardian/libs'; -import type { StoryObj } from '@storybook/react-webpack5'; +import type { StoryObj } from '@storybook/react-vite'; import { splitTheme } from '../../.storybook/decorators/splitThemeDecorator'; import type { StoryProps } from '../../.storybook/decorators/splitThemeDecorator'; import { Section } from '../components/Section'; diff --git a/dotcom-rendering/src/components/ElectionTrackers/ChangeBars.stories.tsx b/dotcom-rendering/src/components/ElectionTrackers/ChangeBars.stories.tsx index 29a5cceaf0f..0e3dc153420 100644 --- a/dotcom-rendering/src/components/ElectionTrackers/ChangeBars.stories.tsx +++ b/dotcom-rendering/src/components/ElectionTrackers/ChangeBars.stories.tsx @@ -1,5 +1,5 @@ import { palette as sourcePalette } from '@guardian/source/foundations'; -import type { Meta, StoryObj } from '@storybook/react-webpack5'; +import type { Meta, StoryObj } from '@storybook/react-vite'; import { allModes } from '../../../.storybook/modes'; import { palette } from '../../palette'; import { ChangeBars } from './ChangeBars'; diff --git a/dotcom-rendering/src/components/ElectionTrackers/StackedProgress.stories.tsx b/dotcom-rendering/src/components/ElectionTrackers/StackedProgress.stories.tsx index 98672c477cf..804faa893b9 100644 --- a/dotcom-rendering/src/components/ElectionTrackers/StackedProgress.stories.tsx +++ b/dotcom-rendering/src/components/ElectionTrackers/StackedProgress.stories.tsx @@ -1,4 +1,4 @@ -import type { Meta, StoryObj } from '@storybook/react-webpack5'; +import type { Meta, StoryObj } from '@storybook/react-vite'; import { allModes } from '../../../.storybook/modes'; import { palette } from '../../palette'; import { StackedProgress } from './StackedProgress'; diff --git a/dotcom-rendering/src/components/ElectionTrackers/ValuesWithChange.stories.tsx b/dotcom-rendering/src/components/ElectionTrackers/ValuesWithChange.stories.tsx index 7e5f29214dc..fc3aff07570 100644 --- a/dotcom-rendering/src/components/ElectionTrackers/ValuesWithChange.stories.tsx +++ b/dotcom-rendering/src/components/ElectionTrackers/ValuesWithChange.stories.tsx @@ -1,5 +1,5 @@ import { palette as sourcePalette } from '@guardian/source/foundations'; -import type { Meta, StoryObj } from '@storybook/react-webpack5'; +import type { Meta, StoryObj } from '@storybook/react-vite'; import { allModes } from '../../../.storybook/modes'; import { palette } from '../../palette'; import { ValuesWithChange } from './ValuesWithChange'; diff --git a/dotcom-rendering/src/components/ElectionTrackers/Versus.stories.tsx b/dotcom-rendering/src/components/ElectionTrackers/Versus.stories.tsx index e13631850e0..b36e78caa55 100644 --- a/dotcom-rendering/src/components/ElectionTrackers/Versus.stories.tsx +++ b/dotcom-rendering/src/components/ElectionTrackers/Versus.stories.tsx @@ -1,5 +1,5 @@ import { palette as sourcePalette } from '@guardian/source/foundations'; -import type { Meta, StoryObj } from '@storybook/react-webpack5'; +import type { Meta, StoryObj } from '@storybook/react-vite'; import { allModes } from '../../../.storybook/modes'; import { palette } from '../../palette'; import { Versus } from './Versus'; diff --git a/dotcom-rendering/src/components/EmailSignUpWrapper.stories.tsx b/dotcom-rendering/src/components/EmailSignUpWrapper.stories.tsx index a3e92e981dd..44f18ab8c4c 100644 --- a/dotcom-rendering/src/components/EmailSignUpWrapper.stories.tsx +++ b/dotcom-rendering/src/components/EmailSignUpWrapper.stories.tsx @@ -1,4 +1,4 @@ -import type { StoryObj } from '@storybook/react-webpack5'; +import type { StoryObj } from '@storybook/react-vite'; import { mocked, within } from 'storybook/test'; import preview from '../../.storybook/preview'; import { lazyFetchEmailWithTimeout } from '../lib/fetchEmail'; diff --git a/dotcom-rendering/src/components/FeastContextualNudge.stories.tsx b/dotcom-rendering/src/components/FeastContextualNudge.stories.tsx index 3f5019fc7c4..1e65bcaccb5 100644 --- a/dotcom-rendering/src/components/FeastContextualNudge.stories.tsx +++ b/dotcom-rendering/src/components/FeastContextualNudge.stories.tsx @@ -1,4 +1,4 @@ -import type { Meta, StoryObj } from '@storybook/react-webpack5'; +import type { Meta, StoryObj } from '@storybook/react-vite'; import { mocked } from 'storybook/test'; import { darkDecorator } from '../../.storybook/decorators/themeDecorator'; import { ArticleDesign, ArticleDisplay, Pillar } from '../lib/articleFormat'; diff --git a/dotcom-rendering/src/components/FeatureCard.stories.tsx b/dotcom-rendering/src/components/FeatureCard.stories.tsx index 3a30b6e8874..0b60c5064dd 100644 --- a/dotcom-rendering/src/components/FeatureCard.stories.tsx +++ b/dotcom-rendering/src/components/FeatureCard.stories.tsx @@ -1,6 +1,6 @@ import { css } from '@emotion/react'; import { from } from '@guardian/source/foundations'; -import type { Meta, StoryObj } from '@storybook/react-webpack5'; +import type { Meta, StoryObj } from '@storybook/react-vite'; import { selfHostedLoopVideo45Card, selfHostedLoopVideo53Card, diff --git a/dotcom-rendering/src/components/FlexibleGeneral.stories.tsx b/dotcom-rendering/src/components/FlexibleGeneral.stories.tsx index 1eee920d90e..48413fdd59f 100644 --- a/dotcom-rendering/src/components/FlexibleGeneral.stories.tsx +++ b/dotcom-rendering/src/components/FlexibleGeneral.stories.tsx @@ -1,5 +1,5 @@ import { breakpoints } from '@guardian/source/foundations'; -import type { Meta, StoryObj } from '@storybook/react-webpack5'; +import type { Meta, StoryObj } from '@storybook/react-vite'; import { discussionApiUrl } from '../../fixtures/manual/discussionApiUrl'; import { audioTrails, diff --git a/dotcom-rendering/src/components/FlexibleSpecial.stories.tsx b/dotcom-rendering/src/components/FlexibleSpecial.stories.tsx index ae6bb5795ff..b312fa1142a 100644 --- a/dotcom-rendering/src/components/FlexibleSpecial.stories.tsx +++ b/dotcom-rendering/src/components/FlexibleSpecial.stories.tsx @@ -1,5 +1,5 @@ import { breakpoints } from '@guardian/source/foundations'; -import type { Meta, StoryObj } from '@storybook/react-webpack5'; +import type { Meta, StoryObj } from '@storybook/react-vite'; import { discussionApiUrl } from '../../fixtures/manual/discussionApiUrl'; import { getSublinks, diff --git a/dotcom-rendering/src/components/FootballMatchStat.stories.tsx b/dotcom-rendering/src/components/FootballMatchStat.stories.tsx index b35601c6a04..707bd2e4ccf 100644 --- a/dotcom-rendering/src/components/FootballMatchStat.stories.tsx +++ b/dotcom-rendering/src/components/FootballMatchStat.stories.tsx @@ -1,6 +1,6 @@ import { css } from '@emotion/react'; import { space } from '@guardian/source/foundations'; -import type { Meta, StoryObj } from '@storybook/react-webpack5'; +import type { Meta, StoryObj } from '@storybook/react-vite'; import { splitTheme } from '../../.storybook/decorators/splitThemeDecorator'; import { footballTeams } from '../../fixtures/manual/footballTeams'; import { ArticleDesign, ArticleDisplay, Pillar } from '../lib/articleFormat'; diff --git a/dotcom-rendering/src/components/FootballMatchesPage.stories.tsx b/dotcom-rendering/src/components/FootballMatchesPage.stories.tsx index 37726b09f58..b1eb86f3a66 100644 --- a/dotcom-rendering/src/components/FootballMatchesPage.stories.tsx +++ b/dotcom-rendering/src/components/FootballMatchesPage.stories.tsx @@ -1,4 +1,4 @@ -import type { StoryObj } from '@storybook/react-webpack5'; +import type { StoryObj } from '@storybook/react-vite'; import { fn } from 'storybook/test'; import { initialDays, regions } from '../../fixtures/manual/footballData'; import { WomensEuro2025 } from './DirectoryPageNav.stories'; diff --git a/dotcom-rendering/src/components/FootballTableList.stories.tsx b/dotcom-rendering/src/components/FootballTableList.stories.tsx index a4c9104a7c7..ab67b02e1b1 100644 --- a/dotcom-rendering/src/components/FootballTableList.stories.tsx +++ b/dotcom-rendering/src/components/FootballTableList.stories.tsx @@ -1,4 +1,4 @@ -import type { Meta, StoryObj } from '@storybook/react-webpack5'; +import type { Meta, StoryObj } from '@storybook/react-vite'; import { FootballTable as TableDefault } from './FootballTable.stories'; import { FootballTableList as FootballTableListComponent } from './FootballTableList'; diff --git a/dotcom-rendering/src/components/FootballTablesPage.stories.tsx b/dotcom-rendering/src/components/FootballTablesPage.stories.tsx index f29457bd21a..c0cb46a5ee5 100644 --- a/dotcom-rendering/src/components/FootballTablesPage.stories.tsx +++ b/dotcom-rendering/src/components/FootballTablesPage.stories.tsx @@ -1,4 +1,4 @@ -import type { Meta, StoryObj } from '@storybook/react-webpack5'; +import type { Meta, StoryObj } from '@storybook/react-vite'; import { regions } from '../../fixtures/manual/footballData'; import { WomensEuro2025 } from './DirectoryPageNav.stories'; import { FootballTableList as TableListDefault } from './FootballTableList.stories'; diff --git a/dotcom-rendering/src/components/FrontSection.stories.tsx b/dotcom-rendering/src/components/FrontSection.stories.tsx index e3b4d4b98e9..506a9a23f21 100644 --- a/dotcom-rendering/src/components/FrontSection.stories.tsx +++ b/dotcom-rendering/src/components/FrontSection.stories.tsx @@ -1,6 +1,6 @@ import { css } from '@emotion/react'; import { breakpoints } from '@guardian/source/foundations'; -import type { Meta, StoryObj } from '@storybook/react-webpack5'; +import type { Meta, StoryObj } from '@storybook/react-vite'; import type { ReactNode } from 'react'; import { LI } from './Card/components/LI'; import { FrontSection } from './FrontSection'; diff --git a/dotcom-rendering/src/components/HeadlineByline.stories.tsx b/dotcom-rendering/src/components/HeadlineByline.stories.tsx index 71b1e8ca10e..9edf264d037 100644 --- a/dotcom-rendering/src/components/HeadlineByline.stories.tsx +++ b/dotcom-rendering/src/components/HeadlineByline.stories.tsx @@ -1,5 +1,5 @@ import { css } from '@emotion/react'; -import type { StoryObj } from '@storybook/react-webpack5'; +import type { StoryObj } from '@storybook/react-vite'; import { splitTheme, type StoryProps, diff --git a/dotcom-rendering/src/components/InformationBox/InformationBox.stories.tsx b/dotcom-rendering/src/components/InformationBox/InformationBox.stories.tsx index 3fde813d0cf..0a75ef7799d 100644 --- a/dotcom-rendering/src/components/InformationBox/InformationBox.stories.tsx +++ b/dotcom-rendering/src/components/InformationBox/InformationBox.stories.tsx @@ -6,7 +6,7 @@ import { css } from '@emotion/react'; import { palette } from '@guardian/source/foundations'; import { ButtonLink } from '@guardian/source/react-components'; -import type { Meta } from '@storybook/react-webpack5'; +import type { Meta } from '@storybook/react-vite'; import { ExternalLink } from '../ExternalLink/ExternalLink'; import { ThemedLink } from '../ThemedLink/ThemedLink'; import { InformationBox, InformationBoxText } from './InformationBox'; diff --git a/dotcom-rendering/src/components/InteractiveBlockComponent.island.tsx b/dotcom-rendering/src/components/InteractiveBlockComponent.island.tsx index 319856c95fb..7a4d934c45f 100644 --- a/dotcom-rendering/src/components/InteractiveBlockComponent.island.tsx +++ b/dotcom-rendering/src/components/InteractiveBlockComponent.island.tsx @@ -1,3 +1,4 @@ +// AMD require provided by curl.js loader for legacy interactives import { css } from '@emotion/react'; import type { SerializedStyles } from '@emotion/react'; import { getErrorMessage, isUndefined, log } from '@guardian/libs'; @@ -19,6 +20,12 @@ import { useConfig } from './ConfigContext'; import { defaultRoleStyles } from './Figure'; import { Placeholder } from './Placeholder'; +declare global { + interface Window { + require(modules: string[], callback: (...args: never[]) => void): void; + } +} + /* HISTORY diff --git a/dotcom-rendering/src/components/InteractiveBlockComponent.stories.tsx b/dotcom-rendering/src/components/InteractiveBlockComponent.stories.tsx index 7c5a7321f42..156dddea3f6 100644 --- a/dotcom-rendering/src/components/InteractiveBlockComponent.stories.tsx +++ b/dotcom-rendering/src/components/InteractiveBlockComponent.stories.tsx @@ -1,4 +1,4 @@ -import type { StoryObj } from '@storybook/react-webpack5'; +import type { StoryObj } from '@storybook/react-vite'; import type { StoryProps } from '../../.storybook/decorators/splitThemeDecorator'; import { splitTheme } from '../../.storybook/decorators/splitThemeDecorator'; import { ArticleDesign, ArticleDisplay, Pillar } from '../lib/articleFormat'; diff --git a/dotcom-rendering/src/components/Kicker.stories.tsx b/dotcom-rendering/src/components/Kicker.stories.tsx index 8063b9e1211..e0009e56cca 100644 --- a/dotcom-rendering/src/components/Kicker.stories.tsx +++ b/dotcom-rendering/src/components/Kicker.stories.tsx @@ -1,4 +1,4 @@ -import type { Meta } from '@storybook/react-webpack5'; +import type { Meta } from '@storybook/react-vite'; import type { CSSProperties } from 'react'; import { splitTheme } from '../../.storybook/decorators/splitThemeDecorator'; import { ArticleDesign, ArticleDisplay, Pillar } from '../lib/articleFormat'; diff --git a/dotcom-rendering/src/components/LabsSectionHeader.stories.tsx b/dotcom-rendering/src/components/LabsSectionHeader.stories.tsx index 36605196c2c..b694fc5d517 100644 --- a/dotcom-rendering/src/components/LabsSectionHeader.stories.tsx +++ b/dotcom-rendering/src/components/LabsSectionHeader.stories.tsx @@ -1,6 +1,6 @@ import { css } from '@emotion/react'; import { from } from '@guardian/source/foundations'; -import type { Meta, StoryObj } from '@storybook/react-webpack5'; +import type { Meta, StoryObj } from '@storybook/react-vite'; import { userEvent, within } from 'storybook/test'; import { defaultFormats, diff --git a/dotcom-rendering/src/components/Lightbox.stories.tsx b/dotcom-rendering/src/components/Lightbox.stories.tsx index 61c23fea7b0..4f5cb68330f 100644 --- a/dotcom-rendering/src/components/Lightbox.stories.tsx +++ b/dotcom-rendering/src/components/Lightbox.stories.tsx @@ -1,7 +1,7 @@ import { css } from '@emotion/react'; import { storage } from '@guardian/libs'; import { breakpoints } from '@guardian/source/foundations'; -import type { Meta, StoryObj } from '@storybook/react-webpack5'; +import type { Meta, StoryObj } from '@storybook/react-vite'; import { useEffect } from 'react'; import { ArticleDesign, diff --git a/dotcom-rendering/src/components/LinkBlockComponent.stories.tsx b/dotcom-rendering/src/components/LinkBlockComponent.stories.tsx index fda5ae389ab..436442d7ad9 100644 --- a/dotcom-rendering/src/components/LinkBlockComponent.stories.tsx +++ b/dotcom-rendering/src/components/LinkBlockComponent.stories.tsx @@ -1,4 +1,4 @@ -import type { Meta, StoryFn, StoryObj } from '@storybook/react-webpack5'; +import type { Meta, StoryFn, StoryObj } from '@storybook/react-vite'; import { lightDecorator } from '../../.storybook/decorators/themeDecorator'; import { ArticleDesign, diff --git a/dotcom-rendering/src/components/LinkHeadline.stories.tsx b/dotcom-rendering/src/components/LinkHeadline.stories.tsx index 512d26d2bea..dd3f0f6e607 100644 --- a/dotcom-rendering/src/components/LinkHeadline.stories.tsx +++ b/dotcom-rendering/src/components/LinkHeadline.stories.tsx @@ -1,4 +1,4 @@ -import type { StoryObj } from '@storybook/react-webpack5'; +import type { StoryObj } from '@storybook/react-vite'; import type { StoryProps } from '../../.storybook/decorators/splitThemeDecorator'; import { splitTheme } from '../../.storybook/decorators/splitThemeDecorator'; import { diff --git a/dotcom-rendering/src/components/LiveBlogEpic.island.tsx b/dotcom-rendering/src/components/LiveBlogEpic.island.tsx index 708bbbf4035..4b842cda5c7 100644 --- a/dotcom-rendering/src/components/LiveBlogEpic.island.tsx +++ b/dotcom-rendering/src/components/LiveBlogEpic.island.tsx @@ -43,9 +43,7 @@ const useEpic = ({ name }: { name: string }) => { const [Epic, setEpic] = useState>(); useEffect(() => { - import( - /* webpackChunkName: "contributions-liveblog-epic" */ `./marketing/epics/ContributionsLiveblogEpic` - ) + import(`./marketing/epics/ContributionsLiveblogEpic`) .then((epicModule) => { setEpic(() => epicModule.ContributionsLiveblogEpic); }) diff --git a/dotcom-rendering/src/components/Masthead/HighlightsCard.stories.tsx b/dotcom-rendering/src/components/Masthead/HighlightsCard.stories.tsx index 528bc253539..9dc6a54f159 100644 --- a/dotcom-rendering/src/components/Masthead/HighlightsCard.stories.tsx +++ b/dotcom-rendering/src/components/Masthead/HighlightsCard.stories.tsx @@ -1,6 +1,6 @@ import { css } from '@emotion/react'; import { from } from '@guardian/source/foundations'; -import type { Meta, StoryObj } from '@storybook/react-webpack5'; +import type { Meta, StoryObj } from '@storybook/react-vite'; import type { ArticleTheme } from '../../lib/articleFormat'; import { ArticleDesign, diff --git a/dotcom-rendering/src/components/Masthead/Masthead.stories.tsx b/dotcom-rendering/src/components/Masthead/Masthead.stories.tsx index 4b954144504..ca5691e6cc6 100644 --- a/dotcom-rendering/src/components/Masthead/Masthead.stories.tsx +++ b/dotcom-rendering/src/components/Masthead/Masthead.stories.tsx @@ -1,5 +1,5 @@ import { breakpoints } from '@guardian/source/foundations'; -import type { Meta } from '@storybook/react-webpack5'; +import type { Meta } from '@storybook/react-vite'; import { Masthead } from './Masthead'; import { nav } from './Titlepiece/Nav.mock'; diff --git a/dotcom-rendering/src/components/Masthead/Newsletter/HighlightsNewsletterCard.stories.tsx b/dotcom-rendering/src/components/Masthead/Newsletter/HighlightsNewsletterCard.stories.tsx index c2e10a60351..799e8ed71e0 100644 --- a/dotcom-rendering/src/components/Masthead/Newsletter/HighlightsNewsletterCard.stories.tsx +++ b/dotcom-rendering/src/components/Masthead/Newsletter/HighlightsNewsletterCard.stories.tsx @@ -1,6 +1,6 @@ import { css } from '@emotion/react'; import { from } from '@guardian/source/foundations'; -import type { Meta, StoryObj } from '@storybook/react-webpack5'; +import type { Meta, StoryObj } from '@storybook/react-vite'; import { newsletterSignupCard } from '../../../../fixtures/manual/highlights-trails'; import { ArticleDesign, diff --git a/dotcom-rendering/src/components/Masthead/Newsletter/HighlightsNewsletterSignupModal.stories.tsx b/dotcom-rendering/src/components/Masthead/Newsletter/HighlightsNewsletterSignupModal.stories.tsx index 84b25396963..bfa47f4af72 100644 --- a/dotcom-rendering/src/components/Masthead/Newsletter/HighlightsNewsletterSignupModal.stories.tsx +++ b/dotcom-rendering/src/components/Masthead/Newsletter/HighlightsNewsletterSignupModal.stories.tsx @@ -1,4 +1,4 @@ -import type { StoryObj } from '@storybook/react-webpack5'; +import type { StoryObj } from '@storybook/react-vite'; import { mocked } from 'storybook/test'; import preview from '../../../../.storybook/preview'; import { newsletterSignupCard } from '../../../../fixtures/manual/highlights-trails'; diff --git a/dotcom-rendering/src/components/Masthead/Titlepiece/EditionDropdown.stories.tsx b/dotcom-rendering/src/components/Masthead/Titlepiece/EditionDropdown.stories.tsx index 36620fecf83..30313f8e8ce 100644 --- a/dotcom-rendering/src/components/Masthead/Titlepiece/EditionDropdown.stories.tsx +++ b/dotcom-rendering/src/components/Masthead/Titlepiece/EditionDropdown.stories.tsx @@ -1,4 +1,4 @@ -import type { Meta } from '@storybook/react-webpack5'; +import type { Meta } from '@storybook/react-vite'; import { EditionDropdown } from './EditionDropdown'; const meta = { diff --git a/dotcom-rendering/src/components/Masthead/Titlepiece/Pillars.stories.tsx b/dotcom-rendering/src/components/Masthead/Titlepiece/Pillars.stories.tsx index 62b8d00a99c..bce3ed9a947 100644 --- a/dotcom-rendering/src/components/Masthead/Titlepiece/Pillars.stories.tsx +++ b/dotcom-rendering/src/components/Masthead/Titlepiece/Pillars.stories.tsx @@ -1,6 +1,6 @@ import { css } from '@emotion/react'; import { palette as sourcePalette } from '@guardian/source/foundations'; -import type { Meta } from '@storybook/react-webpack5'; +import type { Meta } from '@storybook/react-vite'; import type { Pillar } from '../../../lib/articleFormat'; import { nestedOphanComponents } from '../../../lib/ophan-helpers'; import { nav } from './Nav.mock'; diff --git a/dotcom-rendering/src/components/MostViewedFooterLayout.stories.tsx b/dotcom-rendering/src/components/MostViewedFooterLayout.stories.tsx index 85e42c912c7..9d05bf9ddba 100644 --- a/dotcom-rendering/src/components/MostViewedFooterLayout.stories.tsx +++ b/dotcom-rendering/src/components/MostViewedFooterLayout.stories.tsx @@ -1,4 +1,4 @@ -import type { StoryObj } from '@storybook/react-webpack5'; +import type { StoryObj } from '@storybook/react-vite'; import { splitTheme } from '../../.storybook/decorators/splitThemeDecorator'; import { trails } from '../../fixtures/manual/trails'; import { ArticleDesign, ArticleDisplay, Pillar } from '../lib/articleFormat'; diff --git a/dotcom-rendering/src/components/MostViewedRight.stories.tsx b/dotcom-rendering/src/components/MostViewedRight.stories.tsx index bd8c2a822dc..04257668f44 100644 --- a/dotcom-rendering/src/components/MostViewedRight.stories.tsx +++ b/dotcom-rendering/src/components/MostViewedRight.stories.tsx @@ -1,4 +1,4 @@ -import type { StoryObj } from '@storybook/react-webpack5'; +import type { StoryObj } from '@storybook/react-vite'; import { splitTheme, type StoryProps, diff --git a/dotcom-rendering/src/components/NotificationsToggle.stories.tsx b/dotcom-rendering/src/components/NotificationsToggle.stories.tsx index beb2254d3a3..40f5873b415 100644 --- a/dotcom-rendering/src/components/NotificationsToggle.stories.tsx +++ b/dotcom-rendering/src/components/NotificationsToggle.stories.tsx @@ -1,5 +1,5 @@ import { Topic } from '@guardian/bridget'; -import type { Meta, StoryObj } from '@storybook/react-webpack5'; +import type { Meta, StoryObj } from '@storybook/react-vite'; import { expect, fn, userEvent, waitFor, within } from 'storybook/test'; import type { NotificationsClient } from '../lib/bridgetApi'; import { NotificationsToggle as NotificationsToggleComponent } from './NotificationsToggle'; diff --git a/dotcom-rendering/src/components/PinnedPost.stories.tsx b/dotcom-rendering/src/components/PinnedPost.stories.tsx index d5292db1949..d6e56d1abb5 100644 --- a/dotcom-rendering/src/components/PinnedPost.stories.tsx +++ b/dotcom-rendering/src/components/PinnedPost.stories.tsx @@ -1,6 +1,6 @@ import { css } from '@emotion/react'; import { breakpoints, from } from '@guardian/source/foundations'; -import type { Meta, StoryObj } from '@storybook/react-webpack5'; +import type { Meta, StoryObj } from '@storybook/react-vite'; import { liveBlock } from '../../fixtures/manual/liveBlock'; import { ArticleDesign, diff --git a/dotcom-rendering/src/components/ReaderRevenueDev.island.tsx b/dotcom-rendering/src/components/ReaderRevenueDev.island.tsx index 80e0fc6aa77..2d253f6f6db 100644 --- a/dotcom-rendering/src/components/ReaderRevenueDev.island.tsx +++ b/dotcom-rendering/src/components/ReaderRevenueDev.island.tsx @@ -11,9 +11,7 @@ export const ReaderRevenueDev = ({ shouldHideReaderRevenue }: Props) => { const loadAndRun = (key: K) => (asExistingSupporter: boolean) => - import( - /* webpackChunkName: "readerRevenueDevUtils" */ '../lib/readerRevenueDevUtils' - ) + import('../lib/readerRevenueDevUtils') .then((utils) => utils[key]( asExistingSupporter, diff --git a/dotcom-rendering/src/components/ScrollableFeature.stories.tsx b/dotcom-rendering/src/components/ScrollableFeature.stories.tsx index a9e9573b594..917b1a22bc3 100644 --- a/dotcom-rendering/src/components/ScrollableFeature.stories.tsx +++ b/dotcom-rendering/src/components/ScrollableFeature.stories.tsx @@ -1,5 +1,5 @@ import { breakpoints } from '@guardian/source/foundations'; -import type { Meta, StoryObj } from '@storybook/react-webpack5'; +import type { Meta, StoryObj } from '@storybook/react-vite'; import { audioTrails, galleryTrails, diff --git a/dotcom-rendering/src/components/ScrollableMedium.stories.tsx b/dotcom-rendering/src/components/ScrollableMedium.stories.tsx index 8a3dec63549..98758f496da 100644 --- a/dotcom-rendering/src/components/ScrollableMedium.stories.tsx +++ b/dotcom-rendering/src/components/ScrollableMedium.stories.tsx @@ -1,5 +1,5 @@ import { breakpoints } from '@guardian/source/foundations'; -import type { Meta, StoryObj } from '@storybook/react-webpack5'; +import type { Meta, StoryObj } from '@storybook/react-vite'; import { trails } from '../../fixtures/manual/highlights-trails'; import { audioTrails, diff --git a/dotcom-rendering/src/components/ScrollableSmall.stories.tsx b/dotcom-rendering/src/components/ScrollableSmall.stories.tsx index 0ade7f788c4..2032163a03a 100644 --- a/dotcom-rendering/src/components/ScrollableSmall.stories.tsx +++ b/dotcom-rendering/src/components/ScrollableSmall.stories.tsx @@ -1,5 +1,5 @@ import { breakpoints } from '@guardian/source/foundations'; -import type { Meta, StoryObj } from '@storybook/react-webpack5'; +import type { Meta, StoryObj } from '@storybook/react-vite'; import { trails } from '../../fixtures/manual/highlights-trails'; import { audioTrails, diff --git a/dotcom-rendering/src/components/SelfHostedVideo.stories.tsx b/dotcom-rendering/src/components/SelfHostedVideo.stories.tsx index 9b5d00cf5f9..f8dc0d0d595 100644 --- a/dotcom-rendering/src/components/SelfHostedVideo.stories.tsx +++ b/dotcom-rendering/src/components/SelfHostedVideo.stories.tsx @@ -1,5 +1,5 @@ import { breakpoints, textSans17Object } from '@guardian/source/foundations'; -import type { Meta, StoryObj } from '@storybook/react-webpack5'; +import type { Meta, StoryObj } from '@storybook/react-vite'; import { expect, userEvent, within } from 'storybook/test'; import { centreColumnDecorator } from '../../.storybook/decorators/gridDecorators'; import { diff --git a/dotcom-rendering/src/components/SignInGate/gates/alternative-wording-control.tsx b/dotcom-rendering/src/components/SignInGate/gates/alternative-wording-control.tsx index 3cb0b3aba7b..8fc31966fbb 100644 --- a/dotcom-rendering/src/components/SignInGate/gates/alternative-wording-control.tsx +++ b/dotcom-rendering/src/components/SignInGate/gates/alternative-wording-control.tsx @@ -9,9 +9,7 @@ const SignInGateMain = React.lazy(() => { 'identity', 'SignInGateMain', ); - return import( - /* webpackChunkName: "SignInGateMain" */ '../gateDesigns/SignInGateMain' - ).then((module) => { + return import('../gateDesigns/SignInGateMain').then((module) => { endPerformanceMeasure(); return { default: module.SignInGateMain }; }); diff --git a/dotcom-rendering/src/components/SignInGate/gates/alternative-wording-guardian-live.tsx b/dotcom-rendering/src/components/SignInGate/gates/alternative-wording-guardian-live.tsx index 030d649cacc..d80b569d31a 100644 --- a/dotcom-rendering/src/components/SignInGate/gates/alternative-wording-guardian-live.tsx +++ b/dotcom-rendering/src/components/SignInGate/gates/alternative-wording-guardian-live.tsx @@ -9,12 +9,12 @@ const SignInGateCustomizableText = React.lazy(() => { 'identity', 'SignInGateCustomizableText', ); - return import( - /* webpackChunkName: "SignInGateCustomizableText" */ '../gateDesigns/SignInGateCustomizableText' - ).then((module) => { - endPerformanceMeasure(); - return { default: module.SignInGateCustomizableText }; - }); + return import('../gateDesigns/SignInGateCustomizableText').then( + (module) => { + endPerformanceMeasure(); + return { default: module.SignInGateCustomizableText }; + }, + ); }); export const signInGateComponent: SignInGateComponent = { diff --git a/dotcom-rendering/src/components/SignInGate/gates/alternative-wording-saturday-edition.tsx b/dotcom-rendering/src/components/SignInGate/gates/alternative-wording-saturday-edition.tsx index f0a3510d878..3dba5cbe84c 100644 --- a/dotcom-rendering/src/components/SignInGate/gates/alternative-wording-saturday-edition.tsx +++ b/dotcom-rendering/src/components/SignInGate/gates/alternative-wording-saturday-edition.tsx @@ -9,12 +9,12 @@ const SignInGateCustomizableText = React.lazy(() => { 'identity', 'SignInGateCustomizableText', ); - return import( - /* webpackChunkName: "SignInGateCustomizableText" */ '../gateDesigns/SignInGateCustomizableText' - ).then((module) => { - endPerformanceMeasure(); - return { default: module.SignInGateCustomizableText }; - }); + return import('../gateDesigns/SignInGateCustomizableText').then( + (module) => { + endPerformanceMeasure(); + return { default: module.SignInGateCustomizableText }; + }, + ); }); export const signInGateComponent: SignInGateComponent = { diff --git a/dotcom-rendering/src/components/SignInGate/gates/fake-social-variant.tsx b/dotcom-rendering/src/components/SignInGate/gates/fake-social-variant.tsx index 43bbf6a4218..094e562d187 100644 --- a/dotcom-rendering/src/components/SignInGate/gates/fake-social-variant.tsx +++ b/dotcom-rendering/src/components/SignInGate/gates/fake-social-variant.tsx @@ -10,9 +10,7 @@ const SignInGateFakeSocial = React.lazy(() => { 'SignInGateFakeSocial', ); - return import( - /* webpackChunkName: "SignInGateFakeSocial" */ '../gateDesigns/SignInGateFakeSocial' - ).then((module) => { + return import('../gateDesigns/SignInGateFakeSocial').then((module) => { endPerformanceMeasure(); return { default: module.SignInGateFakeSocial }; }); diff --git a/dotcom-rendering/src/components/SignInGate/gates/main-mandatory-variant.tsx b/dotcom-rendering/src/components/SignInGate/gates/main-mandatory-variant.tsx index cdc046d69f1..18ba15a2d88 100644 --- a/dotcom-rendering/src/components/SignInGate/gates/main-mandatory-variant.tsx +++ b/dotcom-rendering/src/components/SignInGate/gates/main-mandatory-variant.tsx @@ -9,9 +9,7 @@ const SignInGateMain = React.lazy(() => { 'identity', 'SignInGateMain', ); - return import( - /* webpackChunkName: "SignInGateMain" */ '../gateDesigns/SignInGateMain' - ).then((module) => { + return import('../gateDesigns/SignInGateMain').then((module) => { endPerformanceMeasure(); return { default: module.SignInGateMain }; }); diff --git a/dotcom-rendering/src/components/SignInGate/gates/main-variant.tsx b/dotcom-rendering/src/components/SignInGate/gates/main-variant.tsx index badaa41499c..f3ea9b73439 100644 --- a/dotcom-rendering/src/components/SignInGate/gates/main-variant.tsx +++ b/dotcom-rendering/src/components/SignInGate/gates/main-variant.tsx @@ -9,9 +9,7 @@ const SignInGateMain = React.lazy(() => { 'identity', 'SignInGateMain', ); - return import( - /* webpackChunkName: "SignInGateMain" */ '../gateDesigns/SignInGateMain' - ).then((module) => { + return import('../gateDesigns/SignInGateMain').then((module) => { endPerformanceMeasure(); return { default: module.SignInGateMain }; }); @@ -22,12 +20,12 @@ const SignInGateMainCheckoutComplete = React.lazy(() => { 'identity', 'SignInGateMainCheckoutComplete', ); - return import( - /* webpackChunkName: "SignInGateMainCheckoutComplete" */ '../gateDesigns/SignInGateMainCheckoutComplete' - ).then((module) => { - endPerformanceMeasure(); - return { default: module.SignInGateMainCheckoutComplete }; - }); + return import('../gateDesigns/SignInGateMainCheckoutComplete').then( + (module) => { + endPerformanceMeasure(); + return { default: module.SignInGateMainCheckoutComplete }; + }, + ); }); /** diff --git a/dotcom-rendering/src/components/SlideshowCarousel.stories.tsx b/dotcom-rendering/src/components/SlideshowCarousel.stories.tsx index 8e3d9ef9dd7..b81c67cd6b4 100644 --- a/dotcom-rendering/src/components/SlideshowCarousel.stories.tsx +++ b/dotcom-rendering/src/components/SlideshowCarousel.stories.tsx @@ -1,6 +1,6 @@ import { css } from '@emotion/react'; import { breakpoints, space, textSans17 } from '@guardian/source/foundations'; -import type { Meta, StoryObj } from '@storybook/react-webpack5'; +import type { Meta, StoryObj } from '@storybook/react-vite'; import type { ReactNode } from 'react'; import { palette } from '../palette'; import type { DCRContainerPalette, DCRSlideshowImage } from '../types/front'; diff --git a/dotcom-rendering/src/components/SlotBodyEnd/BrazeEpic.tsx b/dotcom-rendering/src/components/SlotBodyEnd/BrazeEpic.tsx index 866f37a1d9c..ea30bafcb31 100644 --- a/dotcom-rendering/src/components/SlotBodyEnd/BrazeEpic.tsx +++ b/dotcom-rendering/src/components/SlotBodyEnd/BrazeEpic.tsx @@ -197,9 +197,7 @@ export const MaybeBrazeEpic = ({ meta, countryCode, idApiUrl }: EpicConfig) => { useState(); useEffect(() => { - import( - /* webpackChunkName: "guardian-braze-components-end-of-article" */ '@guardian/braze-components/end-of-article' - ) + import('@guardian/braze-components/end-of-article') .then((module) => { setBrazeComponent(() => module.BrazeEndOfArticleComponent); }) diff --git a/dotcom-rendering/src/components/SlotBodyEnd/ReaderRevenueEpic.tsx b/dotcom-rendering/src/components/SlotBodyEnd/ReaderRevenueEpic.tsx index 4e06b494212..daca4d2288f 100644 --- a/dotcom-rendering/src/components/SlotBodyEnd/ReaderRevenueEpic.tsx +++ b/dotcom-rendering/src/components/SlotBodyEnd/ReaderRevenueEpic.tsx @@ -188,9 +188,7 @@ export const ReaderRevenueEpic = ({ props }: ModuleData) => { 'contributions-epic-module', ); - import( - /* webpackChunkName: "contributions-epic" */ `../marketing/epics/ContributionsEpic` - ) + import(`../marketing/epics/ContributionsEpic`) .then((epicModule) => { endPerformanceMeasure(); setEpic(() => epicModule.ContributionsEpic); // useState requires functions to be wrapped diff --git a/dotcom-rendering/src/components/Standfirst.stories.tsx b/dotcom-rendering/src/components/Standfirst.stories.tsx index b456539b502..a862ae65d78 100644 --- a/dotcom-rendering/src/components/Standfirst.stories.tsx +++ b/dotcom-rendering/src/components/Standfirst.stories.tsx @@ -1,4 +1,4 @@ -import type { StoryObj } from '@storybook/react-webpack5'; +import type { StoryObj } from '@storybook/react-vite'; import { splitTheme } from '../../.storybook/decorators/splitThemeDecorator'; import { ArticleDesign, diff --git a/dotcom-rendering/src/components/StarRating/StarRating.stories.tsx b/dotcom-rendering/src/components/StarRating/StarRating.stories.tsx index 0b0a35547f2..df2a250648e 100644 --- a/dotcom-rendering/src/components/StarRating/StarRating.stories.tsx +++ b/dotcom-rendering/src/components/StarRating/StarRating.stories.tsx @@ -1,4 +1,4 @@ -import type { Meta, StoryObj } from '@storybook/react-webpack5'; +import type { Meta, StoryObj } from '@storybook/react-vite'; import { type Props, StarRating } from './StarRating'; const meta = { diff --git a/dotcom-rendering/src/components/StarRatingBlockComponent.stories.tsx b/dotcom-rendering/src/components/StarRatingBlockComponent.stories.tsx index 8d35bbccc2b..d906dc394d8 100644 --- a/dotcom-rendering/src/components/StarRatingBlockComponent.stories.tsx +++ b/dotcom-rendering/src/components/StarRatingBlockComponent.stories.tsx @@ -1,4 +1,4 @@ -import type { Meta, StoryObj } from '@storybook/react-webpack5'; +import type { Meta, StoryObj } from '@storybook/react-vite'; import type { StarRating as Rating, RatingSizeType } from '../types/content'; import { StarRatingBlockComponent } from './StarRatingBlockComponent'; diff --git a/dotcom-rendering/src/components/StaticFeatureTwo.stories.tsx b/dotcom-rendering/src/components/StaticFeatureTwo.stories.tsx index a057f6dfadc..982bbde226f 100644 --- a/dotcom-rendering/src/components/StaticFeatureTwo.stories.tsx +++ b/dotcom-rendering/src/components/StaticFeatureTwo.stories.tsx @@ -1,5 +1,5 @@ import { breakpoints } from '@guardian/source/foundations'; -import type { Meta, StoryObj } from '@storybook/react-webpack5'; +import type { Meta, StoryObj } from '@storybook/react-vite'; import { audioTrails, galleryTrails, diff --git a/dotcom-rendering/src/components/StaticMediumFour.stories.tsx b/dotcom-rendering/src/components/StaticMediumFour.stories.tsx index a60fa974e9f..1df83d09092 100644 --- a/dotcom-rendering/src/components/StaticMediumFour.stories.tsx +++ b/dotcom-rendering/src/components/StaticMediumFour.stories.tsx @@ -1,5 +1,5 @@ import { breakpoints } from '@guardian/source/foundations'; -import type { Meta, StoryObj } from '@storybook/react-webpack5'; +import type { Meta, StoryObj } from '@storybook/react-vite'; import { audioTrails, galleryTrails, diff --git a/dotcom-rendering/src/components/StickyBottomBanner/BrazeBanner.tsx b/dotcom-rendering/src/components/StickyBottomBanner/BrazeBanner.tsx index e136765d883..4d07c524da1 100644 --- a/dotcom-rendering/src/components/StickyBottomBanner/BrazeBanner.tsx +++ b/dotcom-rendering/src/components/StickyBottomBanner/BrazeBanner.tsx @@ -189,9 +189,7 @@ export const BrazeBanner = ({ meta, idApiUrl }: Props) => { useState(); useEffect(() => { - import( - /* webpackChunkName: "guardian-braze-components-banner" */ '@guardian/braze-components/banner' - ) + import('@guardian/braze-components/banner') .then((module) => { setBrazeComponent(() => module.BrazeBannerComponent); }) diff --git a/dotcom-rendering/src/components/StickyBottomBanner/ReaderRevenueBanner.tsx b/dotcom-rendering/src/components/StickyBottomBanner/ReaderRevenueBanner.tsx index 3a7cf32b508..a6f8d644045 100644 --- a/dotcom-rendering/src/components/StickyBottomBanner/ReaderRevenueBanner.tsx +++ b/dotcom-rendering/src/components/StickyBottomBanner/ReaderRevenueBanner.tsx @@ -334,10 +334,8 @@ export const ReaderRevenueBanner = ({ useEffect(() => { (name === 'SignInPromptBanner' - ? /* webpackChunkName: "sign-in-prompt-banner" */ - import(`../marketing/banners/signInPrompt/SignInPromptBanner`) - : /* webpackChunkName: "designable-banner" */ - import(`../marketing/banners/designableBanner/Banner`) + ? import(`../marketing/banners/signInPrompt/SignInPromptBanner`) + : import(`../marketing/banners/designableBanner/Banner`) ) .then((bannerModule: Record) => { setBanner(() => bannerModule[name] ?? null); diff --git a/dotcom-rendering/src/components/SubheadingBlockComponent.stories.tsx b/dotcom-rendering/src/components/SubheadingBlockComponent.stories.tsx index 7673cac9e87..847d1ab192a 100644 --- a/dotcom-rendering/src/components/SubheadingBlockComponent.stories.tsx +++ b/dotcom-rendering/src/components/SubheadingBlockComponent.stories.tsx @@ -1,5 +1,5 @@ import { css } from '@emotion/react'; -import type { Decorator } from '@storybook/react-webpack5'; +import type { Decorator } from '@storybook/react-vite'; import { splitTheme } from '../../.storybook/decorators/splitThemeDecorator'; import preview from '../../.storybook/preview'; import { diff --git a/dotcom-rendering/src/components/TableBlockComponent.stories.tsx b/dotcom-rendering/src/components/TableBlockComponent.stories.tsx index 1ac104ecde1..93f1aa9147c 100644 --- a/dotcom-rendering/src/components/TableBlockComponent.stories.tsx +++ b/dotcom-rendering/src/components/TableBlockComponent.stories.tsx @@ -1,4 +1,4 @@ -import type { Meta } from '@storybook/react-webpack5'; +import type { Meta } from '@storybook/react-vite'; import { TableBlockComponent } from './TableBlockComponent'; const tableHtml = ` diff --git a/dotcom-rendering/src/components/TableOfContents.stories.tsx b/dotcom-rendering/src/components/TableOfContents.stories.tsx index 7d892e082ed..f6c760591e8 100644 --- a/dotcom-rendering/src/components/TableOfContents.stories.tsx +++ b/dotcom-rendering/src/components/TableOfContents.stories.tsx @@ -1,5 +1,5 @@ import { css } from '@emotion/react'; -import type { StoryObj } from '@storybook/react-webpack5'; +import type { StoryObj } from '@storybook/react-vite'; import { splitTheme } from '../../.storybook/decorators/splitThemeDecorator'; import { ArticleDesign, diff --git a/dotcom-rendering/src/components/Terms/Terms.stories.tsx b/dotcom-rendering/src/components/Terms/Terms.stories.tsx index e42adcc3e76..3860c311ed3 100644 --- a/dotcom-rendering/src/components/Terms/Terms.stories.tsx +++ b/dotcom-rendering/src/components/Terms/Terms.stories.tsx @@ -3,7 +3,7 @@ * This file was migrated from: * https://github.com/guardian/gateway/blob/b980d008f91bd1abb108e50de9cdd1c364f37f4d/src/client/components/Terms.stories.tsx */ -import type { Meta } from '@storybook/react-webpack5'; +import type { Meta } from '@storybook/react-vite'; import { InformationBox } from '../InformationBox/InformationBox'; import { GuardianTerms, JobsTerms, RecaptchaTerms } from './Terms'; diff --git a/dotcom-rendering/src/components/ThemedLink/ThemedLink.stories.tsx b/dotcom-rendering/src/components/ThemedLink/ThemedLink.stories.tsx index 5254180b42f..46936d450f5 100644 --- a/dotcom-rendering/src/components/ThemedLink/ThemedLink.stories.tsx +++ b/dotcom-rendering/src/components/ThemedLink/ThemedLink.stories.tsx @@ -3,7 +3,7 @@ * This file was migrated from: * https://github.com/guardian/gateway/blob/b980d008f91bd1abb108e50de9cdd1c364f37f4d/src/client/components/ThemedLink.stories.tsx */ -import type { Meta } from '@storybook/react-webpack5'; +import type { Meta } from '@storybook/react-vite'; import { ThemedLink } from './ThemedLink'; export default { diff --git a/dotcom-rendering/src/components/Titlepiece.stories.tsx b/dotcom-rendering/src/components/Titlepiece.stories.tsx index 2f6bf9b6b6d..2486c488110 100644 --- a/dotcom-rendering/src/components/Titlepiece.stories.tsx +++ b/dotcom-rendering/src/components/Titlepiece.stories.tsx @@ -1,4 +1,4 @@ -import type { Meta, StoryObj } from '@storybook/react-webpack5'; +import type { Meta, StoryObj } from '@storybook/react-vite'; import { nav } from './Masthead/Titlepiece/Nav.mock'; import { Titlepiece } from './Titlepiece.island'; diff --git a/dotcom-rendering/src/components/TopBar.stories.tsx b/dotcom-rendering/src/components/TopBar.stories.tsx index 343795c35f5..804601a242d 100644 --- a/dotcom-rendering/src/components/TopBar.stories.tsx +++ b/dotcom-rendering/src/components/TopBar.stories.tsx @@ -1,5 +1,5 @@ import type { AccessToken, IDToken } from '@guardian/identity-auth'; -import type { Meta } from '@storybook/react-webpack5'; +import type { Meta } from '@storybook/react-vite'; import { contributionsHeaderResponse, contributionsSignInPromptHeaderResponse, diff --git a/dotcom-rendering/src/components/TopBarSupport.island.tsx b/dotcom-rendering/src/components/TopBarSupport.island.tsx index 80f334ad891..9e2f62585ae 100644 --- a/dotcom-rendering/src/components/TopBarSupport.island.tsx +++ b/dotcom-rendering/src/components/TopBarSupport.island.tsx @@ -118,10 +118,8 @@ const ReaderRevenueLinksRemote = ({ return ( module.name === 'SignInPromptHeader' - ? /* webpackChunkName: "sign-in-prompt-header" */ - import('./marketing/header/SignInPromptHeader') - : /* webpackChunkName: "header" */ - import('./marketing/header/Header') + ? import('./marketing/header/SignInPromptHeader') + : import('./marketing/header/Header') ).then( ( headerModule: Record< diff --git a/dotcom-rendering/src/components/YoutubeAtom/YoutubeAtom.stories.tsx b/dotcom-rendering/src/components/YoutubeAtom/YoutubeAtom.stories.tsx index bc11eceb400..7344ac1b32d 100644 --- a/dotcom-rendering/src/components/YoutubeAtom/YoutubeAtom.stories.tsx +++ b/dotcom-rendering/src/components/YoutubeAtom/YoutubeAtom.stories.tsx @@ -1,6 +1,6 @@ import { css } from '@emotion/react'; import type { ConsentState } from '@guardian/consent-manager'; -import type { Decorator, Meta, StoryObj } from '@storybook/react-webpack5'; +import type { Decorator, Meta, StoryObj } from '@storybook/react-vite'; import { useState } from 'react'; import { ArticleDesign, ArticleDisplay, Pillar } from '../../lib/articleFormat'; import type { AdTargeting } from '../../types/commercial'; diff --git a/dotcom-rendering/src/components/marketing/banners/designableBanner/stories/DesignableBanner.stories.tsx b/dotcom-rendering/src/components/marketing/banners/designableBanner/stories/DesignableBanner.stories.tsx index 67455f989c2..94b96e7a280 100644 --- a/dotcom-rendering/src/components/marketing/banners/designableBanner/stories/DesignableBanner.stories.tsx +++ b/dotcom-rendering/src/components/marketing/banners/designableBanner/stories/DesignableBanner.stories.tsx @@ -1,5 +1,5 @@ import { SecondaryCtaType } from '@guardian/support-dotcom-components'; -import type { Meta, StoryObj } from '@storybook/react-webpack5'; +import type { Meta, StoryObj } from '@storybook/react-vite'; import lzstring from 'lz-string'; import { choiceCardsSettings } from '../../../lib/storybook'; import { design, stringToHexColour, tracking } from '../../utils/storybook'; diff --git a/dotcom-rendering/src/components/marketing/epics/ContributionsEpic.stories.tsx b/dotcom-rendering/src/components/marketing/epics/ContributionsEpic.stories.tsx index c7b0c4a954a..fb3ef998ef9 100644 --- a/dotcom-rendering/src/components/marketing/epics/ContributionsEpic.stories.tsx +++ b/dotcom-rendering/src/components/marketing/epics/ContributionsEpic.stories.tsx @@ -5,7 +5,7 @@ */ import { css } from '@emotion/react'; import { SecondaryCtaType } from '@guardian/support-dotcom-components'; -import type { Meta, StoryObj } from '@storybook/react-webpack5'; +import type { Meta, StoryObj } from '@storybook/react-vite'; import lzstring from 'lz-string'; import type React from 'react'; import { diff --git a/dotcom-rendering/src/components/marketing/epics/ContributionsLiveblogEpic.stories.tsx b/dotcom-rendering/src/components/marketing/epics/ContributionsLiveblogEpic.stories.tsx index 15224c179a9..4665b242dd2 100644 --- a/dotcom-rendering/src/components/marketing/epics/ContributionsLiveblogEpic.stories.tsx +++ b/dotcom-rendering/src/components/marketing/epics/ContributionsLiveblogEpic.stories.tsx @@ -4,7 +4,7 @@ * https://github.com/guardian/support-dotcom-components/blob/9c3eae7cb0b159db4a1c40679d6b37710b0bb937/packages/modules/src/modules/epics/ContributionsLiveblogEpic.stories.tsx */ import { SecondaryCtaType } from '@guardian/support-dotcom-components'; -import type { Meta, StoryObj } from '@storybook/react-webpack5'; +import type { Meta, StoryObj } from '@storybook/react-vite'; import lzstring from 'lz-string'; import type React from 'react'; import { choiceCardsSettings } from '../lib/storybook'; diff --git a/dotcom-rendering/src/components/marketing/gutters/GutterAsk.stories.tsx b/dotcom-rendering/src/components/marketing/gutters/GutterAsk.stories.tsx index 0b8da380b18..647e408bb59 100644 --- a/dotcom-rendering/src/components/marketing/gutters/GutterAsk.stories.tsx +++ b/dotcom-rendering/src/components/marketing/gutters/GutterAsk.stories.tsx @@ -1,6 +1,6 @@ import { css } from '@emotion/react'; import { space } from '@guardian/source/foundations'; -import type { Meta, StoryObj } from '@storybook/react-webpack5'; +import type { Meta, StoryObj } from '@storybook/react-vite'; import lzstring from 'lz-string'; import { GutterAsk } from './GutterAsk'; import { props } from './utils/storybook'; diff --git a/dotcom-rendering/src/components/marketing/header/Header.stories.tsx b/dotcom-rendering/src/components/marketing/header/Header.stories.tsx index 082d5e3bf21..d81050fc058 100644 --- a/dotcom-rendering/src/components/marketing/header/Header.stories.tsx +++ b/dotcom-rendering/src/components/marketing/header/Header.stories.tsx @@ -3,7 +3,7 @@ * This file was migrated from: * https://github.com/guardian/support-dotcom-components/blob/4925ef1e0ced5d221f1122afe79f93bd7448e0e5/packages/modules/src/modules/headers/Header.stories.tsx */ -import type { Meta } from '@storybook/react-webpack5'; +import type { Meta } from '@storybook/react-vite'; import { HeaderDecorator } from './common/HeaderDecorator'; import { HeaderUnvalidated as Header } from './Header'; diff --git a/dotcom-rendering/src/components/marketing/header/common/HeaderDecorator.tsx b/dotcom-rendering/src/components/marketing/header/common/HeaderDecorator.tsx index ba1d0ed745d..981ec6ca7c5 100644 --- a/dotcom-rendering/src/components/marketing/header/common/HeaderDecorator.tsx +++ b/dotcom-rendering/src/components/marketing/header/common/HeaderDecorator.tsx @@ -5,7 +5,7 @@ */ import { css } from '@emotion/react'; import { from, space } from '@guardian/source/foundations'; -import type { Decorator } from '@storybook/react-webpack5'; +import type { Decorator } from '@storybook/react-vite'; import { palette as themePalette } from '../../../../palette'; const topBarStyles = css` diff --git a/dotcom-rendering/src/components/marketing/shared/ThreeTierChoiceCards.stories.tsx b/dotcom-rendering/src/components/marketing/shared/ThreeTierChoiceCards.stories.tsx index 6f50e1eef03..69d147ff086 100644 --- a/dotcom-rendering/src/components/marketing/shared/ThreeTierChoiceCards.stories.tsx +++ b/dotcom-rendering/src/components/marketing/shared/ThreeTierChoiceCards.stories.tsx @@ -1,6 +1,6 @@ import { palette } from '@guardian/source/foundations'; import type { ChoiceCard } from '@guardian/support-dotcom-components/dist/shared/types/props/choiceCards'; -import type { Meta, StoryObj } from '@storybook/react-webpack5'; +import type { Meta, StoryObj } from '@storybook/react-vite'; import { useState } from 'react'; import { choiceCardsSettings, diff --git a/dotcom-rendering/src/layouts/AudioLayout.stories.tsx b/dotcom-rendering/src/layouts/AudioLayout.stories.tsx index 9227a2e43d9..af3b761504f 100644 --- a/dotcom-rendering/src/layouts/AudioLayout.stories.tsx +++ b/dotcom-rendering/src/layouts/AudioLayout.stories.tsx @@ -1,4 +1,4 @@ -import type { Meta, StoryObj } from '@storybook/react-webpack5'; +import type { Meta, StoryObj } from '@storybook/react-vite'; import { allModes } from '../../.storybook/modes'; import { Audio as AudioFixture } from '../../fixtures/generated/fe-articles/Audio'; import { ArticleDesign } from '../lib/articleFormat'; diff --git a/dotcom-rendering/src/layouts/DecideLayout.stories.tsx b/dotcom-rendering/src/layouts/DecideLayout.stories.tsx index dfcd63a9eb1..8fdd679509d 100644 --- a/dotcom-rendering/src/layouts/DecideLayout.stories.tsx +++ b/dotcom-rendering/src/layouts/DecideLayout.stories.tsx @@ -1,6 +1,6 @@ import { isObject } from '@guardian/libs'; import { breakpoints } from '@guardian/source/foundations'; -import type { Decorator, StoryObj } from '@storybook/react-webpack5'; +import type { Decorator, StoryObj } from '@storybook/react-vite'; import { useEffect } from 'react'; import { mocked } from 'storybook/test'; import { colourSchemeDecorator } from '../../.storybook/decorators/themeDecorator'; diff --git a/dotcom-rendering/src/layouts/GalleryLayout.stories.tsx b/dotcom-rendering/src/layouts/GalleryLayout.stories.tsx index caa8da917f4..a5bedc1d686 100644 --- a/dotcom-rendering/src/layouts/GalleryLayout.stories.tsx +++ b/dotcom-rendering/src/layouts/GalleryLayout.stories.tsx @@ -1,4 +1,4 @@ -import type { Meta, StoryObj } from '@storybook/react-webpack5'; +import type { Meta, StoryObj } from '@storybook/react-vite'; import { allModes } from '../../.storybook/modes'; import { Gallery as GalleryFixture } from '../../fixtures/generated/fe-articles/Gallery'; import { storyPackage } from '../../fixtures/generated/story-package'; diff --git a/dotcom-rendering/src/layouts/SportDataPageLayout.stories.tsx b/dotcom-rendering/src/layouts/SportDataPageLayout.stories.tsx index 197b61d725f..4d79880a016 100644 --- a/dotcom-rendering/src/layouts/SportDataPageLayout.stories.tsx +++ b/dotcom-rendering/src/layouts/SportDataPageLayout.stories.tsx @@ -1,4 +1,4 @@ -import type { StoryObj } from '@storybook/react-webpack5'; +import type { StoryObj } from '@storybook/react-vite'; import { footballData } from '../../fixtures/generated/football-live'; import { initialDays, regions } from '../../fixtures/manual/footballData'; import { CricketScorecard } from '../components/CricketScorecard.stories'; diff --git a/dotcom-rendering/src/lib/assets.test.ts b/dotcom-rendering/src/lib/assets.test.ts index a5bcfe5666d..cfe033183e4 100644 --- a/dotcom-rendering/src/lib/assets.test.ts +++ b/dotcom-rendering/src/lib/assets.test.ts @@ -35,62 +35,72 @@ describe('decideAssetOrigin for stage', () => { describe('regular expression to match files', () => { it('should handle CI environment', () => { - expect('/assets/ophan.client.web.eb74205c979f58659ed7.js').toMatch(WEB); + expect('/assets/index.client.web.DKLwwO4p.js').toMatch(WEB); }); it('should handle DEV environment', () => { - expect('/assets/ophan.client.web.variant.js').toMatch( + expect('/assets/index.client.web.variant.js').toMatch( WEB_VARIANT_SCRIPT, ); }); + it('should match dev source paths', () => { + expect('http://localhost:3030/assets/src/client/main.web.ts').toMatch( + WEB, + ); + expect('http://localhost:3030/assets/src/client/main.apps.ts').toMatch( + APPS_SCRIPT, + ); + }); + it('should handle PROD environment', () => { expect( - 'https://assets.guim.co.uk/assets/ophan.client.web.abcdefghijklmnopqrst.js', + 'https://assets.guim.co.uk/assets/index.client.web.DKLwwO4p.js', ).toMatch(WEB); expect( - 'https://assets.guim.co.uk/assets/ophan.client.web.variant.abcdefghijklmnopqrst.js', + 'https://assets.guim.co.uk/assets/index.client.web.variant.abcdefgh.js', ).toMatch(WEB_VARIANT_SCRIPT); expect( - 'https://assets.guim.co.uk/assets/ophan.client.apps.eb74205c979f58659ed7.js', + 'https://assets.guim.co.uk/assets/index.client.apps.DKLwwO4p.js', ).toMatch(APPS_SCRIPT); }); it('should handle http3 query param', () => { expect( - 'https://assets.guim.co.uk/assets/ophan.client.web.eb74205c979f58659ed7.js?http3=true', + 'https://assets.guim.co.uk/assets/index.client.web.DKLwwO4p.js?http3=true', ).toMatch(WEB); }); }); describe('getPathFromManifest', () => { beforeEach(() => { - const assetHash = `{ - "7305.client.web.js": "7305.client.web.8cdc05567d98ebd9f67e.js", - "356.client.web.js": "356.client.web.0a1bbdf8c7a5e5826b7c.js" - }`; - (readFileSync as jest.Mock).mockReturnValue(assetHash); + // Vite manifest format: keyed by source path with nested entry objects + const viteManifest = JSON.stringify({ + 'src/client/main.web.ts': { + file: 'index.client.web.DKLwwO4p.js', + name: 'index', + src: 'src/client/main.web.ts', + isEntry: true, + }, + }); + (readFileSync as jest.Mock).mockReturnValue(viteManifest); }); afterEach(() => { jest.resetAllMocks(); }); - it('returns correct hashed asset (1)', () => { - expect(getPathFromManifest('client.web', '7305.client.web.js')).toBe( - '/assets/7305.client.web.8cdc05567d98ebd9f67e.js', - ); - }); - - it('returns correct hashed asset (2)', () => { - expect(getPathFromManifest('client.web', '356.client.web.js')).toBe( - '/assets/356.client.web.0a1bbdf8c7a5e5826b7c.js', + it('returns correct hashed asset for entry point', () => { + expect(getPathFromManifest('client.web', 'index.js')).toBe( + '/assets/index.client.web.DKLwwO4p.js', ); }); - it('throws an error when the hashed asset cant be found', () => { - expect(() => getPathFromManifest('client.web', 'foo.bar.js')).toThrow( - 'Missing manifest for foo.bar.js', + it('throws an error when the manifest entry is missing', () => { + // Use client.apps (not cached by previous test) with an empty manifest + (readFileSync as jest.Mock).mockReturnValue(JSON.stringify({})); + expect(() => getPathFromManifest('client.apps', 'index.js')).toThrow( + 'Missing manifest for index.js', ); }); }); diff --git a/dotcom-rendering/src/lib/assets.ts b/dotcom-rendering/src/lib/assets.ts index 420219a3a24..1b287a03d2f 100644 --- a/dotcom-rendering/src/lib/assets.ts +++ b/dotcom-rendering/src/lib/assets.ts @@ -4,8 +4,24 @@ import { isObject, isString } from '@guardian/libs'; import { BUILD_VARIANT } from '../../webpack/bundles'; import { makeMemoizedFunction } from './memoize'; -interface AssetHash { - [key: string]: string; +/** + * A single entry in a Vite manifest. + */ +interface ViteManifestEntry { + file: string; + name?: string; + src?: string; + isEntry?: boolean; + isDynamicEntry?: boolean; + imports?: string[]; + dynamicImports?: string[]; +} + +/** + * The full Vite manifest: keys are source paths or internal chunk IDs. + */ +interface ViteManifest { + [key: string]: ViteManifestEntry; } export const BASE_URL_DEV = 'http://localhost:3030/'; @@ -44,22 +60,24 @@ const isDev = process.env.NODE_ENV === 'development'; export const ASSET_ORIGIN = decideAssetOrigin(process.env.GU_STAGE, isDev); -const isAssetHash = (manifest: unknown): manifest is AssetHash => +const isViteManifest = (manifest: unknown): manifest is ViteManifest => isObject(manifest) && - Object.entries(manifest).every( - ([key, value]) => isString(key) && isString(value), + Object.values(manifest).every( + (entry) => + isObject(entry) && + isString((entry as unknown as ViteManifestEntry).file), ); -const getManifest = makeMemoizedFunction((path: string): AssetHash => { +const getManifest = makeMemoizedFunction((path: string): ViteManifest => { try { - const assetHash: unknown = JSON.parse( + const parsed: unknown = JSON.parse( readFileSync(resolve(__dirname, path), { encoding: 'utf-8' }), ); - if (!isAssetHash(assetHash)) { - throw new Error('Not a valid AssetHash type'); + if (!isViteManifest(parsed)) { + throw new Error('Not a valid Vite manifest'); } - return assetHash; + return parsed; } catch (e) { console.error('Could not load manifest in: ', path); console.error('Some filename lookups will fail'); @@ -78,6 +96,16 @@ type ManifestPath = `./manifest.${Build}.json`; const getManifestPath = (build: Build): ManifestPath => `./manifest.${build}.json`; +/** + * Maps each build to its entry point source path in the Vite manifest. + */ +const entrySourcePaths: Record = { + 'client.web': 'src/client/main.web.ts', + 'client.web.variant': 'src/client/main.web.ts', + 'client.apps': 'src/client/main.apps.ts', + 'client.editionsCrossword': 'src/client/main.editionsCrossword.tsx', +}; + export const getPathFromManifest = ( build: Build, filename: `${string}.js`, @@ -87,31 +115,33 @@ export const getPathFromManifest = ( } if (isDev) { - return `${ASSET_ORIGIN}assets/${filename.replace( - '.js', - `.${build}.js`, - )}`; + // In dev, Vite serves modules by source path, not built filenames + const sourcePath = entrySourcePaths[build]; + return `${ASSET_ORIGIN}assets/${sourcePath}`; } const manifest = getManifest(getManifestPath(build)); - const filenameFromManifest = manifest[filename]; + const sourcePath = entrySourcePaths[build]; + const entry = manifest[sourcePath]; - if (!filenameFromManifest) { + if (!entry) { throw new Error(`Missing manifest for ${filename}`); } - return `${ASSET_ORIGIN}assets/${filenameFromManifest}`; + return `${ASSET_ORIGIN}assets/${entry.file}`; }; /** - * To ensure this only applies to guardian scripts, - * we check that it is served from an asset/ directory - * and that it ends with the bundle type and extension, - * with an optional hash for local development - * and stripped query parameters. + * Matches Guardian script URLs in both dev and prod: + * Prod: assets/index.client.web.DKLwwO4p.js + * Dev: assets/src/client/main.web.ts */ -const getScriptRegex = (build: Build) => - new RegExp(`assets\\/\\w+\\.${build}\\.(\\w{20}\\.)?js(\\?.*)?$`); +const getScriptRegex = (build: Build) => { + const prodPattern = `assets\\/\\w+\\.${build}\\.(\\w{8}\\.)?js(\\?.*)?$`; + const sourcePath = entrySourcePaths[build]; + const devPattern = sourcePath.replace(/[/.]/g, '\\$&'); + return new RegExp(`(${prodPattern})|(${devPattern})`); +}; export const WEB = getScriptRegex('client.web'); export const WEB_VARIANT_SCRIPT = getScriptRegex('client.web.variant'); @@ -120,8 +150,8 @@ export const EDITIONS_CROSSWORD_SCRIPT = getScriptRegex( 'client.editionsCrossword', ); -export const generateScriptTags = (scripts: string[]): string[] => - scripts.filter(isString).map((script) => { +export const generateScriptTags = (scripts: string[]): string[] => { + const tags = scripts.filter(isString).map((script) => { if ( script.match(WEB) ?? script.match(WEB_VARIANT_SCRIPT) ?? @@ -137,6 +167,15 @@ export const generateScriptTags = (scripts: string[]): string[] => ].join('\n'); }); + if (isDev) { + tags.unshift( + ``, + ); + } + + return tags; +}; + export const getModulesBuild = (): Extract => { if (BUILD_VARIANT) { return 'client.web.variant'; diff --git a/dotcom-rendering/src/lib/braze/initialiseBraze.ts b/dotcom-rendering/src/lib/braze/initialiseBraze.ts index ab56e38d366..640c0d53ea0 100644 --- a/dotcom-rendering/src/lib/braze/initialiseBraze.ts +++ b/dotcom-rendering/src/lib/braze/initialiseBraze.ts @@ -15,9 +15,8 @@ const SDK_OPTIONS: braze.InitializationOptions = { }; const initialiseBraze = async (apiKey: string): Promise => { - const importedBraze = (await import( - /* webpackChunkName: "braze-web-sdk-core" */ '@braze/web-sdk' - )) as unknown as typeof braze; + const importedBraze = + (await import('@braze/web-sdk')) as unknown as typeof braze; importedBraze.setLogger((message) => log('tx', message)); importedBraze.initialize(apiKey, SDK_OPTIONS); diff --git a/dotcom-rendering/src/server/render.allEditorialNewslettersPage.web.tsx b/dotcom-rendering/src/server/render.allEditorialNewslettersPage.web.tsx index 2ae158ca3ba..89ea7eb5aa7 100644 --- a/dotcom-rendering/src/server/render.allEditorialNewslettersPage.web.tsx +++ b/dotcom-rendering/src/server/render.allEditorialNewslettersPage.web.tsx @@ -56,7 +56,6 @@ export const renderEditorialNewslettersPage = ({ */ const prefetchScripts = [ polyfillIO, - getPathFromManifest(build, 'frameworks.js'), getPathFromManifest(build, 'index.js'), process.env.COMMERCIAL_BUNDLE_URL ?? newslettersPage.config.commercialBundleUrl, diff --git a/dotcom-rendering/src/server/render.article.web.tsx b/dotcom-rendering/src/server/render.article.web.tsx index 8fb5bc99ff1..2f8068b777c 100644 --- a/dotcom-rendering/src/server/render.article.web.tsx +++ b/dotcom-rendering/src/server/render.article.web.tsx @@ -113,7 +113,6 @@ export const renderArticle = ({ */ const prefetchScripts = [ polyfillIO, - getPathFromManifest(build, 'frameworks.js'), getPathFromManifest(build, 'index.js'), process.env.COMMERCIAL_BUNDLE_URL ?? frontendData.config.commercialBundleUrl, diff --git a/dotcom-rendering/src/server/render.front.web.tsx b/dotcom-rendering/src/server/render.front.web.tsx index d4256aa834f..28d7475a033 100644 --- a/dotcom-rendering/src/server/render.front.web.tsx +++ b/dotcom-rendering/src/server/render.front.web.tsx @@ -111,7 +111,6 @@ export const renderFront = ({ */ const prefetchScripts = [ polyfillIO, - getPathFromManifest(build, 'frameworks.js'), getPathFromManifest(build, 'index.js'), process.env.COMMERCIAL_BUNDLE_URL ?? front.config.commercialBundleUrl, ].filter(isString); @@ -208,7 +207,6 @@ export const renderTagPage = ({ */ const prefetchScripts = [ polyfillIO, - getPathFromManifest(build, 'frameworks.js'), getPathFromManifest(build, 'index.js'), process.env.COMMERCIAL_BUNDLE_URL ?? tagPage.config.commercialBundleUrl, ].filter(isString); diff --git a/dotcom-rendering/src/server/render.sportDataPage.web.tsx b/dotcom-rendering/src/server/render.sportDataPage.web.tsx index ca8beed7d47..5a76ebfc83b 100644 --- a/dotcom-rendering/src/server/render.sportDataPage.web.tsx +++ b/dotcom-rendering/src/server/render.sportDataPage.web.tsx @@ -139,7 +139,6 @@ export const renderSportPage = ({ sportData, nav }: Props) => { */ const prefetchScripts = [ polyfillIO, - getPathFromManifest(build, 'frameworks.js'), getPathFromManifest(build, 'index.js'), process.env.COMMERCIAL_BUNDLE_URL ?? sportData.config.commercialBundleUrl, diff --git a/dotcom-rendering/src/server/server.ts b/dotcom-rendering/src/server/server.ts index 9360ff1db39..f20a595d2d1 100644 --- a/dotcom-rendering/src/server/server.ts +++ b/dotcom-rendering/src/server/server.ts @@ -1,12 +1,8 @@ -import { devServer } from './server.dev'; import { prodServer } from './server.prod'; -// this export is expected by webpack-hot-server-middleware -// not used in prod +// Re-export devServer for use by Vite's ssrLoadModule in dev +export { devServer } from './server.dev'; -export default devServer; - -// this is the actual production server if (process.env.NODE_ENV === 'production') { prodServer(); } diff --git a/dotcom-rendering/tsconfig.json b/dotcom-rendering/tsconfig.json index b8f13b02b4b..a32a9005565 100644 --- a/dotcom-rendering/tsconfig.json +++ b/dotcom-rendering/tsconfig.json @@ -1,6 +1,7 @@ { "extends": "@guardian/tsconfig/tsconfig.json", "compilerOptions": { + "allowImportingTsExtensions": true, "allowJs": true, "forceConsistentCasingInFileNames": true, "skipLibCheck": true, @@ -9,6 +10,7 @@ "lib": ["esnext", "es2015", "dom"], "moduleResolution": "bundler", "noEmit": true, + "skipLibCheck": true, "noFallthroughCasesInSwitch": true, "noUncheckedIndexedAccess": true, "preserveConstEnums": true, @@ -18,7 +20,7 @@ "react", "react-dom", "@testing-library/jest-dom", - "webpack-env", + "vite/client", "youtube", "twitter-for-web", // This is to fix a "Cannot find namespace 'Chai'" error that arose during diff --git a/dotcom-rendering/vite/browser-targets.ts b/dotcom-rendering/vite/browser-targets.ts new file mode 100644 index 00000000000..58aadf481af --- /dev/null +++ b/dotcom-rendering/vite/browser-targets.ts @@ -0,0 +1,38 @@ +/* eslint-disable import/order -- TODO fixme */ + +/** + * ES module equivalent of webpack/browser-targets.js + * + * Derives browser targets from @guardian/browserslist-config and upgrades + * iOS < 11 to iOS 11 (required for dynamic import support). + */ +import { createRequire } from 'node:module'; +import browserslist from 'browserslist'; + +const require = createRequire(import.meta.url); +const targetsModule = require('@babel/helper-compilation-targets'); + +// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access -- TODO weird CJS issue +const getTargets = targetsModule.default; + +const browsers = browserslist('extends @guardian/browserslist-config'); +const rawTargets: Record = getTargets({ + browsers, +}); + +const upgradeTargets = ( + targets: Record, +): Record => { + return Object.fromEntries( + Object.entries(targets).map(([browser, version]) => { + const major = Number(version.split('.')[0]) || 0; + if (browser === 'ios' && major < 11) { + return ['ios', '11']; + } + return [browser, version]; + }), + ); +}; + +export const getBrowserTargets = (): Record => + upgradeTargets(rawTargets); diff --git a/dotcom-rendering/vite/build.mts b/dotcom-rendering/vite/build.mts new file mode 100644 index 00000000000..190190890de --- /dev/null +++ b/dotcom-rendering/vite/build.mts @@ -0,0 +1,68 @@ +/** + * Build orchestration script for Vite. + * Replaces webpack.config.js's multi-compiler array. + * + * Runs the server build first, then all client builds in parallel. + * + */ +import { rmSync } from 'node:fs'; +import { dirname, resolve } from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { build } from 'vite'; +import type { Build } from '../src/lib/assets.ts'; +import { BUILD_VARIANT as BUILD_VARIANT_SWITCH } from '../webpack/bundles.ts'; +import { createClientConfig } from './vite.config.client.mts'; +import { serverConfig } from './vite.config.server.mts'; + +const PROD = process.env.NODE_ENV === 'production'; +const BUILD_VARIANT = process.env.BUILD_VARIANT === 'true'; + +const __dirname = dirname(fileURLToPath(import.meta.url)); + +function getClientBuilds(): Build[] { + return [ + 'client.web', + ...((PROD && BUILD_VARIANT_SWITCH) || BUILD_VARIANT + ? (['client.web.variant'] as const) + : []), + 'client.apps', + 'client.editionsCrossword', + ]; +} + +async function runBuild() { + const clientBuilds = getClientBuilds(); + const startTime = Date.now(); + console.log( + `\n🔨 Building with Vite (${PROD ? 'production' : 'development'})...\n`, + ); + + // Clean dist directory before building (since emptyOutDir is false on all configs) + rmSync(resolve(__dirname, '..', 'dist'), { recursive: true, force: true }); + + // 1. Build server first (client builds may depend on server output in some setups) + console.log('📦 Building server...'); + await build(serverConfig); + console.log('✅ Server build complete\n'); + + // 2. Build all client variants in parallel + console.log( + `📦 Building ${clientBuilds.length} client bundles in parallel...`, + ); + await Promise.all( + clientBuilds.map(async (buildName) => { + console.log(` → ${buildName}`); + const config = createClientConfig(buildName); + await build(config); + console.log(` ✅ ${buildName} complete`); + }), + ); + + const elapsed = ((Date.now() - startTime) / 1000).toFixed(1); + console.log(`\n🎉 All builds complete in ${elapsed}s\n`); +} + +runBuild().catch((err) => { + console.error('Build failed:', err); + process.exit(1); +}); diff --git a/dotcom-rendering/vite/cjs-packages.mts b/dotcom-rendering/vite/cjs-packages.mts new file mode 100644 index 00000000000..d0f1daf406f --- /dev/null +++ b/dotcom-rendering/vite/cjs-packages.mts @@ -0,0 +1,25 @@ +/** + * CJS dependencies that need to be pulled through Vite's SSR pipeline + * and wrapped as ESM by `ssr-cjs-plugin.ts`. + * + * Vite 6's SSR module runner evaluates modules as strict ESM, which means + * `import { X } from 'pkg'` fails for CJS packages unless we synthesise real + * ESM named exports for them. Listing a package here: + * 1. Adds it to `ssr.noExternal` so Vite processes it (instead of leaving + * it for Node's loader). + * 2. Causes `ssrCjsPlugin` to load it via `createRequire()` and emit a + * shim with proper ESM named exports. + * + * If a new dependency breaks at runtime with + * "SyntaxError: Named export 'X' not found. The requested module is a CommonJS module..." + * add it here. Contributors should never need to switch to default-import + + * destructure patterns in source code. + */ +export const cjsPackages = [ + '@guardian/bridget', + 'jsdom', + 'log4js', + 'sanitize-html', + 'compare-versions', + '@creditkarma/thrift-server-core', +] as const; diff --git a/dotcom-rendering/vite/dev-server.mts b/dotcom-rendering/vite/dev-server.mts new file mode 100644 index 00000000000..ed913fa9ecd --- /dev/null +++ b/dotcom-rendering/vite/dev-server.mts @@ -0,0 +1,194 @@ +/** + * Vite development server with SSR middleware. + * + * Usage: + * NODE_ENV=development node --import tsx vite/dev-server.ts + * + * Or via makefile: + * make dev + */ + +import { readFileSync } from 'node:fs'; +import { resolve } from 'node:path'; +import express from 'express'; +import type { Plugin } from 'vite'; +import { createServer as createViteServer, mergeConfig } from 'vite'; +import svgr from 'vite-plugin-svgr'; +import { cjsPackages } from './cjs-packages.mts'; +import { ssrCjsPlugin } from './ssr-cjs-plugin.mts'; +import { sharedConfig } from './vite.config.shared.mts'; + +/** + * Plugin that triggers a browser full-reload when SSR-only modules change. + * Vite's SSR environment invalidates its module graph on file changes but + * doesn't notify the browser. This invokes a reload via Vite's HMR websocket API. + */ +function ssrReloadPlugin(): Plugin { + return { + name: 'ssr-full-reload', + hotUpdate({ modules, server }) { + if (this.environment.name === 'ssr' && modules.length > 0) { + server.hot.send({ type: 'full-reload' }); + } + }, + }; +} + +const port = 3030; +const root = process.cwd(); + +async function start() { + const app = express(); + + // Create Vite server in middleware mode + // Handles client-side module transforms, HMR and SSR module loading + const devConfig = mergeConfig(sharedConfig, { + plugins: [ + svgr({ + include: '**/*.svg', + svgrOptions: { svgo: false }, + }), + ssrCjsPlugin([...cjsPackages]), + ssrReloadPlugin(), + ], + server: { + middlewareMode: true, + hmr: true, + }, + appType: 'custom', + // Serve client modules from /assets/ + base: '/assets/', + // Optimize dependencies for faster dev server startup and HMR updates + optimizeDeps: { + include: [ + '@braze/web-sdk', + '@creditkarma/thrift-server-core', + '@emotion/cache', + '@emotion/react', + '@emotion/react/jsx-runtime', + '@emotion/react/jsx-dev-runtime', + '@guardian/braze-components/banner', + '@guardian/braze-components/end-of-article', + '@guardian/braze-components/logic', + '@guardian/bridget', + '@guardian/bridget/AbTesting', + '@guardian/bridget/AdSlot', + '@guardian/bridget/Acquisitions', + '@guardian/bridget/Analytics', + '@guardian/bridget/Audio', + '@guardian/bridget/Commercial', + '@guardian/bridget/Discussion', + '@guardian/bridget/Environment', + '@guardian/bridget/Gallery', + '@guardian/bridget/Image', + '@guardian/bridget/Interaction', + '@guardian/bridget/Interactives', + '@guardian/bridget/ListenToArticle', + '@guardian/bridget/LiveActivities', + '@guardian/bridget/MatchNotifications', + '@guardian/bridget/Metrics', + '@guardian/bridget/Navigation', + '@guardian/bridget/Newsletters', + '@guardian/bridget/Notifications', + '@guardian/bridget/SignInScreenReason', + '@guardian/bridget/SignInScreenReferrer', + '@guardian/bridget/Tag', + '@guardian/bridget/Topic', + '@guardian/bridget/User', + '@guardian/bridget/Videos', + '@guardian/commercial-core', + '@guardian/commercial-core/geo/geo-utils', + '@guardian/consent-manager', + '@guardian/core-web-vitals', + '@guardian/identity-auth-frontend', + '@guardian/libs', + '@guardian/ophan-tracker-js', + '@guardian/source-development-kitchen/react-components', + '@guardian/source/foundations', + '@guardian/source/react-components', + '@guardian/support-dotcom-components', + 'compare-versions', + 'is-mobile', + 'lodash.debounce', + 'react', + 'react-dom', + 'react-dom/client', + 'react-google-recaptcha', + 'sanitize-html', + 'screenfull', + 'swr', + 'swr/immutable', + 'valibot', + ], + }, + ssr: { + noExternal: [ + /@guardian\//, + 'screenfull', + 'valibot', + ...cjsPackages, + ], + }, + }); + + // Create Vite dev server instance + const vite = await createViteServer(devConfig); + + // Vite's connect middleware handles HMR websocket, module transforms + // and serves files from /assets/ + app.use(vite.middlewares); + + // Parse JSON request bodies + app.use(express.json({ limit: '10mb' })); + + // Serve static files + app.use('/static/frontend', express.static(resolve(root, 'src', 'static'))); + + // Dev index page + const devIndexHtml = readFileSync( + resolve(root, 'src', 'server', 'dev-index.html'), + 'utf-8', + ); + app.get('/', (_req, res) => { + res.type('html').send(devIndexHtml); + }); + + // CORS: allow localhost cross-origin requests for dev + app.use((req, res, next) => { + const hostname = process.env.HOSTNAME ?? 'localhost'; + if (req.hostname === hostname && req.headers.origin) { + res.setHeader('Access-Control-Allow-Origin', req.headers.origin); + } + next(); + }); + + // SSR: reload server module graph on each request via Vite's ssrLoadModule + app.use(async (req, res, next) => { + try { + const { devServer } = (await vite.ssrLoadModule( + './src/server/server.ts', + )) as { + devServer: () => express.RequestHandler; + }; + + return devServer()(req, res, next); + } catch (e) { + // Let Vite fix the stack trace for SSR errors + if (e instanceof Error) { + vite.ssrFixStacktrace(e); + } + return next(e); + } + }); + + app.listen(port, () => { + console.log( + `\n Vite DEV server running on http://localhost:${port}\n`, + ); + }); +} + +start().catch((err) => { + console.error('Failed to start dev server:', err); + process.exit(1); +}); diff --git a/dotcom-rendering/vite/ssr-cjs-plugin.mts b/dotcom-rendering/vite/ssr-cjs-plugin.mts new file mode 100644 index 00000000000..8a7fe8dc98f --- /dev/null +++ b/dotcom-rendering/vite/ssr-cjs-plugin.mts @@ -0,0 +1,78 @@ +/** + * Vite plugin that wraps CJS packages for SSR compatibility. + * + * Vite 6's SSR module runner evaluates all modules as ESM, + * which breaks CJS packages that use `require()` or `module.exports`. + * This plugin wraps specified CJS packages with ESM wrappers + * using createRequire(). + * + * Only works for packages in ssr.noExternal (Vite skips plugin + * hooks for external packages). + */ +import { createRequire } from 'node:module'; +import type { Plugin } from 'vite'; + +const nodeRequire = createRequire(import.meta.url); + +/** + * Creates a Vite plugin that wraps specified CJS packages + * for Vite 6's ESM-based SSR module runner. + * + * @param packages - Package names or prefixes to wrap (e.g. '@guardian/bridget') + */ +export function ssrCjsPlugin(packages: string[]): Plugin { + const PREFIX = '\0cjs-compat:'; + + function shouldWrap(id: string): boolean { + if ( + id.startsWith('.') || + id.startsWith('/') || + id.startsWith('node:') + ) { + return false; + } + return packages.some((p) => id === p || id.startsWith(p + '/')); + } + + return { + name: 'ssr-cjs-compat', + enforce: 'pre', + resolveId(id, _importer, options) { + if (options.ssr && shouldWrap(id)) { + return PREFIX + id; + } + return undefined; + }, + load(id) { + if (!id.startsWith(PREFIX)) return; + const pkg = id.slice(PREFIX.length); + + // Introspect the CJS package's exports + let exportNames: string[] = []; + try { + const mod = nodeRequire(pkg) as Record; + exportNames = Object.keys(mod).filter( + (k) => + k !== 'default' && + k !== '__esModule' && + /^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(k), + ); + } catch { + // If require fails, just provide a default export + } + + // Generate an ESM module that re-exports CJS members + const lines = [ + `import { createRequire } from 'node:module';`, + `const __require = createRequire(import.meta.url);`, + `const mod = __require('${pkg}');`, + `export default mod;`, + ...exportNames.map( + (name) => `export const ${name} = mod['${name}'];`, + ), + ]; + + return lines.join('\n'); + }, + }; +} diff --git a/dotcom-rendering/vite/visualizer.ts b/dotcom-rendering/vite/visualizer.ts new file mode 100644 index 00000000000..e3b904ec37e --- /dev/null +++ b/dotcom-rendering/vite/visualizer.ts @@ -0,0 +1,28 @@ +import { visualizer } from 'rollup-plugin-visualizer'; +import type { PluginVisualizerOptions } from 'rollup-plugin-visualizer'; +import type { PluginOption } from 'vite'; + +type VisualizerOutputTypes = Exclude< + PluginVisualizerOptions['template'], + 'raw-data' | 'list' | 'markdown' | undefined +>; + +const visualizerOutputTypes = [ + 'sunburst', + 'treemap', + 'treemap-3d', + 'network', + 'flamegraph', +] as const satisfies readonly VisualizerOutputTypes[]; + +export const addVisualizerPlugins = (filename: string): PluginOption[] => { + const visualizerPlugins = visualizerOutputTypes.map( + (type: VisualizerOutputTypes) => + visualizer({ + emitFile: true, + filename: `stats/${filename}.${type}.html`, + template: type, + }), + ); + return visualizerPlugins; +}; diff --git a/dotcom-rendering/vite/vite.config.client.mts b/dotcom-rendering/vite/vite.config.client.mts new file mode 100644 index 00000000000..f0916f7f920 --- /dev/null +++ b/dotcom-rendering/vite/vite.config.client.mts @@ -0,0 +1,174 @@ +import inject from '@rollup/plugin-inject'; +import type { PluginOption, UserConfig } from 'vite'; +import { mergeConfig } from 'vite'; +import svgr from 'vite-plugin-svgr'; +import type { Build } from '../src/lib/assets.ts'; +import { getBrowserTargets } from './browser-targets.ts'; +import { addVisualizerPlugins } from './visualizer.ts'; +import { sharedConfig } from './vite.config.shared.mts'; + +const DEV = process.env.NODE_ENV === 'development'; + +/** + * Maps each build variant to its entry point. + */ +const getEntryIndex = (build: Build): string => { + switch (build) { + case 'client.editionsCrossword': + return './src/client/main.editionsCrossword.tsx'; + case 'client.apps': + return './src/client/main.apps.ts'; + default: + return './src/client/main.web.ts'; + } +}; + +/** + * Returns esbuild-compatible browser targets for the given build. + * + * For web builds, we derive targets from @guardian/browserslist-config. + * For apps/crossword, we use fixed mobile targets. + */ +const getBuildTarget = (build: Build): string[] => { + switch (build) { + case 'client.apps': + case 'client.editionsCrossword': + return ['chrome70', 'safari12']; + default: { + const targets = getBrowserTargets(); + // esbuild only supports: chrome, edge, firefox, safari, ios, node, es* + // Filter out unsupported browsers like samsung, opera, etc. + const supportedBrowsers = new Set([ + 'chrome', + 'edge', + 'firefox', + 'safari', + 'ios', + 'node', + ]); + return Object.entries(targets) + .filter(([browser]) => supportedBrowsers.has(browser)) + .map(([browser, version]) => { + const major = String(version).split('.')[0]; + return `${browser}${major}`; + }); + } + } +}; + +/** + * Returns external modules for the given build. + * + * Apps: ophan is provided natively. + * Crossword: ophan and commercial are provided externally. + */ +const getExternals = (build: Build): string[] => { + if (build === 'client.apps') { + return ['@guardian/ophan-tracker-js']; + } + if (build === 'client.editionsCrossword') { + return ['@guardian/ophan-tracker-js', '@guardian/commercial']; + } + return []; +}; + +/** + * Returns rollup output.globals for externalized modules. + */ +const getGlobals = (build: Build): Record => { + const globals: Record = {}; + if (build === 'client.apps' || build === 'client.editionsCrossword') { + globals['@guardian/ophan-tracker-js'] = 'guardian.ophan'; + } + if (build === 'client.editionsCrossword') { + globals['@guardian/commercial'] = 'guardian.commercial'; + } + return globals; +}; + +/** + * Whether this build should inline all dynamic imports into a single chunk. + * Apps and crossword builds produce a single file (no code splitting). + */ +const shouldInlineDynamicImports = (build: Build): boolean => + build === 'client.apps' || build === 'client.editionsCrossword'; + +/** + * Creates a Vite client config for the given build variant. + * + * This replaces webpack.config.client.js — called once per build variant + * (client.web, client.web.variant, client.apps, client.editionsCrossword). + */ +export const createClientConfig = (build: Build): UserConfig => { + const isSingleChunk = shouldInlineDynamicImports(build); + + const clientConfig: UserConfig = { + plugins: [ + svgr({ + include: '**/*.svg', + svgrOptions: { svgo: false }, + }), + ...(DEV ? [] : addVisualizerPlugins(build)), + // Buffer polyfill for apps/crossword builds + // Replaces webpack.ProvidePlugin({ Buffer: ['buffer', 'Buffer'] }) + ...(isSingleChunk + ? [ + inject({ + Buffer: ['buffer', 'Buffer'], + }) as PluginOption, + ] + : []), + ], + resolve: {}, + build: { + outDir: 'dist', + emptyOutDir: false, + target: getBuildTarget(build), + manifest: `manifest.${build}.json`, + rolldownOptions: { + input: isSingleChunk + ? // Single-chunk builds can only have one entry + { index: getEntryIndex(build) } + : { + index: getEntryIndex(build), + debug: './src/client/debug/debug.ts', + }, + external: getExternals(build), + output: { + // Naming: [name].[build].[hash].js — matches webpack output pattern + entryFileNames: (chunk) => { + if (chunk.name === 'debug') return 'debug.js'; + return DEV + ? `[name].${build}.js` + : `[name].${build}.[hash].js`; + }, + chunkFileNames: DEV + ? `[name].${build}.js` + : `[name].${build}.[hash].js`, + codeSplitting: isSingleChunk + ? false + : { + groups: [ + { + name: 'vendor', + test: /node_modules/, + priority: 1, + minSize: 0, + }, + { + name: 'common', + test: (id) => !id.includes('.island.'), + priority: 0, + minSize: 0, + maxSize: 500000, + }, + ], + }, + globals: getGlobals(build), + }, + }, + }, + }; + + return mergeConfig(sharedConfig, clientConfig); +}; diff --git a/dotcom-rendering/vite/vite.config.server.mts b/dotcom-rendering/vite/vite.config.server.mts new file mode 100644 index 00000000000..90259199fc9 --- /dev/null +++ b/dotcom-rendering/vite/vite.config.server.mts @@ -0,0 +1,63 @@ +import type { UserConfig } from 'vite'; +import { mergeConfig } from 'vite'; +import svgr from 'vite-plugin-svgr'; +import { cjsPackages } from './cjs-packages.mts'; +import { ssrCjsPlugin } from './ssr-cjs-plugin.mts'; +import { addVisualizerPlugins } from './visualizer.ts'; +import { sharedConfig } from './vite.config.shared.mts'; + +const DEV = process.env.NODE_ENV === 'development'; + +/** + * Vite SSR build configuration for the Express server bundle. + * Replaces webpack.config.server.js. + * + * Key differences from client config: + * - No Preact aliasing (server uses real React for renderToString) + * - Outputs CommonJS for Node.js + * - Most node_modules are external (not bundled) + * - No minification in dev + */ +export const serverConfig: UserConfig = mergeConfig(sharedConfig, { + plugins: [ + // Wrap CJS deps with ESM shims so `import { X } from 'pkg'` works + // under Vite's SSR pipeline. Only fires for ids in `ssr.noExternal`. + ssrCjsPlugin([...cjsPackages]), + svgr({ + include: '**/*.svg', + svgrOptions: { svgo: false }, + }), + ...(DEV ? [] : addVisualizerPlugins('server')), + ], + build: { + outDir: 'dist', + emptyOutDir: false, + ssr: true, + target: `node${process.versions.node}`, + minify: !DEV, + sourcemap: true, + rolldownOptions: { + input: { + server: './src/server/server.ts', + }, + output: { + format: 'cjs', + entryFileNames: '[name].js', + // Produce a single server.js file (no code splitting), + // matching webpack's single-file output. This avoids + // server chunks colliding with client assets in dist/. + inlineDynamicImports: true, + }, + }, + }, + ssr: { + // Bundle all node_modules by default to create a single server.js file with no external dependencies. + noExternal: true, + // Explicitly external in dev (not needed in prod where they're deployed) + external: DEV ? ['@aws-sdk'] : [], + }, +} satisfies UserConfig); + +// Default export for `vite build --config` CLI usage +// eslint-disable-next-line import/no-default-export -- required by Vite CLI +export default serverConfig; diff --git a/dotcom-rendering/vite/vite.config.shared.mts b/dotcom-rendering/vite/vite.config.shared.mts new file mode 100644 index 00000000000..9163d77960f --- /dev/null +++ b/dotcom-rendering/vite/vite.config.shared.mts @@ -0,0 +1,19 @@ +import type { UserConfig } from 'vite'; + +const DEV = process.env.NODE_ENV === 'development'; + +/** + * Shared Vite configuration applied to both server and client builds. + */ +export const sharedConfig: UserConfig = { + define: { + 'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV), + 'process.env.HOSTNAME': JSON.stringify(process.env.HOSTNAME), + }, + build: { + sourcemap: DEV ? 'inline' : true, + }, + resolve: { + extensions: ['.ts', '.tsx', '.js', '.jsx'], + }, +}; diff --git a/dotcom-rendering/webpack/@types/webpack-filter-warnings-plugin/index.d.ts b/dotcom-rendering/webpack/@types/webpack-filter-warnings-plugin/index.d.ts deleted file mode 100644 index af3e405cadd..00000000000 --- a/dotcom-rendering/webpack/@types/webpack-filter-warnings-plugin/index.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -declare module 'webpack-filter-warnings-plugin' { - import type { Compiler, WebpackPluginInstance } from 'webpack'; - - export default class FilterWarningsPlugin implements WebpackPluginInstance { - constructor(options: { exclude: RegExp }); - - apply(compiler: Compiler): void; - } -} diff --git a/dotcom-rendering/webpack/@types/webpack-messages/index.d.ts b/dotcom-rendering/webpack/@types/webpack-messages/index.d.ts deleted file mode 100644 index 6c3cb0a2112..00000000000 --- a/dotcom-rendering/webpack/@types/webpack-messages/index.d.ts +++ /dev/null @@ -1,19 +0,0 @@ -declare module 'webpack-messages' { - import type * as webpack from 'webpack'; - - type Options = { - name: string; - onComplete?: (...args: unknown[]) => void; - logger?: (msg: string) => void; - }; - - class WebpackMessages implements webpack.WebpackPluginInstance { - constructor(options: Options); - - printError(str: string, arr: string[]): void; - - apply(compiler: webpack.Compiler): void; - } - - export default WebpackMessages; -} diff --git a/dotcom-rendering/webpack/bundles.js b/dotcom-rendering/webpack/bundles.ts similarity index 62% rename from dotcom-rendering/webpack/bundles.js rename to dotcom-rendering/webpack/bundles.ts index 1408de25c7f..0801696aa81 100644 --- a/dotcom-rendering/webpack/bundles.js +++ b/dotcom-rendering/webpack/bundles.ts @@ -1,3 +1,10 @@ +type ServerSideTests = { + [key: `${string}Variant`]: 'variant'; + [key: `${string}Control`]: 'control'; +}; + +type ServerSideTestNames = keyof ServerSideTests; + /** * Controls whether we should build the variant bundle. * @@ -7,9 +14,8 @@ * Ensure Sentry sampling in sentry/sentryLoader.ts is adjusted for the sample * size of the test * - * @type {boolean} prevent TS from narrowing this to its current value */ -const BUILD_VARIANT = false; +export const BUILD_VARIANT: boolean = false; /** * Server-side test names for running variant test. @@ -19,11 +25,7 @@ const BUILD_VARIANT = false; * * @see https://github.com/guardian/frontend/blob/main/common/app/experiments/Experiments.scala * - * @type {(variant: 'Variant' | 'Control') => string} */ -const dcrJavascriptBundle = (variant) => `dcrJavascriptBundle${variant}`; - -module.exports = { - BUILD_VARIANT, - dcrJavascriptBundle, -}; +export const dcrJavascriptBundle = ( + variant: 'Variant' | 'Control', +): ServerSideTestNames => `dcrJavascriptBundle${variant}`; diff --git a/dotcom-rendering/webpack/svg.cjs b/dotcom-rendering/webpack/svg.cjs deleted file mode 100644 index 0976f29ade1..00000000000 --- a/dotcom-rendering/webpack/svg.cjs +++ /dev/null @@ -1,15 +0,0 @@ -/** @satisfies {import('webpack').RuleSetRule} */ -const svgr = { - test: /\.svg$/, - use: [ - { - loader: '@svgr/webpack', - options: { - /** this ensures that we keep the viewBox for imported SVGs */ - svgo: false, - }, - }, - ], -}; - -module.exports = { svgr }; diff --git a/dotcom-rendering/webpack/webpack.config.client.js b/dotcom-rendering/webpack/webpack.config.client.js deleted file mode 100644 index 056f5697e01..00000000000 --- a/dotcom-rendering/webpack/webpack.config.client.js +++ /dev/null @@ -1,186 +0,0 @@ -const webpack = require('webpack'); -const { WebpackManifestPlugin } = require('webpack-manifest-plugin'); -const swcConfig = require('./.swcrc.json'); -const { getBrowserTargets } = require('./browser-targets'); -const { svgr } = require('./svg.cjs'); - -const DEV = process.env.NODE_ENV === 'development'; - -/** @param {Record | string[]} targets */ -const swcLoader = (targets) => [ - { - loader: 'swc-loader', - options: { - ...swcConfig, - env: { - dynamicImport: true, - targets, - }, - }, - }, -]; - -/** @typedef {import('../src/lib/assets').Build} Build*/ - -/** - * @param {Build} build - * @returns {string} - */ -const generateName = (build) => { - const chunkhashString = DEV ? '' : '.[chunkhash]'; - return `[name].${build}${chunkhashString}.js`; -}; - -/** - * @param {Build} build - * @returns {string} - */ -const getEntryIndex = (build) => { - switch (build) { - case 'client.editionsCrossword': - return './src/client/main.editionsCrossword.tsx'; - case 'client.apps': - return './src/client/main.apps.ts'; - default: - return './src/client/main.web.ts'; - } -}; - -/** - * @param {Build} build - * @returns {{ loader: string, options: Record}} - */ -const getLoaders = (build) => { - switch (build) { - case 'client.editionsCrossword': - case 'client.apps': - return swcLoader(['android >= 5', 'ios >= 12']); - case 'client.web.variant': - case 'client.web': - return swcLoader(getBrowserTargets()); - } -}; - -/** - * @param {{ build: Build }} options - * @returns {import('webpack').Configuration} - */ -module.exports = ({ build }) => ({ - entry: { - index: getEntryIndex(build), - debug: './src/client/debug/debug.ts', - }, - optimization: - // We don't need chunk optimization for apps as we use the 'LimitChunkCountPlugin' to produce just 1 chunk - build === 'client.apps' || build === 'client.editionsCrossword' - ? undefined - : { - splitChunks: { - cacheGroups: { - // our own chunk, which is shared between all bundles - frameworks: { - test: /[\\/]node_modules[\\/](preact|react-is|hoist-non-react-statistics|swr|@emotion|stylis)[\\/]/, - chunks: 'all', - name: 'frameworks', - enforce: true, - }, - // defining our own chunk above overrides the webpack defaults, - // so now we restore them - // https://webpack.js.org/plugins/split-chunks-plugin/#optimizationsplitchunks - defaultVendors: { - test: /[\\/]node_modules[\\/]/, - priority: -10, - reuseExistingChunk: true, - }, - default: { - minChunks: 2, - priority: -20, - reuseExistingChunk: true, - }, - }, - }, - }, - output: { - filename: (data) => { - // We don't want to hash the debug script so it can be used in bookmarklets - if (data.chunk.name === 'debug') { - return `[name].js`; - } - return generateName(build); - }, - chunkFilename: generateName(build), - publicPath: '', - }, - plugins: [ - new WebpackManifestPlugin({ - fileName: `manifest.${build}.json`, - }), - ...(build === 'client.apps' || build === 'client.editionsCrossword' - ? [ - new webpack.optimize.LimitChunkCountPlugin({ - maxChunks: 1, - }), - new webpack.ProvidePlugin({ - Buffer: ['buffer', 'Buffer'], - }), - ] - : []), - ], - externals: getExternalModules(build), - module: { - rules: [ - { - test: /\.[jt]sx?|mjs$/, - exclude: module.exports.transpileExclude, - use: getLoaders(build), - }, - { - test: /\.css$/, - use: ['to-string-loader', 'css-loader'], - }, - svgr, - ], - }, - resolve: { - alias: { - react: 'preact/compat', - 'react-dom/test-utils': 'preact/test-utils', - 'react-dom': 'preact/compat', - }, - }, -}); - -module.exports.transpileExclude = { - // Exclude node_modules from transpilation - and: [/node_modules/], - // Do not exclude i.e. include - not: [ - // Include all @guardian modules - /@guardian\//, - // Include the dynamic-import-polyfill - /dynamic-import-polyfill/, - /valibot/, - ], -}; - -module.exports.getLoaders = getLoaders; - -/** - * We are making "@guardian/ophan-tracker-js" external to the apps bundle - * because we never expect to use it in apps pages. - * - * Tracking is done natively. - * - * @param {Build} build */ -const getExternalModules = (build) => { - if (build === 'client.apps') { - return { '@guardian/ophan-tracker-js': 'guardian.ophan' }; - } - if (build === 'client.editionsCrossword') { - return { - '@guardian/ophan-tracker-js': 'guardian.ophan', - '@guardian/commercial': 'guardian.commercial', - }; - } - return undefined; -}; diff --git a/dotcom-rendering/webpack/webpack.config.dev-server.js b/dotcom-rendering/webpack/webpack.config.dev-server.js deleted file mode 100644 index d6e90146bfa..00000000000 --- a/dotcom-rendering/webpack/webpack.config.dev-server.js +++ /dev/null @@ -1,81 +0,0 @@ -// @ts-check -const path = require('node:path'); -const bodyParser = require('body-parser'); -const webpackHotServerMiddleware = require('webpack-hot-server-middleware'); -const { dim, reset, blue, underline } = require('../../scripts/log'); - -const port = 3030; - -console.log( - `${dim}DEV server running on${reset} ${blue}${underline}http://localhost:${port}${reset}`, -); - -module.exports = { - /** @type {import('webpack-dev-server').Configuration} */ - devServer: { - compress: false, - hot: false, - liveReload: true, - client: { - logging: 'warn', - overlay: true, - }, - port, - static: { - directory: path.join(__dirname, '..', 'src', 'static'), - publicPath: '/static/frontend', - }, - allowedHosts: ['r.thegulocal.com'], - devMiddleware: { - publicPath: '/assets/', - serverSideRender: true, - writeToDisk: true, - headers: (req, res) => { - // Allow any localhost request from accessing the assets - if ( - req.hostname === (process.env.HOSTNAME ?? 'localhost') && - req.headers.origin - ) { - res.setHeader( - 'Access-Control-Allow-Origin', - req.headers.origin, - ); - } - }, - }, - setupMiddlewares: (middlewares, devServer) => { - if (!devServer.app) { - throw new Error('webpack-dev-server is not defined'); - } - - // it turns out webpack dev server is just an express server - // with webpack-dev-middleware, so here we add some other middlewares - // of our own - - devServer.app.use(bodyParser.json({ limit: '10mb' })); - - devServer.app.get('/', (req, res) => { - res.sendFile( - path.join( - __dirname, - '..', - 'src', - 'server', - 'dev-index.html', - ), - ); - }); - - // webpack-hot-server-middleware needs to run after webpack-dev-middleware - middlewares.push({ - name: 'server', - // @ts-expect-error -- it’s a MultiCompiler - middleware: webpackHotServerMiddleware(devServer.compiler, { - chunkName: 'server', - }), - }); - - return middlewares; - }, - }, -}; diff --git a/dotcom-rendering/webpack/webpack.config.js b/dotcom-rendering/webpack/webpack.config.js deleted file mode 100644 index f4a89198a5c..00000000000 --- a/dotcom-rendering/webpack/webpack.config.js +++ /dev/null @@ -1,134 +0,0 @@ -// @ts-check -const path = require('node:path'); -const webpack = require('webpack'); -const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer'); -const { merge } = require('webpack-merge'); -const WebpackMessages = require('webpack-messages'); -const { BUILD_VARIANT: BUILD_VARIANT_SWITCH } = require('./bundles'); - -const dist = path.resolve(__dirname, '..', 'dist'); -const PROD = process.env.NODE_ENV === 'production'; -const DEV = process.env.NODE_ENV === 'development'; - -const BUILD_VARIANT = process.env.BUILD_VARIANT === 'true'; - -/** @typedef {import('../src/lib/assets').Build} Build */ - -/** - * @param {{ platform: 'server' | Build}} options - * @returns {import('webpack').Configuration} - */ -const commonConfigs = ({ platform }) => ({ - name: platform, - mode: DEV ? 'development' : 'production', - output: { - path: dist, - }, - stats: DEV ? 'errors-only' : 'normal', - devtool: - process.env.NODE_ENV === 'production' - ? 'source-map' - : 'eval-cheap-module-source-map', - resolve: { - extensions: ['.js', '.ts', '.tsx', '.jsx'], - alias: { - // css-tree wasn't bundling properly due to CJS build's createRequire so this points imports to the esm dist - 'css-tree': require.resolve('css-tree/dist/csstree.esm'), - }, - }, - ignoreWarnings: [ - /** - * Express uses dynamic imports to load template engines. As we're not currently using a template engine in DCR - * we can ignore this error. - */ - { - module: /..\/node_modules\/express\/lib\/view.js/, - message: - /Critical dependency: the request of a dependency is an expression/, - }, - /** - * Log4js uses dynamic imports to load non-core appenders. We're only using 'console' and 'file' appenders in DCR - * which are specifically imported by log4js without using dynamic imports. - */ - { - module: /..\/node_modules\/log4js\/lib\/appenders\/index.js/, - message: - /Critical dependency: the request of a dependency is an expression/, - }, - ], - plugins: [ - new webpack.DefinePlugin({ - 'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV), - 'process.env.HOSTNAME': JSON.stringify(process.env.HOSTNAME), - }), - // Matching modules specified in this regex will not be imported during the webpack build - // We use this if there are optional dependencies (e.g in jsdom, ws) to remove uneccesary warnings in our builds / console outpouts. - new webpack.IgnorePlugin({ - resourceRegExp: /^(canvas|bufferutil|utf-8-validate)$/, - }), - ...(DEV - ? // DEV plugins - [ - // @ts-expect-error -- somehow the type declaration isn’t playing nice - new WebpackMessages({ - name: platform, - }), - ] - : // PROD plugins - [ - new BundleAnalyzerPlugin({ - reportFilename: path.join( - dist, - 'stats', - `${platform}-bundles.html`, - ), - analyzerMode: 'static', - openAnalyzer: false, - logLevel: 'warn', - }), - new BundleAnalyzerPlugin({ - reportFilename: path.join( - dist, - 'stats', - `${platform}-bundles.json`, - ), - analyzerMode: 'json', - openAnalyzer: false, - logLevel: 'warn', - }), - ]), - ], - infrastructureLogging: { - level: PROD ? 'info' : 'warn', - }, -}); - -/** @type {readonly Build[]} */ -const clientBuilds = [ - 'client.web', - ...((PROD && BUILD_VARIANT_SWITCH) || BUILD_VARIANT - ? /** @type {const} */ (['client.web.variant']) - : []), - 'client.apps', - 'client.editionsCrossword', -]; - -module.exports = [ - merge( - commonConfigs({ - platform: 'server', - }), - require(`./webpack.config.server`), - DEV ? require(`./webpack.config.dev-server`) : {}, - ), - ...clientBuilds.map((build) => - merge( - commonConfigs({ - platform: build, - }), - require(`./webpack.config.client`)({ - build, - }), - ), - ), -]; diff --git a/dotcom-rendering/webpack/webpack.config.server.js b/dotcom-rendering/webpack/webpack.config.server.js deleted file mode 100644 index bb3282477b8..00000000000 --- a/dotcom-rendering/webpack/webpack.config.server.js +++ /dev/null @@ -1,92 +0,0 @@ -// @ts-check -const path = require('path'); -const nodeExternals = require('webpack-node-externals'); -const swcConfig = require('./.swcrc.json'); -const { svgr } = require('./svg.cjs'); -const { transpileExclude } = require('./webpack.config.client.js'); - -const DEV = process.env.NODE_ENV === 'development'; -const nodeVersion = process.versions.node; - -const swcLoader = [ - { - loader: 'swc-loader', - options: { - ...swcConfig, - minify: DEV ? false : true, - env: { - targets: { - node: nodeVersion, - }, - }, - }, - }, -]; - -/** @type {import('webpack').Configuration} */ -module.exports = { - entry: { - server: './src/server/server.ts', - }, - output: { - filename: `[name].js`, - chunkFilename: `[name].js`, - libraryTarget: 'commonjs2', - pathinfo: true, - publicPath: '', - }, - target: 'node', - externalsPresets: { node: true }, - optimization: { - minimize: false, - runtimeChunk: false, - }, - externals: [ - // https://github.com/liady/webpack-node-externals/issues/105 - ...(DEV - ? [ - nodeExternals({ - allowlist: [ - /^@guardian/, - // this project is ESM-only and throws an error when not bundled - 'screenfull', - ], - additionalModuleDirs: [ - // Since we use workspaces for the monorepo, node_modules will be co-located - // both in the '(project-root)/dotcom-rendering/node_modules' directory (default for webpack-node-externals) - // but also in project root, and any workspaces we link to. - // We want to make sure all of these are removed from the server build. - '../node_modules', - ], - }), - ] - : []), - // @aws-sdk modules are only used in CODE/PROD, so we don't need to - // include them in the development bundle - ({ request }, callback) => { - return process.env.NODE_ENV === 'development' && - request?.startsWith('@aws-sdk') - ? callback(undefined, `commonjs ${request}`) - : callback(); - }, - ({ request }, callback) => { - return request?.endsWith('manifest.json') - ? callback(undefined, `commonjs ${request}`) - : callback(); - }, - ], - module: { - rules: [ - { - test: /(\.tsx|\.js|\.ts)$/, - exclude: transpileExclude, - use: swcLoader, - }, - svgr, - { - test: /jsdom.*computed-style\.js$/, - use: [path.resolve(__dirname, './jsdom-patch.js')], - }, - ], - }, -}; diff --git a/dotcom-rendering/window.guardian.ts b/dotcom-rendering/window.guardian.ts index 8934a44ad22..51487ba2868 100644 --- a/dotcom-rendering/window.guardian.ts +++ b/dotcom-rendering/window.guardian.ts @@ -40,17 +40,6 @@ declare global { weeklyArticleCount: WeeklyArticleHistory | undefined; dailyArticleCount: DailyArticleHistory | undefined; }; - /** - * ES6 module import, possibly polyfilled depending on the current - * browser. There are three categories: - * - * 1. Full support out of the box - * 2. ES6 module support but not dynamic modules - * 3. No module support - * - * This gives support across all 3 cases. - */ - guardianPolyfilledImport: (url: string) => Promise; // can't be nested beyond top level guCmpHotFix: { initialised?: boolean; cmp: CMP; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cc8d1c4a824..65c28c19b08 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -219,16 +219,16 @@ importers: version: link:../config '@sveltejs/adapter-auto': specifier: 7.0.1 - version: 7.0.1(@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.3(@types/node@24.12.4)(terser@5.49.0)))(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@6.0.3)(vite@6.4.3(@types/node@24.12.4)(terser@5.49.0))) + version: 7.0.1(@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.3(@types/node@24.12.4)(lightningcss@1.32.0)(terser@5.46.0)))(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@6.0.3)(vite@6.4.3(@types/node@24.12.4)(lightningcss@1.32.0)(terser@5.46.0))) '@sveltejs/adapter-static': specifier: 3.0.10 - version: 3.0.10(@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.3(@types/node@24.12.4)(terser@5.49.0)))(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@6.0.3)(vite@6.4.3(@types/node@24.12.4)(terser@5.49.0))) + version: 3.0.10(@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.3(@types/node@24.12.4)(lightningcss@1.32.0)(terser@5.46.0)))(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@6.0.3)(vite@6.4.3(@types/node@24.12.4)(lightningcss@1.32.0)(terser@5.46.0))) '@sveltejs/kit': specifier: 2.60.1 - version: 2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.3(@types/node@24.12.4)(terser@5.49.0)))(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@6.0.3)(vite@6.4.3(@types/node@24.12.4)(terser@5.49.0)) + version: 2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.3(@types/node@24.12.4)(lightningcss@1.32.0)(terser@5.46.0)))(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@6.0.3)(vite@6.4.3(@types/node@24.12.4)(lightningcss@1.32.0)(terser@5.46.0)) '@sveltejs/vite-plugin-svelte': specifier: 7.1.2 - version: 7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.3(@types/node@24.12.4)(terser@5.49.0)) + version: 7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.3(@types/node@24.12.4)(lightningcss@1.32.0)(terser@5.46.0)) svelte: specifier: 5.56.3 version: 5.56.3(@typescript-eslint/types@8.59.2) @@ -240,7 +240,7 @@ importers: version: 6.0.3 vite: specifier: 6.4.3 - version: 6.4.3(@types/node@24.12.4)(terser@5.49.0)(tsx@4.6.2) + version: 6.4.3(@types/node@24.12.4)(lightningcss@1.32.0)(terser@5.46.0) ab-testing/notification-lambda: dependencies: @@ -353,9 +353,6 @@ importers: '@guardian/react-crossword': specifier: 19.0.1 version: 19.0.1(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@6.0.3))(@guardian/source@12.2.1(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)(tslib@2.6.2)(typescript@6.0.3))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@6.0.3) - '@guardian/shimport': - specifier: 1.0.2 - version: 1.0.2 '@guardian/source': specifier: 12.2.1 version: 12.2.1(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)(tslib@2.6.2)(typescript@6.0.3) @@ -371,6 +368,9 @@ importers: '@playwright/test': specifier: 1.60.0 version: 1.60.0 + '@rollup/plugin-inject': + specifier: 5.0.5 + version: 5.0.5(rollup@4.62.0) '@sentry/browser': specifier: 10.52.0 version: 10.52.0 @@ -379,19 +379,13 @@ importers: version: 10.3.3(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) '@storybook/addon-docs': specifier: 10.3.3 - version: 10.3.3(@types/react@18.3.1)(esbuild@0.28.1)(rollup@4.62.0)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@6.4.3(@types/node@24.12.4)(terser@5.49.0)(tsx@4.6.2))(webpack@5.108.4) - '@storybook/addon-webpack5-compiler-swc': - specifier: 4.0.3 - version: 4.0.3(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(webpack@5.108.4) - '@storybook/react-webpack5': + version: 10.3.3(@types/react@18.3.1)(esbuild@0.28.1)(rollup@4.62.0)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@8.0.11(@types/node@24.12.4)(esbuild@0.28.1)(terser@5.46.0)(tsx@4.6.2)) + '@storybook/react-vite': specifier: 10.3.3 - version: 10.3.3(@swc/core@1.15.41)(clean-css@5.3.3)(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@6.0.3)(webpack-cli@7.2.1) - '@svgr/webpack': - specifier: 8.1.0 - version: 8.1.0(typescript@6.0.3) + version: 10.3.3(esbuild@0.28.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.62.0)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@6.0.3)(vite@8.0.11(@types/node@24.12.4)(esbuild@0.28.1)(terser@5.46.0)(tsx@4.6.2)) '@swc/cli': specifier: 0.8.1 - version: 0.8.1(@swc/core@1.15.41)(chokidar@5.0.0) + version: 0.8.1(@swc/core@1.15.41) '@swc/core': specifier: 1.15.41 version: 1.15.41 @@ -488,15 +482,6 @@ importers: '@types/twitter-for-web': specifier: 0.0.6 version: 0.0.6 - '@types/webpack-bundle-analyzer': - specifier: 4.7.0 - version: 4.7.0(@swc/core@1.15.41)(clean-css@5.3.3)(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.16)(webpack-cli@7.2.1) - '@types/webpack-env': - specifier: 1.18.8 - version: 1.18.8 - '@types/webpack-node-externals': - specifier: 3.0.4 - version: 3.0.4(@swc/core@1.15.41)(clean-css@5.3.3)(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.16)(webpack-cli@7.2.1) '@types/youtube': specifier: 0.0.50 version: 0.0.50 @@ -539,15 +524,9 @@ importers: cpy: specifier: 11.0.0 version: 11.0.0 - css-loader: - specifier: 7.1.4 - version: 7.1.4(webpack@5.108.4) dompurify: specifier: 3.4.7 version: 3.4.7 - dynamic-import-polyfill: - specifier: 0.1.1 - version: 0.1.1 eslint: specifier: 'catalog:' version: 9.39.1 @@ -656,6 +635,9 @@ importers: remark-rehype: specifier: 11.1.2 version: 11.1.2 + rollup-plugin-visualizer: + specifier: 7.0.1 + version: 7.0.1(rolldown@1.0.0-rc.18)(rollup@4.62.0) sanitize-html: specifier: 2.17.4 version: 2.17.4 @@ -677,15 +659,9 @@ importers: stylelint-config-recommended: specifier: 14.0.0 version: 14.0.0(stylelint@16.26.1(typescript@6.0.3)) - swc-loader: - specifier: 0.2.7 - version: 0.2.7(@swc/core@1.15.41)(webpack@5.108.4) swr: specifier: 1.3.0 version: 1.3.0(react@18.3.1) - to-string-loader: - specifier: 1.2.0 - version: 1.2.0 trusted-types: specifier: 2.0.0 version: 2.0.0 @@ -719,42 +695,15 @@ importers: valibot: specifier: 0.28.1 version: 0.28.1 + vite: + specifier: 8.0.11 + version: 8.0.11(@types/node@24.12.4)(esbuild@0.28.1)(terser@5.46.0)(tsx@4.6.2) + vite-plugin-svgr: + specifier: 5.2.0 + version: 5.2.0(rollup@4.62.0)(typescript@6.0.3)(vite@8.0.11(@types/node@24.12.4)(esbuild@0.28.1)(terser@5.46.0)(tsx@4.6.2)) web-vitals: specifier: 4.2.3 version: 4.2.3 - webpack: - specifier: 5.108.4 - version: 5.108.4(@swc/core@1.15.41)(clean-css@5.3.3)(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.16)(webpack-cli@7.2.1) - webpack-assets-manifest: - specifier: 6.5.2 - version: 6.5.2(webpack@5.108.4) - webpack-bundle-analyzer: - specifier: 5.3.0 - version: 5.3.0 - webpack-cli: - specifier: 7.2.1 - version: 7.2.1(js-yaml@4.1.1)(json5@2.2.3)(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@6.0.0)(webpack@5.108.4) - webpack-dev-server: - specifier: 6.0.0 - version: 6.0.0(tslib@2.6.2)(webpack-cli@7.2.1)(webpack@5.108.4) - webpack-hot-server-middleware: - specifier: 0.6.1 - version: 0.6.1(webpack@5.108.4) - webpack-manifest-plugin: - specifier: 6.0.1 - version: 6.0.1(webpack@5.108.4) - webpack-merge: - specifier: 6.0.1 - version: 6.0.1 - webpack-messages: - specifier: 2.0.4 - version: 2.0.4 - webpack-node-externals: - specifier: 3.0.0 - version: 3.0.0 - webpack-sources: - specifier: 3.5.1 - version: 3.5.1 zod: specifier: 4.1.12 version: 4.1.12 @@ -1083,39 +1032,14 @@ packages: resolution: {integrity: sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==} engines: {node: '>=6.9.0'} - '@babel/helper-annotate-as-pure@7.27.3': - resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==} - engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.29.7': resolution: {integrity: sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==} engines: {node: '>=6.9.0'} - '@babel/helper-create-class-features-plugin@7.28.3': - resolution: {integrity: sha512-V9f6ZFIYSLNEbuGA/92uOvYsGCJNsuA8ESZ4ldc09bWk/j8H8TKiPw8Mk1eG6olpnO0ALHJmYfZvF4MEE4gajg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-create-regexp-features-plugin@7.27.1': - resolution: {integrity: sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-define-polyfill-provider@0.6.5': - resolution: {integrity: sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - '@babel/helper-globals@7.28.0': resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} engines: {node: '>=6.9.0'} - '@babel/helper-member-expression-to-functions@7.27.1': - resolution: {integrity: sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==} - engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.28.6': resolution: {integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==} engines: {node: '>=6.9.0'} @@ -1126,34 +1050,10 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-optimise-call-expression@7.27.1': - resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==} - engines: {node: '>=6.9.0'} - '@babel/helper-plugin-utils@7.27.1': resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} engines: {node: '>=6.9.0'} - '@babel/helper-plugin-utils@7.28.6': - resolution: {integrity: sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==} - engines: {node: '>=6.9.0'} - - '@babel/helper-remap-async-to-generator@7.27.1': - resolution: {integrity: sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-replace-supers@7.27.1': - resolution: {integrity: sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-skip-transparent-expression-wrappers@7.27.1': - resolution: {integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==} - engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.27.1': resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} engines: {node: '>=6.9.0'} @@ -1166,10 +1066,6 @@ packages: resolution: {integrity: sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==} engines: {node: '>=6.9.0'} - '@babel/helper-wrap-function@7.28.3': - resolution: {integrity: sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g==} - engines: {node: '>=6.9.0'} - '@babel/helpers@7.28.6': resolution: {integrity: sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==} engines: {node: '>=6.9.0'} @@ -1179,42 +1075,6 @@ packages: engines: {node: '>=6.0.0'} hasBin: true - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1': - resolution: {integrity: sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1': - resolution: {integrity: sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1': - resolution: {integrity: sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1': - resolution: {integrity: sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.13.0 - - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.3': - resolution: {integrity: sha512-b6YTX108evsvE4YgWyQ921ZAFFQm3Bn+CA3+ZXlNVnPhx+UfsVURoPjfGAPCjBgrqo30yX/C2nZGX96DxvR9Iw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': - resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-async-generators@7.8.4': resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: @@ -1230,18 +1090,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-import-assertions@7.27.1': - resolution: {integrity: sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-import-attributes@7.27.1': - resolution: {integrity: sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-import-meta@7.10.4': resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: @@ -1300,812 +1148,433 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-unicode-sets-regex@7.18.6': - resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} + '@babel/runtime@7.28.4': + resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/plugin-transform-arrow-functions@7.27.1': - resolution: {integrity: sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==} + '@babel/template@7.28.6': + resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-async-generator-functions@7.28.0': - resolution: {integrity: sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==} + '@babel/traverse@7.29.0': + resolution: {integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-async-to-generator@7.27.1': - resolution: {integrity: sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==} + '@babel/types@7.29.0': + resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-block-scoped-functions@7.27.1': - resolution: {integrity: sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@bcoe/v8-coverage@0.2.3': + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - '@babel/plugin-transform-block-scoping@7.28.4': - resolution: {integrity: sha512-1yxmvN0MJHOhPVmAsmoW5liWwoILobu/d/ShymZmj867bAdxGbehIrew1DuLpw2Ukv+qDSSPQdYW1dLNE7t11A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@borewit/text-codec@0.2.2': + resolution: {integrity: sha512-DDaRehssg1aNrH4+2hnj1B7vnUGEjU6OIlyRdkMd0aUdIUvKXrJfXsy8LVtXAy7DRvYVluWbMspsRhz2lcW0mQ==} - '@babel/plugin-transform-class-properties@7.27.1': - resolution: {integrity: sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@bramus/specificity@2.4.2': + resolution: {integrity: sha512-ctxtJ/eA+t+6q2++vj5j7FYX3nRu311q1wfYH3xjlLOsczhlhxAg2FWNUXhpGvAw3BWo1xBcvOV6/YLc2r5FJw==} + hasBin: true - '@babel/plugin-transform-class-static-block@7.28.3': - resolution: {integrity: sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.12.0 + '@braze/web-sdk@6.5.0': + resolution: {integrity: sha512-MdfwZn+tfe7+tR8Ir5468/njQDGhgVB9tBthq7gwSETsjv6Q+Hw2bXiQy3scDcACI2RLqiq+dNXKh6fD+pN4/Q==} - '@babel/plugin-transform-classes@7.28.4': - resolution: {integrity: sha512-cFOlhIYPBv/iBoc+KS3M6et2XPtbT2HiCRfBXWtfpc9OAyostldxIf9YAYB6ypURBBbx+Qv6nyrLzASfJe+hBA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@cacheable/memory@2.0.8': + resolution: {integrity: sha512-FvEb29x5wVwu/Kf93IWwsOOEuhHh6dYCJF3vcKLzXc0KXIW181AOzv6ceT4ZpBHDvAfG60eqb+ekmrnLHIy+jw==} - '@babel/plugin-transform-computed-properties@7.27.1': - resolution: {integrity: sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@cacheable/utils@2.4.0': + resolution: {integrity: sha512-PeMMsqjVq+bF0WBsxFBxr/WozBJiZKY0rUojuaCoIaKnEl3Ju1wfEwS+SV1DU/cSe8fqHIPiYJFif8T3MVt4cQ==} - '@babel/plugin-transform-destructuring@7.28.0': - resolution: {integrity: sha512-v1nrSMBiKcodhsyJ4Gf+Z0U/yawmJDBOTpEB3mcQY52r9RIyPneGyAS/yM6seP/8I+mWI3elOMtT5dB8GJVs+A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@creditkarma/thrift-server-core@1.0.4': + resolution: {integrity: sha512-Jook5uFJqPeM/D0taSdKHeoerZB6HboSDMqBDWhVDJVSKJGWPSMch4GNALRqr8nCekLKMYkdCgj4FAVetnxpGA==} - '@babel/plugin-transform-dotall-regex@7.27.1': - resolution: {integrity: sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@cspotcode/source-map-support@0.8.1': + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} - '@babel/plugin-transform-duplicate-keys@7.27.1': - resolution: {integrity: sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@csstools/color-helpers@6.0.2': + resolution: {integrity: sha512-LMGQLS9EuADloEFkcTBR3BwV/CGHV7zyDxVRtVDTwdI2Ca4it0CCVTT9wCkxSgokjE5Ho41hEPgb8OEUwoXr6Q==} + engines: {node: '>=20.19.0'} - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1': - resolution: {integrity: sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==} - engines: {node: '>=6.9.0'} + '@csstools/css-calc@3.2.1': + resolution: {integrity: sha512-DtdHlgXh5ZkA43cwBcAm+huzgJiwx3ZTWVjBs94kwz2xKqSimDA3lBgCjphYgwgVUMWatSM0pDd8TILB1yrVVg==} + engines: {node: '>=20.19.0'} peerDependencies: - '@babel/core': ^7.0.0 + '@csstools/css-parser-algorithms': ^4.0.0 + '@csstools/css-tokenizer': ^4.0.0 - '@babel/plugin-transform-dynamic-import@7.27.1': - resolution: {integrity: sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==} - engines: {node: '>=6.9.0'} + '@csstools/css-color-parser@4.1.4': + resolution: {integrity: sha512-yI8kNhHiOrLb8Rlulsk07DeQz0PwyT69FX9dkz5rAp7p9RUwFKEXnZpBGzURiLHgi66YqIWxOHn1nij8Lrg27Q==} + engines: {node: '>=20.19.0'} peerDependencies: - '@babel/core': ^7.0.0-0 + '@csstools/css-parser-algorithms': ^4.0.0 + '@csstools/css-tokenizer': ^4.0.0 - '@babel/plugin-transform-explicit-resource-management@7.28.0': - resolution: {integrity: sha512-K8nhUcn3f6iB+P3gwCv/no7OdzOZQcKchW6N389V6PD8NUWKZHzndOd9sPDVbMoBsbmjMqlB4L9fm+fEFNVlwQ==} - engines: {node: '>=6.9.0'} + '@csstools/css-parser-algorithms@3.0.5': + resolution: {integrity: sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==} + engines: {node: '>=18'} peerDependencies: - '@babel/core': ^7.0.0-0 + '@csstools/css-tokenizer': ^3.0.4 - '@babel/plugin-transform-exponentiation-operator@7.27.1': - resolution: {integrity: sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ==} - engines: {node: '>=6.9.0'} + '@csstools/css-parser-algorithms@4.0.0': + resolution: {integrity: sha512-+B87qS7fIG3L5h3qwJ/IFbjoVoOe/bpOdh9hAjXbvx0o8ImEmUsGXN0inFOnk2ChCFgqkkGFQ+TpM5rbhkKe4w==} + engines: {node: '>=20.19.0'} peerDependencies: - '@babel/core': ^7.0.0-0 + '@csstools/css-tokenizer': ^4.0.0 - '@babel/plugin-transform-export-namespace-from@7.27.1': - resolution: {integrity: sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==} - engines: {node: '>=6.9.0'} + '@csstools/css-syntax-patches-for-csstree@1.1.1': + resolution: {integrity: sha512-BvqN0AMWNAnLk9G8jnUT77D+mUbY/H2b3uDTvg2isJkHaOufUE2R3AOwxWo7VBQKT1lOdwdvorddo2B/lk64+w==} peerDependencies: - '@babel/core': ^7.0.0-0 + css-tree: ^3.2.1 + peerDependenciesMeta: + css-tree: + optional: true - '@babel/plugin-transform-for-of@7.27.1': - resolution: {integrity: sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==} - engines: {node: '>=6.9.0'} + '@csstools/css-syntax-patches-for-csstree@1.1.5': + resolution: {integrity: sha512-oNjBvzLq2GPZtJphCjLqXow/cHySHSgtxvKZb7OqSZ/xHgw6NWNhfad+6AB9cLeVm6eA9d/qMll3JdEHjy6M+A==} peerDependencies: - '@babel/core': ^7.0.0-0 + css-tree: ^3.2.1 + peerDependenciesMeta: + css-tree: + optional: true - '@babel/plugin-transform-function-name@7.27.1': - resolution: {integrity: sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@csstools/css-tokenizer@3.0.4': + resolution: {integrity: sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==} + engines: {node: '>=18'} - '@babel/plugin-transform-json-strings@7.27.1': - resolution: {integrity: sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@csstools/css-tokenizer@4.0.0': + resolution: {integrity: sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==} + engines: {node: '>=20.19.0'} - '@babel/plugin-transform-literals@7.27.1': - resolution: {integrity: sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==} - engines: {node: '>=6.9.0'} + '@csstools/media-query-list-parser@4.0.3': + resolution: {integrity: sha512-HAYH7d3TLRHDOUQK4mZKf9k9Ph/m8Akstg66ywKR4SFAigjs3yBiUeZtFxywiTm5moZMAp/5W/ZuFnNXXYLuuQ==} + engines: {node: '>=18'} peerDependencies: - '@babel/core': ^7.0.0-0 + '@csstools/css-parser-algorithms': ^3.0.5 + '@csstools/css-tokenizer': ^3.0.4 - '@babel/plugin-transform-logical-assignment-operators@7.27.1': - resolution: {integrity: sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw==} - engines: {node: '>=6.9.0'} + '@csstools/selector-specificity@5.0.0': + resolution: {integrity: sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==} + engines: {node: '>=18'} peerDependencies: - '@babel/core': ^7.0.0-0 + postcss-selector-parser: ^7.0.0 - '@babel/plugin-transform-member-expression-literals@7.27.1': - resolution: {integrity: sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@dual-bundle/import-meta-resolve@4.2.1': + resolution: {integrity: sha512-id+7YRUgoUX6CgV0DtuhirQWodeeA7Lf4i2x71JS/vtA5pRb/hIGWlw+G6MeXvsM+MXrz0VAydTGElX1rAfgPg==} - '@babel/plugin-transform-modules-amd@7.27.1': - resolution: {integrity: sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@emnapi/core@1.10.0': + resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==} - '@babel/plugin-transform-modules-commonjs@7.27.1': - resolution: {integrity: sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@emnapi/runtime@1.10.0': + resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==} - '@babel/plugin-transform-modules-systemjs@7.29.4': - resolution: {integrity: sha512-N7QmZ0xRZfjHOfZeQLJjwgX2zS9pdGHSVl/cjSGlo4dXMqvurfxXDMKY4RqEKzPozV78VMcd0lxyG13mlbKc4w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@emnapi/wasi-threads@1.2.1': + resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} - '@babel/plugin-transform-modules-umd@7.27.1': - resolution: {integrity: sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@emotion/babel-plugin@11.13.5': + resolution: {integrity: sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==} - '@babel/plugin-transform-named-capturing-groups-regex@7.27.1': - resolution: {integrity: sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + '@emotion/cache@11.14.0': + resolution: {integrity: sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==} - '@babel/plugin-transform-new-target@7.27.1': - resolution: {integrity: sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@emotion/hash@0.9.2': + resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==} - '@babel/plugin-transform-nullish-coalescing-operator@7.27.1': - resolution: {integrity: sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@emotion/memoize@0.9.0': + resolution: {integrity: sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==} - '@babel/plugin-transform-numeric-separator@7.27.1': - resolution: {integrity: sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==} - engines: {node: '>=6.9.0'} + '@emotion/react@11.14.0': + resolution: {integrity: sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==} peerDependencies: - '@babel/core': ^7.0.0-0 + '@types/react': '*' + react: '>=16.8.0' + peerDependenciesMeta: + '@types/react': + optional: true - '@babel/plugin-transform-object-rest-spread@7.28.4': - resolution: {integrity: sha512-373KA2HQzKhQCYiRVIRr+3MjpCObqzDlyrM6u4I201wL8Mp2wHf7uB8GhDwis03k2ti8Zr65Zyyqs1xOxUF/Ew==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@emotion/serialize@1.3.3': + resolution: {integrity: sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==} - '@babel/plugin-transform-object-super@7.27.1': - resolution: {integrity: sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-optional-catch-binding@7.27.1': - resolution: {integrity: sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==} - engines: {node: '>=6.9.0'} + '@emotion/server@11.11.0': + resolution: {integrity: sha512-6q89fj2z8VBTx9w93kJ5n51hsmtYuFPtZgnc1L8VzRx9ti4EU6EyvF6Nn1H1x3vcCQCF7u2dB2lY4AYJwUW4PA==} peerDependencies: - '@babel/core': ^7.0.0-0 + '@emotion/css': ^11.0.0-rc.0 + peerDependenciesMeta: + '@emotion/css': + optional: true - '@babel/plugin-transform-optional-chaining@7.27.1': - resolution: {integrity: sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@emotion/sheet@1.4.0': + resolution: {integrity: sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==} - '@babel/plugin-transform-parameters@7.27.7': - resolution: {integrity: sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@emotion/unitless@0.10.0': + resolution: {integrity: sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==} - '@babel/plugin-transform-private-methods@7.27.1': - resolution: {integrity: sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==} - engines: {node: '>=6.9.0'} + '@emotion/use-insertion-effect-with-fallbacks@1.2.0': + resolution: {integrity: sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==} peerDependencies: - '@babel/core': ^7.0.0-0 + react: '>=16.8.0' - '@babel/plugin-transform-private-property-in-object@7.27.1': - resolution: {integrity: sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@emotion/utils@1.4.2': + resolution: {integrity: sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==} - '@babel/plugin-transform-property-literals@7.27.1': - resolution: {integrity: sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@emotion/weak-memoize@0.4.0': + resolution: {integrity: sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==} - '@babel/plugin-transform-react-constant-elements@7.23.3': - resolution: {integrity: sha512-zP0QKq/p6O42OL94udMgSfKXyse4RyJ0JqbQ34zDAONWjyrEsghYEyTSK5FIpmXmCpB55SHokL1cRRKHv8L2Qw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@esbuild/aix-ppc64@0.25.12': + resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] - '@babel/plugin-transform-react-display-name@7.27.1': - resolution: {integrity: sha512-p9+Vl3yuHPmkirRrg021XiP+EETmPMQTLr6Ayjj85RLNEbb3Eya/4VI0vAdzQG9SEAl2Lnt7fy5lZyMzjYoZQQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@esbuild/aix-ppc64@0.27.3': + resolution: {integrity: sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] - '@babel/plugin-transform-react-jsx-development@7.27.1': - resolution: {integrity: sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@esbuild/aix-ppc64@0.28.1': + resolution: {integrity: sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] - '@babel/plugin-transform-react-jsx@7.27.1': - resolution: {integrity: sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@esbuild/android-arm64@0.18.20': + resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] - '@babel/plugin-transform-react-pure-annotations@7.27.1': - resolution: {integrity: sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@esbuild/android-arm64@0.25.12': + resolution: {integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] - '@babel/plugin-transform-regenerator@7.28.4': - resolution: {integrity: sha512-+ZEdQlBoRg9m2NnzvEeLgtvBMO4tkFBw5SQIUgLICgTrumLoU7lr+Oghi6km2PFj+dbUt2u1oby2w3BDO9YQnA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@esbuild/android-arm64@0.27.3': + resolution: {integrity: sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] - '@babel/plugin-transform-regexp-modifiers@7.27.1': - resolution: {integrity: sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + '@esbuild/android-arm64@0.28.1': + resolution: {integrity: sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] - '@babel/plugin-transform-reserved-words@7.27.1': - resolution: {integrity: sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@esbuild/android-arm@0.18.20': + resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] - '@babel/plugin-transform-shorthand-properties@7.27.1': - resolution: {integrity: sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@esbuild/android-arm@0.25.12': + resolution: {integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] - '@babel/plugin-transform-spread@7.27.1': - resolution: {integrity: sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@esbuild/android-arm@0.27.3': + resolution: {integrity: sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] - '@babel/plugin-transform-sticky-regex@7.27.1': - resolution: {integrity: sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@esbuild/android-arm@0.28.1': + resolution: {integrity: sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] - '@babel/plugin-transform-template-literals@7.27.1': - resolution: {integrity: sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@esbuild/android-x64@0.18.20': + resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] - '@babel/plugin-transform-typeof-symbol@7.27.1': - resolution: {integrity: sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@esbuild/android-x64@0.25.12': + resolution: {integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] - '@babel/plugin-transform-typescript@7.27.1': - resolution: {integrity: sha512-Q5sT5+O4QUebHdbwKedFBEwRLb02zJ7r4A5Gg2hUoLuU3FjdMcyqcywqUrLCaDsFCxzokf7u9kuy7qz51YUuAg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@esbuild/android-x64@0.27.3': + resolution: {integrity: sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] - '@babel/plugin-transform-unicode-escapes@7.27.1': - resolution: {integrity: sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@esbuild/android-x64@0.28.1': + resolution: {integrity: sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] - '@babel/plugin-transform-unicode-property-regex@7.27.1': - resolution: {integrity: sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@esbuild/darwin-arm64@0.18.20': + resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] - '@babel/plugin-transform-unicode-regex@7.27.1': - resolution: {integrity: sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@esbuild/darwin-arm64@0.25.12': + resolution: {integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] - '@babel/plugin-transform-unicode-sets-regex@7.27.1': - resolution: {integrity: sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + '@esbuild/darwin-arm64@0.27.3': + resolution: {integrity: sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] - '@babel/preset-env@7.28.3': - resolution: {integrity: sha512-ROiDcM+GbYVPYBOeCR6uBXKkQpBExLl8k9HO1ygXEyds39j+vCCsjmj7S8GOniZQlEs81QlkdJZe76IpLSiqpg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@esbuild/darwin-arm64@0.28.1': + resolution: {integrity: sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] - '@babel/preset-modules@0.1.6-no-external-plugins': - resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} - peerDependencies: - '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 + '@esbuild/darwin-x64@0.18.20': + resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] - '@babel/preset-react@7.27.1': - resolution: {integrity: sha512-oJHWh2gLhU9dW9HHr42q0cI0/iHHXTLGe39qvpAZZzagHy0MzYLCnCVV0symeRvzmjHyVU7mw2K06E6u/JwbhA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@esbuild/darwin-x64@0.25.12': + resolution: {integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] - '@babel/preset-typescript@7.27.1': - resolution: {integrity: sha512-l7WfQfX0WK4M0v2RudjuQK4u99BS6yLHYEmdtVPP7lKV013zr9DygFuWNlnbvQ9LR+LS0Egz/XAvGx5U9MX0fQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@esbuild/darwin-x64@0.27.3': + resolution: {integrity: sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] - '@babel/runtime@7.28.4': - resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==} - engines: {node: '>=6.9.0'} + '@esbuild/darwin-x64@0.28.1': + resolution: {integrity: sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] - '@babel/template@7.28.6': - resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==} - engines: {node: '>=6.9.0'} + '@esbuild/freebsd-arm64@0.18.20': + resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] - '@babel/traverse@7.29.0': - resolution: {integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==} - engines: {node: '>=6.9.0'} + '@esbuild/freebsd-arm64@0.25.12': + resolution: {integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] - '@babel/types@7.29.0': - resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} - engines: {node: '>=6.9.0'} + '@esbuild/freebsd-arm64@0.27.3': + resolution: {integrity: sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] - '@bcoe/v8-coverage@0.2.3': - resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + '@esbuild/freebsd-arm64@0.28.1': + resolution: {integrity: sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] - '@borewit/text-codec@0.2.2': - resolution: {integrity: sha512-DDaRehssg1aNrH4+2hnj1B7vnUGEjU6OIlyRdkMd0aUdIUvKXrJfXsy8LVtXAy7DRvYVluWbMspsRhz2lcW0mQ==} + '@esbuild/freebsd-x64@0.18.20': + resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] - '@bramus/specificity@2.4.2': - resolution: {integrity: sha512-ctxtJ/eA+t+6q2++vj5j7FYX3nRu311q1wfYH3xjlLOsczhlhxAg2FWNUXhpGvAw3BWo1xBcvOV6/YLc2r5FJw==} - hasBin: true - - '@braze/web-sdk@6.5.0': - resolution: {integrity: sha512-MdfwZn+tfe7+tR8Ir5468/njQDGhgVB9tBthq7gwSETsjv6Q+Hw2bXiQy3scDcACI2RLqiq+dNXKh6fD+pN4/Q==} - - '@cacheable/memory@2.0.8': - resolution: {integrity: sha512-FvEb29x5wVwu/Kf93IWwsOOEuhHh6dYCJF3vcKLzXc0KXIW181AOzv6ceT4ZpBHDvAfG60eqb+ekmrnLHIy+jw==} - - '@cacheable/utils@2.4.0': - resolution: {integrity: sha512-PeMMsqjVq+bF0WBsxFBxr/WozBJiZKY0rUojuaCoIaKnEl3Ju1wfEwS+SV1DU/cSe8fqHIPiYJFif8T3MVt4cQ==} - - '@creditkarma/thrift-server-core@1.0.4': - resolution: {integrity: sha512-Jook5uFJqPeM/D0taSdKHeoerZB6HboSDMqBDWhVDJVSKJGWPSMch4GNALRqr8nCekLKMYkdCgj4FAVetnxpGA==} - - '@cspotcode/source-map-support@0.8.1': - resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} - engines: {node: '>=12'} - - '@csstools/color-helpers@6.0.2': - resolution: {integrity: sha512-LMGQLS9EuADloEFkcTBR3BwV/CGHV7zyDxVRtVDTwdI2Ca4it0CCVTT9wCkxSgokjE5Ho41hEPgb8OEUwoXr6Q==} - engines: {node: '>=20.19.0'} - - '@csstools/css-calc@3.2.1': - resolution: {integrity: sha512-DtdHlgXh5ZkA43cwBcAm+huzgJiwx3ZTWVjBs94kwz2xKqSimDA3lBgCjphYgwgVUMWatSM0pDd8TILB1yrVVg==} - engines: {node: '>=20.19.0'} - peerDependencies: - '@csstools/css-parser-algorithms': ^4.0.0 - '@csstools/css-tokenizer': ^4.0.0 - - '@csstools/css-color-parser@4.1.4': - resolution: {integrity: sha512-yI8kNhHiOrLb8Rlulsk07DeQz0PwyT69FX9dkz5rAp7p9RUwFKEXnZpBGzURiLHgi66YqIWxOHn1nij8Lrg27Q==} - engines: {node: '>=20.19.0'} - peerDependencies: - '@csstools/css-parser-algorithms': ^4.0.0 - '@csstools/css-tokenizer': ^4.0.0 - - '@csstools/css-parser-algorithms@3.0.5': - resolution: {integrity: sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==} - engines: {node: '>=18'} - peerDependencies: - '@csstools/css-tokenizer': ^3.0.4 - - '@csstools/css-parser-algorithms@4.0.0': - resolution: {integrity: sha512-+B87qS7fIG3L5h3qwJ/IFbjoVoOe/bpOdh9hAjXbvx0o8ImEmUsGXN0inFOnk2ChCFgqkkGFQ+TpM5rbhkKe4w==} - engines: {node: '>=20.19.0'} - peerDependencies: - '@csstools/css-tokenizer': ^4.0.0 - - '@csstools/css-syntax-patches-for-csstree@1.1.1': - resolution: {integrity: sha512-BvqN0AMWNAnLk9G8jnUT77D+mUbY/H2b3uDTvg2isJkHaOufUE2R3AOwxWo7VBQKT1lOdwdvorddo2B/lk64+w==} - peerDependencies: - css-tree: ^3.2.1 - peerDependenciesMeta: - css-tree: - optional: true - - '@csstools/css-syntax-patches-for-csstree@1.1.5': - resolution: {integrity: sha512-oNjBvzLq2GPZtJphCjLqXow/cHySHSgtxvKZb7OqSZ/xHgw6NWNhfad+6AB9cLeVm6eA9d/qMll3JdEHjy6M+A==} - peerDependencies: - css-tree: ^3.2.1 - peerDependenciesMeta: - css-tree: - optional: true - - '@csstools/css-tokenizer@3.0.4': - resolution: {integrity: sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==} - engines: {node: '>=18'} - - '@csstools/css-tokenizer@4.0.0': - resolution: {integrity: sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==} - engines: {node: '>=20.19.0'} - - '@csstools/media-query-list-parser@4.0.3': - resolution: {integrity: sha512-HAYH7d3TLRHDOUQK4mZKf9k9Ph/m8Akstg66ywKR4SFAigjs3yBiUeZtFxywiTm5moZMAp/5W/ZuFnNXXYLuuQ==} - engines: {node: '>=18'} - peerDependencies: - '@csstools/css-parser-algorithms': ^3.0.5 - '@csstools/css-tokenizer': ^3.0.4 - - '@csstools/selector-specificity@5.0.0': - resolution: {integrity: sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==} - engines: {node: '>=18'} - peerDependencies: - postcss-selector-parser: ^7.0.0 - - '@discoveryjs/json-ext@0.6.3': - resolution: {integrity: sha512-4B4OijXeVNOPZlYA2oEwWOTkzyltLao+xbotHQeqN++Rv27Y6s818+n2Qkp8q+Fxhn0t/5lA5X1Mxktud8eayQ==} - engines: {node: '>=14.17.0'} - - '@discoveryjs/json-ext@1.1.0': - resolution: {integrity: sha512-Xc3VhU02wqZ1HvHRJUwL09HkZSTvidqY5Ya0NXBSYOxAp+Ln9dcJr9fySI+CkONzP3PekQo9WdzCv0PGER/mOA==} - engines: {node: '>=14.17.0'} - - '@dual-bundle/import-meta-resolve@4.2.1': - resolution: {integrity: sha512-id+7YRUgoUX6CgV0DtuhirQWodeeA7Lf4i2x71JS/vtA5pRb/hIGWlw+G6MeXvsM+MXrz0VAydTGElX1rAfgPg==} - - '@emnapi/core@1.10.0': - resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==} - - '@emnapi/runtime@1.10.0': - resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==} - - '@emnapi/wasi-threads@1.2.1': - resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} - - '@emotion/babel-plugin@11.13.5': - resolution: {integrity: sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==} - - '@emotion/cache@11.14.0': - resolution: {integrity: sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==} - - '@emotion/hash@0.9.2': - resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==} - - '@emotion/memoize@0.9.0': - resolution: {integrity: sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==} - - '@emotion/react@11.14.0': - resolution: {integrity: sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==} - peerDependencies: - '@types/react': '*' - react: '>=16.8.0' - peerDependenciesMeta: - '@types/react': - optional: true - - '@emotion/serialize@1.3.3': - resolution: {integrity: sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==} - - '@emotion/server@11.11.0': - resolution: {integrity: sha512-6q89fj2z8VBTx9w93kJ5n51hsmtYuFPtZgnc1L8VzRx9ti4EU6EyvF6Nn1H1x3vcCQCF7u2dB2lY4AYJwUW4PA==} - peerDependencies: - '@emotion/css': ^11.0.0-rc.0 - peerDependenciesMeta: - '@emotion/css': - optional: true - - '@emotion/sheet@1.4.0': - resolution: {integrity: sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==} - - '@emotion/unitless@0.10.0': - resolution: {integrity: sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==} - - '@emotion/use-insertion-effect-with-fallbacks@1.2.0': - resolution: {integrity: sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==} - peerDependencies: - react: '>=16.8.0' - - '@emotion/utils@1.4.2': - resolution: {integrity: sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==} - - '@emotion/weak-memoize@0.4.0': - resolution: {integrity: sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==} - - '@esbuild/aix-ppc64@0.25.12': - resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==} + '@esbuild/freebsd-x64@0.25.12': + resolution: {integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==} engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] + cpu: [x64] + os: [freebsd] - '@esbuild/aix-ppc64@0.27.3': - resolution: {integrity: sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==} + '@esbuild/freebsd-x64@0.27.3': + resolution: {integrity: sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==} engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] + cpu: [x64] + os: [freebsd] - '@esbuild/aix-ppc64@0.28.1': - resolution: {integrity: sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==} + '@esbuild/freebsd-x64@0.28.1': + resolution: {integrity: sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==} engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] + cpu: [x64] + os: [freebsd] - '@esbuild/android-arm64@0.18.20': - resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} + '@esbuild/linux-arm64@0.18.20': + resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} engines: {node: '>=12'} cpu: [arm64] - os: [android] + os: [linux] - '@esbuild/android-arm64@0.25.12': - resolution: {integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==} + '@esbuild/linux-arm64@0.25.12': + resolution: {integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==} engines: {node: '>=18'} cpu: [arm64] - os: [android] + os: [linux] - '@esbuild/android-arm64@0.27.3': - resolution: {integrity: sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==} + '@esbuild/linux-arm64@0.27.3': + resolution: {integrity: sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==} engines: {node: '>=18'} cpu: [arm64] - os: [android] + os: [linux] - '@esbuild/android-arm64@0.28.1': - resolution: {integrity: sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==} + '@esbuild/linux-arm64@0.28.1': + resolution: {integrity: sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==} engines: {node: '>=18'} cpu: [arm64] - os: [android] + os: [linux] - '@esbuild/android-arm@0.18.20': - resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} + '@esbuild/linux-arm@0.18.20': + resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} engines: {node: '>=12'} cpu: [arm] - os: [android] + os: [linux] - '@esbuild/android-arm@0.25.12': - resolution: {integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==} + '@esbuild/linux-arm@0.25.12': + resolution: {integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==} engines: {node: '>=18'} cpu: [arm] - os: [android] + os: [linux] - '@esbuild/android-arm@0.27.3': - resolution: {integrity: sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==} + '@esbuild/linux-arm@0.27.3': + resolution: {integrity: sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==} engines: {node: '>=18'} cpu: [arm] - os: [android] + os: [linux] - '@esbuild/android-arm@0.28.1': - resolution: {integrity: sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==} + '@esbuild/linux-arm@0.28.1': + resolution: {integrity: sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==} engines: {node: '>=18'} cpu: [arm] - os: [android] + os: [linux] - '@esbuild/android-x64@0.18.20': - resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} + '@esbuild/linux-ia32@0.18.20': + resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} engines: {node: '>=12'} - cpu: [x64] - os: [android] + cpu: [ia32] + os: [linux] - '@esbuild/android-x64@0.25.12': - resolution: {integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==} + '@esbuild/linux-ia32@0.25.12': + resolution: {integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==} engines: {node: '>=18'} - cpu: [x64] - os: [android] + cpu: [ia32] + os: [linux] - '@esbuild/android-x64@0.27.3': - resolution: {integrity: sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==} + '@esbuild/linux-ia32@0.27.3': + resolution: {integrity: sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==} engines: {node: '>=18'} - cpu: [x64] - os: [android] + cpu: [ia32] + os: [linux] - '@esbuild/android-x64@0.28.1': - resolution: {integrity: sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==} + '@esbuild/linux-ia32@0.28.1': + resolution: {integrity: sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==} engines: {node: '>=18'} - cpu: [x64] - os: [android] - - '@esbuild/darwin-arm64@0.18.20': - resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-arm64@0.25.12': - resolution: {integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-arm64@0.27.3': - resolution: {integrity: sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-arm64@0.28.1': - resolution: {integrity: sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-x64@0.18.20': - resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - - '@esbuild/darwin-x64@0.25.12': - resolution: {integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] - - '@esbuild/darwin-x64@0.27.3': - resolution: {integrity: sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] - - '@esbuild/darwin-x64@0.28.1': - resolution: {integrity: sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] - - '@esbuild/freebsd-arm64@0.18.20': - resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-arm64@0.25.12': - resolution: {integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-arm64@0.27.3': - resolution: {integrity: sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-arm64@0.28.1': - resolution: {integrity: sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.18.20': - resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.25.12': - resolution: {integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.27.3': - resolution: {integrity: sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.28.1': - resolution: {integrity: sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] - - '@esbuild/linux-arm64@0.18.20': - resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm64@0.25.12': - resolution: {integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==} - engines: {node: '>=18'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm64@0.27.3': - resolution: {integrity: sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm64@0.28.1': - resolution: {integrity: sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==} - engines: {node: '>=18'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm@0.18.20': - resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-arm@0.25.12': - resolution: {integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-arm@0.27.3': - resolution: {integrity: sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-arm@0.28.1': - resolution: {integrity: sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-ia32@0.18.20': - resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-ia32@0.25.12': - resolution: {integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-ia32@0.27.3': - resolution: {integrity: sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-ia32@0.28.1': - resolution: {integrity: sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] + cpu: [ia32] + os: [linux] '@esbuild/linux-loong64@0.18.20': resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} @@ -2620,9 +2089,6 @@ packages: typescript: optional: true - '@guardian/shimport@1.0.2': - resolution: {integrity: sha512-o35TxvMFfpQTGL6flW0ggIfU4tPlXp0PqY9vPL2Fx+68qy+s+uX4T0+dN3+JeoBad9QrRZoHfZPALvZlrRWfHw==} - '@guardian/source-development-kitchen@28.1.0': resolution: {integrity: sha512-Rh8xDIvQXNVD3j71wn3D4tYgUf0bIAD+K9n2WYsMUA5x2sXzYMimZ29NcFbq0tket+5CNM4Hae3cBN7MpmEZpQ==} peerDependencies: @@ -2781,6 +2247,15 @@ packages: resolution: {integrity: sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@joshwooding/vite-plugin-react-docgen-typescript@0.6.4': + resolution: {integrity: sha512-6PyZBYKnnVNqOSB0YFly+62R7dmov8segT27A+RVTBVd4iAE6kbW9QBJGlyR2yG4D4ohzhZSTIu7BK1UTtmFFA==} + peerDependencies: + typescript: '>= 4.3.x' + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 + peerDependenciesMeta: + typescript: + optional: true + '@jridgewell/gen-mapping@0.3.13': resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} @@ -2803,126 +2278,6 @@ packages: '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - '@jsonjoy.com/base64@1.1.2': - resolution: {integrity: sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - - '@jsonjoy.com/base64@17.67.0': - resolution: {integrity: sha512-5SEsJGsm15aP8TQGkDfJvz9axgPwAEm98S5DxOuYe8e1EbfajcDmgeXXzccEjh+mLnjqEKrkBdjHWS5vFNwDdw==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - - '@jsonjoy.com/buffers@1.2.1': - resolution: {integrity: sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - - '@jsonjoy.com/buffers@17.67.0': - resolution: {integrity: sha512-tfExRpYxBvi32vPs9ZHaTjSP4fHAfzSmcahOfNxtvGHcyJel+aibkPlGeBB+7AoC6hL7lXIE++8okecBxx7lcw==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - - '@jsonjoy.com/codegen@1.0.0': - resolution: {integrity: sha512-E8Oy+08cmCf0EK/NMxpaJZmOxPqM+6iSe2S4nlSBrPZOORoDJILxtbSUEDKQyTamm/BVAhIGllOBNU79/dwf0g==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - - '@jsonjoy.com/codegen@17.67.0': - resolution: {integrity: sha512-idnkUplROpdBOV0HMcwhsCUS5TRUi9poagdGs70A6S4ux9+/aPuKbh8+UYRTLYQHtXvAdNfQWXDqZEx5k4Dj2Q==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - - '@jsonjoy.com/fs-core@4.64.0': - resolution: {integrity: sha512-zs2TAq7Six5jgMuoMNjpspAvOP3mhtgq/k1UyQodEzCtQi/N83y2/y+zcvnZSGp/Rxq96DBN+bValOBQAyn/ew==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - - '@jsonjoy.com/fs-fsa@4.64.0': - resolution: {integrity: sha512-nMWOVbkLFyEgmXZih3wyvxA9XpgyyqyfrINMHvEFqhi7uqfRl7c9ERJt6yX7vgMPrB9Uo+OJO+Spa0cFzPD01w==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - - '@jsonjoy.com/fs-node-builtins@4.64.0': - resolution: {integrity: sha512-/o7WRFhUWaM/fOrslwLZGnzn4RmRILykn+lAL+mNObqqRNw+CQSiij6hpCeZ+C7buhdoVo7go/OYqzaSUfDYmA==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - - '@jsonjoy.com/fs-node-to-fsa@4.64.0': - resolution: {integrity: sha512-WDD9WVs0hb7UAEKTgZW2f66WDrbj7gIIWwpP3spbLyXa0rghtUaFTB8L4gdR3ZCWwiKIsj38/CNijpVmpnuPUw==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - - '@jsonjoy.com/fs-node-utils@4.64.0': - resolution: {integrity: sha512-k5Indsx9hWW9xSF7Y6oSKKwtCUNhzZxadub3owhIlitc+iMRVlPPdX2duTKQWBL3qNWpXya8jykgaaWpheeS4w==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - - '@jsonjoy.com/fs-node@4.64.0': - resolution: {integrity: sha512-dO+NNkODbUli4uV42bcNrrLvq5rE7SNpdZ5TNd0dtbLsAaNK3MDiIC9lUi+brboGoIjW6vd2fB1qao60nrk5xA==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - - '@jsonjoy.com/fs-print@4.64.0': - resolution: {integrity: sha512-PHZFccchvkhWrwPWHjmVAhbC3vSHCtyZvlZfJJ3ho2bnzl450hXri6/8e6pbkWdH+SkmLXNml0sV8e5HDAfxKw==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - - '@jsonjoy.com/fs-snapshot@4.64.0': - resolution: {integrity: sha512-oM7UDeL83q6NBzzsfKAsYKXKVXlykKFqqOLh4xZZKAzzROTlInkPbc6LTDGThEOnPiFiUzA7tYziHG9xavd76Q==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - - '@jsonjoy.com/json-pack@1.21.0': - resolution: {integrity: sha512-+AKG+R2cfZMShzrF2uQw34v3zbeDYUqnQ+jg7ORic3BGtfw9p/+N6RJbq/kkV8JmYZaINknaEQ2m0/f693ZPpg==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - - '@jsonjoy.com/json-pack@17.67.0': - resolution: {integrity: sha512-t0ejURcGaZsn1ClbJ/3kFqSOjlryd92eQY465IYrezsXmPcfHPE/av4twRSxf6WE+TkZgLY+71vCZbiIiFKA/w==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - - '@jsonjoy.com/json-pointer@1.0.2': - resolution: {integrity: sha512-Fsn6wM2zlDzY1U+v4Nc8bo3bVqgfNTGcn6dMgs6FjrEnt4ZCe60o6ByKRjOGlI2gow0aE/Q41QOigdTqkyK5fg==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - - '@jsonjoy.com/json-pointer@17.67.0': - resolution: {integrity: sha512-+iqOFInH+QZGmSuaybBUNdh7yvNrXvqR+h3wjXm0N/3JK1EyyFAeGJvqnmQL61d1ARLlk/wJdFKSL+LHJ1eaUA==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - - '@jsonjoy.com/util@1.9.0': - resolution: {integrity: sha512-pLuQo+VPRnN8hfPqUTLTHk126wuYdXVxE6aDmjSeV4NCAgyxWbiOIeNJVtID3h1Vzpoi9m4jXezf73I6LgabgQ==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - - '@jsonjoy.com/util@17.67.0': - resolution: {integrity: sha512-6+8xBaz1rLSohlGh68D1pdw3AwDi9xydm8QNlAFkvnavCJYSze+pxoW2VKP8p308jtlMRLs5NTHfPlZLd4w7ew==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - '@keyv/bigmap@1.3.1': resolution: {integrity: sha512-WbzE9sdmQtKy8vrNPa9BRnwZh5UF4s1KTmSK0KUVLo3eff5BlQNNWDnFOouNpKfPKDnms9xynJjsMYjMaT/aFQ==} engines: {node: '>= 18'} @@ -2932,9 +2287,6 @@ packages: '@keyv/serialize@1.1.1': resolution: {integrity: sha512-dXn3FZhPv0US+7dtJsIi2R+c7qWYiReoEh5zUntWCf4oSpMNib8FDhSoed6m3QyZdx5hK7iLFkYk3rNxwt8vTA==} - '@leichtgewicht/ip-codec@2.0.5': - resolution: {integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==} - '@mdx-js/react@3.1.1': resolution: {integrity: sha512-f++rKLQgUVYDAtECQ6fn/is15GkEH9+nZPM3MS0RcxVqoTfawHvDlSCH7JbMhAM6uJ32v3eXLvLmLvjGu7PTQw==} peerDependencies: @@ -3057,9 +2409,11 @@ packages: '@napi-rs/wasm-runtime@0.2.12': resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} - '@noble/hashes@1.4.0': - resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==} - engines: {node: '>= 16'} + '@napi-rs/wasm-runtime@1.1.4': + resolution: {integrity: sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==} + peerDependencies: + '@emnapi/core': ^1.7.1 + '@emnapi/runtime': ^1.7.1 '@nodable/entities@2.1.0': resolution: {integrity: sha512-nyT7T3nbMyBI/lvr6L5TyWbFJAI9FTgVRakNoBqCD+PmID8DzFrrNdLLtHMwMszOtqZa8PAOV24ZqDnQrhQINA==} @@ -3076,46 +2430,12 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} + '@oxc-project/types@0.128.0': + resolution: {integrity: sha512-huv1Y/LzBJkBVHt3OlC7u0zHBW9qXf1FdD7sGmc1rXc2P1mTwHssYv7jyGx5KAACSCH+9B3Bhn6Z9luHRvf7pQ==} + '@package-json/types@0.0.12': resolution: {integrity: sha512-uu43FGU34B5VM9mCNjXCwLaGHYjXdNincqKLaraaCW+7S2+SmiBg1Nv8bPnmschrIfZmfKNY9f3fC376MRrObw==} - '@peculiar/asn1-cms@2.8.0': - resolution: {integrity: sha512-NgekZOrSJFSBFLFoLfwePguAWAx7z1+f2TEsWFUMyiqqfntZ4+S/S5hzqME3q4pCA0iOsFKdwiQ35dwY24eVqA==} - - '@peculiar/asn1-csr@2.8.0': - resolution: {integrity: sha512-akbF8+uvleHs8sejNPQxwmVFuInAg6FMNHOwMILXfP518YfFJwdR3jr6oNUPOaEJfuEhn/vkNOCIT6ASUd4mbg==} - - '@peculiar/asn1-ecc@2.8.0': - resolution: {integrity: sha512-ohwlk+u9Rv2NOAY1c6MfHj45ATVF8R1DUN/WCgABiRtLi2ZftlZWZX7KvpAbU8v9xPcmoILfELeEABj/rn18AQ==} - - '@peculiar/asn1-pfx@2.8.0': - resolution: {integrity: sha512-5yof1ytoB++RQtaFbqSUJ8pxDJtZT6vbVqZ8XoJ61ph7UjNVvfFwAilnCodqkNsAodpy13gDhoxZXw00pghnyg==} - - '@peculiar/asn1-pkcs8@2.8.0': - resolution: {integrity: sha512-qAKXtLpBEw9LqhKpjw3ajZSXlBur+ipW+y2ivVBQAG6F6qRx94yO+1ZR4mvw+YaCfKSaOzLeYEzsPaBp4SJELA==} - - '@peculiar/asn1-pkcs9@2.8.0': - resolution: {integrity: sha512-b5nDWCnkV60+cQ141D6sVVwK9nz64R5n3zSVnklGd+ECdkW2Ol3U1a6yYFlalpSOaD557yuJB64A+q42jG7lUQ==} - - '@peculiar/asn1-rsa@2.8.0': - resolution: {integrity: sha512-zHEUlCqB2mk7x2lxDwHHJy7hWZOPdGHVlsmITWKB5/PbQo61atbu9PJ/0r9dQNMwFzbKPXZ8uK8/91eUhRznSg==} - - '@peculiar/asn1-schema@2.8.0': - resolution: {integrity: sha512-7YT0U/ze0tF2QOBbE15gKZwy5tvgGyLRiRHLzhlbOpf7BT032oBSd0haZqXn5W6l26WLlu3dyxzjM+2638/z2Q==} - - '@peculiar/asn1-x509-attr@2.8.0': - resolution: {integrity: sha512-tHjkfS/qhMnmrlB2J9NhflQlQ7In3khO3CfmVrriOlpTeErY9ZIKOso1hQ5JQiyrJ7ShvqVPk7E5fQmbclkSKA==} - - '@peculiar/asn1-x509@2.8.0': - resolution: {integrity: sha512-N0CMuhWUzsWEVq6F1q9X6+VKUnWzSW+cSVg+aPaGGwDdbFoFWTYgin5MHwXgpWd6y9COMBxnfy/Qc+Xc7F0Zwg==} - - '@peculiar/utils@2.0.3': - resolution: {integrity: sha512-+oL3HPFRIZ1St2K50lWCXiioIgSoxzz7R1J3uF6neO2yl1sgmpgY6XXJH4BdpoDkMWznQTeYF6oWNDZLCdQ4eQ==} - - '@peculiar/x509@1.14.3': - resolution: {integrity: sha512-C2Xj8FZ0uHWeCXXqX5B4/gVFQmtSkiuOolzAgutjTfseNOHT3pUjljDZsTSxXFGgio54bCzVFqmEOUrIVk8RDA==} - engines: {node: '>=20.0.0'} - '@pkgr/core@0.2.9': resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} @@ -3128,31 +2448,138 @@ packages: '@polka/url@1.0.0-next.29': resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} - '@rollup/plugin-commonjs@29.0.0': - resolution: {integrity: sha512-U2YHaxR2cU/yAiwKJtJRhnyLk7cifnQw0zUpISsocBDoHDJn+HTV74ABqnwr5bEgWUwFZC9oFL6wLe21lHu5eQ==} - engines: {node: '>=16.0.0 || 14 >= 14.17'} - peerDependencies: - rollup: ^2.68.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true + '@rolldown/binding-android-arm64@1.0.0-rc.18': + resolution: {integrity: sha512-lIDyUAfD7U3+BWKzdxMbJcsYHuqXqmGz40aeRqvuAm3y5TkJSYTBW2RDrn65DJFPQqVjUAUqq5uz8urzQ8aBdQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] - '@rollup/plugin-json@6.1.0': - resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true + '@rolldown/binding-darwin-arm64@1.0.0-rc.18': + resolution: {integrity: sha512-apJq2ktnGp27nSInMR5Vcj8kY6xJzDAvfdIFlpDcAK/w4cDO58qVoi1YQsES/SKiFNge/6e4CUzgjfHduYqWpQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] - '@rollup/plugin-node-resolve@16.0.3': - resolution: {integrity: sha512-lUYM3UBGuM93CnMPG1YocWu7X802BrNF3jW2zny5gQyLQgRFJhV1Sq0Zi74+dh/6NBx1DxFC4b4GXg9wUCG5Qg==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^2.78.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: + '@rolldown/binding-darwin-x64@1.0.0-rc.18': + resolution: {integrity: sha512-5Ofot8xbs+pxRHJqm9/9N/4sTQOvdrwEsmPE9pdLEEoAbdZtG6F2LMDfO1sp6ZAtXJuJV/21ew2srq3W8NXB5g==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + + '@rolldown/binding-freebsd-x64@1.0.0-rc.18': + resolution: {integrity: sha512-7h8eeOTT1eyqJyx64BFCnWZpNm486hGWt2sqeLLgDxA0xI1oGZ9H7gK1S85uNGmBhkdPwa/6reTxfFFKvIsebw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.18': + resolution: {integrity: sha512-eRcm/HVt9U/JFu5RKAEKwGQYtDCKWLiaH6wOnsSEp6NMBb/3Os8LgHZlNyzMpFVNmiiMFlfb2zEnebfzJrHFmg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.18': + resolution: {integrity: sha512-SOrT/cT4ukTmgnrEz/Hg3m7LBnuCLW9psDeMKrimRWY4I8DmnO7Lco8W2vtqPmMkbVu8iJ+g4GFLVLLOVjJ9DQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.18': + resolution: {integrity: sha512-QWjdxN1HJCpBTAcZ5N5F7wju3gVPzRzSpmGzx7na0c/1qpN9CFil+xt+l9lV/1M6/gqHSNXCiqPfwhVJPeLnug==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.18': + resolution: {integrity: sha512-ugCOyj7a4d9h3q9B+wXmf6g3a68UsjGh6dob5DHevHGMwDUbhsYNbSPxJsENcIttJZ9jv7qGM2UesLw5jqIhdg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.18': + resolution: {integrity: sha512-kKWRhbsotpXkGbcd5dllUWg5gEXcDAa8u5YnP9AV5DYNbvJHGzzuwv7dpmhc8NqKMJldl0a+x76IHbspEpEmdA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.18': + resolution: {integrity: sha512-uCo8ElcCIAMyYAZyuIZ81oFkhTSIllNvUCHCAlbhlN4ji3uC28h7IIdlXyIvGO7HsuqnV9p3rD/bpH7XhIyhRw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@rolldown/binding-linux-x64-musl@1.0.0-rc.18': + resolution: {integrity: sha512-XNOQZtuE6yUIvx4rwGemwh8kpL1xvU41FXy/s9K7T/3JVcqGzo3NfKM2HrbrGgfPYGFW42f07Wk++aOC6B9NWA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [musl] + + '@rolldown/binding-openharmony-arm64@1.0.0-rc.18': + resolution: {integrity: sha512-tSn/kzrfa7tNOXr7sEacDBN4YsIqTyLqh45IO0nHDwtpKIDNDJr+VFojt+4klSpChxB29JLyduSsE0MKEwa65A==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + + '@rolldown/binding-wasm32-wasi@1.0.0-rc.18': + resolution: {integrity: sha512-+J9YGmc+czgqlhYmwun3S3O0FIZhsH8ep2456xwjAdIOmuJxM7xz4P4PtrxU+Bz17a/5bqPA8o3HAAoX0teUdg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [wasm32] + + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.18': + resolution: {integrity: sha512-zsu47DgU0FQzSwi6sU9dZoEdUv7pc1AptSEz/Z8HBg54sV0Pbs3N0+CrIbTsgiu6EyoaNN9CHboqbLaz9lhOyQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.18': + resolution: {integrity: sha512-7H+3yqGgmnlDTRRhw/xpYY9J1kf4GC681nVc4GqKhExZTDrVVrV2tsOR9kso0fvgBdcTCcQShx4SLLoHgaLwhg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + + '@rolldown/pluginutils@1.0.0-rc.18': + resolution: {integrity: sha512-CUY5Mnhe64xQBGZEEXQ5WyZwsc1JU3vAZLIxtrsBt3LO6UOb+C8GunVKqe9sT8NeWb4lqSaoJtp2xo6GxT1MNw==} + + '@rollup/plugin-commonjs@29.0.0': + resolution: {integrity: sha512-U2YHaxR2cU/yAiwKJtJRhnyLk7cifnQw0zUpISsocBDoHDJn+HTV74ABqnwr5bEgWUwFZC9oFL6wLe21lHu5eQ==} + engines: {node: '>=16.0.0 || 14 >= 14.17'} + peerDependencies: + rollup: ^2.68.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-inject@5.0.5': + resolution: {integrity: sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-json@6.1.0': + resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-node-resolve@16.0.3': + resolution: {integrity: sha512-lUYM3UBGuM93CnMPG1YocWu7X802BrNF3jW2zny5gQyLQgRFJhV1Sq0Zi74+dh/6NBx1DxFC4b4GXg9wUCG5Qg==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.78.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: optional: true '@rollup/pluginutils@5.3.0': @@ -3744,25 +3171,11 @@ packages: peerDependencies: storybook: ^10.3.3 - '@storybook/addon-webpack5-compiler-swc@4.0.3': - resolution: {integrity: sha512-REJZBArIBcqzxmhQY9R1br9hjfcFYdl4FeWD/okx1eRwPZkl49aUhTYqZPrA+MWXfKJkuuNQ5vnfSoR0c9HyvA==} - engines: {node: '>=18'} - peerDependencies: - storybook: ^9.0.0 || ^10.0.0-0 || ^10.1.0-0 || ^10.2.0-0 || ^10.3.0-0 || ^10.4.0-0 - - '@storybook/builder-webpack5@10.3.3': - resolution: {integrity: sha512-A7hop0VXG/06EZ7l2WIuhsrnpiV6NOOcOiVqjYDLplbVelkiiL98LTL+Om87u0n32sAfXWgFk2jIhSc3bbXlsQ==} - peerDependencies: - storybook: ^10.3.3 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@storybook/core-webpack@10.3.3': - resolution: {integrity: sha512-ESRM2k9m1V0qXaqEM+bvtCjv9+gYVE3PMuoNZMyIYNdGA4Pdc2PvQsUrKQNVByVbEGwjt+h0RE6b20bnBkdYsg==} + '@storybook/builder-vite@10.3.3': + resolution: {integrity: sha512-awspKCTZvXyeV3KabL0id62mFbxR5u/5yyGQultwCiSb2/yVgBfip2MAqLyS850pvTiB6QFVM9deOyd2/G/bEA==} peerDependencies: storybook: ^10.3.3 + vite: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 '@storybook/csf-plugin@10.3.3': resolution: {integrity: sha512-Utlh7zubm+4iOzBBfzLW4F4vD99UBtl2Do4edlzK2F7krQIcFvR2ontjAE8S1FQVLZAC3WHalCOS+Ch8zf3knA==} @@ -3791,23 +3204,6 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - '@storybook/preset-react-webpack@10.3.3': - resolution: {integrity: sha512-R8WeGUo062VpIx+i+5/Cv8dVGM+YSgCGZ0STPANijmOHATvfWpslTAIjMkq0me/BoDT5zxzCnYvAyRrBcjOW8A==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - storybook: ^10.3.3 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0': - resolution: {integrity: sha512-KUqXC3oa9JuQ0kZJLBhVdS4lOneKTOopnNBK4tUAgoxWQ3u/IjzdueZjFr7gyBrXMoU6duutk3RQR9u8ZpYJ4Q==} - peerDependencies: - typescript: '>= 4.x' - webpack: '>= 4' - '@storybook/react-dom-shim@10.3.3': resolution: {integrity: sha512-lkhuh4G3UTreU9M3Iz5Dt32c6U+l/4XuvqLtbe1sDHENZH6aPj7y0b5FwnfHyvuTvYRhtbo29xZrF5Bp9kCC0w==} peerDependencies: @@ -3815,16 +3211,13 @@ packages: react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 storybook: ^10.3.3 - '@storybook/react-webpack5@10.3.3': - resolution: {integrity: sha512-+x5/KrLmgv7VnWfzKxh0xftnDIjogiVksNuaLJAl4TRuY7/OsrlJBUckQ+ovMXTZpaAini6+7IVoilrzmdl4cA==} + '@storybook/react-vite@10.3.3': + resolution: {integrity: sha512-qHdlBe1hjqFAGXa8JL7bWTLbP/gDqXbWDm+SYCB646NHh5yvVDkZLwigP5Y+UL7M2ASfqFtosnroUK9tcCM2dw==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 storybook: ^10.3.3 - typescript: '>= 4.9.x' - peerDependenciesMeta: - typescript: - optional: true + vite: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 '@storybook/react@10.3.3': resolution: {integrity: sha512-cGG5TbR8Tdx9zwlpsWyBEfWrejm5iWdYF26EwIhwuKq9GFUTAVrQzo0Rs7Tqc3ZyVhRS/YfsRiWSEH+zmq2JiQ==} @@ -3848,11 +3241,6 @@ packages: peerDependencies: acorn: ^8.9.0 - '@sveltejs/acorn-typescript@1.0.9': - resolution: {integrity: sha512-lVJX6qEgs/4DOcRTpo56tmKzVPtoWAaVbL4hfO7t7NVwl9AAXzQR6cihesW1BmNMPl+bK6dreu2sOKBP2Q9CIA==} - peerDependencies: - acorn: ^8.9.0 - '@sveltejs/adapter-auto@7.0.1': resolution: {integrity: sha512-dvuPm1E7M9NI/+canIQ6KKQDU2AkEefEZ2Dp7cY6uKoPq9Z/PhOXABe526UdW2mN986gjVkuSLkOYIBnS/M2LQ==} peerDependencies: @@ -3958,16 +3346,6 @@ packages: peerDependencies: '@svgr/core': '*' - '@svgr/plugin-svgo@8.1.0': - resolution: {integrity: sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==} - engines: {node: '>=14'} - peerDependencies: - '@svgr/core': '*' - - '@svgr/webpack@8.1.0': - resolution: {integrity: sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==} - engines: {node: '>=14'} - '@swc/cli@0.8.1': resolution: {integrity: sha512-L+ACCGHCiS0VqHVep/INLVnvRvJ2XooQFLZq4L8snhxw1jsqz+XRcY313UsyPVturPPE1shW3jic7rt3qEQTSQ==} engines: {node: '>= 20.19.0'} @@ -4133,6 +3511,9 @@ packages: '@tsconfig/node16@1.0.4': resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + '@tybys/wasm-util@0.10.1': + resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} + '@tybys/wasm-util@0.10.2': resolution: {integrity: sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==} @@ -4157,9 +3538,6 @@ packages: '@types/body-parser@1.19.2': resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} - '@types/bonjour@3.5.13': - resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==} - '@types/chai@5.2.2': resolution: {integrity: sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==} @@ -4169,9 +3547,6 @@ packages: '@types/compression@1.7.5': resolution: {integrity: sha512-AAQvK5pxMpaT+nDvhHrsBhLSYG5yQdtkaJE1WYieSNY2mVFKAgmU4ks65rkZD5oqnGCFLyQpUr1CqI4DmUMyDg==} - '@types/connect-history-api-fallback@1.5.4': - resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} - '@types/connect@3.4.38': resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} @@ -4200,9 +3575,6 @@ packages: '@types/express-serve-static-core@5.1.1': resolution: {integrity: sha512-v4zIMr/cX7/d2BpAEX3KNKL/JrT1s43s96lLvvdTmza1oEvDudCqK9aF/djc/SWgy8Yh0h30TZx5VpzqFCxk5A==} - '@types/express-serve-static-core@5.1.2': - resolution: {integrity: sha512-d3KvEXBSo/lOAMc2u6fkyDHBvetBHeqD7wm/AcXfLpSOQwlmG9D/aQ0SFswVjv05p7ullQS7Mjohj6/VdbZuTg==} - '@types/express@5.0.6': resolution: {integrity: sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA==} @@ -4215,9 +3587,6 @@ packages: '@types/he@1.2.0': resolution: {integrity: sha512-uH2smqTN4uGReAiKedIVzoLUAXIYLBTbSofhx3hbNqj74Ua6KqFsLYszduTrLCMEAEAozF73DbGi/SC1bzQq4g==} - '@types/html-minifier-terser@6.1.0': - resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==} - '@types/html-minifier-terser@7.0.2': resolution: {integrity: sha512-mm2HqV22l8lFQh4r2oSsOEVea+m0qqxEmwpc9kC1p/XzmjLWrReR9D/GRs8Pex2NX/imyEH9c5IU/7tMBQCHOA==} @@ -4327,15 +3696,9 @@ packages: '@types/semver@7.5.6': resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} - '@types/semver@7.7.1': - resolution: {integrity: sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==} - '@types/send@1.2.1': resolution: {integrity: sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==} - '@types/serve-index@1.9.4': - resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==} - '@types/serve-static@2.2.0': resolution: {integrity: sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ==} @@ -4354,18 +3717,6 @@ packages: '@types/unist@3.0.3': resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} - '@types/webpack-bundle-analyzer@4.7.0': - resolution: {integrity: sha512-c5i2ThslSNSG8W891BRvOd/RoCjI2zwph8maD22b1adtSns20j+0azDDMCK06DiVrzTgnwiDl5Ntmu1YRJw8Sg==} - - '@types/webpack-env@1.18.8': - resolution: {integrity: sha512-G9eAoJRMLjcvN4I08wB5I7YofOb/kaJNd5uoCMX+LbKXTPCF+ZIHuqTnFaK9Jz1rgs035f9JUPUhNFtqgucy/A==} - - '@types/webpack-node-externals@3.0.4': - resolution: {integrity: sha512-8Z3/edqxE3RRlOJwKSgOFxLZRt/i1qFlv/Bi308ZUKo9jh8oGngd9r8GR0ZNKW5AEJq8QNQE3b17CwghTjQ0Uw==} - - '@types/ws@8.18.1': - resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} - '@types/yargs-parser@21.0.3': resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} @@ -4557,51 +3908,6 @@ packages: '@vitest/utils@3.2.4': resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==} - '@webassemblyjs/ast@1.14.1': - resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} - - '@webassemblyjs/floating-point-hex-parser@1.13.2': - resolution: {integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==} - - '@webassemblyjs/helper-api-error@1.13.2': - resolution: {integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==} - - '@webassemblyjs/helper-buffer@1.14.1': - resolution: {integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==} - - '@webassemblyjs/helper-numbers@1.13.2': - resolution: {integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==} - - '@webassemblyjs/helper-wasm-bytecode@1.13.2': - resolution: {integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==} - - '@webassemblyjs/helper-wasm-section@1.14.1': - resolution: {integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==} - - '@webassemblyjs/ieee754@1.13.2': - resolution: {integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==} - - '@webassemblyjs/leb128@1.13.2': - resolution: {integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==} - - '@webassemblyjs/utf8@1.13.2': - resolution: {integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==} - - '@webassemblyjs/wasm-edit@1.14.1': - resolution: {integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==} - - '@webassemblyjs/wasm-gen@1.14.1': - resolution: {integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==} - - '@webassemblyjs/wasm-opt@1.14.1': - resolution: {integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==} - - '@webassemblyjs/wasm-parser@1.14.1': - resolution: {integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==} - - '@webassemblyjs/wast-printer@1.14.1': - resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==} - '@xhmikosr/archive-type@8.1.0': resolution: {integrity: sha512-EXOjEbnZFE5c/nFMf4FOrEURVanzHpnkPYmnmr78u02/8hAhE0FMq8p9TK1IM0/bFr5VcyBUY0gfLm8f7dKy+Q==} engines: {node: '>=20'} @@ -4642,12 +3948,6 @@ packages: resolution: {integrity: sha512-y5ArHvQ7BVule/+L9yE2nYMhceiJhgsqo58lOfnisQ7bg+Kjfmkgr7JBuVFiTkl+ErdShpp829QstZQyLugl8g==} engines: {node: '>=20'} - '@xtuc/ieee754@1.2.0': - resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} - - '@xtuc/long@4.2.2': - resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} - abab@2.0.6: resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} deprecated: Use your platform's native atob() and btoa() methods instead @@ -4663,12 +3963,6 @@ packages: acorn-globals@7.0.1: resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} - acorn-import-phases@1.0.4: - resolution: {integrity: sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==} - engines: {node: '>=10.13.0'} - peerDependencies: - acorn: ^8.14.0 - acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -4704,16 +3998,6 @@ packages: ajv: optional: true - ajv-keywords@3.5.2: - resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} - peerDependencies: - ajv: ^6.9.1 - - ajv-keywords@5.1.0: - resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} - peerDependencies: - ajv: ^8.8.2 - ajv@6.15.0: resolution: {integrity: sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==} @@ -4728,11 +4012,6 @@ packages: resolution: {integrity: sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==} engines: {node: '>=14.16'} - ansi-html-community@0.0.8: - resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} - engines: {'0': node >= 0.8.0} - hasBin: true - ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -4813,10 +4092,6 @@ packages: resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} engines: {node: '>= 0.4'} - asn1js@3.0.10: - resolution: {integrity: sha512-S2s3aOytiKdFRdulw2qPE51MzjzVOisppcVv7jVFR+Kw0kxwvFrDcYA0h7Ndqbmj0HkMIXYWaoj7fli8kgx1eg==} - engines: {node: '>=12.0.0'} - assertion-error@2.0.1: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} @@ -4901,21 +4176,6 @@ packages: resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} engines: {node: '>=10', npm: '>=6'} - babel-plugin-polyfill-corejs2@0.4.14: - resolution: {integrity: sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - babel-plugin-polyfill-corejs3@0.13.0: - resolution: {integrity: sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - babel-plugin-polyfill-regenerator@0.6.5: - resolution: {integrity: sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - babel-preset-current-node-syntax@1.0.1: resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} peerDependencies: @@ -4956,15 +4216,9 @@ packages: engines: {node: '>=6.0.0'} hasBin: true - batch@0.6.1: - resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} - bidi-js@1.0.3: resolution: {integrity: sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==} - big.js@5.2.2: - resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} - binary-version-check@6.1.0: resolution: {integrity: sha512-REKdLKmuViV2WrtWXvNSiPX04KbIjfUV3Cy8batUeOg+FtmowavzJorfFhWq95cVJzINnL/44ixP26TrdJZACA==} engines: {node: '>=18'} @@ -4981,12 +4235,6 @@ packages: resolution: {integrity: sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==} engines: {node: '>=18'} - bonjour-service@1.4.2: - resolution: {integrity: sha512-lMskhnsW70yWHr4PhPeh2rvaIkLSaDpp+nmtbXBZaNKTXwxL73QOkW6HhbzqTImXjevn9TreGT4GACGBCGP9nQ==} - - boolbase@1.0.0: - resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - bowser@2.12.1: resolution: {integrity: sha512-z4rE2Gxh7tvshQ4hluIT7XcFrgLIQaw9X3A+kTTRdovCz5PMukm/0QC/BKSYPj3omF5Qfypn9O/c5kgpmvYUCw==} @@ -4996,10 +4244,6 @@ packages: brace-expansion@2.1.1: resolution: {integrity: sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==} - brace-expansion@5.0.3: - resolution: {integrity: sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA==} - engines: {node: 18 || 20 || >=22} - brace-expansion@5.0.6: resolution: {integrity: sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==} engines: {node: 18 || 20 || >=22} @@ -5053,10 +4297,6 @@ packages: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} - bytestreamjs@2.0.1: - resolution: {integrity: sha512-U1Z/ob71V/bXfVABvNr/Kumf5VyeQRBEm6Txb0PQ6S7V5GpBM3w4Cbqz/xPDicR5tN0uvDifng8C+5qECeGwyQ==} - engines: {node: '>=6.0.0'} - cacheable-lookup@7.0.0: resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==} engines: {node: '>=14.16'} @@ -5101,10 +4341,6 @@ packages: caniuse-lite@1.0.30001803: resolution: {integrity: sha512-g/uHREV2ZpK9qMalCsWaxmA6ol+DX8GYhuf3T40RKoP+oL7vhRJh8LNt73PCjpnR6l14FzfPrB5Yux4PKm2meg==} - case-sensitive-paths-webpack-plugin@2.4.0: - resolution: {integrity: sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==} - engines: {node: '>=4'} - ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -5148,10 +4384,6 @@ packages: resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} engines: {node: '>= 14.16.0'} - chokidar@5.0.0: - resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==} - engines: {node: '>= 20.19.0'} - chromatic@16.1.0: resolution: {integrity: sha512-7xyOUXe8jfY6c+g9S/U/cbvzVXMjdhh9cVZYvDp8dDGonjiKSbWO1dzWApdYHIiF2xj29pvWQB7N5LT6967IDw==} hasBin: true @@ -5164,10 +4396,6 @@ packages: '@chromatic-com/playwright': optional: true - chrome-trace-event@1.0.4: - resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} - engines: {node: '>=6.0'} - ci-info@3.9.0: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} @@ -5203,9 +4431,9 @@ packages: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} - clone-deep@4.0.1: - resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} - engines: {node: '>=6'} + cliui@9.0.1: + resolution: {integrity: sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w==} + engines: {node: '>=20'} clsx@2.1.1: resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} @@ -5256,10 +4484,6 @@ packages: resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} engines: {node: '>=16'} - commander@14.0.3: - resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==} - engines: {node: '>=20'} - commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} @@ -5267,10 +4491,6 @@ packages: resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==} engines: {node: '>= 6'} - commander@7.2.0: - resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} - engines: {node: '>= 10'} - commander@8.3.0: resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} engines: {node: '>= 12'} @@ -5293,21 +4513,9 @@ packages: resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} engines: {node: '>= 0.8.0'} - compression@1.8.1: - resolution: {integrity: sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==} - engines: {node: '>= 0.8.0'} - concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - connect-history-api-fallback@2.0.0: - resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} - engines: {node: '>=0.8'} - - console-clear@1.1.1: - resolution: {integrity: sha512-pMD+MVR538ipqkG5JXeOEbKWS5um1H4LUUccUQG68qpeqBYbzYy79Gh55jkd2TtPdRfUaLWdv6LPP//5Zt0aPQ==} - engines: {node: '>=4'} - constructs@10.6.0: resolution: {integrity: sha512-TxHOnBO5zMo/G76ykzGF/wMpEHu257TbWiIxP9K0Yv/+t70UzgBQiTqjkAsWOPC6jW91DzJI0+ehQV6xDRNBuQ==} @@ -5349,9 +4557,6 @@ packages: resolution: {integrity: sha512-mFsNh/DIANLqFt5VHZoGirdg7bK5+oTWlhnGu6tgRhzBlnEKWaPX2xrFaLltii/6rmhqFMJqffUgknuRdpYlHw==} engines: {node: '>=18'} - core-js-compat@3.46.0: - resolution: {integrity: sha512-p9hObIIEENxSV8xIu+V68JjSeARg6UVMG5mR+JEUguG3sI6MsiS1njz2jHmyJDvA+8jX/sytkBHup6kxhM9law==} - core-js-compat@3.49.0: resolution: {integrity: sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==} @@ -5400,40 +4605,10 @@ packages: resolution: {integrity: sha512-8HFEBPKhOpJPEPu70wJJetjKta86Gw9+CCyCnB3sui2qQfOvRyqBy4IKLKKAwdMpWb2lHXWk9Wb4Z6AmaUT1Pg==} engines: {node: '>=12'} - css-loader@7.1.4: - resolution: {integrity: sha512-vv3J9tlOl04WjiMvHQI/9tmIrCxVrj6PFbHemBB1iihpeRbi/I4h033eoFIhwxBBqLhI0KYFS7yvynBFhIZfTw==} - engines: {node: '>= 18.12.0'} - peerDependencies: - '@rspack/core': 0.x || ^1.0.0 || ^2.0.0-0 - webpack: ^5.27.0 - peerDependenciesMeta: - '@rspack/core': - optional: true - webpack: - optional: true - - css-select@4.3.0: - resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} - - css-select@5.1.0: - resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} - - css-tree@2.2.1: - resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} - - css-tree@2.3.1: - resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} - css-tree@3.2.1: resolution: {integrity: sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} - css-what@6.2.2: - resolution: {integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==} - engines: {node: '>= 6'} - css.escape@1.5.1: resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} @@ -5442,10 +4617,6 @@ packages: engines: {node: '>=4'} hasBin: true - csso@5.0.5: - resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} - cssom@0.3.8: resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} @@ -5501,14 +4672,6 @@ packages: supports-color: optional: true - debug@3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - debug@4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} @@ -5541,9 +4704,6 @@ packages: resolution: {integrity: sha512-oj7KWToJuuxlPr7VV0vabvxEIiqNMo+q0NueIiL3XhtwC6FVOX7Hr1c0C4eD0bmf7Zr+S/dSf2xvkH3Ad6sU3Q==} engines: {node: '>=20'} - dedent@0.7.0: - resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} - dedent@1.6.0: resolution: {integrity: sha512-F1Z+5UCFpmQUzJa11agbyPVMbpgT/qA3/SKyJ1jyBgm7dUcUEa8v9JwDkerSQXfakBwFljIxhOJqGkjUwZ9FSA==} peerDependencies: @@ -5587,10 +4747,6 @@ packages: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} - depd@1.1.2: - resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} - engines: {node: '>= 0.6'} - depd@2.0.0: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} @@ -5603,6 +4759,10 @@ packages: resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + detect-libc@2.1.2: + resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} + engines: {node: '>=8'} + detect-newline@3.1.0: resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} engines: {node: '>=8'} @@ -5625,10 +4785,6 @@ packages: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} - dns-packet@5.6.1: - resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} - engines: {node: '>=6'} - doctrine@2.1.0: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} engines: {node: '>=0.10.0'} @@ -5643,12 +4799,6 @@ packages: dom-accessibility-api@0.6.3: resolution: {integrity: sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==} - dom-converter@0.2.0: - resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==} - - dom-serializer@1.4.1: - resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} - dom-serializer@2.0.0: resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} @@ -5660,10 +4810,6 @@ packages: engines: {node: '>=12'} deprecated: Use your platform's native DOMException instead - domhandler@4.3.1: - resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} - engines: {node: '>= 4'} - domhandler@5.0.3: resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} engines: {node: '>= 4'} @@ -5671,12 +4817,6 @@ packages: dompurify@3.4.7: resolution: {integrity: sha512-2jBxDJY4RR06tQNy4w5FlFH7kfxsQZlufd0sbv+chfHCxeJwrFw2baUDsSwvBISD4K4RDbd0PTfy3uNXsR6siA==} - domutils@2.8.0: - resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} - - domutils@3.1.0: - resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} - domutils@3.2.2: resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} @@ -5690,9 +4830,6 @@ packages: duplexer2@0.1.4: resolution: {integrity: sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==} - dynamic-import-polyfill@0.1.1: - resolution: {integrity: sha512-m953zv0w5oDagTItWm6Auhmk/pY7EiejaqiVbnzSS3HIjh1FCUeK7WzuaVtWPNs58A+/xpIE+/dVk6pKsrua8g==} - ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} @@ -5715,24 +4852,14 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - emojis-list@3.0.0: - resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} - engines: {node: '>= 4'} + empathic@2.0.1: + resolution: {integrity: sha512-YGRs8knHhKHVShLkFET/rWAU8kmHbOV5LwN938RHI0pljAJ1Gf6SzXsSmRaEzcXTtOOmVqJ5+WtQPL5uigY50Q==} + engines: {node: '>=14'} encodeurl@2.0.0: resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} engines: {node: '>= 0.8'} - endent@2.1.0: - resolution: {integrity: sha512-r8VyPX7XL8U01Xgnb1CjZ3XV+z90cXIJ9JPE/R9SEC9vpw2P6CfsRPJmp20DppC5N7ZAMCmjYkJIa744Iyg96w==} - - enhanced-resolve@5.24.2: - resolution: {integrity: sha512-rpsZEGT1jFuve6QlpyRp9ckQ+kN61hvF9BzCPyMdaKTm8UJce96KBn3sorXOFXlzjPrs3Vc4T1NsSroZ3PxlFw==} - engines: {node: '>=10.13.0'} - - entities@2.2.0: - resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} - entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} @@ -5749,11 +4876,6 @@ packages: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} - envinfo@7.21.0: - resolution: {integrity: sha512-Lw7I8Zp5YKHFCXL7+Dz95g4CcbMEpgvqZNNq3AmlT5XAV6CgAAk6gyAMqn2zjw08K9BHfcNuKrMiCPLByGafow==} - engines: {node: '>=4'} - hasBin: true - error-ex@1.3.4: resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} @@ -5776,9 +4898,6 @@ packages: es-module-lexer@1.7.0: resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} - es-module-lexer@2.3.0: - resolution: {integrity: sha512-KLdwQm2NvGLDkQDCGvmiQrhkd0JbMzXthwQAUgWjQuQdBLFa3eiBP5arXZyA+f8x+x7OXgud6bq2rxjGtHV2tw==} - es-object-atoms@1.1.1: resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} engines: {node: '>= 0.4'} @@ -5945,10 +5064,6 @@ packages: peerDependencies: eslint: '>=9.38.0' - eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} - eslint-scope@8.4.0: resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -6007,10 +5122,6 @@ packages: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} - estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} - estraverse@5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} @@ -6032,10 +5143,6 @@ packages: events-universal@1.0.1: resolution: {integrity: sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==} - events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} - engines: {node: '>=0.8.x'} - execa@5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} @@ -6084,9 +5191,6 @@ packages: resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} engines: {node: '>=8.6.0'} - fast-json-parse@1.0.3: - resolution: {integrity: sha512-FRWsaZRWEJ1ESVNbDWmsAlqDk96gPQezzLghafp5J4GUKjbCz3OkAHuZs5TuPEtkbVQERysLp9xv6c24fBm8Aw==} - fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} @@ -6164,10 +5268,6 @@ packages: resolution: {integrity: sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==} engines: {node: '>= 18.0.0'} - find-cache-dir@3.3.2: - resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} - engines: {node: '>=8'} - find-root@1.1.0: resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} @@ -6190,10 +5290,6 @@ packages: find@0.3.0: resolution: {integrity: sha512-iSd+O4OEYV/I36Zl8MdYJO0xD82wH528SaCieTVHhclgiYNe9y+yPKSwK+A7/WsmHL1EZ+pYUJBXWTL5qofksw==} - flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} - flat-cache@4.0.1: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} engines: {node: '>=16'} @@ -6201,10 +5297,6 @@ packages: flat-cache@6.1.21: resolution: {integrity: sha512-2u7cJfSf7Th7NxEk/VzQjnPoglok2YCsevS7TSbJjcDQWJPbqUUnSYtriHSvtnq+fRZHy1s0ugk4ApnQyhPGoQ==} - flat@5.0.2: - resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} - hasBin: true - flatted@3.4.2: resolution: {integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==} @@ -6212,13 +5304,6 @@ packages: resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} engines: {node: '>= 0.4'} - fork-ts-checker-webpack-plugin@9.1.0: - resolution: {integrity: sha512-mpafl89VFPJmhnJ1ssH+8wmM2b50n+Rew5x42NeI2U78aRWgtkEtGmctp7iT16UjquJTjorEmIfESj3DxdW84Q==} - engines: {node: '>=14.21.3'} - peerDependencies: - typescript: '>3.6.0' - webpack: ^5.11.0 - form-data-encoder@4.1.0: resolution: {integrity: sha512-G6NsmEW15s0Uw9XnCg+33H3ViYRyiM0hMrMhhqQOR8NFc5GhYrI+6I3u7OTw7b91J2g8rtvMBZJDbcGb2YUniw==} engines: {node: '>= 18'} @@ -6247,9 +5332,6 @@ packages: resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} engines: {node: '>=6 <7 || >=8'} - fs-monkey@1.1.0: - resolution: {integrity: sha512-QMUezzXWII9EV5aTFXW1UBVUO77wYPpjqIF8/AviUCThNeSYZykpoTixUeaNNBwmCev0AMDWMAni+f8Hxb1IFw==} - fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} @@ -6341,11 +5423,9 @@ packages: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} - glob-to-regex.js@1.2.0: - resolution: {integrity: sha512-QMwlOQKU/IzqMUOAZWubUOT8Qft+Y0KQWnX9nK3ch0CJg0tTp4TvGZsTfudYKv2NzoQSyPcnA6TYeIQ3jGichQ==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' + glob@13.0.6: + resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==} + engines: {node: 18 || 20 || >=22} glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} @@ -6436,10 +5516,6 @@ packages: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} - hasown@2.0.3: - resolution: {integrity: sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==} - engines: {node: '>= 0.4'} - hasown@2.0.4: resolution: {integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==} engines: {node: '>= 0.4'} @@ -6508,20 +5584,9 @@ packages: resolution: {integrity: sha512-CV9TW3Y3f8/wT0BRFc1/KAVQ3TUHiXmaAb6VW9vtiMFf7SLoMd1PdAc4W3KFOFETBJUb90KatHqlsZMWV+R9Gg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - html-entities@2.4.0: - resolution: {integrity: sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==} - html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - html-escaper@3.0.3: - resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==} - - html-minifier-terser@6.1.0: - resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==} - engines: {node: '>=12'} - hasBin: true - html-minifier-terser@7.2.0: resolution: {integrity: sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==} engines: {node: ^14.13.1 || >=16.0.0} @@ -6538,31 +5603,12 @@ packages: html-void-elements@3.0.0: resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} - html-webpack-plugin@5.6.6: - resolution: {integrity: sha512-bLjW01UTrvoWTJQL5LsMRo1SypHW80FTm12OJRSnr3v6YHNhfe+1r0MYUZJMACxnCHURVnBWRwAsWs2yPU9Ezw==} - engines: {node: '>=10.13.0'} - peerDependencies: - '@rspack/core': 0.x || 1.x - webpack: ^5.20.0 - peerDependenciesMeta: - '@rspack/core': - optional: true - webpack: - optional: true - htmlparser2@10.1.0: resolution: {integrity: sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==} - htmlparser2@6.1.0: - resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} - http-cache-semantics@4.2.0: resolution: {integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==} - http-errors@1.8.1: - resolution: {integrity: sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==} - engines: {node: '>= 0.6'} - http-errors@2.0.1: resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==} engines: {node: '>= 0.8'} @@ -6571,10 +5617,6 @@ packages: resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} engines: {node: '>= 6'} - http-proxy-middleware@4.2.0: - resolution: {integrity: sha512-ZA+oNOoM+GLoFTIzhkJptVQov73Srep2LBqhF8hG8CIPKO3nam1jonXVQ/QUH8RbwsmaaVz2SOJdzBNBHNtKbw==} - engines: {node: ^22.15.0 || ^24.0.0 || >=26.0.0} - http2-wrapper@2.2.1: resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==} engines: {node: '>=10.19.0'} @@ -6583,9 +5625,6 @@ packages: resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} engines: {node: '>= 6'} - httpxy@0.5.4: - resolution: {integrity: sha512-URfeibL0kTH6VuIxxaJDXWQWEk8fKr+9L8MGv6CuAiNy0fGnoVhWbXBvJR1mkdsvCDUxvhX9cW60k2AhtH5s6w==} - human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} @@ -6603,10 +5642,6 @@ packages: engines: {node: '>=18'} hasBin: true - hyperdyperid@1.2.0: - resolution: {integrity: sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==} - engines: {node: '>=10.18'} - iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} @@ -6619,12 +5654,6 @@ packages: resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==} engines: {node: '>=0.10.0'} - icss-utils@5.1.0: - resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -6678,18 +5707,10 @@ packages: resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} engines: {node: '>= 0.4'} - interpret@3.1.1: - resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==} - engines: {node: '>=10.13.0'} - ipaddr.js@1.9.1: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} - ipaddr.js@2.4.0: - resolution: {integrity: sha512-9VGk3HGanVE6JoZXHiCpnGy5X0jYDnN4EA4lntFPj+1vIWlFhIylq2CrrCOJH9EAhc5CYhq18F2Av2tgoAPsYQ==} - engines: {node: '>= 10'} - is-array-buffer@3.0.5: resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} engines: {node: '>= 0.4'} @@ -6796,10 +5817,6 @@ packages: resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} engines: {node: '>= 0.4'} - is-network-error@1.3.2: - resolution: {integrity: sha512-PhBY86zaxNZUuWP6h13Vu5oFe0XY6/UlKzQnYFELzGVHygP3MxmvTfYSG7GN3aIab/iWudSMgjSnG9Dq+nHrgA==} - engines: {node: '>=16'} - is-number-object@1.1.1: resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} engines: {node: '>= 0.4'} @@ -6816,10 +5833,6 @@ packages: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} - is-plain-object@2.0.4: - resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} - engines: {node: '>=0.10.0'} - is-plain-object@5.0.0: resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} engines: {node: '>=0.10.0'} @@ -6911,10 +5924,6 @@ packages: resolution: {integrity: sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==} engines: {node: '>=20'} - isobject@3.0.1: - resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} - engines: {node: '>=0.10.0'} - istanbul-lib-coverage@3.2.2: resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} engines: {node: '>=8'} @@ -7071,10 +6080,6 @@ packages: resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-worker@27.5.1: - resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} - engines: {node: '>= 10.13.0'} - jest-worker@29.7.0: resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7192,9 +6197,6 @@ packages: resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} engines: {node: '>=0.10'} - launch-editor@2.14.1: - resolution: {integrity: sha512-QWBrQsMpH7gPr965dsKD/3cKWiNoTjpATQf++Xq63N6sKRGMwlVXz41O1IZTMfZQgBctD/K5Zt06+/I6pP6+HA==} - launder@1.7.1: resolution: {integrity: sha512-mU6WRz5EusL9ZZuiZ5SO4Y6C0P9PAUR9iwdb6bzj4KDihm28DiHFw+/yk9DBH4f+Pv1wuzQ4e2jV3oQ7mkIqvw==} @@ -7206,6 +6208,80 @@ packages: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} + lightningcss-android-arm64@1.32.0: + resolution: {integrity: sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [android] + + lightningcss-darwin-arm64@1.32.0: + resolution: {integrity: sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] + + lightningcss-darwin-x64@1.32.0: + resolution: {integrity: sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] + + lightningcss-freebsd-x64@1.32.0: + resolution: {integrity: sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [freebsd] + + lightningcss-linux-arm-gnueabihf@1.32.0: + resolution: {integrity: sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==} + engines: {node: '>= 12.0.0'} + cpu: [arm] + os: [linux] + + lightningcss-linux-arm64-gnu@1.32.0: + resolution: {integrity: sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + lightningcss-linux-arm64-musl@1.32.0: + resolution: {integrity: sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + libc: [musl] + + lightningcss-linux-x64-gnu@1.32.0: + resolution: {integrity: sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + libc: [glibc] + + lightningcss-linux-x64-musl@1.32.0: + resolution: {integrity: sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + libc: [musl] + + lightningcss-win32-arm64-msvc@1.32.0: + resolution: {integrity: sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [win32] + + lightningcss-win32-x64-msvc@1.32.0: + resolution: {integrity: sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [win32] + + lightningcss@1.32.0: + resolution: {integrity: sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==} + engines: {node: '>= 12.0.0'} + lilconfig@3.0.0: resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==} engines: {node: '>=14'} @@ -7222,14 +6298,6 @@ packages: resolution: {integrity: sha512-u8cusxAcyqAiQ2RhYvV7kRKNLgUvtObIbhOX2NCXqvp1UU32xIg5CT22ykS2TPKJXZWJwtK3IKLiqAGlGNE+Zg==} engines: {node: '>=18.0.0'} - loader-runner@4.3.2: - resolution: {integrity: sha512-DFEqQ3ihfS9blba08cLfYf1NRAIEm+dDjic073DRDc3/JspI/8wYmtDsHwd3+4hwvdxSK7PGaElfTmm0awWJ4w==} - engines: {node: '>=6.11.5'} - - loader-utils@1.4.2: - resolution: {integrity: sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==} - engines: {node: '>=4.0.0'} - locate-character@3.0.0: resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} @@ -7297,10 +6365,6 @@ packages: resolution: {integrity: sha512-ayF7iT+44LXdxJLTrTd3TLQpFDDvPCBxXxbv+pMUSuHA5Q8zyAfwkRP6aHHwNVFBUFWtxAHqwNJxF8vMZLAbVg==} engines: {node: '>=18'} - make-dir@3.1.0: - resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} - engines: {node: '>=8'} - make-dir@4.0.0: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} @@ -7327,12 +6391,6 @@ packages: mdast-util-to-string@4.0.0: resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} - mdn-data@2.0.28: - resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} - - mdn-data@2.0.30: - resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} - mdn-data@2.27.1: resolution: {integrity: sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==} @@ -7344,15 +6402,6 @@ packages: resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} engines: {node: '>= 0.8'} - memfs@3.5.3: - resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} - engines: {node: '>= 4.0.0'} - - memfs@4.64.0: - resolution: {integrity: sha512-Kw72fgY7Wn+sD8KmtNWSafl1dz0UvAsE/PHs3YVfLiaZuA3HxNm9sRLqAu0ATiBGJvME1PxZXbBZPv5GycDeAw==} - peerDependencies: - tslib: '2' - meow@13.2.0: resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==} engines: {node: '>=18'} @@ -7493,48 +6542,9 @@ packages: minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - minimizer-webpack-plugin@5.6.1: - resolution: {integrity: sha512-DoeAZz8Q1C1znwsUzej1fdoi4jCf7/+Em27ouLqfK/+3m8G+D7yDhUwrc3CNhjSzGUN1kn7Iv4sWmjflQHenpw==} - engines: {node: '>= 10.13.0'} - peerDependencies: - '@minify-html/node': '*' - '@swc/core': '*' - '@swc/css': '*' - '@swc/html': '*' - clean-css: '*' - cssnano: '*' - csso: '*' - esbuild: '*' - html-minifier-terser: '*' - lightningcss: '*' - postcss: '*' - uglify-js: '*' - webpack: ^5.1.0 - peerDependenciesMeta: - '@minify-html/node': - optional: true - '@swc/core': - optional: true - '@swc/css': - optional: true - '@swc/html': - optional: true - clean-css: - optional: true - cssnano: - optional: true - csso: - optional: true - esbuild: - optional: true - html-minifier-terser: - optional: true - lightningcss: - optional: true - postcss: - optional: true - uglify-js: - optional: true + minipass@7.1.3: + resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} + engines: {node: '>=16 || 14 >=14.17'} mockdate@3.0.5: resolution: {integrity: sha512-iniQP4rj1FhBdBYS/+eQv7j1tadJ9lJtdzgOpvsOHng/GbcDh2Fhdeq+ZRldrPYdXvCyfFUmFeEwEGXZB5I/AQ==} @@ -7556,10 +6566,6 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - multicast-dns@7.2.5: - resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} - hasBin: true - multipipe@1.0.2: resolution: {integrity: sha512-6uiC9OvY71vzSGX8lZvSqscE7ft9nPupJ8fMjrCNRAUy2LREUW42UL+V/NTrogr6rFgRydUrCX4ZitfpSNkSCQ==} @@ -7590,23 +6596,13 @@ packages: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} - negotiator@0.6.4: - resolution: {integrity: sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==} - engines: {node: '>= 0.6'} - negotiator@1.0.0: resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==} engines: {node: '>= 0.6'} - neo-async@2.6.2: - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - no-case@3.0.4: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} - node-abort-controller@3.1.1: - resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} - node-domexception@1.0.0: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} engines: {node: '>=10.5.0'} @@ -7653,9 +6649,6 @@ packages: resolution: {integrity: sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==} engines: {node: '>=18'} - nth-check@2.1.1: - resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} - nwsapi@2.2.23: resolution: {integrity: sha512-7wfH4sLbt4M0gCDzGE6vzQBo0bfTKjU7Sfpqy/7gs1qBfYz2vEJH6vXcBKpO3+6Yu1telwd0t9HpyOoLEQQbIQ==} @@ -7690,9 +6683,6 @@ packages: resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} engines: {node: '>= 0.4'} - objectorarray@1.0.5: - resolution: {integrity: sha512-eJJDYkhJFFbBBAxeh8xW+weHlkI28n2ZdQV/J/DNfWfSKlGEf2xcfAbZTv3riEXHAhL9SVOTs2pRmXiSTf78xg==} - obug@2.1.2: resolution: {integrity: sha512-AWGB9WFcRXOQs48Z/udjI5ZcZMHXwX8XPByNpOydgcGsDLIzjGizhoMWJyKAWze7AVW/2W1i+/gPX4YtKe5cyg==} engines: {node: '>=12.20.0'} @@ -7705,10 +6695,6 @@ packages: resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} engines: {node: '>= 0.8'} - on-headers@1.1.0: - resolution: {integrity: sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==} - engines: {node: '>= 0.8'} - once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} @@ -7728,10 +6714,6 @@ packages: resolution: {integrity: sha512-smsWv2LzFjP03xmvFoJ331ss6h+jixfA4UUV/Bsiyuu4YJPfN+FIQGOIiv4w9/+MoHkfkJ22UIaQWRVFRfH6Vw==} engines: {node: '>=20'} - opener@1.5.2: - resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} - hasBin: true - optionator@0.9.3: resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} engines: {node: '>= 0.8.0'} @@ -7776,10 +6758,6 @@ packages: resolution: {integrity: sha512-T8BatKGY+k5rU+Q/GTYgrEf2r4xRMevAN5mtXc2aPc4rS1j3s+vWTaO2Wag94neXuCAUAs8cxBL9EeB5EA6diw==} engines: {node: '>=16'} - p-retry@8.0.0: - resolution: {integrity: sha512-kFVqH1HxOHp8LupNsOys7bSV09VYTRLxarH/mokO4Rqhk6wGi70E0jh4VzvVGXfEVNggHoHLAMWsQqHyU1Ey9A==} - engines: {node: '>=22'} - p-timeout@6.1.2: resolution: {integrity: sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ==} engines: {node: '>=14.16'} @@ -7860,6 +6838,10 @@ packages: path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + path-scurry@2.0.2: + resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==} + engines: {node: 18 || 20 || >=22} + path-to-regexp@8.4.1: resolution: {integrity: sha512-fvU78fIjZ+SBM9YwCknCvKOUKkLVqtWDVctl0s7xIqfmfb38t2TT4ZU2gHm+Z8xGwgW+QWEU3oQSAzIbo89Ggw==} @@ -7904,10 +6886,6 @@ packages: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} engines: {node: '>=8'} - pkijs@3.4.0: - resolution: {integrity: sha512-emEcLuomt2j03vxD54giVB4SxTjnsqkU692xZOZXHDVoYyypEm+b3jpiTcc+Cf+myooc+/Ly0z01jqeNHVgJGw==} - engines: {node: '>=16.0.0'} - playwright-core@1.60.0: resolution: {integrity: sha512-9bW6zvX/m0lEbgTKJ6YppOKx8H3VOPBMOCFh2irXFOT4BbHgrx5hPjwJYLT40Lu+4qtD36qKc/Hn56StUW57IA==} engines: {node: '>=18'} @@ -7926,30 +6904,6 @@ packages: resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} engines: {node: '>= 0.4'} - postcss-modules-extract-imports@3.1.0: - resolution: {integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-modules-local-by-default@4.2.0: - resolution: {integrity: sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-modules-scope@3.2.1: - resolution: {integrity: sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - - postcss-modules-values@4.0.0: - resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - postcss-resolve-nested-selector@0.1.6: resolution: {integrity: sha512-0sglIs9Wmkzbr8lQwEyIzlDOOC9bGmfVKcJTaxv3vMmd3uo4o4DerC3En0bnmgceeql9BfC8hRkp7cg0fjdVqw==} @@ -7963,10 +6917,6 @@ packages: resolution: {integrity: sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==} engines: {node: '>=4'} - postcss-selector-parser@7.1.4: - resolution: {integrity: sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==} - engines: {node: '>=4'} - postcss-styled-syntax@0.7.1: resolution: {integrity: sha512-V5Iy8JztqXOKnTojdytF8IJ3zDXyVR927XftBPinJa3TnKdChGvGzUNEYlNuDtR+iqpuFkwJMgZdaJarYfGFCg==} engines: {node: '>=14.17'} @@ -7976,6 +6926,10 @@ packages: postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + postcss@8.5.14: + resolution: {integrity: sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg==} + engines: {node: ^10 || ^12 || >=14} + postcss@8.5.15: resolution: {integrity: sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==} engines: {node: ^10 || ^12 || >=14} @@ -8017,9 +6971,6 @@ packages: engines: {node: '>=14'} hasBin: true - pretty-error@4.0.0: - resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==} - pretty-format@27.5.1: resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -8045,9 +6996,6 @@ packages: prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} - proper-lockfile@4.1.2: - resolution: {integrity: sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==} - property-information@6.4.0: resolution: {integrity: sha512-9t5qARVofg2xQqKtytzt+lZ4d1Qvj8t5B8fEwXK6qOfgRLgH/b13QlgEyDh033NOS31nXeFbYv7CLUDG1CeifQ==} @@ -8071,13 +7019,6 @@ packages: pure-rand@6.0.4: resolution: {integrity: sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==} - pvtsutils@1.3.6: - resolution: {integrity: sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==} - - pvutils@1.1.5: - resolution: {integrity: sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA==} - engines: {node: '>=16.0.0'} - qified@0.9.0: resolution: {integrity: sha512-4q61YgkHbY6gmwkqm0BsxyLDO3UYdrdiJTJ7JiaZb3xpW1duxn135SB7KqUEkCiuu5O4W+TtwEWP2VjmSRanvA==} engines: {node: '>=20'} @@ -8100,10 +7041,6 @@ packages: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} engines: {node: '>= 0.6'} - range-parser@1.3.0: - resolution: {integrity: sha512-hek2mFQpPuI4E1BBKrSto+BU3e3x4xuarsbiwr3+lf7p44juvFMV0XFWQAP3xUyqXA4RrXLIoaSUGbSt056ZMw==} - engines: {node: '>= 0.6'} - raw-body@2.5.3: resolution: {integrity: sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==} engines: {node: '>= 0.8'} @@ -8122,10 +7059,6 @@ packages: peerDependencies: typescript: '>= 4.3.x' - react-docgen@7.1.1: - resolution: {integrity: sha512-hlSJDQ2synMPKFZOsKo9Hi8WWZTC7POR8EmWvTSjow+VDgKzkmjQvFm2fk0tmRw+f0vTOIYKlarR0iL4996pdg==} - engines: {node: '>=16.14.0'} - react-docgen@8.0.2: resolution: {integrity: sha512-+NRMYs2DyTP4/tqWz371Oo50JqmWltR1h2gcdgUMAWZJIAvrd0/SqlCfx7tpzpl/s36rzw6qH2MjoNrxtRNYhA==} engines: {node: ^20.9.0 || >=22} @@ -8179,36 +7112,18 @@ packages: resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} engines: {node: '>= 14.18.0'} - readdirp@5.0.0: - resolution: {integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==} - engines: {node: '>= 20.19.0'} - recast@0.23.11: resolution: {integrity: sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==} engines: {node: '>= 4'} - rechoir@0.8.0: - resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} - engines: {node: '>= 10.13.0'} - redent@3.0.0: resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} engines: {node: '>=8'} - reflect-metadata@0.2.2: - resolution: {integrity: sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==} - reflect.getprototypeof@1.0.10: resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} engines: {node: '>= 0.4'} - regenerate-unicode-properties@10.2.2: - resolution: {integrity: sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==} - engines: {node: '>=4'} - - regenerate@1.4.2: - resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} - regexp-tree@0.1.27: resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} hasBin: true @@ -8217,13 +7132,6 @@ packages: resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} engines: {node: '>= 0.4'} - regexpu-core@6.4.0: - resolution: {integrity: sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==} - engines: {node: '>=4'} - - regjsgen@0.8.0: - resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==} - regjsparser@0.13.0: resolution: {integrity: sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==} hasBin: true @@ -8247,9 +7155,6 @@ packages: remark-rehype@11.1.2: resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==} - renderkid@3.0.0: - resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==} - require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -8300,10 +7205,6 @@ packages: resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - retry@0.12.0: - resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} - engines: {node: '>= 4'} - reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -8311,9 +7212,9 @@ packages: rfdc@1.3.0: resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} - rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - deprecated: Rimraf versions prior to v4 are no longer supported + rolldown@1.0.0-rc.18: + resolution: {integrity: sha512-phmyKBpuBdRYDf4hgyynGAYn/rDDe+iZXKVJ7WX5b1zQzpLkP5oJRPGsfJuHdzPMlyyEO/4sPW6yfSx2gf7lVg==} + engines: {node: ^20.19.0 || >=22.12.0} hasBin: true rollup-plugin-esbuild@6.2.1: @@ -8323,6 +7224,19 @@ packages: esbuild: '>=0.18.0' rollup: ^1.20.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 + rollup-plugin-visualizer@7.0.1: + resolution: {integrity: sha512-UJUT4+1Ho4OcWmPYU3sYXgUqI8B8Ayfe06MX7y0qCJ1K8aGoKtR/NDd/2nZqM7ADkrzny+I99Ul7GgyoiVNAgg==} + engines: {node: '>=22'} + hasBin: true + peerDependencies: + rolldown: 1.x || ^1.0.0-beta || ^1.0.0-rc + rollup: 2.x || 3.x || 4.x + peerDependenciesMeta: + rolldown: + optional: true + rollup: + optional: true + rollup@4.59.0: resolution: {integrity: sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -8355,9 +7269,6 @@ packages: safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - safe-push-apply@1.0.0: resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} engines: {node: '>= 0.4'} @@ -8376,10 +7287,6 @@ packages: sanitize-html@2.17.4: resolution: {integrity: sha512-2HW7v2ol/uAM7sX4hbD8Z59OGWmAPrvjL8E71UWlBcj6m+kcF6ilQBLny+cIgY214QJeJT5tQuxKKqX0SQqjGQ==} - sax@1.6.0: - resolution: {integrity: sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==} - engines: {node: '>=11.0.0'} - saxes@6.0.0: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} engines: {node: '>=v12.22.7'} @@ -8387,14 +7294,6 @@ packages: scheduler@0.23.2: resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} - schema-utils@3.3.0: - resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} - engines: {node: '>= 10.13.0'} - - schema-utils@4.3.3: - resolution: {integrity: sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==} - engines: {node: '>= 10.13.0'} - screenfull@6.0.2: resolution: {integrity: sha512-AQdy8s4WhNvUZ6P8F6PB21tSPIYKniic+Ogx0AacBMjKP1GUHN2E9URxQHtCusiwxudnCKkdy4GrHXPPJSkCCw==} engines: {node: ^14.13.1 || >=16.0.0} @@ -8403,10 +7302,6 @@ packages: resolution: {integrity: sha512-SMguiTnYrhpLdk3PwfzHeotrcwi8bNV4iemL9tx9poR/yeaMYwB9VzR1w7b57DuWpuqR8n6oZboi0hj3AxZxQg==} hasBin: true - selfsigned@5.5.0: - resolution: {integrity: sha512-ftnu3TW4+3eBfLRFnDEkzGxSF/10BJBkaLJuBHZX0kiPS7bRdlpZGu6YGt4KngMkdTwJE6MbjavFpqHvqVt+Ew==} - engines: {node: '>=18'} - semver-regex@4.0.5: resolution: {integrity: sha512-hunMQrEy1T6Jr2uEVjrAIqjwWcQTgOAcIM52C8MY1EZSD3DDNft04XzvYKPqjED65bNVVko0YI38nYeEHCX3yw==} engines: {node: '>=12'} @@ -8433,11 +7328,6 @@ packages: engines: {node: '>=10'} hasBin: true - semver@7.8.1: - resolution: {integrity: sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==} - engines: {node: '>=10'} - hasBin: true - semver@7.8.5: resolution: {integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==} engines: {node: '>=10'} @@ -8447,10 +7337,6 @@ packages: resolution: {integrity: sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==} engines: {node: '>= 18'} - serve-index@1.9.2: - resolution: {integrity: sha512-KDj11HScOaLmrPxl70KYNW1PksP4Nb/CLL2yvC+Qd2kHMPEEpfc4Re2e4FOay+bC/+XQl/7zAcWON3JVo5v3KQ==} - engines: {node: '>= 0.8.0'} - serve-static@2.2.1: resolution: {integrity: sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==} engines: {node: '>= 18'} @@ -8473,10 +7359,6 @@ packages: setprototypeof@1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - shallow-clone@3.0.1: - resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} - engines: {node: '>=8'} - shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -8485,10 +7367,6 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shell-quote@1.9.0: - resolution: {integrity: sha512-Iov+JwFv/2HcTpcwNMKd8+IWNb8tboQJNQTkAY/LLVK7gGH9jy+LGkVqPxfekHl+yMmiqXszdGWXgkfml7hjqA==} - engines: {node: '>= 0.4'} - side-channel-list@1.0.0: resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} engines: {node: '>= 0.4'} @@ -8598,10 +7476,6 @@ packages: resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} engines: {node: '>=10'} - statuses@1.5.0: - resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} - engines: {node: '>= 0.6'} - statuses@2.0.2: resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} engines: {node: '>= 0.8'} @@ -8727,12 +7601,6 @@ packages: resolution: {integrity: sha512-ki4hZQfh5rX0QDLLkOCj+h+CVNkqmp/CMf8v8kZpkNVK6jGQooMytqzLZYUVYIZcFZ6yDB70EfD8POcFXiF5oA==} engines: {node: '>=18'} - style-loader@4.0.0: - resolution: {integrity: sha512-1V4WqhhZZgjVAVJyt7TdDPZoPBPNHbekX4fWnCJL1yQukhCeZhJySUL+gL9y6sNdN95uEOS83Y55SqHcP7MzLA==} - engines: {node: '>= 18.12.0'} - peerDependencies: - webpack: ^5.27.0 - stylelint-config-recommended@14.0.0: resolution: {integrity: sha512-jSkx290CglS8StmrLp2TxAppIajzIBZKYm3IxT89Kg6fGlxbPiTiyH9PS5YUuVAFwaJLl1ikiXX0QWjI0jmgZQ==} engines: {node: '>=18.12.0'} @@ -8793,17 +7661,6 @@ packages: svg-tags@1.0.0: resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} - svgo@3.3.3: - resolution: {integrity: sha512-+wn7I4p7YgJhHs38k2TNjy1vCfPIfLIJWR5MnCStsN8WuuTcBnRKcMHQLMM2ijxGZmDoZwNv8ipl5aTTen62ng==} - engines: {node: '>=14.0.0'} - hasBin: true - - swc-loader@0.2.7: - resolution: {integrity: sha512-nwYWw3Fh9ame3Rtm7StS9SBLpHRRnYcK7bnpF3UKZmesAK0gw2/ADvlURFAINmPvKtDLzp+GBiP9yLoEjg6S9w==} - peerDependencies: - '@swc/core': ^1.2.147 - webpack: '>=2' - swr@1.3.0: resolution: {integrity: sha512-dkghQrOl2ORX9HYrMDtPa7LTVHJjCTeZoB1dqTbnnEDlSvN8JEKpYIYurDfvbQFUUS8Cg8PceFVZNkW0KNNYPw==} peerDependencies: @@ -8828,43 +7685,14 @@ packages: resolution: {integrity: sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==} engines: {node: '>=20'} - tapable@2.3.0: - resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} - engines: {node: '>=6'} - - tapable@2.3.3: - resolution: {integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==} - engines: {node: '>=6'} - tar-stream@3.1.7: resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} - terser-webpack-plugin@5.4.0: - resolution: {integrity: sha512-Bn5vxm48flOIfkdl5CaD2+1CiUVbonWQ3KQPyP7/EuIl9Gbzq/gQFOzaMFUEgVjB1396tcK0SG8XcNJ/2kDH8g==} - 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 - terser@5.46.0: resolution: {integrity: sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg==} engines: {node: '>=10'} hasBin: true - terser@5.49.0: - resolution: {integrity: sha512-SNiDnXyHSrxVcIOtVbULzcTmniUiwcV7Nwdyj1twVubeTmbjoa8p69KKDpfkdoOavuM4/GRm1+ykI8qqnavHoA==} - engines: {node: '>=10'} - hasBin: true - test-exclude@6.0.0: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} @@ -8872,21 +7700,12 @@ packages: text-decoder@1.2.7: resolution: {integrity: sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ==} - thingies@2.6.0: - resolution: {integrity: sha512-rMHRjmlFLM1R96UYPvpmnc3LYtdFrT33JIB7L9hetGue1qAPfn1N2LJeEjxUSidu1Iku+haLZXDuEXUHNGO/lg==} - engines: {node: '>=10.18'} - peerDependencies: - tslib: ^2 - through2@0.4.2: resolution: {integrity: sha512-45Llu+EwHKtAZYTPPVn3XZHBgakWMN3rokhEv5hu596XP+cNgplMg+Gj+1nmAvj+L0K7+N49zBKx5rah5u0QIQ==} through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - thunky@1.1.0: - resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} - time-span@5.1.0: resolution: {integrity: sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==} engines: {node: '>=12'} @@ -8924,9 +7743,6 @@ packages: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} - to-string-loader@1.2.0: - resolution: {integrity: sha512-KsWUL8FccgBW9FPFm4vYoQbOOcO5m6hKOGYoXjbseD9/4Ft+ravXN5jolQ9kTKYcK4zPt1j+khx97GPGnVoi6A==} - toidentifier@1.0.1: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} @@ -8958,12 +7774,6 @@ packages: traverse-chain@0.1.0: resolution: {integrity: sha512-up6Yvai4PYKhpNp5PkYtx50m3KbwQrqDwbuZP/ItyL64YEWHAvH6Md83LFLV/GRSk/BoUVwwgUzX6SOQSbsfAg==} - tree-dump@1.1.0: - resolution: {integrity: sha512-rMuvhU4MCDbcbnleZTFezWsaZXRFemSqAM+7jPnzUl1fo9w3YEKOxAeui0fz3OI4EU4hf23iyA7uQRVko+UaBA==} - engines: {node: '>=10.0'} - peerDependencies: - tslib: '2' - trim-lines@3.0.1: resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} @@ -9010,9 +7820,6 @@ packages: resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} engines: {node: '>=6'} - tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} @@ -9024,10 +7831,6 @@ packages: engines: {node: '>=18.0.0'} hasBin: true - tsyringe@4.10.0: - resolution: {integrity: sha512-axr3IdNuVIxnaK5XGEUFTu3YmAQ6lllgrvqfEoR16g/HGnYY/6We4oWENtAnzK6/LpJ2ur9PAb80RBt7/U4ugw==} - engines: {node: '>= 6.0.0'} - type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -9132,22 +7935,6 @@ packages: resolution: {integrity: sha512-cRZYrTDwWznlnRiPjggAGxZXanty6M8RV1ff8Wm4LWXBp7/IG8v5DnOm74DtUBp9OONpK75YlPnIjQqX0dBDtA==} engines: {node: '>=20.18.1'} - unicode-canonical-property-names-ecmascript@2.0.1: - resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} - engines: {node: '>=4'} - - unicode-match-property-ecmascript@2.0.0: - resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} - engines: {node: '>=4'} - - unicode-match-property-value-ecmascript@2.2.1: - resolution: {integrity: sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==} - engines: {node: '>=4'} - - unicode-property-aliases-ecmascript@2.2.0: - resolution: {integrity: sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==} - engines: {node: '>=4'} - unicorn-magic@0.3.0: resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==} engines: {node: '>=18'} @@ -9232,9 +8019,6 @@ packages: util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - utila@0.4.0: - resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==} - v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} @@ -9261,6 +8045,11 @@ packages: vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + vite-plugin-svgr@5.2.0: + resolution: {integrity: sha512-qj2eAKF8C6PZWemVTvQA0xgQIcP1hHU6Buh7fl6BhvayWwnuxE+z417miKxeDvRWbDrupQ1oK99hfxElopJ3sQ==} + peerDependencies: + vite: '>=3.0.0' + vite@6.4.3: resolution: {integrity: sha512-NTKlcQjlAK7MlQoyb6LgaqHc8sso/pVyUJYWMws3jg21uTJw/LddqIFPcPqP6PzpgbIcZyKI85sFE4HBrQDA8A==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} @@ -9301,6 +8090,49 @@ packages: yaml: optional: true + vite@8.0.11: + resolution: {integrity: sha512-Jz1mxtUBR5xTT65VOdJZUUeoyLtqljmFkiUXhPTLZka3RDc9vpi/xXkyrnsdRcm2lIi3l3GPMnAidTsEGIj3Ow==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + '@types/node': ^20.19.0 || >=22.12.0 + '@vitejs/devtools': ^0.1.18 + esbuild: ^0.27.0 || ^0.28.0 + jiti: '>=1.21.0' + less: ^4.0.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: '>=0.54.8' + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + '@vitejs/devtools': + optional: true + esbuild: + optional: true + jiti: + optional: true + less: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + vitefu@1.1.3: resolution: {integrity: sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg==} peerDependencies: @@ -9320,10 +8152,6 @@ packages: walker@1.0.8: resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} - watchpack@2.5.2: - resolution: {integrity: sha512-6i/00NBjP4yGPs+caKSyRfpTF/8Torsu0MOW3mMzIbhgISFder8i7xbqgHlLMwJrdiN8ndBV3UA1/AfzPSr+jg==} - engines: {node: '>=10.13.0'} - web-namespaces@2.0.1: resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} @@ -9345,118 +8173,9 @@ packages: resolution: {integrity: sha512-BMhLD/Sw+GbJC21C/UgyaZX41nPt8bUTg+jWyDeg7e7YN4xOM05YPSIXceACnXVtqyEw/LMClUQMtMZ+PGGpqQ==} engines: {node: '>=20'} - webpack-assets-manifest@6.5.2: - resolution: {integrity: sha512-UNi1LmOJUEsLpAYTV21ftp5HYsxePvhIEvAIij84I3wBCYDOman3tevsglxfC+F+GFWEDhFkwrvIzbvXqTYqrw==} - engines: {node: '>=20.10.0'} - peerDependencies: - webpack: ^5.61.0 - - webpack-bundle-analyzer@5.3.0: - resolution: {integrity: sha512-PEhAoqiJ+47d0uLMx/+zo5XOvaU+Vk6N2ZLht7H3n09QLy/fhyvqGNwjdRUHJDgMN8crBR2ZwVHkIswT3Xuawg==} - engines: {node: '>= 20.9.0'} - hasBin: true - - webpack-cli@7.2.1: - resolution: {integrity: sha512-YwSGbcZdfz12DM8JIseVPr3oBb09IgVCVc4vY3oDvZnI/mALTGPAP1QiqOi4/bBLSJrRHaqDIXeHcNA0+G38aw==} - engines: {node: '>=20.9.0'} - hasBin: true - peerDependencies: - js-yaml: ^4.0.0 || ^5.0.0 - json5: ^2.2.3 - toml: ^3.0.0 || ^4.0.0 - webpack: ^5.101.0 - webpack-bundle-analyzer: ^4.0.0 || ^5.0.0 - webpack-dev-server: ^5.0.0 || ^6.0.0 - peerDependenciesMeta: - js-yaml: - optional: true - json5: - optional: true - toml: - optional: true - webpack-bundle-analyzer: - optional: true - webpack-dev-server: - optional: true - - webpack-dev-middleware@6.1.3: - resolution: {integrity: sha512-A4ChP0Qj8oGociTs6UdlRUGANIGrCDL3y+pmQMc+dSsraXHCatFpmMey4mYELA+juqwUqwQsUgJJISXl1KWmiw==} - engines: {node: '>= 14.15.0'} - peerDependencies: - webpack: ^5.0.0 - peerDependenciesMeta: - webpack: - optional: true - - webpack-dev-middleware@8.0.3: - resolution: {integrity: sha512-zWrde9VZDiRaFuWsjHO40wm9LxxtXEk8DdzFXdU7eU5ZpiANnZZDBbZgN3guxbEoKqUHd9YupBmynyioz42nkA==} - engines: {node: '>= 20.9.0'} - peerDependencies: - webpack: ^5.101.0 - peerDependenciesMeta: - webpack: - optional: true - - webpack-dev-server@6.0.0: - resolution: {integrity: sha512-q9SD4ItOGhZLeU6EGT10caDZdHjF50Pz1DtkRZZOPsfluMXOkacWKKOtSBSLVkPqKiF67eFUC0rI88U/tSFPEw==} - engines: {node: '>= 22.15.0'} - hasBin: true - peerDependencies: - webpack: ^5.101.0 - webpack-cli: '*' - peerDependenciesMeta: - webpack: - optional: true - webpack-cli: - optional: true - - webpack-format-messages@2.0.6: - resolution: {integrity: sha512-JOUviZSCupGTf6uJjrxKMEyOawWws566e3phwSyuWBsQxuBU6Gm4QV5wdU8UfkPIhWyhAqSGKeq8fNE9Q4rs9Q==} - engines: {node: '>=6'} - - webpack-hot-middleware@2.26.1: - resolution: {integrity: sha512-khZGfAeJx6I8K9zKohEWWYN6KDlVw2DHownoe+6Vtwj1LP9WFgegXnVMSkZ/dBEBtXFwrkkydsaPFlB7f8wU2A==} - - webpack-hot-server-middleware@0.6.1: - resolution: {integrity: sha512-YOKwdS0hnmADsNCsReGkMOBkoz2YVrQZvnVcViM2TDXlK9NnaOGXmnrLFjzwsHFa0/iuJy/QJFEoMxzk8R1Mgg==} - peerDependencies: - webpack: '*' - - webpack-manifest-plugin@6.0.1: - resolution: {integrity: sha512-R0p/8/IJVY5hIhQtkeWUQugalVpIwojc09eb14zGq+oiZOCmN5paAz2NBJfd+6v9eBbxAS3YMjc2ov8UMlCDLQ==} - engines: {node: '>=20.19.0'} - peerDependencies: - webpack: ^5.75.0 - - webpack-merge@6.0.1: - resolution: {integrity: sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==} - engines: {node: '>=18.0.0'} - - webpack-messages@2.0.4: - resolution: {integrity: sha512-flG9VZRIKJd+ibJdtG55cp8+CglmEvGQ6uyLLwAxKudO2ws5czl0Giy8wltRCNIx+qNF76hh9UEQNZzkUHnDKw==} - engines: {node: '>=6'} - - webpack-node-externals@3.0.0: - resolution: {integrity: sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ==} - engines: {node: '>=6'} - - webpack-sources@3.5.1: - resolution: {integrity: sha512-jyuiGJdtvY434z5bUZrjz67v76/ePNvFZTp9Mdz29IlH4+GPsgyGjiv0fKI+M7BdkU6ADjulUcKAd3tUK3WlEw==} - engines: {node: '>=10.13.0'} - webpack-virtual-modules@0.6.2: resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} - webpack@5.108.4: - resolution: {integrity: sha512-yur8LyJoeiWh47dErD+Ok7vlbmDsJ3UbbRPAoxbGJ54WpE2y5yVo5G/inUzujnYgw3tPmBRdn+G7PoxXaYC33w==} - engines: {node: '>=10.13.0'} - hasBin: true - peerDependencies: - webpack-cli: '*' - peerDependenciesMeta: - webpack-cli: - optional: true - whatwg-encoding@2.0.0: resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} engines: {node: '>=12'} @@ -9503,9 +8222,6 @@ packages: engines: {node: '>= 8'} hasBin: true - wildcard@2.0.1: - resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} - wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} @@ -9586,10 +8302,18 @@ packages: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} + yargs-parser@22.0.0: + resolution: {integrity: sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==} + engines: {node: ^20.19.0 || ^22.12.0 || >=23} + yargs@17.7.2: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} + yargs@18.0.0: + resolution: {integrity: sha512-4UEqdc2RYGHZc7Doyqkrqiln3p9X2DZVxaGbwhn2pi7MrRagKaOcIKe8L3OxYcbhXLgLFUS3zAYuQjKBQgmuNg==} + engines: {node: ^20.19.0 || ^22.12.0 || >=23} + yauzl@3.4.0: resolution: {integrity: sha512-jIH9yLR9wqr0wOS0TpBvo/g/2UgZH5qePVbjgRliiF0BYvOZyaBknKsF+x9Iht0O6sqgnB93rCICdOZFecJuDw==} engines: {node: '>=12'} @@ -10051,1298 +8775,678 @@ snapshots: '@aws-sdk/core': 3.974.13 '@aws-sdk/types': 3.973.9 '@smithy/fetch-http-handler': 5.4.4 - '@smithy/node-http-handler': 4.7.4 - '@smithy/property-provider': 4.2.12 - '@smithy/protocol-http': 5.3.12 - '@smithy/smithy-client': 4.12.7 - '@smithy/types': 4.14.2 - '@smithy/util-stream': 4.5.20 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-http@3.972.41': - dependencies: - '@aws-sdk/core': 3.974.13 - '@aws-sdk/types': 3.973.9 - '@smithy/core': 3.24.4 - '@smithy/fetch-http-handler': 5.4.4 - '@smithy/node-http-handler': 4.7.4 - '@smithy/types': 4.14.2 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-ini@3.972.23': - dependencies: - '@aws-sdk/core': 3.974.13 - '@aws-sdk/credential-provider-env': 3.972.21 - '@aws-sdk/credential-provider-http': 3.972.23 - '@aws-sdk/credential-provider-login': 3.972.23 - '@aws-sdk/credential-provider-process': 3.972.21 - '@aws-sdk/credential-provider-sso': 3.972.23 - '@aws-sdk/credential-provider-web-identity': 3.972.23 - '@aws-sdk/nested-clients': 3.996.13 - '@aws-sdk/types': 3.973.9 - '@smithy/credential-provider-imds': 4.2.12 - '@smithy/property-provider': 4.2.12 - '@smithy/shared-ini-file-loader': 4.4.7 - '@smithy/types': 4.14.2 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/credential-provider-ini@3.972.43': - dependencies: - '@aws-sdk/core': 3.974.13 - '@aws-sdk/credential-provider-env': 3.972.39 - '@aws-sdk/credential-provider-http': 3.972.41 - '@aws-sdk/credential-provider-login': 3.972.43 - '@aws-sdk/credential-provider-process': 3.972.39 - '@aws-sdk/credential-provider-sso': 3.972.43 - '@aws-sdk/credential-provider-web-identity': 3.972.43 - '@aws-sdk/nested-clients': 3.997.11 - '@aws-sdk/types': 3.973.9 - '@smithy/core': 3.24.4 - '@smithy/credential-provider-imds': 4.3.4 - '@smithy/types': 4.14.2 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-login@3.972.23': - dependencies: - '@aws-sdk/core': 3.974.13 - '@aws-sdk/nested-clients': 3.996.13 - '@aws-sdk/types': 3.973.9 - '@smithy/property-provider': 4.2.12 - '@smithy/protocol-http': 5.3.12 - '@smithy/shared-ini-file-loader': 4.4.7 - '@smithy/types': 4.14.2 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/credential-provider-login@3.972.43': - dependencies: - '@aws-sdk/core': 3.974.13 - '@aws-sdk/nested-clients': 3.997.11 - '@aws-sdk/types': 3.973.9 - '@smithy/core': 3.24.4 - '@smithy/types': 4.14.2 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-node@3.972.24': - dependencies: - '@aws-sdk/credential-provider-env': 3.972.21 - '@aws-sdk/credential-provider-http': 3.972.23 - '@aws-sdk/credential-provider-ini': 3.972.23 - '@aws-sdk/credential-provider-process': 3.972.21 - '@aws-sdk/credential-provider-sso': 3.972.23 - '@aws-sdk/credential-provider-web-identity': 3.972.23 - '@aws-sdk/types': 3.973.9 - '@smithy/credential-provider-imds': 4.2.12 - '@smithy/property-provider': 4.2.12 - '@smithy/shared-ini-file-loader': 4.4.7 - '@smithy/types': 4.14.2 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/credential-provider-node@3.972.44': - dependencies: - '@aws-sdk/credential-provider-env': 3.972.39 - '@aws-sdk/credential-provider-http': 3.972.41 - '@aws-sdk/credential-provider-ini': 3.972.43 - '@aws-sdk/credential-provider-process': 3.972.39 - '@aws-sdk/credential-provider-sso': 3.972.43 - '@aws-sdk/credential-provider-web-identity': 3.972.43 - '@aws-sdk/types': 3.973.9 - '@smithy/core': 3.24.4 - '@smithy/credential-provider-imds': 4.3.4 - '@smithy/types': 4.14.2 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-process@3.972.21': - dependencies: - '@aws-sdk/core': 3.974.13 - '@aws-sdk/types': 3.973.9 - '@smithy/property-provider': 4.2.12 - '@smithy/shared-ini-file-loader': 4.4.7 - '@smithy/types': 4.14.2 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-process@3.972.39': - dependencies: - '@aws-sdk/core': 3.974.13 - '@aws-sdk/types': 3.973.9 - '@smithy/core': 3.24.4 - '@smithy/types': 4.14.2 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-sso@3.972.23': - dependencies: - '@aws-sdk/core': 3.974.13 - '@aws-sdk/nested-clients': 3.996.13 - '@aws-sdk/token-providers': 3.1014.0 - '@aws-sdk/types': 3.973.9 - '@smithy/property-provider': 4.2.12 - '@smithy/shared-ini-file-loader': 4.4.7 - '@smithy/types': 4.14.2 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/credential-provider-sso@3.972.43': - dependencies: - '@aws-sdk/core': 3.974.13 - '@aws-sdk/nested-clients': 3.997.11 - '@aws-sdk/token-providers': 3.1052.0 - '@aws-sdk/types': 3.973.9 - '@smithy/core': 3.24.4 - '@smithy/types': 4.14.2 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-web-identity@3.972.23': - dependencies: - '@aws-sdk/core': 3.974.13 - '@aws-sdk/nested-clients': 3.996.13 - '@aws-sdk/types': 3.973.9 - '@smithy/property-provider': 4.2.12 - '@smithy/shared-ini-file-loader': 4.4.7 - '@smithy/types': 4.14.2 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/credential-provider-web-identity@3.972.43': - dependencies: - '@aws-sdk/core': 3.974.13 - '@aws-sdk/nested-clients': 3.997.11 - '@aws-sdk/types': 3.973.9 - '@smithy/core': 3.24.4 - '@smithy/types': 4.14.2 - tslib: 2.8.1 - - '@aws-sdk/credential-providers@3.1053.0': - dependencies: - '@aws-sdk/client-cognito-identity': 3.1053.0 - '@aws-sdk/core': 3.974.13 - '@aws-sdk/credential-provider-cognito-identity': 3.972.36 - '@aws-sdk/credential-provider-env': 3.972.39 - '@aws-sdk/credential-provider-http': 3.972.41 - '@aws-sdk/credential-provider-ini': 3.972.43 - '@aws-sdk/credential-provider-login': 3.972.43 - '@aws-sdk/credential-provider-node': 3.972.44 - '@aws-sdk/credential-provider-process': 3.972.39 - '@aws-sdk/credential-provider-sso': 3.972.43 - '@aws-sdk/credential-provider-web-identity': 3.972.43 - '@aws-sdk/nested-clients': 3.997.11 - '@aws-sdk/types': 3.973.9 - '@smithy/core': 3.24.4 - '@smithy/credential-provider-imds': 4.3.4 - '@smithy/types': 4.14.2 - tslib: 2.8.1 - - '@aws-sdk/credential-providers@3.995.0': - dependencies: - '@aws-sdk/client-cognito-identity': 3.995.0 - '@aws-sdk/core': 3.973.23 - '@aws-sdk/credential-provider-cognito-identity': 3.972.16 - '@aws-sdk/credential-provider-env': 3.972.21 - '@aws-sdk/credential-provider-http': 3.972.23 - '@aws-sdk/credential-provider-ini': 3.972.23 - '@aws-sdk/credential-provider-login': 3.972.23 - '@aws-sdk/credential-provider-node': 3.972.24 - '@aws-sdk/credential-provider-process': 3.972.21 - '@aws-sdk/credential-provider-sso': 3.972.23 - '@aws-sdk/credential-provider-web-identity': 3.972.23 - '@aws-sdk/nested-clients': 3.995.0 - '@aws-sdk/types': 3.973.6 - '@smithy/config-resolver': 4.4.13 - '@smithy/core': 3.23.12 - '@smithy/credential-provider-imds': 4.2.12 - '@smithy/node-config-provider': 4.3.12 - '@smithy/property-provider': 4.2.12 - '@smithy/types': 4.13.1 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/middleware-bucket-endpoint@3.972.3': - dependencies: - '@aws-sdk/types': 3.973.9 - '@aws-sdk/util-arn-parser': 3.972.2 - '@smithy/node-config-provider': 4.3.12 - '@smithy/protocol-http': 5.3.12 - '@smithy/types': 4.14.2 - '@smithy/util-config-provider': 4.2.2 - tslib: 2.8.1 - - '@aws-sdk/middleware-expect-continue@3.972.3': - dependencies: - '@aws-sdk/types': 3.973.9 - '@smithy/protocol-http': 5.3.12 - '@smithy/types': 4.14.2 - tslib: 2.8.1 - - '@aws-sdk/middleware-flexible-checksums@3.972.9': - dependencies: - '@aws-crypto/crc32': 5.2.0 - '@aws-crypto/crc32c': 5.2.0 - '@aws-crypto/util': 5.2.0 - '@aws-sdk/core': 3.974.13 - '@aws-sdk/crc64-nvme': 3.972.0 - '@aws-sdk/types': 3.973.9 - '@smithy/is-array-buffer': 4.2.2 - '@smithy/node-config-provider': 4.3.12 - '@smithy/protocol-http': 5.3.12 - '@smithy/types': 4.14.2 - '@smithy/util-middleware': 4.2.12 - '@smithy/util-stream': 4.5.20 - '@smithy/util-utf8': 4.2.2 - tslib: 2.8.1 - - '@aws-sdk/middleware-host-header@3.972.8': - dependencies: - '@aws-sdk/types': 3.973.9 - '@smithy/protocol-http': 5.3.12 - '@smithy/types': 4.14.2 - tslib: 2.8.1 - - '@aws-sdk/middleware-location-constraint@3.972.3': - dependencies: - '@aws-sdk/types': 3.973.9 - '@smithy/types': 4.14.2 - tslib: 2.8.1 - - '@aws-sdk/middleware-logger@3.972.8': - dependencies: - '@aws-sdk/types': 3.973.9 - '@smithy/types': 4.14.2 - tslib: 2.8.1 - - '@aws-sdk/middleware-recursion-detection@3.972.8': - dependencies: - '@aws-sdk/types': 3.973.9 - '@aws/lambda-invoke-store': 0.2.2 - '@smithy/protocol-http': 5.3.12 - '@smithy/types': 4.14.2 - tslib: 2.8.1 - - '@aws-sdk/middleware-sdk-ec2@3.972.27': - dependencies: - '@aws-sdk/core': 3.974.13 - '@aws-sdk/types': 3.973.9 - '@smithy/core': 3.24.4 - '@smithy/signature-v4': 5.4.4 - '@smithy/types': 4.14.2 - tslib: 2.8.1 - - '@aws-sdk/middleware-sdk-s3@3.972.11': - dependencies: - '@aws-sdk/core': 3.974.13 - '@aws-sdk/types': 3.973.9 - '@aws-sdk/util-arn-parser': 3.972.2 - '@smithy/core': 3.24.4 - '@smithy/node-config-provider': 4.3.12 - '@smithy/protocol-http': 5.3.12 - '@smithy/signature-v4': 5.4.4 - '@smithy/smithy-client': 4.12.7 - '@smithy/types': 4.14.2 - '@smithy/util-config-provider': 4.2.2 - '@smithy/util-middleware': 4.2.12 - '@smithy/util-stream': 4.5.20 - '@smithy/util-utf8': 4.2.2 - tslib: 2.8.1 - - '@aws-sdk/middleware-ssec@3.972.3': - dependencies: - '@aws-sdk/types': 3.973.9 - '@smithy/types': 4.14.2 - tslib: 2.8.1 - - '@aws-sdk/middleware-user-agent@3.972.24': - dependencies: - '@aws-sdk/core': 3.974.13 - '@aws-sdk/types': 3.973.9 - '@aws-sdk/util-endpoints': 3.996.5 - '@smithy/core': 3.24.4 - '@smithy/protocol-http': 5.3.12 - '@smithy/types': 4.14.2 - '@smithy/util-retry': 4.2.12 - tslib: 2.8.1 - - '@aws-sdk/nested-clients@3.995.0': - dependencies: - '@aws-crypto/sha256-browser': 5.2.0 - '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.974.13 - '@aws-sdk/middleware-host-header': 3.972.8 - '@aws-sdk/middleware-logger': 3.972.8 - '@aws-sdk/middleware-recursion-detection': 3.972.8 - '@aws-sdk/middleware-user-agent': 3.972.24 - '@aws-sdk/region-config-resolver': 3.972.9 - '@aws-sdk/types': 3.973.9 - '@aws-sdk/util-endpoints': 3.995.0 - '@aws-sdk/util-user-agent-browser': 3.972.8 - '@aws-sdk/util-user-agent-node': 3.973.10 - '@smithy/config-resolver': 4.4.13 - '@smithy/core': 3.24.4 - '@smithy/fetch-http-handler': 5.4.4 - '@smithy/hash-node': 4.2.12 - '@smithy/invalid-dependency': 4.2.12 - '@smithy/middleware-content-length': 4.2.12 - '@smithy/middleware-endpoint': 4.4.27 - '@smithy/middleware-retry': 4.4.44 - '@smithy/middleware-serde': 4.2.15 - '@smithy/middleware-stack': 4.2.12 - '@smithy/node-config-provider': 4.3.12 - '@smithy/node-http-handler': 4.7.4 - '@smithy/protocol-http': 5.3.12 - '@smithy/smithy-client': 4.12.7 - '@smithy/types': 4.14.2 - '@smithy/url-parser': 4.2.12 - '@smithy/util-base64': 4.3.2 - '@smithy/util-body-length-browser': 4.2.2 - '@smithy/util-body-length-node': 4.2.3 - '@smithy/util-defaults-mode-browser': 4.3.43 - '@smithy/util-defaults-mode-node': 4.2.47 - '@smithy/util-endpoints': 3.3.3 - '@smithy/util-middleware': 4.2.12 - '@smithy/util-retry': 4.2.12 - '@smithy/util-utf8': 4.2.2 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/nested-clients@3.996.13': - dependencies: - '@aws-crypto/sha256-browser': 5.2.0 - '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.974.13 - '@aws-sdk/middleware-host-header': 3.972.8 - '@aws-sdk/middleware-logger': 3.972.8 - '@aws-sdk/middleware-recursion-detection': 3.972.8 - '@aws-sdk/middleware-user-agent': 3.972.24 - '@aws-sdk/region-config-resolver': 3.972.9 - '@aws-sdk/types': 3.973.9 - '@aws-sdk/util-endpoints': 3.996.5 - '@aws-sdk/util-user-agent-browser': 3.972.8 - '@aws-sdk/util-user-agent-node': 3.973.10 - '@smithy/config-resolver': 4.4.13 - '@smithy/core': 3.24.4 - '@smithy/fetch-http-handler': 5.4.4 - '@smithy/hash-node': 4.2.12 - '@smithy/invalid-dependency': 4.2.12 - '@smithy/middleware-content-length': 4.2.12 - '@smithy/middleware-endpoint': 4.4.27 - '@smithy/middleware-retry': 4.4.44 - '@smithy/middleware-serde': 4.2.15 - '@smithy/middleware-stack': 4.2.12 - '@smithy/node-config-provider': 4.3.12 - '@smithy/node-http-handler': 4.7.4 - '@smithy/protocol-http': 5.3.12 - '@smithy/smithy-client': 4.12.7 - '@smithy/types': 4.14.2 - '@smithy/url-parser': 4.2.12 - '@smithy/util-base64': 4.3.2 - '@smithy/util-body-length-browser': 4.2.2 - '@smithy/util-body-length-node': 4.2.3 - '@smithy/util-defaults-mode-browser': 4.3.43 - '@smithy/util-defaults-mode-node': 4.2.47 - '@smithy/util-endpoints': 3.3.3 - '@smithy/util-middleware': 4.2.12 - '@smithy/util-retry': 4.2.12 - '@smithy/util-utf8': 4.2.2 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/nested-clients@3.997.11': - dependencies: - '@aws-crypto/sha256-browser': 5.2.0 - '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.974.13 - '@aws-sdk/signature-v4-multi-region': 3.996.28 - '@aws-sdk/types': 3.973.9 - '@smithy/core': 3.24.4 - '@smithy/fetch-http-handler': 5.4.4 - '@smithy/node-http-handler': 4.7.4 - '@smithy/types': 4.14.2 - tslib: 2.8.1 - - '@aws-sdk/region-config-resolver@3.972.9': - dependencies: - '@aws-sdk/types': 3.973.9 - '@smithy/config-resolver': 4.4.13 - '@smithy/node-config-provider': 4.3.12 - '@smithy/types': 4.14.2 - tslib: 2.8.1 - - '@aws-sdk/signature-v4-multi-region@3.995.0': - dependencies: - '@aws-sdk/middleware-sdk-s3': 3.972.11 - '@aws-sdk/types': 3.973.9 - '@smithy/protocol-http': 5.3.12 - '@smithy/signature-v4': 5.4.4 - '@smithy/types': 4.14.2 - tslib: 2.8.1 - - '@aws-sdk/signature-v4-multi-region@3.996.28': - dependencies: - '@aws-sdk/types': 3.973.9 - '@smithy/core': 3.24.4 - '@smithy/signature-v4': 5.4.4 - '@smithy/types': 4.14.2 - tslib: 2.8.1 - - '@aws-sdk/token-providers@3.1014.0': - dependencies: - '@aws-sdk/core': 3.974.13 - '@aws-sdk/nested-clients': 3.997.11 - '@aws-sdk/types': 3.973.9 - '@smithy/property-provider': 4.2.12 - '@smithy/shared-ini-file-loader': 4.4.7 - '@smithy/types': 4.14.2 - tslib: 2.8.1 - - '@aws-sdk/token-providers@3.1052.0': - dependencies: - '@aws-sdk/core': 3.974.13 - '@aws-sdk/nested-clients': 3.997.11 - '@aws-sdk/types': 3.973.9 - '@smithy/core': 3.24.4 - '@smithy/types': 4.14.2 - tslib: 2.8.1 - - '@aws-sdk/types@3.973.6': - dependencies: - '@smithy/types': 4.14.2 - tslib: 2.8.1 - - '@aws-sdk/types@3.973.9': - dependencies: - '@smithy/types': 4.14.2 - tslib: 2.8.1 - - '@aws-sdk/util-arn-parser@3.972.2': - dependencies: - tslib: 2.8.1 - - '@aws-sdk/util-endpoints@3.995.0': - dependencies: - '@aws-sdk/types': 3.973.9 - '@smithy/types': 4.14.2 - '@smithy/url-parser': 4.2.12 - '@smithy/util-endpoints': 3.3.3 - tslib: 2.8.1 - - '@aws-sdk/util-endpoints@3.996.5': - dependencies: - '@aws-sdk/types': 3.973.9 - '@smithy/types': 4.14.2 - '@smithy/url-parser': 4.2.12 - '@smithy/util-endpoints': 3.3.3 - tslib: 2.8.1 - - '@aws-sdk/util-locate-window@3.465.0': - dependencies: - tslib: 2.8.1 - - '@aws-sdk/util-user-agent-browser@3.972.8': - dependencies: - '@aws-sdk/types': 3.973.9 - '@smithy/types': 4.14.2 - bowser: 2.12.1 - tslib: 2.8.1 - - '@aws-sdk/util-user-agent-node@3.973.10': - dependencies: - '@aws-sdk/middleware-user-agent': 3.972.24 - '@aws-sdk/types': 3.973.9 - '@smithy/node-config-provider': 4.3.12 - '@smithy/types': 4.14.2 - '@smithy/util-config-provider': 4.2.2 - tslib: 2.8.1 - - '@aws-sdk/xml-builder@3.972.15': - dependencies: - '@smithy/types': 4.14.2 - fast-xml-parser: 5.5.8 - tslib: 2.8.1 - - '@aws-sdk/xml-builder@3.972.25': - dependencies: - '@nodable/entities': 2.1.0 - '@smithy/types': 4.14.2 - fast-xml-parser: 5.7.3 - tslib: 2.8.1 - - '@aws/lambda-invoke-store@0.2.2': {} - - '@babel/code-frame@7.29.0': - dependencies: - '@babel/helper-validator-identifier': 7.28.5 - js-tokens: 4.0.0 - picocolors: 1.1.1 - - '@babel/compat-data@7.29.7': {} - - '@babel/core@7.29.0': - dependencies: - '@babel/code-frame': 7.29.0 - '@babel/generator': 7.29.1 - '@babel/helper-compilation-targets': 7.29.7 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) - '@babel/helpers': 7.28.6 - '@babel/parser': 7.29.0 - '@babel/template': 7.28.6 - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 - '@jridgewell/remapping': 2.3.5 - convert-source-map: 2.0.0 - debug: 4.4.3 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/generator@7.29.1': - dependencies: - '@babel/parser': 7.29.0 - '@babel/types': 7.29.0 - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 - jsesc: 3.1.0 - - '@babel/helper-annotate-as-pure@7.27.3': - dependencies: - '@babel/types': 7.29.0 - - '@babel/helper-compilation-targets@7.29.7': - dependencies: - '@babel/compat-data': 7.29.7 - '@babel/helper-validator-option': 7.29.7 - browserslist: 4.24.4 - lru-cache: 5.1.1 - semver: 6.3.1 - - '@babel/helper-create-class-features-plugin@7.28.3(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-member-expression-to-functions': 7.27.1 - '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.29.0) - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/traverse': 7.29.0 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/helper-create-regexp-features-plugin@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-annotate-as-pure': 7.27.3 - regexpu-core: 6.4.0 - semver: 6.3.1 - - '@babel/helper-define-polyfill-provider@0.6.5(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-compilation-targets': 7.29.7 - '@babel/helper-plugin-utils': 7.27.1 - debug: 4.4.3 - lodash.debounce: 4.0.8 - resolve: 1.22.12 - transitivePeerDependencies: - - supports-color - - '@babel/helper-globals@7.28.0': {} - - '@babel/helper-member-expression-to-functions@7.27.1': - dependencies: - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-imports@7.28.6': - dependencies: - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-transforms@7.28.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-module-imports': 7.28.6 - '@babel/helper-validator-identifier': 7.28.5 - '@babel/traverse': 7.29.0 - transitivePeerDependencies: - - supports-color - - '@babel/helper-optimise-call-expression@7.27.1': - dependencies: - '@babel/types': 7.29.0 - - '@babel/helper-plugin-utils@7.27.1': {} - - '@babel/helper-plugin-utils@7.28.6': {} - - '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-wrap-function': 7.28.3 - '@babel/traverse': 7.29.0 - transitivePeerDependencies: - - supports-color - - '@babel/helper-replace-supers@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-member-expression-to-functions': 7.27.1 - '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/traverse': 7.29.0 - transitivePeerDependencies: - - supports-color - - '@babel/helper-skip-transparent-expression-wrappers@7.27.1': - dependencies: - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 - transitivePeerDependencies: - - supports-color - - '@babel/helper-string-parser@7.27.1': {} - - '@babel/helper-validator-identifier@7.28.5': {} - - '@babel/helper-validator-option@7.29.7': {} - - '@babel/helper-wrap-function@7.28.3': - dependencies: - '@babel/template': 7.28.6 - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 - transitivePeerDependencies: - - supports-color - - '@babel/helpers@7.28.6': - dependencies: - '@babel/template': 7.28.6 - '@babel/types': 7.29.0 - - '@babel/parser@7.29.0': - dependencies: - '@babel/types': 7.29.0 - - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.29.0 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.29.0) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.3(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.29.0 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@smithy/node-http-handler': 4.7.4 + '@smithy/property-provider': 4.2.12 + '@smithy/protocol-http': 5.3.12 + '@smithy/smithy-client': 4.12.7 + '@smithy/types': 4.14.2 + '@smithy/util-stream': 4.5.20 + tslib: 2.8.1 - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.29.0)': + '@aws-sdk/credential-provider-http@3.972.41': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@aws-sdk/core': 3.974.13 + '@aws-sdk/types': 3.973.9 + '@smithy/core': 3.24.4 + '@smithy/fetch-http-handler': 5.4.4 + '@smithy/node-http-handler': 4.7.4 + '@smithy/types': 4.14.2 + tslib: 2.8.1 - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.29.0)': + '@aws-sdk/credential-provider-ini@3.972.23': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@aws-sdk/core': 3.974.13 + '@aws-sdk/credential-provider-env': 3.972.21 + '@aws-sdk/credential-provider-http': 3.972.23 + '@aws-sdk/credential-provider-login': 3.972.23 + '@aws-sdk/credential-provider-process': 3.972.21 + '@aws-sdk/credential-provider-sso': 3.972.23 + '@aws-sdk/credential-provider-web-identity': 3.972.23 + '@aws-sdk/nested-clients': 3.996.13 + '@aws-sdk/types': 3.973.9 + '@smithy/credential-provider-imds': 4.2.12 + '@smithy/property-provider': 4.2.12 + '@smithy/shared-ini-file-loader': 4.4.7 + '@smithy/types': 4.14.2 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.29.0)': + '@aws-sdk/credential-provider-ini@3.972.43': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@aws-sdk/core': 3.974.13 + '@aws-sdk/credential-provider-env': 3.972.39 + '@aws-sdk/credential-provider-http': 3.972.41 + '@aws-sdk/credential-provider-login': 3.972.43 + '@aws-sdk/credential-provider-process': 3.972.39 + '@aws-sdk/credential-provider-sso': 3.972.43 + '@aws-sdk/credential-provider-web-identity': 3.972.43 + '@aws-sdk/nested-clients': 3.997.11 + '@aws-sdk/types': 3.973.9 + '@smithy/core': 3.24.4 + '@smithy/credential-provider-imds': 4.3.4 + '@smithy/types': 4.14.2 + tslib: 2.8.1 - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.29.0)': + '@aws-sdk/credential-provider-login@3.972.23': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@aws-sdk/core': 3.974.13 + '@aws-sdk/nested-clients': 3.996.13 + '@aws-sdk/types': 3.973.9 + '@smithy/property-provider': 4.2.12 + '@smithy/protocol-http': 5.3.12 + '@smithy/shared-ini-file-loader': 4.4.7 + '@smithy/types': 4.14.2 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.29.0)': + '@aws-sdk/credential-provider-login@3.972.43': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@aws-sdk/core': 3.974.13 + '@aws-sdk/nested-clients': 3.997.11 + '@aws-sdk/types': 3.973.9 + '@smithy/core': 3.24.4 + '@smithy/types': 4.14.2 + tslib: 2.8.1 - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.29.0)': + '@aws-sdk/credential-provider-node@3.972.24': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@aws-sdk/credential-provider-env': 3.972.21 + '@aws-sdk/credential-provider-http': 3.972.23 + '@aws-sdk/credential-provider-ini': 3.972.23 + '@aws-sdk/credential-provider-process': 3.972.21 + '@aws-sdk/credential-provider-sso': 3.972.23 + '@aws-sdk/credential-provider-web-identity': 3.972.23 + '@aws-sdk/types': 3.973.9 + '@smithy/credential-provider-imds': 4.2.12 + '@smithy/property-provider': 4.2.12 + '@smithy/shared-ini-file-loader': 4.4.7 + '@smithy/types': 4.14.2 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.29.0)': + '@aws-sdk/credential-provider-node@3.972.44': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@aws-sdk/credential-provider-env': 3.972.39 + '@aws-sdk/credential-provider-http': 3.972.41 + '@aws-sdk/credential-provider-ini': 3.972.43 + '@aws-sdk/credential-provider-process': 3.972.39 + '@aws-sdk/credential-provider-sso': 3.972.43 + '@aws-sdk/credential-provider-web-identity': 3.972.43 + '@aws-sdk/types': 3.973.9 + '@smithy/core': 3.24.4 + '@smithy/credential-provider-imds': 4.3.4 + '@smithy/types': 4.14.2 + tslib: 2.8.1 - '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.29.0)': + '@aws-sdk/credential-provider-process@3.972.21': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@aws-sdk/core': 3.974.13 + '@aws-sdk/types': 3.973.9 + '@smithy/property-provider': 4.2.12 + '@smithy/shared-ini-file-loader': 4.4.7 + '@smithy/types': 4.14.2 + tslib: 2.8.1 - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.29.0)': + '@aws-sdk/credential-provider-process@3.972.39': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.27.1 + '@aws-sdk/core': 3.974.13 + '@aws-sdk/types': 3.973.9 + '@smithy/core': 3.24.4 + '@smithy/types': 4.14.2 + tslib: 2.8.1 - '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.29.0)': + '@aws-sdk/credential-provider-sso@3.972.23': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@aws-sdk/core': 3.974.13 + '@aws-sdk/nested-clients': 3.996.13 + '@aws-sdk/token-providers': 3.1014.0 + '@aws-sdk/types': 3.973.9 + '@smithy/property-provider': 4.2.12 + '@smithy/shared-ini-file-loader': 4.4.7 + '@smithy/types': 4.14.2 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt - '@babel/plugin-transform-async-generator-functions@7.28.0(@babel/core@7.29.0)': + '@aws-sdk/credential-provider-sso@3.972.43': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.29.0) - '@babel/traverse': 7.29.0 - transitivePeerDependencies: - - supports-color + '@aws-sdk/core': 3.974.13 + '@aws-sdk/nested-clients': 3.997.11 + '@aws-sdk/token-providers': 3.1052.0 + '@aws-sdk/types': 3.973.9 + '@smithy/core': 3.24.4 + '@smithy/types': 4.14.2 + tslib: 2.8.1 - '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.29.0)': + '@aws-sdk/credential-provider-web-identity@3.972.23': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-module-imports': 7.28.6 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.29.0) + '@aws-sdk/core': 3.974.13 + '@aws-sdk/nested-clients': 3.996.13 + '@aws-sdk/types': 3.973.9 + '@smithy/property-provider': 4.2.12 + '@smithy/shared-ini-file-loader': 4.4.7 + '@smithy/types': 4.14.2 + tslib: 2.8.1 transitivePeerDependencies: - - supports-color + - aws-crt - '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.29.0)': + '@aws-sdk/credential-provider-web-identity@3.972.43': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@aws-sdk/core': 3.974.13 + '@aws-sdk/nested-clients': 3.997.11 + '@aws-sdk/types': 3.973.9 + '@smithy/core': 3.24.4 + '@smithy/types': 4.14.2 + tslib: 2.8.1 - '@babel/plugin-transform-block-scoping@7.28.4(@babel/core@7.29.0)': + '@aws-sdk/credential-providers@3.1053.0': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@aws-sdk/client-cognito-identity': 3.1053.0 + '@aws-sdk/core': 3.974.13 + '@aws-sdk/credential-provider-cognito-identity': 3.972.36 + '@aws-sdk/credential-provider-env': 3.972.39 + '@aws-sdk/credential-provider-http': 3.972.41 + '@aws-sdk/credential-provider-ini': 3.972.43 + '@aws-sdk/credential-provider-login': 3.972.43 + '@aws-sdk/credential-provider-node': 3.972.44 + '@aws-sdk/credential-provider-process': 3.972.39 + '@aws-sdk/credential-provider-sso': 3.972.43 + '@aws-sdk/credential-provider-web-identity': 3.972.43 + '@aws-sdk/nested-clients': 3.997.11 + '@aws-sdk/types': 3.973.9 + '@smithy/core': 3.24.4 + '@smithy/credential-provider-imds': 4.3.4 + '@smithy/types': 4.14.2 + tslib: 2.8.1 - '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.29.0)': + '@aws-sdk/credential-providers@3.995.0': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.27.1 + '@aws-sdk/client-cognito-identity': 3.995.0 + '@aws-sdk/core': 3.973.23 + '@aws-sdk/credential-provider-cognito-identity': 3.972.16 + '@aws-sdk/credential-provider-env': 3.972.21 + '@aws-sdk/credential-provider-http': 3.972.23 + '@aws-sdk/credential-provider-ini': 3.972.23 + '@aws-sdk/credential-provider-login': 3.972.23 + '@aws-sdk/credential-provider-node': 3.972.24 + '@aws-sdk/credential-provider-process': 3.972.21 + '@aws-sdk/credential-provider-sso': 3.972.23 + '@aws-sdk/credential-provider-web-identity': 3.972.23 + '@aws-sdk/nested-clients': 3.995.0 + '@aws-sdk/types': 3.973.6 + '@smithy/config-resolver': 4.4.13 + '@smithy/core': 3.23.12 + '@smithy/credential-provider-imds': 4.2.12 + '@smithy/node-config-provider': 4.3.12 + '@smithy/property-provider': 4.2.12 + '@smithy/types': 4.13.1 + tslib: 2.8.1 transitivePeerDependencies: - - supports-color + - aws-crt - '@babel/plugin-transform-class-static-block@7.28.3(@babel/core@7.29.0)': + '@aws-sdk/middleware-bucket-endpoint@3.972.3': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.27.1 - transitivePeerDependencies: - - supports-color + '@aws-sdk/types': 3.973.9 + '@aws-sdk/util-arn-parser': 3.972.2 + '@smithy/node-config-provider': 4.3.12 + '@smithy/protocol-http': 5.3.12 + '@smithy/types': 4.14.2 + '@smithy/util-config-provider': 4.2.2 + tslib: 2.8.1 - '@babel/plugin-transform-classes@7.28.4(@babel/core@7.29.0)': + '@aws-sdk/middleware-expect-continue@3.972.3': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-compilation-targets': 7.29.7 - '@babel/helper-globals': 7.28.0 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.29.0) - '@babel/traverse': 7.29.0 - transitivePeerDependencies: - - supports-color + '@aws-sdk/types': 3.973.9 + '@smithy/protocol-http': 5.3.12 + '@smithy/types': 4.14.2 + tslib: 2.8.1 - '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.29.0)': + '@aws-sdk/middleware-flexible-checksums@3.972.9': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/template': 7.28.6 + '@aws-crypto/crc32': 5.2.0 + '@aws-crypto/crc32c': 5.2.0 + '@aws-crypto/util': 5.2.0 + '@aws-sdk/core': 3.974.13 + '@aws-sdk/crc64-nvme': 3.972.0 + '@aws-sdk/types': 3.973.9 + '@smithy/is-array-buffer': 4.2.2 + '@smithy/node-config-provider': 4.3.12 + '@smithy/protocol-http': 5.3.12 + '@smithy/types': 4.14.2 + '@smithy/util-middleware': 4.2.12 + '@smithy/util-stream': 4.5.20 + '@smithy/util-utf8': 4.2.2 + tslib: 2.8.1 - '@babel/plugin-transform-destructuring@7.28.0(@babel/core@7.29.0)': + '@aws-sdk/middleware-host-header@3.972.8': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.29.0 - transitivePeerDependencies: - - supports-color + '@aws-sdk/types': 3.973.9 + '@smithy/protocol-http': 5.3.12 + '@smithy/types': 4.14.2 + tslib: 2.8.1 - '@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.29.0)': + '@aws-sdk/middleware-location-constraint@3.972.3': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.27.1 + '@aws-sdk/types': 3.973.9 + '@smithy/types': 4.14.2 + tslib: 2.8.1 - '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.29.0)': + '@aws-sdk/middleware-logger@3.972.8': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@aws-sdk/types': 3.973.9 + '@smithy/types': 4.14.2 + tslib: 2.8.1 - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.29.0)': + '@aws-sdk/middleware-recursion-detection@3.972.8': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.27.1 + '@aws-sdk/types': 3.973.9 + '@aws/lambda-invoke-store': 0.2.2 + '@smithy/protocol-http': 5.3.12 + '@smithy/types': 4.14.2 + tslib: 2.8.1 - '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.29.0)': + '@aws-sdk/middleware-sdk-ec2@3.972.27': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@aws-sdk/core': 3.974.13 + '@aws-sdk/types': 3.973.9 + '@smithy/core': 3.24.4 + '@smithy/signature-v4': 5.4.4 + '@smithy/types': 4.14.2 + tslib: 2.8.1 - '@babel/plugin-transform-explicit-resource-management@7.28.0(@babel/core@7.29.0)': + '@aws-sdk/middleware-sdk-s3@3.972.11': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.29.0) - transitivePeerDependencies: - - supports-color + '@aws-sdk/core': 3.974.13 + '@aws-sdk/types': 3.973.9 + '@aws-sdk/util-arn-parser': 3.972.2 + '@smithy/core': 3.24.4 + '@smithy/node-config-provider': 4.3.12 + '@smithy/protocol-http': 5.3.12 + '@smithy/signature-v4': 5.4.4 + '@smithy/smithy-client': 4.12.7 + '@smithy/types': 4.14.2 + '@smithy/util-config-provider': 4.2.2 + '@smithy/util-middleware': 4.2.12 + '@smithy/util-stream': 4.5.20 + '@smithy/util-utf8': 4.2.2 + tslib: 2.8.1 - '@babel/plugin-transform-exponentiation-operator@7.27.1(@babel/core@7.29.0)': + '@aws-sdk/middleware-ssec@3.972.3': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@aws-sdk/types': 3.973.9 + '@smithy/types': 4.14.2 + tslib: 2.8.1 - '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.29.0)': + '@aws-sdk/middleware-user-agent@3.972.24': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@aws-sdk/core': 3.974.13 + '@aws-sdk/types': 3.973.9 + '@aws-sdk/util-endpoints': 3.996.5 + '@smithy/core': 3.24.4 + '@smithy/protocol-http': 5.3.12 + '@smithy/types': 4.14.2 + '@smithy/util-retry': 4.2.12 + tslib: 2.8.1 - '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.29.0)': + '@aws-sdk/nested-clients@3.995.0': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.974.13 + '@aws-sdk/middleware-host-header': 3.972.8 + '@aws-sdk/middleware-logger': 3.972.8 + '@aws-sdk/middleware-recursion-detection': 3.972.8 + '@aws-sdk/middleware-user-agent': 3.972.24 + '@aws-sdk/region-config-resolver': 3.972.9 + '@aws-sdk/types': 3.973.9 + '@aws-sdk/util-endpoints': 3.995.0 + '@aws-sdk/util-user-agent-browser': 3.972.8 + '@aws-sdk/util-user-agent-node': 3.973.10 + '@smithy/config-resolver': 4.4.13 + '@smithy/core': 3.24.4 + '@smithy/fetch-http-handler': 5.4.4 + '@smithy/hash-node': 4.2.12 + '@smithy/invalid-dependency': 4.2.12 + '@smithy/middleware-content-length': 4.2.12 + '@smithy/middleware-endpoint': 4.4.27 + '@smithy/middleware-retry': 4.4.44 + '@smithy/middleware-serde': 4.2.15 + '@smithy/middleware-stack': 4.2.12 + '@smithy/node-config-provider': 4.3.12 + '@smithy/node-http-handler': 4.7.4 + '@smithy/protocol-http': 5.3.12 + '@smithy/smithy-client': 4.12.7 + '@smithy/types': 4.14.2 + '@smithy/url-parser': 4.2.12 + '@smithy/util-base64': 4.3.2 + '@smithy/util-body-length-browser': 4.2.2 + '@smithy/util-body-length-node': 4.2.3 + '@smithy/util-defaults-mode-browser': 4.3.43 + '@smithy/util-defaults-mode-node': 4.2.47 + '@smithy/util-endpoints': 3.3.3 + '@smithy/util-middleware': 4.2.12 + '@smithy/util-retry': 4.2.12 + '@smithy/util-utf8': 4.2.2 + tslib: 2.8.1 transitivePeerDependencies: - - supports-color + - aws-crt - '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.29.0)': + '@aws-sdk/nested-clients@3.996.13': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-compilation-targets': 7.29.7 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.29.0 + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.974.13 + '@aws-sdk/middleware-host-header': 3.972.8 + '@aws-sdk/middleware-logger': 3.972.8 + '@aws-sdk/middleware-recursion-detection': 3.972.8 + '@aws-sdk/middleware-user-agent': 3.972.24 + '@aws-sdk/region-config-resolver': 3.972.9 + '@aws-sdk/types': 3.973.9 + '@aws-sdk/util-endpoints': 3.996.5 + '@aws-sdk/util-user-agent-browser': 3.972.8 + '@aws-sdk/util-user-agent-node': 3.973.10 + '@smithy/config-resolver': 4.4.13 + '@smithy/core': 3.24.4 + '@smithy/fetch-http-handler': 5.4.4 + '@smithy/hash-node': 4.2.12 + '@smithy/invalid-dependency': 4.2.12 + '@smithy/middleware-content-length': 4.2.12 + '@smithy/middleware-endpoint': 4.4.27 + '@smithy/middleware-retry': 4.4.44 + '@smithy/middleware-serde': 4.2.15 + '@smithy/middleware-stack': 4.2.12 + '@smithy/node-config-provider': 4.3.12 + '@smithy/node-http-handler': 4.7.4 + '@smithy/protocol-http': 5.3.12 + '@smithy/smithy-client': 4.12.7 + '@smithy/types': 4.14.2 + '@smithy/url-parser': 4.2.12 + '@smithy/util-base64': 4.3.2 + '@smithy/util-body-length-browser': 4.2.2 + '@smithy/util-body-length-node': 4.2.3 + '@smithy/util-defaults-mode-browser': 4.3.43 + '@smithy/util-defaults-mode-node': 4.2.47 + '@smithy/util-endpoints': 3.3.3 + '@smithy/util-middleware': 4.2.12 + '@smithy/util-retry': 4.2.12 + '@smithy/util-utf8': 4.2.2 + tslib: 2.8.1 transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-json-strings@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + - aws-crt - '@babel/plugin-transform-literals@7.27.1(@babel/core@7.29.0)': + '@aws-sdk/nested-clients@3.997.11': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.974.13 + '@aws-sdk/signature-v4-multi-region': 3.996.28 + '@aws-sdk/types': 3.973.9 + '@smithy/core': 3.24.4 + '@smithy/fetch-http-handler': 5.4.4 + '@smithy/node-http-handler': 4.7.4 + '@smithy/types': 4.14.2 + tslib: 2.8.1 - '@babel/plugin-transform-logical-assignment-operators@7.27.1(@babel/core@7.29.0)': + '@aws-sdk/region-config-resolver@3.972.9': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@aws-sdk/types': 3.973.9 + '@smithy/config-resolver': 4.4.13 + '@smithy/node-config-provider': 4.3.12 + '@smithy/types': 4.14.2 + tslib: 2.8.1 - '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.29.0)': + '@aws-sdk/signature-v4-multi-region@3.995.0': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@aws-sdk/middleware-sdk-s3': 3.972.11 + '@aws-sdk/types': 3.973.9 + '@smithy/protocol-http': 5.3.12 + '@smithy/signature-v4': 5.4.4 + '@smithy/types': 4.14.2 + tslib: 2.8.1 - '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.29.0)': + '@aws-sdk/signature-v4-multi-region@3.996.28': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.27.1 - transitivePeerDependencies: - - supports-color + '@aws-sdk/types': 3.973.9 + '@smithy/core': 3.24.4 + '@smithy/signature-v4': 5.4.4 + '@smithy/types': 4.14.2 + tslib: 2.8.1 - '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.29.0)': + '@aws-sdk/token-providers@3.1014.0': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.27.1 - transitivePeerDependencies: - - supports-color + '@aws-sdk/core': 3.974.13 + '@aws-sdk/nested-clients': 3.997.11 + '@aws-sdk/types': 3.973.9 + '@smithy/property-provider': 4.2.12 + '@smithy/shared-ini-file-loader': 4.4.7 + '@smithy/types': 4.14.2 + tslib: 2.8.1 - '@babel/plugin-transform-modules-systemjs@7.29.4(@babel/core@7.29.0)': + '@aws-sdk/token-providers@3.1052.0': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 - '@babel/helper-validator-identifier': 7.28.5 - '@babel/traverse': 7.29.0 - transitivePeerDependencies: - - supports-color + '@aws-sdk/core': 3.974.13 + '@aws-sdk/nested-clients': 3.997.11 + '@aws-sdk/types': 3.973.9 + '@smithy/core': 3.24.4 + '@smithy/types': 4.14.2 + tslib: 2.8.1 - '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.29.0)': + '@aws-sdk/types@3.973.6': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.27.1 - transitivePeerDependencies: - - supports-color + '@smithy/types': 4.14.2 + tslib: 2.8.1 - '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.29.0)': + '@aws-sdk/types@3.973.9': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.27.1 + '@smithy/types': 4.14.2 + tslib: 2.8.1 - '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.29.0)': + '@aws-sdk/util-arn-parser@3.972.2': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + tslib: 2.8.1 - '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.29.0)': + '@aws-sdk/util-endpoints@3.995.0': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@aws-sdk/types': 3.973.9 + '@smithy/types': 4.14.2 + '@smithy/url-parser': 4.2.12 + '@smithy/util-endpoints': 3.3.3 + tslib: 2.8.1 - '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.29.0)': + '@aws-sdk/util-endpoints@3.996.5': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@aws-sdk/types': 3.973.9 + '@smithy/types': 4.14.2 + '@smithy/url-parser': 4.2.12 + '@smithy/util-endpoints': 3.3.3 + tslib: 2.8.1 - '@babel/plugin-transform-object-rest-spread@7.28.4(@babel/core@7.29.0)': + '@aws-sdk/util-locate-window@3.465.0': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-compilation-targets': 7.29.7 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.29.0) - '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.0) - '@babel/traverse': 7.29.0 - transitivePeerDependencies: - - supports-color + tslib: 2.8.1 - '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.29.0)': + '@aws-sdk/util-user-agent-browser@3.972.8': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.29.0) - transitivePeerDependencies: - - supports-color + '@aws-sdk/types': 3.973.9 + '@smithy/types': 4.14.2 + bowser: 2.12.1 + tslib: 2.8.1 - '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.29.0)': + '@aws-sdk/util-user-agent-node@3.973.10': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@aws-sdk/middleware-user-agent': 3.972.24 + '@aws-sdk/types': 3.973.9 + '@smithy/node-config-provider': 4.3.12 + '@smithy/types': 4.14.2 + '@smithy/util-config-provider': 4.2.2 + tslib: 2.8.1 - '@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.29.0)': + '@aws-sdk/xml-builder@3.972.15': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - transitivePeerDependencies: - - supports-color + '@smithy/types': 4.14.2 + fast-xml-parser: 5.5.8 + tslib: 2.8.1 - '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.29.0)': + '@aws-sdk/xml-builder@3.972.25': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@nodable/entities': 2.1.0 + '@smithy/types': 4.14.2 + fast-xml-parser: 5.7.3 + tslib: 2.8.1 + + '@aws/lambda-invoke-store@0.2.2': {} - '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.29.0)': + '@babel/code-frame@7.29.0': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.27.1 - transitivePeerDependencies: - - supports-color + '@babel/helper-validator-identifier': 7.28.5 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/compat-data@7.29.7': {} - '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.29.0)': + '@babel/core@7.29.0': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/code-frame': 7.29.0 + '@babel/generator': 7.29.1 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) + '@babel/helpers': 7.28.6 + '@babel/parser': 7.29.0 + '@babel/template': 7.28.6 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + '@jridgewell/remapping': 2.3.5 + convert-source-map: 2.0.0 + debug: 4.4.3 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.29.0)': + '@babel/generator@7.29.1': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/parser': 7.29.0 + '@babel/types': 7.29.0 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + jsesc: 3.1.0 - '@babel/plugin-transform-react-constant-elements@7.23.3(@babel/core@7.29.0)': + '@babel/helper-compilation-targets@7.29.7': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/compat-data': 7.29.7 + '@babel/helper-validator-option': 7.29.7 + browserslist: 4.24.4 + lru-cache: 5.1.1 + semver: 6.3.1 - '@babel/plugin-transform-react-display-name@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-globals@7.28.0': {} - '@babel/plugin-transform-react-jsx-development@7.27.1(@babel/core@7.29.0)': + '@babel/helper-module-imports@7.28.6': dependencies: - '@babel/core': 7.29.0 - '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.29.0) + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.29.0)': + '@babel/helper-module-transforms@7.28.6(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-module-imports': 7.28.6 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.29.0) - '@babel/types': 7.29.0 + '@babel/helper-validator-identifier': 7.28.5 + '@babel/traverse': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-pure-annotations@7.27.1(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils@7.27.1': {} - '@babel/plugin-transform-regenerator@7.28.4(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-string-parser@7.27.1': {} + + '@babel/helper-validator-identifier@7.28.5': {} + + '@babel/helper-validator-option@7.29.7': {} - '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.29.0)': + '@babel/helpers@7.28.6': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/template': 7.28.6 + '@babel/types': 7.29.0 - '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.29.0)': + '@babel/parser@7.29.0': dependencies: - '@babel/core': 7.29.0 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/types': 7.29.0 - '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-spread@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-typescript@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.29.0) '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.29.0) - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.29.0) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.29.0) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.29.0) '@babel/helper-plugin-utils': 7.27.1 - '@babel/preset-env@7.28.3(@babel/core@7.29.0)': + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.29.0)': dependencies: - '@babel/compat-data': 7.29.7 '@babel/core': 7.29.0 - '@babel/helper-compilation-targets': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-validator-option': 7.29.7 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.28.3(@babel/core@7.29.0) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.0) - '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.29.0) - '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-async-generator-functions': 7.28.0(@babel/core@7.29.0) - '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-block-scoping': 7.28.4(@babel/core@7.29.0) - '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-class-static-block': 7.28.3(@babel/core@7.29.0) - '@babel/plugin-transform-classes': 7.28.4(@babel/core@7.29.0) - '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.29.0) - '@babel/plugin-transform-dotall-regex': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-explicit-resource-management': 7.28.0(@babel/core@7.29.0) - '@babel/plugin-transform-exponentiation-operator': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-json-strings': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-logical-assignment-operators': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-modules-systemjs': 7.29.4(@babel/core@7.29.0) - '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-object-rest-spread': 7.28.4(@babel/core@7.29.0) - '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.0) - '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-regenerator': 7.28.4(@babel/core@7.29.0) - '@babel/plugin-transform-regexp-modifiers': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-unicode-property-regex': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-unicode-sets-regex': 7.27.1(@babel/core@7.29.0) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.29.0) - babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.29.0) - babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.29.0) - babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.29.0) - core-js-compat: 3.46.0 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.29.0)': + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/types': 7.29.0 - esutils: 2.0.3 - '@babel/preset-react@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-validator-option': 7.29.7 - '@babel/plugin-transform-react-display-name': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-react-jsx-development': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-react-pure-annotations': 7.27.1(@babel/core@7.29.0) - transitivePeerDependencies: - - supports-color - '@babel/preset-typescript@7.27.1(@babel/core@7.29.0)': + '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-validator-option': 7.29.7 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.29.0) - '@babel/plugin-transform-typescript': 7.27.1(@babel/core@7.29.0) - transitivePeerDependencies: - - supports-color '@babel/runtime@7.28.4': {} @@ -11443,10 +9547,6 @@ snapshots: dependencies: postcss-selector-parser: 7.1.1 - '@discoveryjs/json-ext@0.6.3': {} - - '@discoveryjs/json-ext@1.1.0': {} - '@dual-bundle/import-meta-resolve@4.2.1': {} '@emnapi/core@1.10.0': @@ -12007,10 +10107,6 @@ snapshots: transitivePeerDependencies: - react-dom - '@guardian/shimport@1.0.2': - dependencies: - tslib: 2.8.1 - '@guardian/source-development-kitchen@28.1.0(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@guardian/libs@32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@6.0.3))(@guardian/source@12.2.1(@emotion/react@11.14.0(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1)(tslib@2.6.2)(typescript@6.0.3))(@types/react@18.3.1)(react@18.3.1)(tslib@2.6.2)(typescript@6.0.3)': dependencies: '@guardian/libs': 32.0.0(@guardian/ophan-tracker-js@4.0.2)(tslib@2.6.2)(typescript@6.0.3) @@ -12241,172 +10337,52 @@ snapshots: '@types/yargs': 17.0.33 chalk: 4.1.2 - '@jest/types@30.2.0': - dependencies: - '@jest/pattern': 30.0.1 - '@jest/schemas': 30.0.5 - '@types/istanbul-lib-coverage': 2.0.6 - '@types/istanbul-reports': 3.0.4 - '@types/node': 24.12.4 - '@types/yargs': 17.0.33 - chalk: 4.1.2 - - '@jridgewell/gen-mapping@0.3.13': - dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 - '@jridgewell/trace-mapping': 0.3.31 - - '@jridgewell/remapping@2.3.5': - dependencies: - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 - - '@jridgewell/resolve-uri@3.1.2': {} - - '@jridgewell/source-map@0.3.11': - dependencies: - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 - - '@jridgewell/sourcemap-codec@1.5.5': {} - - '@jridgewell/trace-mapping@0.3.31': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.5 - - '@jridgewell/trace-mapping@0.3.9': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.5 - - '@jsonjoy.com/base64@1.1.2(tslib@2.6.2)': - dependencies: - tslib: 2.6.2 - - '@jsonjoy.com/base64@17.67.0(tslib@2.6.2)': - dependencies: - tslib: 2.6.2 - - '@jsonjoy.com/buffers@1.2.1(tslib@2.6.2)': - dependencies: - tslib: 2.6.2 - - '@jsonjoy.com/buffers@17.67.0(tslib@2.6.2)': - dependencies: - tslib: 2.6.2 - - '@jsonjoy.com/codegen@1.0.0(tslib@2.6.2)': - dependencies: - tslib: 2.6.2 - - '@jsonjoy.com/codegen@17.67.0(tslib@2.6.2)': - dependencies: - tslib: 2.6.2 - - '@jsonjoy.com/fs-core@4.64.0(tslib@2.6.2)': - dependencies: - '@jsonjoy.com/fs-node-builtins': 4.64.0(tslib@2.6.2) - '@jsonjoy.com/fs-node-utils': 4.64.0(tslib@2.6.2) - thingies: 2.6.0(tslib@2.6.2) - tslib: 2.6.2 - - '@jsonjoy.com/fs-fsa@4.64.0(tslib@2.6.2)': - dependencies: - '@jsonjoy.com/fs-core': 4.64.0(tslib@2.6.2) - '@jsonjoy.com/fs-node-builtins': 4.64.0(tslib@2.6.2) - '@jsonjoy.com/fs-node-utils': 4.64.0(tslib@2.6.2) - thingies: 2.6.0(tslib@2.6.2) - tslib: 2.6.2 - - '@jsonjoy.com/fs-node-builtins@4.64.0(tslib@2.6.2)': - dependencies: - tslib: 2.6.2 - - '@jsonjoy.com/fs-node-to-fsa@4.64.0(tslib@2.6.2)': - dependencies: - '@jsonjoy.com/fs-fsa': 4.64.0(tslib@2.6.2) - '@jsonjoy.com/fs-node-builtins': 4.64.0(tslib@2.6.2) - '@jsonjoy.com/fs-node-utils': 4.64.0(tslib@2.6.2) - tslib: 2.6.2 - - '@jsonjoy.com/fs-node-utils@4.64.0(tslib@2.6.2)': - dependencies: - '@jsonjoy.com/fs-node-builtins': 4.64.0(tslib@2.6.2) - glob-to-regex.js: 1.2.0(tslib@2.6.2) - tslib: 2.6.2 - - '@jsonjoy.com/fs-node@4.64.0(tslib@2.6.2)': - dependencies: - '@jsonjoy.com/fs-core': 4.64.0(tslib@2.6.2) - '@jsonjoy.com/fs-node-builtins': 4.64.0(tslib@2.6.2) - '@jsonjoy.com/fs-node-utils': 4.64.0(tslib@2.6.2) - '@jsonjoy.com/fs-print': 4.64.0(tslib@2.6.2) - '@jsonjoy.com/fs-snapshot': 4.64.0(tslib@2.6.2) - glob-to-regex.js: 1.2.0(tslib@2.6.2) - thingies: 2.6.0(tslib@2.6.2) - tslib: 2.6.2 - - '@jsonjoy.com/fs-print@4.64.0(tslib@2.6.2)': + '@jest/types@30.2.0': dependencies: - '@jsonjoy.com/fs-node-utils': 4.64.0(tslib@2.6.2) - tree-dump: 1.1.0(tslib@2.6.2) - tslib: 2.6.2 + '@jest/pattern': 30.0.1 + '@jest/schemas': 30.0.5 + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 3.0.4 + '@types/node': 24.12.4 + '@types/yargs': 17.0.33 + chalk: 4.1.2 - '@jsonjoy.com/fs-snapshot@4.64.0(tslib@2.6.2)': + '@joshwooding/vite-plugin-react-docgen-typescript@0.6.4(typescript@6.0.3)(vite@8.0.11(@types/node@24.12.4)(esbuild@0.28.1)(terser@5.46.0)(tsx@4.6.2))': dependencies: - '@jsonjoy.com/buffers': 17.67.0(tslib@2.6.2) - '@jsonjoy.com/fs-node-utils': 4.64.0(tslib@2.6.2) - '@jsonjoy.com/json-pack': 17.67.0(tslib@2.6.2) - '@jsonjoy.com/util': 17.67.0(tslib@2.6.2) - tslib: 2.6.2 + glob: 13.0.6 + react-docgen-typescript: 2.4.0(typescript@6.0.3) + vite: 8.0.11(@types/node@24.12.4)(esbuild@0.28.1)(terser@5.46.0)(tsx@4.6.2) + optionalDependencies: + typescript: 6.0.3 - '@jsonjoy.com/json-pack@1.21.0(tslib@2.6.2)': + '@jridgewell/gen-mapping@0.3.13': dependencies: - '@jsonjoy.com/base64': 1.1.2(tslib@2.6.2) - '@jsonjoy.com/buffers': 1.2.1(tslib@2.6.2) - '@jsonjoy.com/codegen': 1.0.0(tslib@2.6.2) - '@jsonjoy.com/json-pointer': 1.0.2(tslib@2.6.2) - '@jsonjoy.com/util': 1.9.0(tslib@2.6.2) - hyperdyperid: 1.2.0 - thingies: 2.6.0(tslib@2.6.2) - tree-dump: 1.1.0(tslib@2.6.2) - tslib: 2.6.2 + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 - '@jsonjoy.com/json-pack@17.67.0(tslib@2.6.2)': + '@jridgewell/remapping@2.3.5': dependencies: - '@jsonjoy.com/base64': 17.67.0(tslib@2.6.2) - '@jsonjoy.com/buffers': 17.67.0(tslib@2.6.2) - '@jsonjoy.com/codegen': 17.67.0(tslib@2.6.2) - '@jsonjoy.com/json-pointer': 17.67.0(tslib@2.6.2) - '@jsonjoy.com/util': 17.67.0(tslib@2.6.2) - hyperdyperid: 1.2.0 - thingies: 2.6.0(tslib@2.6.2) - tree-dump: 1.1.0(tslib@2.6.2) - tslib: 2.6.2 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 - '@jsonjoy.com/json-pointer@1.0.2(tslib@2.6.2)': - dependencies: - '@jsonjoy.com/codegen': 1.0.0(tslib@2.6.2) - '@jsonjoy.com/util': 1.9.0(tslib@2.6.2) - tslib: 2.6.2 + '@jridgewell/resolve-uri@3.1.2': {} - '@jsonjoy.com/json-pointer@17.67.0(tslib@2.6.2)': + '@jridgewell/source-map@0.3.11': dependencies: - '@jsonjoy.com/util': 17.67.0(tslib@2.6.2) - tslib: 2.6.2 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 - '@jsonjoy.com/util@1.9.0(tslib@2.6.2)': + '@jridgewell/sourcemap-codec@1.5.5': {} + + '@jridgewell/trace-mapping@0.3.31': dependencies: - '@jsonjoy.com/buffers': 1.2.1(tslib@2.6.2) - '@jsonjoy.com/codegen': 1.0.0(tslib@2.6.2) - tslib: 2.6.2 + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 - '@jsonjoy.com/util@17.67.0(tslib@2.6.2)': + '@jridgewell/trace-mapping@0.3.9': dependencies: - '@jsonjoy.com/buffers': 17.67.0(tslib@2.6.2) - '@jsonjoy.com/codegen': 17.67.0(tslib@2.6.2) - tslib: 2.6.2 + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 '@keyv/bigmap@1.3.1(keyv@5.6.0)': dependencies: @@ -12416,8 +10392,6 @@ snapshots: '@keyv/serialize@1.1.1': {} - '@leichtgewicht/ip-codec@2.0.5': {} - '@mdx-js/react@3.1.1(@types/react@18.3.1)(react@18.3.1)': dependencies: '@types/mdx': 2.0.13 @@ -12503,7 +10477,12 @@ snapshots: '@tybys/wasm-util': 0.10.2 optional: true - '@noble/hashes@1.4.0': {} + '@napi-rs/wasm-runtime@1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': + dependencies: + '@emnapi/core': 1.10.0 + '@emnapi/runtime': 1.10.0 + '@tybys/wasm-util': 0.10.1 + optional: true '@nodable/entities@2.1.0': {} @@ -12519,109 +10498,68 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.15.0 + '@oxc-project/types@0.128.0': {} + '@package-json/types@0.0.12': {} - '@peculiar/asn1-cms@2.8.0': - dependencies: - '@peculiar/asn1-schema': 2.8.0 - '@peculiar/asn1-x509': 2.8.0 - '@peculiar/asn1-x509-attr': 2.8.0 - asn1js: 3.0.10 - tslib: 2.8.1 + '@pkgr/core@0.2.9': {} - '@peculiar/asn1-csr@2.8.0': + '@playwright/test@1.60.0': dependencies: - '@peculiar/asn1-schema': 2.8.0 - '@peculiar/asn1-x509': 2.8.0 - asn1js: 3.0.10 - tslib: 2.8.1 + playwright: 1.60.0 - '@peculiar/asn1-ecc@2.8.0': - dependencies: - '@peculiar/asn1-schema': 2.8.0 - '@peculiar/asn1-x509': 2.8.0 - asn1js: 3.0.10 - tslib: 2.8.1 + '@polka/url@1.0.0-next.29': {} - '@peculiar/asn1-pfx@2.8.0': - dependencies: - '@peculiar/asn1-cms': 2.8.0 - '@peculiar/asn1-pkcs8': 2.8.0 - '@peculiar/asn1-rsa': 2.8.0 - '@peculiar/asn1-schema': 2.8.0 - asn1js: 3.0.10 - tslib: 2.8.1 + '@rolldown/binding-android-arm64@1.0.0-rc.18': + optional: true - '@peculiar/asn1-pkcs8@2.8.0': - dependencies: - '@peculiar/asn1-schema': 2.8.0 - '@peculiar/asn1-x509': 2.8.0 - asn1js: 3.0.10 - tslib: 2.8.1 + '@rolldown/binding-darwin-arm64@1.0.0-rc.18': + optional: true - '@peculiar/asn1-pkcs9@2.8.0': - dependencies: - '@peculiar/asn1-cms': 2.8.0 - '@peculiar/asn1-pfx': 2.8.0 - '@peculiar/asn1-pkcs8': 2.8.0 - '@peculiar/asn1-schema': 2.8.0 - '@peculiar/asn1-x509': 2.8.0 - '@peculiar/asn1-x509-attr': 2.8.0 - asn1js: 3.0.10 - tslib: 2.8.1 + '@rolldown/binding-darwin-x64@1.0.0-rc.18': + optional: true - '@peculiar/asn1-rsa@2.8.0': - dependencies: - '@peculiar/asn1-schema': 2.8.0 - '@peculiar/asn1-x509': 2.8.0 - asn1js: 3.0.10 - tslib: 2.8.1 + '@rolldown/binding-freebsd-x64@1.0.0-rc.18': + optional: true - '@peculiar/asn1-schema@2.8.0': - dependencies: - '@peculiar/utils': 2.0.3 - asn1js: 3.0.10 - tslib: 2.8.1 + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.18': + optional: true - '@peculiar/asn1-x509-attr@2.8.0': - dependencies: - '@peculiar/asn1-schema': 2.8.0 - '@peculiar/asn1-x509': 2.8.0 - asn1js: 3.0.10 - tslib: 2.8.1 + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.18': + optional: true - '@peculiar/asn1-x509@2.8.0': - dependencies: - '@peculiar/asn1-schema': 2.8.0 - '@peculiar/utils': 2.0.3 - asn1js: 3.0.10 - tslib: 2.8.1 + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.18': + optional: true - '@peculiar/utils@2.0.3': - dependencies: - tslib: 2.8.1 + '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.18': + optional: true - '@peculiar/x509@1.14.3': - dependencies: - '@peculiar/asn1-cms': 2.8.0 - '@peculiar/asn1-csr': 2.8.0 - '@peculiar/asn1-ecc': 2.8.0 - '@peculiar/asn1-pkcs9': 2.8.0 - '@peculiar/asn1-rsa': 2.8.0 - '@peculiar/asn1-schema': 2.8.0 - '@peculiar/asn1-x509': 2.8.0 - pvtsutils: 1.3.6 - reflect-metadata: 0.2.2 - tslib: 2.8.1 - tsyringe: 4.10.0 + '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.18': + optional: true - '@pkgr/core@0.2.9': {} + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.18': + optional: true - '@playwright/test@1.60.0': + '@rolldown/binding-linux-x64-musl@1.0.0-rc.18': + optional: true + + '@rolldown/binding-openharmony-arm64@1.0.0-rc.18': + optional: true + + '@rolldown/binding-wasm32-wasi@1.0.0-rc.18': dependencies: - playwright: 1.60.0 + '@emnapi/core': 1.10.0 + '@emnapi/runtime': 1.10.0 + '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + optional: true - '@polka/url@1.0.0-next.29': {} + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.18': + optional: true + + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.18': + optional: true + + '@rolldown/pluginutils@1.0.0-rc.18': {} '@rollup/plugin-commonjs@29.0.0(rollup@4.59.0)': dependencies: @@ -12635,6 +10573,14 @@ snapshots: optionalDependencies: rollup: 4.59.0 + '@rollup/plugin-inject@5.0.5(rollup@4.62.0)': + dependencies: + '@rollup/pluginutils': 5.3.0(rollup@4.62.0) + estree-walker: 2.0.2 + magic-string: 0.30.21 + optionalDependencies: + rollup: 4.62.0 + '@rollup/plugin-json@6.1.0(rollup@4.59.0)': dependencies: '@rollup/pluginutils': 5.3.0(rollup@4.59.0) @@ -12659,6 +10605,14 @@ snapshots: optionalDependencies: rollup: 4.59.0 + '@rollup/pluginutils@5.3.0(rollup@4.62.0)': + dependencies: + '@types/estree': 1.0.9 + estree-walker: 2.0.2 + picomatch: 4.0.4 + optionalDependencies: + rollup: 4.62.0 + '@rollup/rollup-android-arm-eabi@4.59.0': optional: true @@ -13249,10 +11203,10 @@ snapshots: axe-core: 4.11.1 storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/addon-docs@10.3.3(@types/react@18.3.1)(esbuild@0.28.1)(rollup@4.62.0)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@6.4.3(@types/node@24.12.4)(terser@5.49.0)(tsx@4.6.2))(webpack@5.108.4)': + '@storybook/addon-docs@10.3.3(@types/react@18.3.1)(esbuild@0.28.1)(rollup@4.62.0)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@8.0.11(@types/node@24.12.4)(esbuild@0.28.1)(terser@5.46.0)(tsx@4.6.2))': dependencies: '@mdx-js/react': 3.1.1(@types/react@18.3.1)(react@18.3.1) - '@storybook/csf-plugin': 10.3.3(esbuild@0.28.1)(rollup@4.62.0)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@6.4.3(@types/node@24.12.4)(terser@5.49.0)(tsx@4.6.2))(webpack@5.108.4) + '@storybook/csf-plugin': 10.3.3(esbuild@0.28.1)(rollup@4.62.0)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@8.0.11(@types/node@24.12.4)(esbuild@0.28.1)(terser@5.46.0)(tsx@4.6.2)) '@storybook/icons': 2.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/react-dom-shim': 10.3.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) react: 18.3.1 @@ -13266,65 +11220,25 @@ snapshots: - vite - webpack - '@storybook/addon-webpack5-compiler-swc@4.0.3(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(webpack@5.108.4)': - dependencies: - '@swc/core': 1.15.41 - storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - swc-loader: 0.2.7(@swc/core@1.15.41)(webpack@5.108.4) - transitivePeerDependencies: - - '@swc/helpers' - - webpack - - '@storybook/builder-webpack5@10.3.3(@swc/core@1.15.41)(clean-css@5.3.3)(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.16)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@6.0.3)(webpack-cli@7.2.1)': + '@storybook/builder-vite@10.3.3(esbuild@0.28.1)(rollup@4.62.0)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@8.0.11(@types/node@24.12.4)(esbuild@0.28.1)(terser@5.46.0)(tsx@4.6.2))': dependencies: - '@storybook/core-webpack': 10.3.3(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) - case-sensitive-paths-webpack-plugin: 2.4.0 - cjs-module-lexer: 1.4.3 - css-loader: 7.1.4(webpack@5.108.4) - es-module-lexer: 1.7.0 - fork-ts-checker-webpack-plugin: 9.1.0(typescript@6.0.3)(webpack@5.108.4) - html-webpack-plugin: 5.6.6(webpack@5.108.4) - magic-string: 0.30.21 + '@storybook/csf-plugin': 10.3.3(esbuild@0.28.1)(rollup@4.62.0)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@8.0.11(@types/node@24.12.4)(esbuild@0.28.1)(terser@5.46.0)(tsx@4.6.2)) storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - style-loader: 4.0.0(webpack@5.108.4) - terser-webpack-plugin: 5.4.0(@swc/core@1.15.41)(esbuild@0.28.1)(webpack@5.108.4) ts-dedent: 2.2.0 - webpack: 5.108.4(@swc/core@1.15.41)(clean-css@5.3.3)(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.16)(webpack-cli@7.2.1) - webpack-dev-middleware: 6.1.3(webpack@5.108.4) - webpack-hot-middleware: 2.26.1 - webpack-virtual-modules: 0.6.2 - optionalDependencies: - typescript: 6.0.3 + vite: 8.0.11(@types/node@24.12.4)(esbuild@0.28.1)(terser@5.46.0)(tsx@4.6.2) transitivePeerDependencies: - - '@minify-html/node' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - '@swc/html' - - clean-css - - cssnano - - csso - esbuild - - html-minifier-terser - - lightningcss - - postcss - - uglify-js - - webpack-cli - - '@storybook/core-webpack@10.3.3(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))': - dependencies: - storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - ts-dedent: 2.2.0 + - rollup + - webpack - '@storybook/csf-plugin@10.3.3(esbuild@0.28.1)(rollup@4.62.0)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@6.4.3(@types/node@24.12.4)(terser@5.49.0)(tsx@4.6.2))(webpack@5.108.4)': + '@storybook/csf-plugin@10.3.3(esbuild@0.28.1)(rollup@4.62.0)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@8.0.11(@types/node@24.12.4)(esbuild@0.28.1)(terser@5.46.0)(tsx@4.6.2))': dependencies: storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) unplugin: 2.3.11 optionalDependencies: esbuild: 0.28.1 rollup: 4.62.0 - vite: 6.4.3(@types/node@24.12.4)(terser@5.49.0)(tsx@4.6.2) - webpack: 5.108.4(@swc/core@1.15.41)(clean-css@5.3.3)(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.16)(webpack-cli@7.2.1) + vite: 8.0.11(@types/node@24.12.4)(esbuild@0.28.1)(terser@5.46.0)(tsx@4.6.2) '@storybook/global@5.0.0': {} @@ -13333,84 +11247,33 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@storybook/preset-react-webpack@10.3.3(@swc/core@1.15.41)(clean-css@5.3.3)(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@6.0.3)(webpack-cli@7.2.1)': - dependencies: - '@storybook/core-webpack': 10.3.3(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) - '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@6.0.3)(webpack@5.108.4) - '@types/semver': 7.7.1 - magic-string: 0.30.21 - react: 18.3.1 - react-docgen: 7.1.1 - react-dom: 18.3.1(react@18.3.1) - resolve: 1.22.12 - semver: 7.8.5 - storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - tsconfig-paths: 4.2.0 - webpack: 5.108.4(@swc/core@1.15.41)(clean-css@5.3.3)(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.16)(webpack-cli@7.2.1) - optionalDependencies: - typescript: 6.0.3 - transitivePeerDependencies: - - '@minify-html/node' - - '@swc/core' - - '@swc/css' - - '@swc/html' - - clean-css - - cssnano - - csso - - esbuild - - html-minifier-terser - - lightningcss - - postcss - - supports-color - - uglify-js - - webpack-cli - - '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0(typescript@6.0.3)(webpack@5.108.4)': - dependencies: - debug: 4.4.3 - endent: 2.1.0 - find-cache-dir: 3.3.2 - flat-cache: 3.2.0 - micromatch: 4.0.8 - react-docgen-typescript: 2.4.0(typescript@6.0.3) - tslib: 2.8.1 - typescript: 6.0.3 - webpack: 5.108.4(@swc/core@1.15.41)(clean-css@5.3.3)(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.16)(webpack-cli@7.2.1) - transitivePeerDependencies: - - supports-color - '@storybook/react-dom-shim@10.3.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))': dependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/react-webpack5@10.3.3(@swc/core@1.15.41)(clean-css@5.3.3)(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@6.0.3)(webpack-cli@7.2.1)': + '@storybook/react-vite@10.3.3(esbuild@0.28.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.62.0)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@6.0.3)(vite@8.0.11(@types/node@24.12.4)(esbuild@0.28.1)(terser@5.46.0)(tsx@4.6.2))': dependencies: - '@storybook/builder-webpack5': 10.3.3(@swc/core@1.15.41)(clean-css@5.3.3)(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.16)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@6.0.3)(webpack-cli@7.2.1) - '@storybook/preset-react-webpack': 10.3.3(@swc/core@1.15.41)(clean-css@5.3.3)(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@6.0.3)(webpack-cli@7.2.1) + '@joshwooding/vite-plugin-react-docgen-typescript': 0.6.4(typescript@6.0.3)(vite@8.0.11(@types/node@24.12.4)(esbuild@0.28.1)(terser@5.46.0)(tsx@4.6.2)) + '@rollup/pluginutils': 5.3.0(rollup@4.62.0) + '@storybook/builder-vite': 10.3.3(esbuild@0.28.1)(rollup@4.62.0)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@8.0.11(@types/node@24.12.4)(esbuild@0.28.1)(terser@5.46.0)(tsx@4.6.2)) '@storybook/react': 10.3.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@6.0.3) + empathic: 2.0.1 + magic-string: 0.30.21 react: 18.3.1 + react-docgen: 8.0.2 react-dom: 18.3.1(react@18.3.1) + resolve: 1.22.12 storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - optionalDependencies: - typescript: 6.0.3 + tsconfig-paths: 4.2.0 + vite: 8.0.11(@types/node@24.12.4)(esbuild@0.28.1)(terser@5.46.0)(tsx@4.6.2) transitivePeerDependencies: - - '@minify-html/node' - - '@rspack/core' - - '@swc/core' - - '@swc/css' - - '@swc/html' - - clean-css - - cssnano - - csso - esbuild - - html-minifier-terser - - lightningcss - - postcss + - rollup - supports-color - - uglify-js - - webpack-cli + - typescript + - webpack '@storybook/react@10.3.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@6.0.3)': dependencies: @@ -13440,23 +11303,19 @@ snapshots: dependencies: acorn: 8.16.0 - '@sveltejs/acorn-typescript@1.0.9(acorn@8.16.0)': - dependencies: - acorn: 8.16.0 - - '@sveltejs/adapter-auto@7.0.1(@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.3(@types/node@24.12.4)(terser@5.49.0)))(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@6.0.3)(vite@6.4.3(@types/node@24.12.4)(terser@5.49.0)))': + '@sveltejs/adapter-auto@7.0.1(@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.3(@types/node@24.12.4)(lightningcss@1.32.0)(terser@5.46.0)))(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@6.0.3)(vite@6.4.3(@types/node@24.12.4)(lightningcss@1.32.0)(terser@5.46.0)))': dependencies: - '@sveltejs/kit': 2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.3(@types/node@24.12.4)(terser@5.49.0)))(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@6.0.3)(vite@6.4.3(@types/node@24.12.4)(terser@5.49.0)) + '@sveltejs/kit': 2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.3(@types/node@24.12.4)(lightningcss@1.32.0)(terser@5.46.0)))(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@6.0.3)(vite@6.4.3(@types/node@24.12.4)(lightningcss@1.32.0)(terser@5.46.0)) - '@sveltejs/adapter-static@3.0.10(@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.3(@types/node@24.12.4)(terser@5.49.0)))(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@6.0.3)(vite@6.4.3(@types/node@24.12.4)(terser@5.49.0)))': + '@sveltejs/adapter-static@3.0.10(@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.3(@types/node@24.12.4)(lightningcss@1.32.0)(terser@5.46.0)))(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@6.0.3)(vite@6.4.3(@types/node@24.12.4)(lightningcss@1.32.0)(terser@5.46.0)))': dependencies: - '@sveltejs/kit': 2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.3(@types/node@24.12.4)(terser@5.49.0)))(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@6.0.3)(vite@6.4.3(@types/node@24.12.4)(terser@5.49.0)) + '@sveltejs/kit': 2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.3(@types/node@24.12.4)(lightningcss@1.32.0)(terser@5.46.0)))(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@6.0.3)(vite@6.4.3(@types/node@24.12.4)(lightningcss@1.32.0)(terser@5.46.0)) - '@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.3(@types/node@24.12.4)(terser@5.49.0)))(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@6.0.3)(vite@6.4.3(@types/node@24.12.4)(terser@5.49.0))': + '@sveltejs/kit@2.60.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.3(@types/node@24.12.4)(lightningcss@1.32.0)(terser@5.46.0)))(svelte@5.56.3(@typescript-eslint/types@8.59.2))(typescript@6.0.3)(vite@6.4.3(@types/node@24.12.4)(lightningcss@1.32.0)(terser@5.46.0))': dependencies: '@standard-schema/spec': 1.1.0 - '@sveltejs/acorn-typescript': 1.0.9(acorn@8.16.0) - '@sveltejs/vite-plugin-svelte': 7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.3(@types/node@24.12.4)(terser@5.49.0)) + '@sveltejs/acorn-typescript': 1.0.10(acorn@8.16.0) + '@sveltejs/vite-plugin-svelte': 7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.3(@types/node@24.12.4)(lightningcss@1.32.0)(terser@5.46.0)) '@types/cookie': 0.6.0 acorn: 8.16.0 cookie: 0.6.0 @@ -13468,20 +11327,20 @@ snapshots: set-cookie-parser: 3.1.0 sirv: 3.0.2 svelte: 5.56.3(@typescript-eslint/types@8.59.2) - vite: 6.4.3(@types/node@24.12.4)(terser@5.49.0)(tsx@4.6.2) + vite: 6.4.3(@types/node@24.12.4)(lightningcss@1.32.0)(terser@5.46.0) optionalDependencies: typescript: 6.0.3 '@sveltejs/load-config@0.1.1': {} - '@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.3(@types/node@24.12.4)(terser@5.49.0))': + '@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.59.2))(vite@6.4.3(@types/node@24.12.4)(lightningcss@1.32.0)(terser@5.46.0))': dependencies: deepmerge: 4.3.1 magic-string: 0.30.21 obug: 2.1.2 svelte: 5.56.3(@typescript-eslint/types@8.59.2) - vite: 6.4.3(@types/node@24.12.4)(terser@5.49.0)(tsx@4.6.2) - vitefu: 1.1.3(vite@6.4.3(@types/node@24.12.4)(terser@5.49.0)) + vite: 6.4.3(@types/node@24.12.4)(lightningcss@1.32.0)(terser@5.46.0) + vitefu: 1.1.3(vite@6.4.3(@types/node@24.12.4)(lightningcss@1.32.0)(terser@5.46.0)) '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.29.0)': dependencies: @@ -13553,30 +11412,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0(typescript@6.0.3))(typescript@6.0.3)': - dependencies: - '@svgr/core': 8.1.0(typescript@6.0.3) - cosmiconfig: 8.3.6(typescript@6.0.3) - deepmerge: 4.3.1 - svgo: 3.3.3 - transitivePeerDependencies: - - typescript - - '@svgr/webpack@8.1.0(typescript@6.0.3)': - dependencies: - '@babel/core': 7.29.0 - '@babel/plugin-transform-react-constant-elements': 7.23.3(@babel/core@7.29.0) - '@babel/preset-env': 7.28.3(@babel/core@7.29.0) - '@babel/preset-react': 7.27.1(@babel/core@7.29.0) - '@babel/preset-typescript': 7.27.1(@babel/core@7.29.0) - '@svgr/core': 8.1.0(typescript@6.0.3) - '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@6.0.3)) - '@svgr/plugin-svgo': 8.1.0(@svgr/core@8.1.0(typescript@6.0.3))(typescript@6.0.3) - transitivePeerDependencies: - - supports-color - - typescript - - '@swc/cli@0.8.1(@swc/core@1.15.41)(chokidar@5.0.0)': + '@swc/cli@0.8.1(@swc/core@1.15.41)': dependencies: '@swc/core': 1.15.41 '@swc/counter': 0.1.3 @@ -13588,8 +11424,6 @@ snapshots: slash: 3.0.0 source-map: 0.7.4 tinyglobby: 0.2.17 - optionalDependencies: - chokidar: 5.0.0 transitivePeerDependencies: - bare-abort-controller - react-native-b4a @@ -13719,6 +11553,11 @@ snapshots: '@tsconfig/node16@1.0.4': {} + '@tybys/wasm-util@0.10.1': + dependencies: + tslib: 2.8.1 + optional: true + '@tybys/wasm-util@0.10.2': dependencies: tslib: 2.8.1 @@ -13754,10 +11593,6 @@ snapshots: '@types/connect': 3.4.38 '@types/node': 24.12.4 - '@types/bonjour@3.5.13': - dependencies: - '@types/node': 24.12.4 - '@types/chai@5.2.2': dependencies: '@types/deep-eql': 4.0.2 @@ -13771,11 +11606,6 @@ snapshots: dependencies: '@types/express': 5.0.6 - '@types/connect-history-api-fallback@1.5.4': - dependencies: - '@types/express-serve-static-core': 5.1.2 - '@types/node': 24.12.4 - '@types/connect@3.4.38': dependencies: '@types/node': 24.12.4 @@ -13805,13 +11635,6 @@ snapshots: '@types/range-parser': 1.2.7 '@types/send': 1.2.1 - '@types/express-serve-static-core@5.1.2': - dependencies: - '@types/node': 24.12.4 - '@types/qs': 6.9.15 - '@types/range-parser': 1.2.7 - '@types/send': 1.2.1 - '@types/express@5.0.6': dependencies: '@types/body-parser': 1.19.2 @@ -13828,8 +11651,6 @@ snapshots: '@types/he@1.2.0': {} - '@types/html-minifier-terser@6.1.0': {} - '@types/html-minifier-terser@7.0.2': {} '@types/http-cache-semantics@4.2.0': {} @@ -13938,16 +11759,10 @@ snapshots: '@types/semver@7.5.6': {} - '@types/semver@7.7.1': {} - '@types/send@1.2.1': dependencies: '@types/node': 24.12.4 - '@types/serve-index@1.9.4': - dependencies: - '@types/express': 5.0.6 - '@types/serve-static@2.2.0': dependencies: '@types/http-errors': 2.0.5 @@ -13963,51 +11778,6 @@ snapshots: '@types/unist@3.0.3': {} - '@types/webpack-bundle-analyzer@4.7.0(@swc/core@1.15.41)(clean-css@5.3.3)(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.16)(webpack-cli@7.2.1)': - dependencies: - '@types/node': 24.12.4 - tapable: 2.3.0 - webpack: 5.108.4(@swc/core@1.15.41)(clean-css@5.3.3)(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.16)(webpack-cli@7.2.1) - transitivePeerDependencies: - - '@minify-html/node' - - '@swc/core' - - '@swc/css' - - '@swc/html' - - clean-css - - cssnano - - csso - - esbuild - - html-minifier-terser - - lightningcss - - postcss - - uglify-js - - webpack-cli - - '@types/webpack-env@1.18.8': {} - - '@types/webpack-node-externals@3.0.4(@swc/core@1.15.41)(clean-css@5.3.3)(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.16)(webpack-cli@7.2.1)': - dependencies: - '@types/node': 24.12.4 - webpack: 5.108.4(@swc/core@1.15.41)(clean-css@5.3.3)(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.16)(webpack-cli@7.2.1) - transitivePeerDependencies: - - '@minify-html/node' - - '@swc/core' - - '@swc/css' - - '@swc/html' - - clean-css - - cssnano - - csso - - esbuild - - html-minifier-terser - - lightningcss - - postcss - - uglify-js - - webpack-cli - - '@types/ws@8.18.1': - dependencies: - '@types/node': 24.12.4 - '@types/yargs-parser@21.0.3': {} '@types/yargs@17.0.33': @@ -14192,82 +11962,6 @@ snapshots: loupe: 3.2.1 tinyrainbow: 2.0.0 - '@webassemblyjs/ast@1.14.1': - dependencies: - '@webassemblyjs/helper-numbers': 1.13.2 - '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - - '@webassemblyjs/floating-point-hex-parser@1.13.2': {} - - '@webassemblyjs/helper-api-error@1.13.2': {} - - '@webassemblyjs/helper-buffer@1.14.1': {} - - '@webassemblyjs/helper-numbers@1.13.2': - dependencies: - '@webassemblyjs/floating-point-hex-parser': 1.13.2 - '@webassemblyjs/helper-api-error': 1.13.2 - '@xtuc/long': 4.2.2 - - '@webassemblyjs/helper-wasm-bytecode@1.13.2': {} - - '@webassemblyjs/helper-wasm-section@1.14.1': - dependencies: - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/helper-buffer': 1.14.1 - '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - '@webassemblyjs/wasm-gen': 1.14.1 - - '@webassemblyjs/ieee754@1.13.2': - dependencies: - '@xtuc/ieee754': 1.2.0 - - '@webassemblyjs/leb128@1.13.2': - dependencies: - '@xtuc/long': 4.2.2 - - '@webassemblyjs/utf8@1.13.2': {} - - '@webassemblyjs/wasm-edit@1.14.1': - dependencies: - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/helper-buffer': 1.14.1 - '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - '@webassemblyjs/helper-wasm-section': 1.14.1 - '@webassemblyjs/wasm-gen': 1.14.1 - '@webassemblyjs/wasm-opt': 1.14.1 - '@webassemblyjs/wasm-parser': 1.14.1 - '@webassemblyjs/wast-printer': 1.14.1 - - '@webassemblyjs/wasm-gen@1.14.1': - dependencies: - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - '@webassemblyjs/ieee754': 1.13.2 - '@webassemblyjs/leb128': 1.13.2 - '@webassemblyjs/utf8': 1.13.2 - - '@webassemblyjs/wasm-opt@1.14.1': - dependencies: - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/helper-buffer': 1.14.1 - '@webassemblyjs/wasm-gen': 1.14.1 - '@webassemblyjs/wasm-parser': 1.14.1 - - '@webassemblyjs/wasm-parser@1.14.1': - dependencies: - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/helper-api-error': 1.13.2 - '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - '@webassemblyjs/ieee754': 1.13.2 - '@webassemblyjs/leb128': 1.13.2 - '@webassemblyjs/utf8': 1.13.2 - - '@webassemblyjs/wast-printer@1.14.1': - dependencies: - '@webassemblyjs/ast': 1.14.1 - '@xtuc/long': 4.2.2 - '@xhmikosr/archive-type@8.1.0': dependencies: file-type: 21.3.4 @@ -14360,10 +12054,6 @@ snapshots: dependencies: system-architecture: 1.0.0 - '@xtuc/ieee754@1.2.0': {} - - '@xtuc/long@4.2.2': {} - abab@2.0.6: {} accepts@1.3.8: @@ -14381,14 +12071,10 @@ snapshots: acorn: 8.17.0 acorn-walk: 8.3.5 - acorn-import-phases@1.0.4(acorn@8.17.0): + acorn-jsx@5.3.2(acorn@8.17.0): dependencies: acorn: 8.17.0 - acorn-jsx@5.3.2(acorn@8.16.0): - dependencies: - acorn: 8.16.0 - acorn-walk@8.3.5: dependencies: acorn: 8.17.0 @@ -14408,18 +12094,9 @@ snapshots: clean-stack: 4.2.0 indent-string: 5.0.0 - ajv-formats@2.1.1(ajv@8.18.0): - optionalDependencies: - ajv: 8.18.0 - - ajv-keywords@3.5.2(ajv@6.15.0): - dependencies: - ajv: 6.15.0 - - ajv-keywords@5.1.0(ajv@8.18.0): - dependencies: + ajv-formats@2.1.1(ajv@8.18.0): + optionalDependencies: ajv: 8.18.0 - fast-deep-equal: 3.1.3 ajv@6.15.0: dependencies: @@ -14441,8 +12118,6 @@ snapshots: ansi-escapes@6.2.1: {} - ansi-html-community@0.0.8: {} - ansi-regex@5.0.1: {} ansi-regex@6.2.2: {} @@ -14539,12 +12214,6 @@ snapshots: get-intrinsic: 1.3.0 is-array-buffer: 3.0.5 - asn1js@3.0.10: - dependencies: - pvtsutils: 1.3.6 - pvutils: 1.1.5 - tslib: 2.8.1 - assertion-error@2.0.1: {} ast-types-flow@0.0.8: {} @@ -14614,30 +12283,6 @@ snapshots: cosmiconfig: 7.1.0 resolve: 1.22.12 - babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.29.0): - dependencies: - '@babel/compat-data': 7.29.7 - '@babel/core': 7.29.0 - '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.29.0) - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.29.0): - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.29.0) - core-js-compat: 3.46.0 - transitivePeerDependencies: - - supports-color - - babel-plugin-polyfill-regenerator@0.6.5(@babel/core@7.29.0): - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.29.0) - transitivePeerDependencies: - - supports-color - babel-preset-current-node-syntax@1.0.1(@babel/core@7.29.0): dependencies: '@babel/core': 7.29.0 @@ -14674,14 +12319,10 @@ snapshots: baseline-browser-mapping@2.10.42: {} - batch@0.6.1: {} - bidi-js@1.0.3: dependencies: require-from-string: 2.0.2 - big.js@5.2.2: {} - binary-version-check@6.1.0: dependencies: binary-version: 7.1.0 @@ -14724,13 +12365,6 @@ snapshots: transitivePeerDependencies: - supports-color - bonjour-service@1.4.2: - dependencies: - fast-deep-equal: 3.1.3 - multicast-dns: 7.2.5 - - boolbase@1.0.0: {} - bowser@2.12.1: {} brace-expansion@1.1.12: @@ -14742,10 +12376,6 @@ snapshots: dependencies: balanced-match: 1.0.2 - brace-expansion@5.0.3: - dependencies: - balanced-match: 4.0.4 - brace-expansion@5.0.6: dependencies: balanced-match: 4.0.4 @@ -14799,8 +12429,6 @@ snapshots: bytes@3.1.2: {} - bytestreamjs@2.0.1: {} - cacheable-lookup@7.0.0: {} cacheable-request@13.0.19: @@ -14853,8 +12481,6 @@ snapshots: caniuse-lite@1.0.30001803: {} - case-sensitive-paths-webpack-plugin@2.4.0: {} - ccount@2.0.1: {} chai@5.3.3: @@ -14894,14 +12520,8 @@ snapshots: dependencies: readdirp: 4.1.2 - chokidar@5.0.0: - dependencies: - readdirp: 5.0.0 - chromatic@16.1.0: {} - chrome-trace-event@1.0.4: {} - ci-info@3.9.0: {} ci-info@4.4.0: {} @@ -14935,11 +12555,11 @@ snapshots: strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - clone-deep@4.0.1: + cliui@9.0.1: dependencies: - is-plain-object: 2.0.4 - kind-of: 6.0.3 - shallow-clone: 3.0.1 + string-width: 7.2.0 + strip-ansi: 7.1.2 + wrap-ansi: 9.0.2 clsx@2.1.1: {} @@ -14979,14 +12599,10 @@ snapshots: commander@11.1.0: {} - commander@14.0.3: {} - commander@2.20.3: {} commander@6.2.1: {} - commander@7.2.0: {} - commander@8.3.0: {} comment-parser@1.4.6: {} @@ -15011,24 +12627,8 @@ snapshots: transitivePeerDependencies: - supports-color - compression@1.8.1: - dependencies: - bytes: 3.1.2 - compressible: 2.0.18 - debug: 2.6.9 - negotiator: 0.6.4 - on-headers: 1.1.0 - safe-buffer: 5.2.1 - vary: 1.1.2 - transitivePeerDependencies: - - supports-color - concat-map@0.0.1: {} - connect-history-api-fallback@2.0.0: {} - - console-clear@1.1.1: {} - constructs@10.6.0: {} content-disposition@1.0.1: {} @@ -15054,10 +12654,6 @@ snapshots: graceful-fs: 4.2.11 p-event: 6.0.1 - core-js-compat@3.46.0: - dependencies: - browserslist: 4.28.5 - core-js-compat@3.49.0: dependencies: browserslist: 4.28.5 @@ -15124,60 +12720,15 @@ snapshots: css-functions-list@3.3.3: {} - css-loader@7.1.4(webpack@5.108.4): - dependencies: - icss-utils: 5.1.0(postcss@8.5.16) - postcss: 8.5.16 - postcss-modules-extract-imports: 3.1.0(postcss@8.5.16) - postcss-modules-local-by-default: 4.2.0(postcss@8.5.16) - postcss-modules-scope: 3.2.1(postcss@8.5.16) - postcss-modules-values: 4.0.0(postcss@8.5.16) - postcss-value-parser: 4.2.0 - semver: 7.8.5 - optionalDependencies: - webpack: 5.108.4(@swc/core@1.15.41)(clean-css@5.3.3)(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.16)(webpack-cli@7.2.1) - - css-select@4.3.0: - dependencies: - boolbase: 1.0.0 - css-what: 6.2.2 - domhandler: 4.3.1 - domutils: 2.8.0 - nth-check: 2.1.1 - - css-select@5.1.0: - dependencies: - boolbase: 1.0.0 - css-what: 6.2.2 - domhandler: 5.0.3 - domutils: 3.1.0 - nth-check: 2.1.1 - - css-tree@2.2.1: - dependencies: - mdn-data: 2.0.28 - source-map-js: 1.2.1 - - css-tree@2.3.1: - dependencies: - mdn-data: 2.0.30 - source-map-js: 1.2.1 - css-tree@3.2.1: dependencies: mdn-data: 2.27.1 source-map-js: 1.2.1 - css-what@6.2.2: {} - css.escape@1.5.1: {} cssesc@3.0.0: {} - csso@5.0.5: - dependencies: - css-tree: 2.2.1 - cssom@0.3.8: {} cssom@0.5.0: {} @@ -15231,10 +12782,6 @@ snapshots: dependencies: ms: 2.0.0 - debug@3.2.7: - dependencies: - ms: 2.1.3 - debug@4.3.4: dependencies: ms: 2.1.2 @@ -15255,8 +12802,6 @@ snapshots: dependencies: mimic-response: 4.0.0 - dedent@0.7.0: {} - dedent@1.6.0(babel-plugin-macros@3.1.0): optionalDependencies: babel-plugin-macros: 3.1.0 @@ -15290,14 +12835,14 @@ snapshots: delayed-stream@1.0.0: {} - depd@1.1.2: {} - depd@2.0.0: {} dequal@2.0.3: {} destroy@1.2.0: {} + detect-libc@2.1.2: {} + detect-newline@3.1.0: {} devalue@5.8.1: {} @@ -15314,10 +12859,6 @@ snapshots: dependencies: path-type: 4.0.0 - dns-packet@5.6.1: - dependencies: - '@leichtgewicht/ip-codec': 2.0.5 - doctrine@2.1.0: dependencies: esutils: 2.0.3 @@ -15330,16 +12871,6 @@ snapshots: dom-accessibility-api@0.6.3: {} - dom-converter@0.2.0: - dependencies: - utila: 0.4.0 - - dom-serializer@1.4.1: - dependencies: - domelementtype: 2.3.0 - domhandler: 4.3.1 - entities: 2.2.0 - dom-serializer@2.0.0: dependencies: domelementtype: 2.3.0 @@ -15352,10 +12883,6 @@ snapshots: dependencies: webidl-conversions: 7.0.0 - domhandler@4.3.1: - dependencies: - domelementtype: 2.3.0 - domhandler@5.0.3: dependencies: domelementtype: 2.3.0 @@ -15364,18 +12891,6 @@ snapshots: optionalDependencies: '@types/trusted-types': 2.0.7 - domutils@2.8.0: - dependencies: - dom-serializer: 1.4.1 - domelementtype: 2.3.0 - domhandler: 4.3.1 - - domutils@3.1.0: - dependencies: - dom-serializer: 2.0.0 - domelementtype: 2.3.0 - domhandler: 5.0.3 - domutils@3.2.2: dependencies: dom-serializer: 2.0.0 @@ -15397,8 +12912,6 @@ snapshots: dependencies: readable-stream: 2.3.8 - dynamic-import-polyfill@0.1.1: {} - ee-first@1.1.1: {} electron-to-chromium@1.5.286: {} @@ -15413,23 +12926,10 @@ snapshots: emoji-regex@9.2.2: {} - emojis-list@3.0.0: {} + empathic@2.0.1: {} encodeurl@2.0.0: {} - endent@2.1.0: - dependencies: - dedent: 0.7.0 - fast-json-parse: 1.0.3 - objectorarray: 1.0.5 - - enhanced-resolve@5.24.2: - dependencies: - graceful-fs: 4.2.11 - tapable: 2.3.3 - - entities@2.2.0: {} - entities@4.5.0: {} entities@7.0.1: {} @@ -15438,8 +12938,6 @@ snapshots: env-paths@2.2.1: {} - envinfo@7.21.0: {} - error-ex@1.3.4: dependencies: is-arrayish: 0.2.1 @@ -15526,8 +13024,6 @@ snapshots: es-module-lexer@1.7.0: {} - es-module-lexer@2.3.0: {} - es-object-atoms@1.1.1: dependencies: es-errors: 1.3.0 @@ -15734,8 +13230,8 @@ snapshots: eslint: 9.39.1 eslint-import-context: 0.1.9(unrs-resolver@1.11.1) is-glob: 4.0.3 - minimatch: 10.2.4 - semver: 7.8.1 + minimatch: 10.2.5 + semver: 7.8.5 stable-hash-x: 0.2.0 unrs-resolver: 1.11.1 optionalDependencies: @@ -15847,11 +13343,6 @@ snapshots: semver: 7.7.4 strip-indent: 4.1.1 - eslint-scope@5.1.1: - dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 - eslint-scope@8.4.0: dependencies: esrecurse: 4.3.0 @@ -15911,8 +13402,8 @@ snapshots: espree@10.4.0: dependencies: - acorn: 8.16.0 - acorn-jsx: 5.3.2(acorn@8.16.0) + acorn: 8.17.0 + acorn-jsx: 5.3.2(acorn@8.17.0) eslint-visitor-keys: 4.2.1 esprima@4.0.1: {} @@ -15931,8 +13422,6 @@ snapshots: dependencies: estraverse: 5.3.0 - estraverse@4.3.0: {} - estraverse@5.3.0: {} estree-walker@2.0.2: {} @@ -15949,8 +13438,6 @@ snapshots: transitivePeerDependencies: - bare-abort-controller - events@3.3.0: {} - execa@5.1.1: dependencies: cross-spawn: 7.0.6 @@ -16058,8 +13545,6 @@ snapshots: merge2: 1.4.1 micromatch: 4.0.8 - fast-json-parse@1.0.3: {} - fast-json-stable-stringify@2.1.0: {} fast-levenshtein@2.0.6: {} @@ -16147,12 +13632,6 @@ snapshots: transitivePeerDependencies: - supports-color - find-cache-dir@3.3.2: - dependencies: - commondir: 1.0.1 - make-dir: 3.1.0 - pkg-dir: 4.2.0 - find-root@1.1.0: {} find-up-simple@1.0.1: {} @@ -16176,12 +13655,6 @@ snapshots: dependencies: traverse-chain: 0.1.0 - flat-cache@3.2.0: - dependencies: - flatted: 3.4.2 - keyv: 4.5.4 - rimraf: 3.0.2 - flat-cache@4.0.1: dependencies: flatted: 3.4.2 @@ -16193,31 +13666,12 @@ snapshots: flatted: 3.4.2 hookified: 1.15.1 - flat@5.0.2: {} - flatted@3.4.2: {} for-each@0.3.5: dependencies: is-callable: 1.2.7 - fork-ts-checker-webpack-plugin@9.1.0(typescript@6.0.3)(webpack@5.108.4): - dependencies: - '@babel/code-frame': 7.29.0 - chalk: 4.1.2 - chokidar: 4.0.3 - cosmiconfig: 8.3.6(typescript@6.0.3) - deepmerge: 4.3.1 - fs-extra: 10.1.0 - memfs: 3.5.3 - minimatch: 3.1.5 - node-abort-controller: 3.1.1 - schema-utils: 3.3.0 - semver: 7.5.4 - tapable: 2.3.3 - typescript: 6.0.3 - webpack: 5.108.4(@swc/core@1.15.41)(clean-css@5.3.3)(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.16)(webpack-cli@7.2.1) - form-data-encoder@4.1.0: {} form-data@4.0.6: @@ -16248,8 +13702,6 @@ snapshots: jsonfile: 4.0.0 universalify: 0.1.2 - fs-monkey@1.1.0: {} - fs.realpath@1.0.0: {} fsevents@2.3.2: @@ -16268,7 +13720,7 @@ snapshots: call-bound: 1.0.4 define-properties: 1.2.1 functions-have-names: 1.2.3 - hasown: 2.0.3 + hasown: 2.0.4 is-callable: 1.2.7 functions-have-names@1.2.3: {} @@ -16339,9 +13791,11 @@ snapshots: dependencies: is-glob: 4.0.3 - glob-to-regex.js@1.2.0(tslib@2.6.2): + glob@13.0.6: dependencies: - tslib: 2.6.2 + minimatch: 10.2.5 + minipass: 7.1.3 + path-scurry: 2.0.2 glob@7.2.3: dependencies: @@ -16443,10 +13897,6 @@ snapshots: dependencies: function-bind: 1.1.2 - hasown@2.0.3: - dependencies: - function-bind: 1.1.2 - hasown@2.0.4: dependencies: function-bind: 1.1.2 @@ -16563,22 +14013,8 @@ snapshots: transitivePeerDependencies: - '@noble/hashes' - html-entities@2.4.0: {} - html-escaper@2.0.2: {} - html-escaper@3.0.3: {} - - html-minifier-terser@6.1.0: - dependencies: - camel-case: 4.1.2 - clean-css: 5.3.3 - commander: 8.3.0 - he: 1.2.0 - param-case: 3.0.4 - relateurl: 0.2.7 - terser: 5.49.0 - html-minifier-terser@7.2.0: dependencies: camel-case: 4.1.2 @@ -16601,16 +14037,6 @@ snapshots: html-void-elements@3.0.0: {} - html-webpack-plugin@5.6.6(webpack@5.108.4): - dependencies: - '@types/html-minifier-terser': 6.1.0 - html-minifier-terser: 6.1.0 - lodash: 4.18.1 - pretty-error: 4.0.0 - tapable: 2.3.3 - optionalDependencies: - webpack: 5.108.4(@swc/core@1.15.41)(clean-css@5.3.3)(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.16)(webpack-cli@7.2.1) - htmlparser2@10.1.0: dependencies: domelementtype: 2.3.0 @@ -16618,23 +14044,8 @@ snapshots: domutils: 3.2.2 entities: 7.0.1 - htmlparser2@6.1.0: - dependencies: - domelementtype: 2.3.0 - domhandler: 4.3.1 - domutils: 2.8.0 - entities: 2.2.0 - http-cache-semantics@4.2.0: {} - http-errors@1.8.1: - dependencies: - depd: 1.1.2 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 1.5.0 - toidentifier: 1.0.1 - http-errors@2.0.1: dependencies: depd: 2.0.0 @@ -16651,16 +14062,6 @@ snapshots: transitivePeerDependencies: - supports-color - http-proxy-middleware@4.2.0: - dependencies: - debug: 4.4.3 - httpxy: 0.5.4 - is-glob: 4.0.3 - is-plain-obj: 4.1.0 - micromatch: 4.0.8 - transitivePeerDependencies: - - supports-color - http2-wrapper@2.2.1: dependencies: quick-lru: 5.1.1 @@ -16673,8 +14074,6 @@ snapshots: transitivePeerDependencies: - supports-color - httpxy@0.5.4: {} - human-signals@2.1.0: {} human-signals@5.0.0: {} @@ -16683,8 +14082,6 @@ snapshots: husky@9.1.7: {} - hyperdyperid@1.2.0: {} - iconv-lite@0.4.24: dependencies: safer-buffer: 2.1.2 @@ -16697,10 +14094,6 @@ snapshots: dependencies: safer-buffer: 2.1.2 - icss-utils@5.1.0(postcss@8.5.16): - dependencies: - postcss: 8.5.16 - ieee754@1.2.1: {} ignore@5.3.2: {} @@ -16744,12 +14137,8 @@ snapshots: hasown: 2.0.2 side-channel: 1.1.0 - interpret@3.1.1: {} - ipaddr.js@1.9.1: {} - ipaddr.js@2.4.0: {} - is-array-buffer@3.0.5: dependencies: call-bind: 1.0.8 @@ -16791,7 +14180,7 @@ snapshots: is-core-module@2.16.2: dependencies: - hasown: 2.0.3 + hasown: 2.0.4 is-data-view@1.0.2: dependencies: @@ -16848,8 +14237,6 @@ snapshots: is-negative-zero@2.0.3: {} - is-network-error@1.3.2: {} - is-number-object@1.1.1: dependencies: call-bound: 1.0.4 @@ -16861,10 +14248,6 @@ snapshots: is-plain-obj@4.1.0: {} - is-plain-object@2.0.4: - dependencies: - isobject: 3.0.1 - is-plain-object@5.0.0: {} is-potential-custom-element-name@1.0.1: {} @@ -16944,8 +14327,6 @@ snapshots: isexe@4.0.0: {} - isobject@3.0.1: {} - istanbul-lib-coverage@3.2.2: {} istanbul-lib-instrument@5.2.1: @@ -17303,12 +14684,6 @@ snapshots: jest-util: 29.7.0 string-length: 4.0.2 - jest-worker@27.5.1: - dependencies: - '@types/node': 24.12.4 - merge-stream: 2.0.0 - supports-color: 8.1.1 - jest-worker@29.7.0: dependencies: '@types/node': 24.12.4 @@ -17459,11 +14834,6 @@ snapshots: dependencies: language-subtag-registry: 0.3.22 - launch-editor@2.14.1: - dependencies: - picocolors: 1.1.1 - shell-quote: 1.9.0 - launder@1.7.1: dependencies: dayjs: 1.11.20 @@ -17475,6 +14845,55 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 + lightningcss-android-arm64@1.32.0: + optional: true + + lightningcss-darwin-arm64@1.32.0: + optional: true + + lightningcss-darwin-x64@1.32.0: + optional: true + + lightningcss-freebsd-x64@1.32.0: + optional: true + + lightningcss-linux-arm-gnueabihf@1.32.0: + optional: true + + lightningcss-linux-arm64-gnu@1.32.0: + optional: true + + lightningcss-linux-arm64-musl@1.32.0: + optional: true + + lightningcss-linux-x64-gnu@1.32.0: + optional: true + + lightningcss-linux-x64-musl@1.32.0: + optional: true + + lightningcss-win32-arm64-msvc@1.32.0: + optional: true + + lightningcss-win32-x64-msvc@1.32.0: + optional: true + + lightningcss@1.32.0: + dependencies: + detect-libc: 2.1.2 + optionalDependencies: + lightningcss-android-arm64: 1.32.0 + lightningcss-darwin-arm64: 1.32.0 + lightningcss-darwin-x64: 1.32.0 + lightningcss-freebsd-x64: 1.32.0 + lightningcss-linux-arm-gnueabihf: 1.32.0 + lightningcss-linux-arm64-gnu: 1.32.0 + lightningcss-linux-arm64-musl: 1.32.0 + lightningcss-linux-x64-gnu: 1.32.0 + lightningcss-linux-x64-musl: 1.32.0 + lightningcss-win32-arm64-msvc: 1.32.0 + lightningcss-win32-x64-msvc: 1.32.0 + lilconfig@3.0.0: {} lines-and-columns@1.2.4: {} @@ -17503,14 +14922,6 @@ snapshots: rfdc: 1.3.0 wrap-ansi: 9.0.2 - loader-runner@4.3.2: {} - - loader-utils@1.4.2: - dependencies: - big.js: 5.2.2 - emojis-list: 3.0.0 - json5: 1.0.2 - locate-character@3.0.0: {} locate-path@5.0.0: @@ -17581,10 +14992,6 @@ snapshots: type-fest: 4.41.0 web-worker: 1.5.0 - make-dir@3.1.0: - dependencies: - semver: 6.3.1 - make-dir@4.0.0: dependencies: semver: 7.5.4 @@ -17632,37 +15039,12 @@ snapshots: dependencies: '@types/mdast': 4.0.4 - mdn-data@2.0.28: {} - - mdn-data@2.0.30: {} - mdn-data@2.27.1: {} media-typer@0.3.0: {} media-typer@1.1.0: {} - memfs@3.5.3: - dependencies: - fs-monkey: 1.1.0 - - memfs@4.64.0(tslib@2.6.2): - dependencies: - '@jsonjoy.com/fs-core': 4.64.0(tslib@2.6.2) - '@jsonjoy.com/fs-fsa': 4.64.0(tslib@2.6.2) - '@jsonjoy.com/fs-node': 4.64.0(tslib@2.6.2) - '@jsonjoy.com/fs-node-builtins': 4.64.0(tslib@2.6.2) - '@jsonjoy.com/fs-node-to-fsa': 4.64.0(tslib@2.6.2) - '@jsonjoy.com/fs-node-utils': 4.64.0(tslib@2.6.2) - '@jsonjoy.com/fs-print': 4.64.0(tslib@2.6.2) - '@jsonjoy.com/fs-snapshot': 4.64.0(tslib@2.6.2) - '@jsonjoy.com/json-pack': 1.21.0(tslib@2.6.2) - '@jsonjoy.com/util': 1.9.0(tslib@2.6.2) - glob-to-regex.js: 1.2.0(tslib@2.6.2) - thingies: 2.6.0(tslib@2.6.2) - tree-dump: 1.1.0(tslib@2.6.2) - tslib: 2.6.2 - meow@13.2.0: {} merge-descriptors@2.0.0: {} @@ -17838,7 +15220,7 @@ snapshots: minimatch@10.2.4: dependencies: - brace-expansion: 5.0.3 + brace-expansion: 5.0.6 minimatch@10.2.5: dependencies: @@ -17854,19 +15236,7 @@ snapshots: minimist@1.2.8: {} - minimizer-webpack-plugin@5.6.1(@swc/core@1.15.41)(clean-css@5.3.3)(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.16)(webpack@5.108.4): - dependencies: - '@jridgewell/trace-mapping': 0.3.31 - jest-worker: 27.5.1 - schema-utils: 4.3.3 - terser: 5.49.0 - webpack: 5.108.4(@swc/core@1.15.41)(clean-css@5.3.3)(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.16)(webpack-cli@7.2.1) - optionalDependencies: - '@swc/core': 1.15.41 - clean-css: 5.3.3 - esbuild: 0.28.1 - html-minifier-terser: 7.2.0 - postcss: 8.5.16 + minipass@7.1.3: {} mockdate@3.0.5: {} @@ -17880,11 +15250,6 @@ snapshots: ms@2.1.3: {} - multicast-dns@7.2.5: - dependencies: - dns-packet: 5.6.1 - thunky: 1.1.0 - multipipe@1.0.2: dependencies: duplexer2: 0.1.4 @@ -17902,18 +15267,12 @@ snapshots: negotiator@0.6.3: {} - negotiator@0.6.4: {} - negotiator@1.0.0: {} - neo-async@2.6.2: {} - no-case@3.0.4: dependencies: lower-case: 2.0.2 - tslib: 2.6.2 - - node-abort-controller@3.1.1: {} + tslib: 2.8.1 node-domexception@1.0.0: {} @@ -17959,10 +15318,6 @@ snapshots: path-key: 4.0.0 unicorn-magic: 0.3.0 - nth-check@2.1.1: - dependencies: - boolbase: 1.0.0 - nwsapi@2.2.23: {} object-assign@4.1.1: {} @@ -18003,8 +15358,6 @@ snapshots: define-properties: 1.2.1 es-object-atoms: 1.1.1 - objectorarray@1.0.5: {} - obug@2.1.2: {} on-finished@2.4.1: @@ -18013,8 +15366,6 @@ snapshots: on-headers@1.0.2: {} - on-headers@1.1.0: {} - once@1.4.0: dependencies: wrappy: 1.0.2 @@ -18043,8 +15394,6 @@ snapshots: powershell-utils: 0.1.0 wsl-utils: 0.3.1 - opener@1.5.2: {} - optionator@0.9.3: dependencies: '@aashutoshrathi/word-wrap': 1.2.6 @@ -18092,10 +15441,6 @@ snapshots: p-map@6.0.0: {} - p-retry@8.0.0: - dependencies: - is-network-error: 1.3.2 - p-timeout@6.1.2: {} p-try@2.2.0: {} @@ -18166,6 +15511,11 @@ snapshots: path-parse@1.0.7: {} + path-scurry@2.0.2: + dependencies: + lru-cache: 11.5.1 + minipass: 7.1.3 + path-to-regexp@8.4.1: {} path-type@4.0.0: {} @@ -18194,15 +15544,6 @@ snapshots: dependencies: find-up: 4.1.0 - pkijs@3.4.0: - dependencies: - '@noble/hashes': 1.4.0 - asn1js: 3.0.10 - bytestreamjs: 2.0.1 - pvtsutils: 1.3.6 - pvutils: 1.1.5 - tslib: 2.8.1 - playwright-core@1.60.0: {} playwright@1.60.0: @@ -18215,27 +15556,6 @@ snapshots: possible-typed-array-names@1.1.0: {} - postcss-modules-extract-imports@3.1.0(postcss@8.5.16): - dependencies: - postcss: 8.5.16 - - postcss-modules-local-by-default@4.2.0(postcss@8.5.16): - dependencies: - icss-utils: 5.1.0(postcss@8.5.16) - postcss: 8.5.16 - postcss-selector-parser: 7.1.4 - postcss-value-parser: 4.2.0 - - postcss-modules-scope@3.2.1(postcss@8.5.16): - dependencies: - postcss: 8.5.16 - postcss-selector-parser: 7.1.4 - - postcss-modules-values@4.0.0(postcss@8.5.16): - dependencies: - icss-utils: 5.1.0(postcss@8.5.16) - postcss: 8.5.16 - postcss-resolve-nested-selector@0.1.6: {} postcss-safe-parser@7.0.1(postcss@8.5.6): @@ -18247,11 +15567,6 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-selector-parser@7.1.4: - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - postcss-styled-syntax@0.7.1(postcss@8.5.16): dependencies: postcss: 8.5.16 @@ -18259,6 +15574,12 @@ snapshots: postcss-value-parser@4.2.0: {} + postcss@8.5.14: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + postcss@8.5.15: dependencies: nanoid: 3.3.13 @@ -18279,7 +15600,7 @@ snapshots: postcss@8.5.9: dependencies: - nanoid: 3.3.11 + nanoid: 3.3.13 picocolors: 1.1.1 source-map-js: 1.2.1 @@ -18300,11 +15621,6 @@ snapshots: prettier@3.8.3: {} - pretty-error@4.0.0: - dependencies: - lodash: 4.18.1 - renderkid: 3.0.0 - pretty-format@27.5.1: dependencies: ansi-regex: 5.0.1 @@ -18336,12 +15652,6 @@ snapshots: object-assign: 4.1.1 react-is: 16.13.1 - proper-lockfile@4.1.2: - dependencies: - graceful-fs: 4.2.11 - retry: 0.12.0 - signal-exit: 3.0.7 - property-information@6.4.0: {} protocols@2.0.2: {} @@ -18359,12 +15669,6 @@ snapshots: pure-rand@6.0.4: {} - pvtsutils@1.3.6: - dependencies: - tslib: 2.8.1 - - pvutils@1.1.5: {} - qified@0.9.0: dependencies: hookified: 2.1.0 @@ -18381,8 +15685,6 @@ snapshots: range-parser@1.2.1: {} - range-parser@1.3.0: {} - raw-body@2.5.3: dependencies: bytes: 3.1.2 @@ -18407,21 +15709,6 @@ snapshots: dependencies: typescript: 6.0.3 - react-docgen@7.1.1: - dependencies: - '@babel/core': 7.29.0 - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 - '@types/babel__core': 7.20.5 - '@types/babel__traverse': 7.28.0 - '@types/doctrine': 0.0.9 - '@types/resolve': 1.20.6 - doctrine: 3.0.0 - resolve: 1.22.12 - strip-indent: 4.1.1 - transitivePeerDependencies: - - supports-color - react-docgen@8.0.2: dependencies: '@babel/core': 7.29.0 @@ -18505,8 +15792,6 @@ snapshots: readdirp@4.1.2: {} - readdirp@5.0.0: {} - recast@0.23.11: dependencies: ast-types: 0.16.1 @@ -18515,17 +15800,11 @@ snapshots: tiny-invariant: 1.3.3 tslib: 2.8.1 - rechoir@0.8.0: - dependencies: - resolve: 1.22.12 - redent@3.0.0: dependencies: indent-string: 4.0.0 strip-indent: 3.0.0 - reflect-metadata@0.2.2: {} - reflect.getprototypeof@1.0.10: dependencies: call-bind: 1.0.8 @@ -18537,12 +15816,6 @@ snapshots: get-proto: 1.0.1 which-builtin-type: 1.2.1 - regenerate-unicode-properties@10.2.2: - dependencies: - regenerate: 1.4.2 - - regenerate@1.4.2: {} - regexp-tree@0.1.27: {} regexp.prototype.flags@1.5.4: @@ -18554,17 +15827,6 @@ snapshots: gopd: 1.2.0 set-function-name: 2.0.2 - regexpu-core@6.4.0: - dependencies: - regenerate: 1.4.2 - regenerate-unicode-properties: 10.2.2 - regjsgen: 0.8.0 - regjsparser: 0.13.0 - unicode-match-property-ecmascript: 2.0.0 - unicode-match-property-value-ecmascript: 2.2.1 - - regjsgen@0.8.0: {} - regjsparser@0.13.0: dependencies: jsesc: 3.1.0 @@ -18611,14 +15873,6 @@ snapshots: unified: 11.0.5 vfile: 6.0.3 - renderkid@3.0.0: - dependencies: - css-select: 4.3.0 - dom-converter: 0.2.0 - htmlparser2: 6.1.0 - lodash: 4.18.1 - strip-ansi: 6.0.1 - require-directory@2.1.1: {} require-from-string@2.0.2: {} @@ -18661,15 +15915,30 @@ snapshots: onetime: 5.1.2 signal-exit: 3.0.7 - retry@0.12.0: {} - reusify@1.0.4: {} rfdc@1.3.0: {} - rimraf@3.0.2: + rolldown@1.0.0-rc.18: dependencies: - glob: 7.2.3 + '@oxc-project/types': 0.128.0 + '@rolldown/pluginutils': 1.0.0-rc.18 + optionalDependencies: + '@rolldown/binding-android-arm64': 1.0.0-rc.18 + '@rolldown/binding-darwin-arm64': 1.0.0-rc.18 + '@rolldown/binding-darwin-x64': 1.0.0-rc.18 + '@rolldown/binding-freebsd-x64': 1.0.0-rc.18 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-rc.18 + '@rolldown/binding-linux-arm64-gnu': 1.0.0-rc.18 + '@rolldown/binding-linux-arm64-musl': 1.0.0-rc.18 + '@rolldown/binding-linux-ppc64-gnu': 1.0.0-rc.18 + '@rolldown/binding-linux-s390x-gnu': 1.0.0-rc.18 + '@rolldown/binding-linux-x64-gnu': 1.0.0-rc.18 + '@rolldown/binding-linux-x64-musl': 1.0.0-rc.18 + '@rolldown/binding-openharmony-arm64': 1.0.0-rc.18 + '@rolldown/binding-wasm32-wasi': 1.0.0-rc.18 + '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.18 + '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.18 rollup-plugin-esbuild@6.2.1(esbuild@0.28.1)(rollup@4.59.0): dependencies: @@ -18682,6 +15951,16 @@ snapshots: transitivePeerDependencies: - supports-color + rollup-plugin-visualizer@7.0.1(rolldown@1.0.0-rc.18)(rollup@4.62.0): + dependencies: + open: 11.0.0 + picomatch: 4.0.4 + source-map: 0.7.4 + yargs: 18.0.0 + optionalDependencies: + rolldown: 1.0.0-rc.18 + rollup: 4.62.0 + rollup@4.59.0: dependencies: '@types/estree': 1.0.8 @@ -18774,8 +16053,6 @@ snapshots: safe-buffer@5.1.2: {} - safe-buffer@5.2.1: {} - safe-push-apply@1.0.0: dependencies: es-errors: 1.3.0 @@ -18801,8 +16078,6 @@ snapshots: parse-srcset: 1.0.2 postcss: 8.5.9 - sax@1.6.0: {} - saxes@6.0.0: dependencies: xmlchars: 2.2.0 @@ -18811,30 +16086,12 @@ snapshots: dependencies: loose-envify: 1.4.0 - schema-utils@3.3.0: - dependencies: - '@types/json-schema': 7.0.15 - ajv: 6.15.0 - ajv-keywords: 3.5.2(ajv@6.15.0) - - schema-utils@4.3.3: - dependencies: - '@types/json-schema': 7.0.15 - ajv: 8.18.0 - ajv-formats: 2.1.1(ajv@8.18.0) - ajv-keywords: 5.1.0(ajv@8.18.0) - screenfull@6.0.2: {} seek-bzip@2.0.0: dependencies: commander: 6.2.1 - selfsigned@5.5.0: - dependencies: - '@peculiar/x509': 1.14.3 - pkijs: 3.4.0 - semver-regex@4.0.5: {} semver-truncate@3.0.0: @@ -18851,8 +16108,6 @@ snapshots: semver@7.7.4: {} - semver@7.8.1: {} - semver@7.8.5: {} send@1.2.1: @@ -18871,18 +16126,6 @@ snapshots: transitivePeerDependencies: - supports-color - serve-index@1.9.2: - dependencies: - accepts: 1.3.8 - batch: 0.6.1 - debug: 2.6.9 - escape-html: 1.0.3 - http-errors: 1.8.1 - mime-types: 2.1.35 - parseurl: 1.3.3 - transitivePeerDependencies: - - supports-color - serve-static@2.2.1: dependencies: encodeurl: 2.0.0 @@ -18918,18 +16161,12 @@ snapshots: setprototypeof@1.2.0: {} - shallow-clone@3.0.1: - dependencies: - kind-of: 6.0.3 - shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 shebang-regex@3.0.0: {} - shell-quote@1.9.0: {} - side-channel-list@1.0.0: dependencies: es-errors: 1.3.0 @@ -19045,8 +16282,6 @@ snapshots: dependencies: escape-string-regexp: 2.0.0 - statuses@1.5.0: {} - statuses@2.0.2: {} stop-iteration-iterator@1.1.0: @@ -19213,10 +16448,6 @@ snapshots: dependencies: '@tokenizer/token': 0.3.0 - style-loader@4.0.0(webpack@5.108.4): - dependencies: - webpack: 5.108.4(@swc/core@1.15.41)(clean-css@5.3.3)(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.16)(webpack-cli@7.2.1) - stylelint-config-recommended@14.0.0(stylelint@16.26.1(typescript@6.0.3)): dependencies: stylelint: 16.26.1(typescript@6.0.3) @@ -19333,22 +16564,6 @@ snapshots: svg-tags@1.0.0: {} - svgo@3.3.3: - dependencies: - commander: 7.2.0 - css-select: 5.1.0 - css-tree: 2.3.1 - css-what: 6.2.2 - csso: 5.0.5 - picocolors: 1.1.1 - sax: 1.6.0 - - swc-loader@0.2.7(@swc/core@1.15.41)(webpack@5.108.4): - dependencies: - '@swc/core': 1.15.41 - '@swc/counter': 0.1.3 - webpack: 5.108.4(@swc/core@1.15.41)(clean-css@5.3.3)(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.16)(webpack-cli@7.2.1) - swr@1.3.0(react@18.3.1): dependencies: react: 18.3.1 @@ -19371,10 +16586,6 @@ snapshots: tagged-tag@1.0.0: {} - tapable@2.3.0: {} - - tapable@2.3.3: {} - tar-stream@3.1.7: dependencies: b4a: 1.8.1 @@ -19384,17 +16595,6 @@ snapshots: - bare-abort-controller - react-native-b4a - terser-webpack-plugin@5.4.0(@swc/core@1.15.41)(esbuild@0.28.1)(webpack@5.108.4): - dependencies: - '@jridgewell/trace-mapping': 0.3.31 - jest-worker: 27.5.1 - schema-utils: 4.3.3 - terser: 5.49.0 - webpack: 5.108.4(@swc/core@1.15.41)(clean-css@5.3.3)(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.16)(webpack-cli@7.2.1) - optionalDependencies: - '@swc/core': 1.15.41 - esbuild: 0.28.1 - terser@5.46.0: dependencies: '@jridgewell/source-map': 0.3.11 @@ -19402,13 +16602,6 @@ snapshots: commander: 2.20.3 source-map-support: 0.5.21 - terser@5.49.0: - dependencies: - '@jridgewell/source-map': 0.3.11 - acorn: 8.17.0 - commander: 2.20.3 - source-map-support: 0.5.21 - test-exclude@6.0.0: dependencies: '@istanbuljs/schema': 0.1.3 @@ -19421,10 +16614,6 @@ snapshots: transitivePeerDependencies: - react-native-b4a - thingies@2.6.0(tslib@2.6.2): - dependencies: - tslib: 2.6.2 - through2@0.4.2: dependencies: readable-stream: 1.0.34 @@ -19432,8 +16621,6 @@ snapshots: through@2.3.8: {} - thunky@1.1.0: {} - time-span@5.1.0: dependencies: convert-hrtime: 5.0.0 @@ -19466,10 +16653,6 @@ snapshots: dependencies: is-number: 7.0.0 - to-string-loader@1.2.0: - dependencies: - loader-utils: 1.4.2 - toidentifier@1.0.1: {} token-types@6.1.2: @@ -19501,10 +16684,6 @@ snapshots: traverse-chain@0.1.0: {} - tree-dump@1.1.0(tslib@2.6.2): - dependencies: - tslib: 2.6.2 - trim-lines@3.0.1: {} trough@2.1.0: {} @@ -19577,8 +16756,6 @@ snapshots: minimist: 1.2.8 strip-bom: 3.0.0 - tslib@1.14.1: {} - tslib@2.6.2: {} tslib@2.8.1: {} @@ -19590,10 +16767,6 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - tsyringe@4.10.0: - dependencies: - tslib: 1.14.1 - type-check@0.4.0: dependencies: prelude-ls: 1.2.1 @@ -19709,17 +16882,6 @@ snapshots: undici@7.28.0: {} - unicode-canonical-property-names-ecmascript@2.0.1: {} - - unicode-match-property-ecmascript@2.0.0: - dependencies: - unicode-canonical-property-names-ecmascript: 2.0.1 - unicode-property-aliases-ecmascript: 2.2.0 - - unicode-match-property-value-ecmascript@2.2.1: {} - - unicode-property-aliases-ecmascript@2.2.0: {} - unicorn-magic@0.3.0: {} unicorn-magic@0.4.0: {} @@ -19838,8 +17000,6 @@ snapshots: util-deprecate@1.0.2: {} - utila@0.4.0: {} - v8-compile-cache-lib@3.0.1: {} v8-to-istanbul@9.2.0: @@ -19872,7 +17032,18 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite@6.4.3(@types/node@24.12.4)(terser@5.49.0)(tsx@4.6.2): + vite-plugin-svgr@5.2.0(rollup@4.62.0)(typescript@6.0.3)(vite@8.0.11(@types/node@24.12.4)(esbuild@0.28.1)(terser@5.46.0)(tsx@4.6.2)): + dependencies: + '@rollup/pluginutils': 5.3.0(rollup@4.62.0) + '@svgr/core': 8.1.0(typescript@6.0.3) + '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@6.0.3)) + vite: 8.0.11(@types/node@24.12.4)(esbuild@0.28.1)(terser@5.46.0)(tsx@4.6.2) + transitivePeerDependencies: + - rollup + - supports-color + - typescript + + vite@6.4.3(@types/node@24.12.4)(lightningcss@1.32.0)(terser@5.46.0): dependencies: esbuild: 0.25.12 fdir: 6.5.0(picomatch@4.0.4) @@ -19883,12 +17054,26 @@ snapshots: optionalDependencies: '@types/node': 24.12.4 fsevents: 2.3.3 - terser: 5.49.0 + lightningcss: 1.32.0 + terser: 5.46.0 + + vite@8.0.11(@types/node@24.12.4)(esbuild@0.28.1)(terser@5.46.0)(tsx@4.6.2): + dependencies: + lightningcss: 1.32.0 + picomatch: 4.0.4 + postcss: 8.5.14 + rolldown: 1.0.0-rc.18 + tinyglobby: 0.2.16 + optionalDependencies: + '@types/node': 24.12.4 + esbuild: 0.28.1 + fsevents: 2.3.3 + terser: 5.46.0 tsx: 4.6.2 - vitefu@1.1.3(vite@6.4.3(@types/node@24.12.4)(terser@5.49.0)): + vitefu@1.1.3(vite@6.4.3(@types/node@24.12.4)(lightningcss@1.32.0)(terser@5.46.0)): optionalDependencies: - vite: 6.4.3(@types/node@24.12.4)(terser@5.49.0)(tsx@4.6.2) + vite: 6.4.3(@types/node@24.12.4)(lightningcss@1.32.0)(terser@5.46.0) w3c-xmlserializer@4.0.0: dependencies: @@ -19902,10 +17087,6 @@ snapshots: dependencies: makeerror: 1.0.12 - watchpack@2.5.2: - dependencies: - graceful-fs: 4.2.11 - web-namespaces@2.0.1: {} web-streams-polyfill@3.3.3: {} @@ -19918,188 +17099,8 @@ snapshots: webidl-conversions@8.0.1: {} - webpack-assets-manifest@6.5.2(webpack@5.108.4): - dependencies: - deepmerge: 4.3.1 - proper-lockfile: 4.1.2 - schema-utils: 4.3.3 - tapable: 2.3.3 - webpack: 5.108.4(@swc/core@1.15.41)(clean-css@5.3.3)(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.16)(webpack-cli@7.2.1) - - webpack-bundle-analyzer@5.3.0: - dependencies: - '@discoveryjs/json-ext': 0.6.3 - acorn: 8.17.0 - acorn-walk: 8.3.5 - commander: 14.0.3 - escape-string-regexp: 5.0.0 - html-escaper: 3.0.3 - opener: 1.5.2 - picocolors: 1.1.1 - sirv: 3.0.2 - ws: 8.21.0 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - - webpack-cli@7.2.1(js-yaml@4.1.1)(json5@2.2.3)(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@6.0.0)(webpack@5.108.4): - dependencies: - '@discoveryjs/json-ext': 1.1.0 - commander: 14.0.3 - cross-spawn: 7.0.6 - envinfo: 7.21.0 - import-local: 3.2.0 - interpret: 3.1.1 - rechoir: 0.8.0 - webpack: 5.108.4(@swc/core@1.15.41)(clean-css@5.3.3)(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.16)(webpack-cli@7.2.1) - webpack-merge: 6.0.1 - optionalDependencies: - js-yaml: 4.1.1 - json5: 2.2.3 - webpack-bundle-analyzer: 5.3.0 - webpack-dev-server: 6.0.0(tslib@2.6.2)(webpack-cli@7.2.1)(webpack@5.108.4) - - webpack-dev-middleware@6.1.3(webpack@5.108.4): - dependencies: - colorette: 2.0.20 - memfs: 3.5.3 - mime-types: 2.1.35 - range-parser: 1.3.0 - schema-utils: 4.3.3 - optionalDependencies: - webpack: 5.108.4(@swc/core@1.15.41)(clean-css@5.3.3)(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.16)(webpack-cli@7.2.1) - - webpack-dev-middleware@8.0.3(tslib@2.6.2)(webpack@5.108.4): - dependencies: - memfs: 4.64.0(tslib@2.6.2) - mime-types: 3.0.2 - on-finished: 2.4.1 - range-parser: 1.3.0 - schema-utils: 4.3.3 - optionalDependencies: - webpack: 5.108.4(@swc/core@1.15.41)(clean-css@5.3.3)(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.16)(webpack-cli@7.2.1) - transitivePeerDependencies: - - tslib - - webpack-dev-server@6.0.0(tslib@2.6.2)(webpack-cli@7.2.1)(webpack@5.108.4): - dependencies: - '@types/bonjour': 3.5.13 - '@types/connect-history-api-fallback': 1.5.4 - '@types/express': 5.0.6 - '@types/express-serve-static-core': 5.1.2 - '@types/serve-index': 1.9.4 - '@types/serve-static': 2.2.0 - '@types/ws': 8.18.1 - ansi-html-community: 0.0.8 - bonjour-service: 1.4.2 - chokidar: 5.0.0 - compression: 1.8.1 - connect-history-api-fallback: 2.0.0 - express: 5.2.1 - graceful-fs: 4.2.11 - http-proxy-middleware: 4.2.0 - ipaddr.js: 2.4.0 - launch-editor: 2.14.1 - open: 11.0.0 - p-retry: 8.0.0 - schema-utils: 4.3.3 - selfsigned: 5.5.0 - serve-index: 1.9.2 - tinyglobby: 0.2.17 - webpack-dev-middleware: 8.0.3(tslib@2.6.2)(webpack@5.108.4) - ws: 8.21.0 - optionalDependencies: - webpack: 5.108.4(@swc/core@1.15.41)(clean-css@5.3.3)(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.16)(webpack-cli@7.2.1) - webpack-cli: 7.2.1(js-yaml@4.1.1)(json5@2.2.3)(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@6.0.0)(webpack@5.108.4) - transitivePeerDependencies: - - bufferutil - - supports-color - - tslib - - utf-8-validate - - webpack-format-messages@2.0.6: - dependencies: - kleur: 3.0.3 - - webpack-hot-middleware@2.26.1: - dependencies: - ansi-html-community: 0.0.8 - html-entities: 2.4.0 - strip-ansi: 6.0.1 - - webpack-hot-server-middleware@0.6.1(webpack@5.108.4): - dependencies: - debug: 3.2.7 - require-from-string: 2.0.2 - source-map-support: 0.5.21 - webpack: 5.108.4(@swc/core@1.15.41)(clean-css@5.3.3)(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.16)(webpack-cli@7.2.1) - transitivePeerDependencies: - - supports-color - - webpack-manifest-plugin@6.0.1(webpack@5.108.4): - dependencies: - tapable: 2.3.0 - webpack: 5.108.4(@swc/core@1.15.41)(clean-css@5.3.3)(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.16)(webpack-cli@7.2.1) - webpack-sources: 3.5.1 - - webpack-merge@6.0.1: - dependencies: - clone-deep: 4.0.1 - flat: 5.0.2 - wildcard: 2.0.1 - - webpack-messages@2.0.4: - dependencies: - console-clear: 1.1.1 - kleur: 3.0.3 - webpack-format-messages: 2.0.6 - - webpack-node-externals@3.0.0: {} - - webpack-sources@3.5.1: {} - webpack-virtual-modules@0.6.2: {} - webpack@5.108.4(@swc/core@1.15.41)(clean-css@5.3.3)(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.16)(webpack-cli@7.2.1): - dependencies: - '@types/estree': 1.0.9 - '@types/json-schema': 7.0.15 - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/wasm-edit': 1.14.1 - '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.17.0 - acorn-import-phases: 1.0.4(acorn@8.17.0) - browserslist: 4.28.5 - chrome-trace-event: 1.0.4 - enhanced-resolve: 5.24.2 - es-module-lexer: 2.3.0 - eslint-scope: 5.1.1 - events: 3.3.0 - graceful-fs: 4.2.11 - loader-runner: 4.3.2 - mime-db: 1.54.0 - minimizer-webpack-plugin: 5.6.1(@swc/core@1.15.41)(clean-css@5.3.3)(esbuild@0.28.1)(html-minifier-terser@7.2.0)(postcss@8.5.16)(webpack@5.108.4) - neo-async: 2.6.2 - schema-utils: 4.3.3 - tapable: 2.3.3 - watchpack: 2.5.2 - webpack-sources: 3.5.1 - optionalDependencies: - webpack-cli: 7.2.1(js-yaml@4.1.1)(json5@2.2.3)(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@6.0.0)(webpack@5.108.4) - transitivePeerDependencies: - - '@minify-html/node' - - '@swc/core' - - '@swc/css' - - '@swc/html' - - clean-css - - cssnano - - csso - - esbuild - - html-minifier-terser - - lightningcss - - postcss - - uglify-js - whatwg-encoding@2.0.0: dependencies: iconv-lite: 0.6.3 @@ -20170,8 +17171,6 @@ snapshots: dependencies: isexe: 2.0.0 - wildcard@2.0.1: {} - wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 @@ -20231,6 +17230,8 @@ snapshots: yargs-parser@21.1.1: {} + yargs-parser@22.0.0: {} + yargs@17.7.2: dependencies: cliui: 8.0.1 @@ -20241,6 +17242,15 @@ snapshots: y18n: 5.0.8 yargs-parser: 21.1.1 + yargs@18.0.0: + dependencies: + cliui: 9.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + string-width: 7.2.0 + y18n: 5.0.8 + yargs-parser: 22.0.0 + yauzl@3.4.0: dependencies: pend: 1.2.0