diff --git a/.github/workflows/e2e-tests.yml b/.github/workflows/e2e-tests.yml index 048dbc5..481bc44 100644 --- a/.github/workflows/e2e-tests.yml +++ b/.github/workflows/e2e-tests.yml @@ -12,6 +12,7 @@ on: - all - android - ios + - web pull_request: types: [ready_for_review] branches: @@ -189,3 +190,50 @@ jobs: app: ios/build/Build/Products/Debug-iphonesimulator/HarnessPlayground.app runner: ios projectRoot: apps/playground + + e2e-web: + name: E2E Web + runs-on: ubuntu-22.04 + if: ${{ (github.event_name == 'pull_request' && github.event.pull_request.base.ref == 'main') || (github.event_name == 'workflow_dispatch' && (github.event.inputs.platform == 'all' || github.event.inputs.platform == 'web')) }} + env: + HARNESS_DEBUG: true + + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + ref: ${{ github.event.pull_request.head.sha || github.ref }} + fetch-depth: 0 + + - name: Install pnpm + uses: pnpm/action-setup@v2 + with: + version: latest + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '24.10.0' + cache: 'pnpm' + + - name: Metro cache + uses: actions/cache@v4 + with: + path: apps/playground/node_modules/.cache/rn-harness/metro-cache + key: metro-cache-${{ hashFiles('apps/playground/node_modules/.cache/rn-harness/metro-cache/**/*') }} + restore-keys: | + metro-cache + + - name: Install dependencies + run: | + pnpm install + + - name: Build packages + run: | + pnpm nx run-many -t build --projects="packages/*" + + - name: Run React Native Harness + uses: ./actions/web + with: + runner: chromium + projectRoot: apps/playground diff --git a/.npmrc b/.npmrc index 139805b..81150a4 100644 --- a/.npmrc +++ b/.npmrc @@ -1,3 +1,3 @@ strict-peer-dependencies=false -auto-install-peers=true +auto-install-peers=false node-linker=hoisted \ No newline at end of file diff --git a/.nx/version-plans/version-plan-1769076452249.md b/.nx/version-plans/version-plan-1769076452249.md new file mode 100644 index 0000000..9c5191f --- /dev/null +++ b/.nx/version-plans/version-plan-1769076452249.md @@ -0,0 +1,5 @@ +--- +__default__: prerelease +--- + +Added support for web platform with all functionalities supported by the native equivalents, including UI testing capabilities. diff --git a/actions/web/action.yml b/actions/web/action.yml new file mode 100644 index 0000000..5cd4006 --- /dev/null +++ b/actions/web/action.yml @@ -0,0 +1,44 @@ +name: React Native Harness for Web +description: Run React Native Harness tests on Web +inputs: + runner: + description: The runner to use + required: true + type: string + projectRoot: + description: The project root directory + required: false + type: string + uploadVisualTestArtifacts: + description: Whether to upload visual test diff and actual images as artifacts + required: false + type: boolean + default: 'true' +runs: + using: 'composite' + steps: + - name: Load React Native Harness configuration + id: load-config + shell: bash + env: + INPUT_RUNNER: ${{ inputs.runner }} + INPUT_PROJECTROOT: ${{ inputs.projectRoot }} + run: | + node ${{ github.action_path }}/../shared/index.cjs + - name: Install Playwright Browsers + shell: bash + run: npx playwright install --with-deps chromium + - name: Run E2E tests + shell: bash + working-directory: ${{ inputs.projectRoot }} + run: | + pnpm react-native-harness --harnessRunner ${{ inputs.runner }} + - name: Upload visual test artifacts + if: always() && inputs.uploadVisualTestArtifacts == 'true' + uses: actions/upload-artifact@v4 + with: + name: visual-test-diffs-chromium + path: | + ${{ inputs.projectRoot }}/**/__image_snapshots__/**/*-diff.png + ${{ inputs.projectRoot }}/**/__image_snapshots__/**/*-actual.png + if-no-files-found: ignore diff --git a/actions/web/index.cjs b/actions/web/index.cjs new file mode 100644 index 0000000..3918c74 --- /dev/null +++ b/actions/web/index.cjs @@ -0,0 +1 @@ +"use strict"; diff --git a/apps/playground/index.html b/apps/playground/index.html new file mode 100644 index 0000000..58a89ce --- /dev/null +++ b/apps/playground/index.html @@ -0,0 +1,27 @@ + + + + + Harness Playground + + + + +
+ + + \ No newline at end of file diff --git a/apps/playground/index.js b/apps/playground/index.js index 13a2105..ef670a4 100644 --- a/apps/playground/index.js +++ b/apps/playground/index.js @@ -2,8 +2,14 @@ * @format */ -import { AppRegistry } from 'react-native'; +import { AppRegistry, Platform } from 'react-native'; import App from './src/app/App'; import { name as appName } from './app.json'; AppRegistry.registerComponent(appName, () => App); + +if (Platform.OS === 'web') { + AppRegistry.runApplication(appName, { + rootTag: document.getElementById('root'), + }); +} \ No newline at end of file diff --git a/apps/playground/metro.config.js b/apps/playground/metro.config.js index 6eee231..8ecd3fe 100644 --- a/apps/playground/metro.config.js +++ b/apps/playground/metro.config.js @@ -1,12 +1,36 @@ const { withNxMetro } = require('@nx/react-native'); const { getDefaultConfig, mergeConfig } = require('@react-native/metro-config'); const path = require('path'); +const fs = require('fs'); const defaultConfig = getDefaultConfig(__dirname); const projectRoot = __dirname; const monorepoRoot = path.resolve(projectRoot, '../..'); +const getCustomResolver = (defaultResolveRequest) => (context, moduleName, platform) => { + if (platform === 'web') { + if (moduleName.includes('NativeSourceCode') || + moduleName.includes('NativePlatformConstants') || + moduleName.includes('NativeDevSettings') || + moduleName.includes('NativeLogBox') || + moduleName.includes('NativeRedBox') + ) { + return { + type: 'empty', + }; + } else if (moduleName === 'react-native') { + return { + type: 'sourceFile', + filePath: require.resolve('react-native-web'), + }; + } + } + + // Everything else: default behavior + return defaultResolveRequest(context, moduleName, platform); +}; + /** * Metro configuration * https://reactnative.dev/docs/metro @@ -18,6 +42,30 @@ const customConfig = { resolver: { unstable_enablePackageExports: true, }, + server: { + ...(defaultConfig.server || {}), + enhanceMiddleware: (middleware) => { + return (req, res, next) => { + if (req.url === '/' || req.url === '/index.html') { + const htmlPath = path.join(projectRoot, 'index.html'); + + fs.readFile(htmlPath, 'utf8', (err, data) => { + if (err) { + res.writeHead(500, { 'Content-Type': 'text/plain' }); + res.end('Error loading index.html: ' + err.message); + return; + } + + res.writeHead(200, { 'Content-Type': 'text/html' }); + res.end(data); + }); + return; + } + + return middleware(req, res, next); + }; + }, + }, }; module.exports = withNxMetro(mergeConfig(defaultConfig, customConfig), { @@ -26,4 +74,8 @@ module.exports = withNxMetro(mergeConfig(defaultConfig, customConfig), { path.resolve(projectRoot, 'node_modules'), path.resolve(monorepoRoot, 'node_modules'), ], +}).then((config) => { + // Nx overrides the resolveRequest, so we need to override it after the merge. + config.resolver.resolveRequest = getCustomResolver(config.resolver.resolveRequest); + return config; }); diff --git a/apps/playground/package.json b/apps/playground/package.json index 6b780fa..bc466f1 100644 --- a/apps/playground/package.json +++ b/apps/playground/package.json @@ -6,8 +6,10 @@ "test:harness": "jest --selectProjects react-native-harness" }, "dependencies": { - "react": "19.1.1", - "react-native": "0.82.1" + "react": "19.2.3", + "react-dom": "19.2.3", + "react-native": "0.82.1", + "react-native-web": "^0.21.2" }, "devDependencies": { "react-native-harness": "workspace:*", @@ -24,6 +26,7 @@ "jest": "^30.2.0", "@react-native-harness/platform-android": "workspace:*", "@react-native-harness/platform-apple": "workspace:*", - "@react-native-harness/platform-vega": "workspace:*" + "@react-native-harness/platform-vega": "workspace:*", + "@react-native-harness/platform-web": "workspace:*" } } diff --git a/apps/playground/rn-harness.config.mjs b/apps/playground/rn-harness.config.mjs index 0c49b64..86ec632 100644 --- a/apps/playground/rn-harness.config.mjs +++ b/apps/playground/rn-harness.config.mjs @@ -12,6 +12,11 @@ import { vegaPlatform, vegaEmulator, } from '@react-native-harness/platform-vega'; +import { + webPlatform, + chromium, + chrome, +} from '@react-native-harness/platform-web'; const config = { entryPoint: './index.js', @@ -48,6 +53,14 @@ const config = { device: vegaEmulator('VegaTV_1'), bundleId: 'com.playground', }), + webPlatform({ + name: 'web', + browser: chrome('http://localhost:8081/index.html', { headless: false }), + }), + webPlatform({ + name: 'chromium', + browser: chromium('http://localhost:8081/index.html', { headless: true }), + }), ], defaultRunner: 'android', bridgeTimeout: 120000, diff --git a/apps/playground/src/__tests__/ui/__image_snapshots__/android/orange-square-element-only.png b/apps/playground/src/__tests__/ui/__image_snapshots__/android/orange-square-element-only.png index 0fe0b77..98f4643 100644 Binary files a/apps/playground/src/__tests__/ui/__image_snapshots__/android/orange-square-element-only.png and b/apps/playground/src/__tests__/ui/__image_snapshots__/android/orange-square-element-only.png differ diff --git a/apps/playground/src/__tests__/ui/__image_snapshots__/chromium/orange-square-element-only.png b/apps/playground/src/__tests__/ui/__image_snapshots__/chromium/orange-square-element-only.png new file mode 100644 index 0000000..64c6114 Binary files /dev/null and b/apps/playground/src/__tests__/ui/__image_snapshots__/chromium/orange-square-element-only.png differ diff --git a/apps/playground/src/__tests__/ui/__image_snapshots__/ios/orange-square-element-only.png b/apps/playground/src/__tests__/ui/__image_snapshots__/ios/orange-square-element-only.png index 6d7bf08..79f3c8a 100644 Binary files a/apps/playground/src/__tests__/ui/__image_snapshots__/ios/orange-square-element-only.png and b/apps/playground/src/__tests__/ui/__image_snapshots__/ios/orange-square-element-only.png differ diff --git a/apps/playground/src/__tests__/ui/__image_snapshots__/web/orange-square-element-only.png b/apps/playground/src/__tests__/ui/__image_snapshots__/web/orange-square-element-only.png new file mode 100644 index 0000000..64c6114 Binary files /dev/null and b/apps/playground/src/__tests__/ui/__image_snapshots__/web/orange-square-element-only.png differ diff --git a/apps/playground/src/__tests__/ui/screenshot.harness.tsx b/apps/playground/src/__tests__/ui/screenshot.harness.tsx index 78e44eb..27391cb 100644 --- a/apps/playground/src/__tests__/ui/screenshot.harness.tsx +++ b/apps/playground/src/__tests__/ui/screenshot.harness.tsx @@ -25,7 +25,7 @@ describe('Screenshot', () => { alignItems: 'center', }} > - Target + diff --git a/apps/playground/tsconfig.app.json b/apps/playground/tsconfig.app.json index a90580b..422740e 100644 --- a/apps/playground/tsconfig.app.json +++ b/apps/playground/tsconfig.app.json @@ -27,6 +27,9 @@ ], "include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.js", "src/**/*.jsx"], "references": [ + { + "path": "../../packages/platform-web/tsconfig.lib.json" + }, { "path": "../../packages/platform-vega/tsconfig.lib.json" }, diff --git a/apps/playground/tsconfig.json b/apps/playground/tsconfig.json index fc60f68..8c36951 100644 --- a/apps/playground/tsconfig.json +++ b/apps/playground/tsconfig.json @@ -3,6 +3,9 @@ "files": [], "include": [], "references": [ + { + "path": "../../packages/platform-web" + }, { "path": "../../packages/platform-vega" }, diff --git a/packages/bridge/src/shared.ts b/packages/bridge/src/shared.ts index d5695c8..beaa200 100644 --- a/packages/bridge/src/shared.ts +++ b/packages/bridge/src/shared.ts @@ -105,7 +105,7 @@ export type { } from './shared/bundler.js'; export type DeviceDescriptor = { - platform: 'ios' | 'android' | 'vega'; + platform: 'ios' | 'android' | 'vega' | 'web'; manufacturer: string; model: string; osVersion: string; diff --git a/packages/github-action/src/web/action.yml b/packages/github-action/src/web/action.yml new file mode 100644 index 0000000..5cd4006 --- /dev/null +++ b/packages/github-action/src/web/action.yml @@ -0,0 +1,44 @@ +name: React Native Harness for Web +description: Run React Native Harness tests on Web +inputs: + runner: + description: The runner to use + required: true + type: string + projectRoot: + description: The project root directory + required: false + type: string + uploadVisualTestArtifacts: + description: Whether to upload visual test diff and actual images as artifacts + required: false + type: boolean + default: 'true' +runs: + using: 'composite' + steps: + - name: Load React Native Harness configuration + id: load-config + shell: bash + env: + INPUT_RUNNER: ${{ inputs.runner }} + INPUT_PROJECTROOT: ${{ inputs.projectRoot }} + run: | + node ${{ github.action_path }}/../shared/index.cjs + - name: Install Playwright Browsers + shell: bash + run: npx playwright install --with-deps chromium + - name: Run E2E tests + shell: bash + working-directory: ${{ inputs.projectRoot }} + run: | + pnpm react-native-harness --harnessRunner ${{ inputs.runner }} + - name: Upload visual test artifacts + if: always() && inputs.uploadVisualTestArtifacts == 'true' + uses: actions/upload-artifact@v4 + with: + name: visual-test-diffs-chromium + path: | + ${{ inputs.projectRoot }}/**/__image_snapshots__/**/*-diff.png + ${{ inputs.projectRoot }}/**/__image_snapshots__/**/*-actual.png + if-no-files-found: ignore diff --git a/packages/github-action/src/web/index.ts b/packages/github-action/src/web/index.ts new file mode 100644 index 0000000..fcbabe1 --- /dev/null +++ b/packages/github-action/src/web/index.ts @@ -0,0 +1 @@ +// This file is intentionally empty. diff --git a/packages/github-action/tsup.config.mts b/packages/github-action/tsup.config.mts index 57b00f7..8d15b46 100644 --- a/packages/github-action/tsup.config.mts +++ b/packages/github-action/tsup.config.mts @@ -3,7 +3,7 @@ import fs from 'node:fs'; import path from 'node:path'; const OUT_DIR = path.resolve('../../actions'); -const TARGETS = ['ios', 'android']; +const TARGETS = ['ios', 'android', 'web']; const packageJson = JSON.parse( fs.readFileSync(path.resolve('./package.json'), 'utf8') diff --git a/packages/platform-android/src/factory.ts b/packages/platform-android/src/factory.ts index 1f16a59..d136e4c 100644 --- a/packages/platform-android/src/factory.ts +++ b/packages/platform-android/src/factory.ts @@ -27,7 +27,7 @@ export const physicalAndroidDevice = ( export const androidPlatform = ( config: AndroidPlatformConfig ): HarnessPlatform => ({ - name: 'android', + name: config.name, config, runner: import.meta.resolve('./runner.js'), }); diff --git a/packages/platform-web/README.md b/packages/platform-web/README.md new file mode 100644 index 0000000..ea6a966 --- /dev/null +++ b/packages/platform-web/README.md @@ -0,0 +1,98 @@ +![harness-banner](https://react-native-harness.dev/harness-banner.jpg) + +[![mit licence][license-badge]][license] +[![npm downloads][npm-downloads-badge]][npm-downloads] +[![Chat][chat-badge]][chat] +[![PRs Welcome][prs-welcome-badge]][prs-welcome] + +Web platform for React Native Harness - enables testing on web browsers using Playwright. + +## Installation + +```bash +npm install @react-native-harness/platform-web +# or +pnpm add @react-native-harness/platform-web +# or +yarn add @react-native-harness/platform-web +``` + +## Usage + +Import the Web platform functions in your `rn-harness.config.mjs`: + +```javascript +import { + webPlatform, + chromium, + chrome, + firefox, + webkit, +} from '@react-native-harness/platform-web'; + +const config = { + runners: [ + webPlatform({ + name: 'web-chrome', + browser: chrome('http://localhost:8081/index.html'), + }), + webPlatform({ + name: 'web-firefox-headful', + browser: firefox('http://localhost:8081/index.html', { headless: false }), + }), + ], + // ... other config +}; + +export default config; +``` + +## API + +### `webPlatform(config)` + +Creates a Web platform runner configuration. + +**Parameters:** + +- `config.name` - Unique name for the runner +- `config.browser` - Browser configuration (created via helper factories) + +### Helper Factories + +#### `chromium(url, options)` + +#### `chrome(url, options)` + +#### `firefox(url, options)` + +#### `webkit(url, options)` + +Convenience functions for creating browser configurations. + +**Options:** + +- `headless` - Whether to run the browser in headless mode (default: `true`) +- `channel` - Browser channel (e.g., `'chrome'`, `'msedge'`) +- `executablePath` - Path to a specific browser binary + +## Requirements + +- Browsers installed (handled by Playwright or use system browsers via `channel`) +- React Native project configured for web (e.g., `react-native-web`) + +## Made with ❤️ at Callstack + +`react-native-harness` is an open source project and will always remain free to use. If you think it's cool, please star it 🌟. [Callstack][callstack-readme-with-love] is a group of React and React Native geeks, contact us at [hello@callstack.com](mailto:hello@callstack.com) if you need any help with these or just want to say hi! + +Like the project? ⚛️ [Join the team](https://callstack.com/careers/?utm_campaign=Senior_RN&utm_source=github&utm_medium=readme) who does amazing stuff for clients and drives React Native Open Source! 🔥 + +[callstack-readme-with-love]: https://callstack.com/?utm_source=github.com&utm_medium=referral&utm_campaign=react-native-harness&utm_term=readme-with-love +[license-badge]: https://img.shields.io/npm/l/react-native-harness?style=for-the-badge +[license]: https://github.com/callstackincubator/react-native-harness/blob/main/LICENSE +[npm-downloads-badge]: https://img.shields.io/npm/dm/react-native-harness?style=for-the-badge +[npm-downloads]: https://www.npmjs.com/package/react-native-harness +[prs-welcome-badge]: https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=for-the-badge +[prs-welcome]: ./CONTRIBUTING.md +[chat-badge]: https://img.shields.io/discord/426714625279524876.svg?style=for-the-badge +[chat]: https://discord.gg/xgGt7KAjxv diff --git a/packages/platform-web/eslint.config.mjs b/packages/platform-web/eslint.config.mjs new file mode 100644 index 0000000..c334bc0 --- /dev/null +++ b/packages/platform-web/eslint.config.mjs @@ -0,0 +1,19 @@ +import baseConfig from '../../eslint.config.mjs'; + +export default [ + ...baseConfig, + { + files: ['**/*.json'], + rules: { + '@nx/dependency-checks': [ + 'error', + { + ignoredFiles: ['{projectRoot}/eslint.config.{js,cjs,mjs,ts,cts,mts}'], + }, + ], + }, + languageOptions: { + parser: await import('jsonc-eslint-parser'), + }, + }, +]; diff --git a/packages/platform-web/package.json b/packages/platform-web/package.json new file mode 100644 index 0000000..542e0c4 --- /dev/null +++ b/packages/platform-web/package.json @@ -0,0 +1,25 @@ +{ + "name": "@react-native-harness/platform-web", + "description": "Web platform for React Native Harness using Playwright", + "version": "1.0.0-alpha.23", + "type": "module", + "main": "./dist/index.js", + "module": "./dist/index.js", + "types": "./dist/index.d.ts", + "exports": { + "./package.json": "./package.json", + ".": { + "development": "./src/index.ts", + "types": "./dist/index.d.ts", + "import": "./dist/index.js", + "default": "./dist/index.js" + } + }, + "dependencies": { + "@react-native-harness/platforms": "workspace:*", + "playwright": "^1.50.0", + "zod": "^3.25.67", + "tslib": "^2.3.0" + }, + "license": "MIT" +} diff --git a/packages/platform-web/src/config.ts b/packages/platform-web/src/config.ts new file mode 100644 index 0000000..5138ea8 --- /dev/null +++ b/packages/platform-web/src/config.ts @@ -0,0 +1,17 @@ +import { z } from 'zod'; + +export const WebBrowserConfigSchema = z.object({ + type: z.enum(['chromium', 'firefox', 'webkit']), + url: z.string().url('A valid URL is required'), + headless: z.boolean().default(true), + channel: z.string().optional(), + executablePath: z.string().optional(), +}); + +export const WebPlatformConfigSchema = z.object({ + name: z.string().min(1, 'Name is required'), + browser: WebBrowserConfigSchema, +}); + +export type WebBrowserConfig = z.infer; +export type WebPlatformConfig = z.infer; diff --git a/packages/platform-web/src/factory.ts b/packages/platform-web/src/factory.ts new file mode 100644 index 0000000..abc07c8 --- /dev/null +++ b/packages/platform-web/src/factory.ts @@ -0,0 +1,51 @@ +import { HarnessPlatform } from '@react-native-harness/platforms'; +import { type WebPlatformConfig, type WebBrowserConfig } from './config.js'; + +export const webPlatform = ( + config: WebPlatformConfig +): HarnessPlatform => ({ + name: config.name, + config, + runner: import.meta.resolve('./runner.js'), +}); + +export const chromium = ( + url: string, + options: Partial> = {} +): WebBrowserConfig => ({ + type: 'chromium', + url, + headless: true, + ...options, +}); + +export const chrome = ( + url: string, + options: Partial> = {} +): WebBrowserConfig => ({ + type: 'chromium', + channel: 'chrome', + url, + headless: true, + ...options, +}); + +export const firefox = ( + url: string, + options: Partial> = {} +): WebBrowserConfig => ({ + type: 'firefox', + url, + headless: true, + ...options, +}); + +export const webkit = ( + url: string, + options: Partial> = {} +): WebBrowserConfig => ({ + type: 'webkit', + url, + headless: true, + ...options, +}); diff --git a/packages/platform-web/src/index.ts b/packages/platform-web/src/index.ts new file mode 100644 index 0000000..05938be --- /dev/null +++ b/packages/platform-web/src/index.ts @@ -0,0 +1,2 @@ +export { webPlatform, chromium, chrome, firefox, webkit } from './factory.js'; +export type { WebPlatformConfig } from './config.js'; diff --git a/packages/platform-web/src/runner.ts b/packages/platform-web/src/runner.ts new file mode 100644 index 0000000..ae051af --- /dev/null +++ b/packages/platform-web/src/runner.ts @@ -0,0 +1,122 @@ +import { HarnessPlatformRunner } from '@react-native-harness/platforms'; +import { chromium, firefox, webkit, type Browser, type Page } from 'playwright'; +import { WebPlatformConfigSchema, type WebPlatformConfig } from './config.js'; + +const getWebRunner = async ( + config: WebPlatformConfig +): Promise => { + const parsedConfig = WebPlatformConfigSchema.parse(config); + + let browser: Browser | null = null; + let page: Page | null = null; + + const launchBrowser = async () => { + const browserType = { + chromium, + firefox, + webkit, + }[parsedConfig.browser.type]; + + browser = await browserType.launch({ + headless: parsedConfig.browser.headless, + channel: parsedConfig.browser.channel, + executablePath: parsedConfig.browser.executablePath, + }); + + const context = await browser.newContext(); + page = await context.newPage(); + + // Expose functions for the UI package bridge + await page.exposeFunction( + '__RN_HARNESS_CAPTURE_SCREENSHOT__', + async ( + bounds: { x: number; y: number; width: number; height: number } | null + ) => { + if (!page) return null; + const buffer = await page.screenshot({ + clip: bounds + ? { + x: bounds.x, + y: bounds.y, + width: bounds.width, + height: bounds.height, + } + : undefined, + }); + return buffer.toString('base64'); + } + ); + + await page.exposeFunction( + '__RN_HARNESS_SIMULATE_PRESS__', + async (x: number, y: number) => { + if (!page) return; + await page.mouse.click(x, y); + } + ); + + await page.exposeFunction( + '__RN_HARNESS_TYPE_CHAR__', + async (char: string) => { + if (!page) return; + await page.keyboard.type(char); + } + ); + + await page.exposeFunction( + '__RN_HARNESS_BLUR__', + async (options: { submitEditing?: boolean }) => { + if (!page) return; + if (options.submitEditing) { + await page.keyboard.press('Enter'); + // Allow some time for the event to be processed + await new Promise((resolve) => setTimeout(resolve, 50)); + } + await page.evaluate(() => { + if ( + document.activeElement instanceof HTMLElement || + document.activeElement instanceof SVGElement + ) { + document.activeElement.blur(); + } + }); + } + ); + + await page.goto(parsedConfig.browser.url); + }; + + return { + startApp: async () => { + if (!browser) { + await launchBrowser(); + } + }, + restartApp: async () => { + if (page) { + await page.reload(); + } else { + await launchBrowser(); + } + }, + stopApp: async () => { + if (browser) { + await browser.close(); + browser = null; + page = null; + } + }, + dispose: async () => { + if (browser) { + await browser.close(); + browser = null; + page = null; + } + }, + isAppRunning: async () => { + return browser !== null && page !== null && !page.isClosed(); + }, + }; +}; + +export default getWebRunner; diff --git a/packages/platform-web/tsconfig.json b/packages/platform-web/tsconfig.json new file mode 100644 index 0000000..9f9888e --- /dev/null +++ b/packages/platform-web/tsconfig.json @@ -0,0 +1,13 @@ +{ + "extends": "../../tsconfig.base.json", + "files": [], + "include": [], + "references": [ + { + "path": "../platforms" + }, + { + "path": "./tsconfig.lib.json" + } + ] +} diff --git a/packages/platform-web/tsconfig.lib.json b/packages/platform-web/tsconfig.lib.json new file mode 100644 index 0000000..595d0aa --- /dev/null +++ b/packages/platform-web/tsconfig.lib.json @@ -0,0 +1,19 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "baseUrl": ".", + "rootDir": "src", + "outDir": "dist", + "tsBuildInfoFile": "dist/tsconfig.lib.tsbuildinfo", + "emitDeclarationOnly": false, + "forceConsistentCasingInFileNames": true, + "lib": ["es2022", "dom"], + "types": ["node"] + }, + "include": ["src/**/*.ts"], + "references": [ + { + "path": "../platforms/tsconfig.lib.json" + } + ] +} diff --git a/packages/runtime/package.json b/packages/runtime/package.json index 1885c68..3872ff7 100644 --- a/packages/runtime/package.json +++ b/packages/runtime/package.json @@ -39,9 +39,7 @@ "zustand": "^5.0.5" }, "devDependencies": { - "@types/chai": "^5.2.2", - "react": "*", - "react-native": "*" + "@types/chai": "^5.2.2" }, "author": { "name": "Szymon Chmal", diff --git a/packages/runtime/src/__tests__/initialize.test.ts b/packages/runtime/src/__tests__/initialize.test.ts deleted file mode 100644 index 800f1d2..0000000 --- a/packages/runtime/src/__tests__/initialize.test.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { describe, expect, it, vi } from 'vitest'; - -import { disableHMRWhenReady } from '../disableHMRWhenReady.js'; - -describe('initialize', () => { - it('retries HMRClient.disable until setup is ready', async () => { - vi.useFakeTimers(); - - const disable = vi - .fn() - .mockImplementationOnce(() => { - throw new Error('Expected HMRClient.setup() call at startup.'); - }) - .mockImplementationOnce(() => { - // ok - }); - - const promise = disableHMRWhenReady(disable, 50); - await vi.runAllTimersAsync(); - await promise; - - expect(disable).toHaveBeenCalledTimes(2); - }); -}); diff --git a/packages/runtime/src/client/getDeviceDescriptor.ts b/packages/runtime/src/client/getDeviceDescriptor.ts index 1b0ff2f..2819727 100644 --- a/packages/runtime/src/client/getDeviceDescriptor.ts +++ b/packages/runtime/src/client/getDeviceDescriptor.ts @@ -11,7 +11,7 @@ const getPlatform = (): Platform | PlatformKeplerStatic => { }; export type DeviceDescriptor = { - platform: 'ios' | 'android' | 'vega'; + platform: 'ios' | 'android' | 'vega' | 'web'; manufacturer: string; model: string; osVersion: string; @@ -20,6 +20,15 @@ export type DeviceDescriptor = { export const getDeviceDescriptor = (): DeviceDescriptor => { const platform = getPlatform(); + if (platform.OS === 'web') { + return { + platform: 'web', + manufacturer: '', + model: '', + osVersion: '', + }; + } + if (platform.OS === 'ios') { return { platform: 'ios', diff --git a/packages/runtime/src/disableHMRWhenReady.ts b/packages/runtime/src/disableHMRWhenReady.ts index b876be4..86c290b 100644 --- a/packages/runtime/src/disableHMRWhenReady.ts +++ b/packages/runtime/src/disableHMRWhenReady.ts @@ -1,9 +1,17 @@ +import { Platform } from "react-native"; + export function disableHMRWhenReady( disable: () => void, retriesLeft: number, retryDelay = 10 ) { return new Promise((resolve, reject) => { + if (Platform.OS === 'web') { + // No HMR on web + resolve(); + return; + } + function attempt(remaining: number) { try { disable(); diff --git a/packages/runtime/src/entry-point.ts b/packages/runtime/src/entry-point.ts index aa65fcd..ed11eeb 100644 --- a/packages/runtime/src/entry-point.ts +++ b/packages/runtime/src/entry-point.ts @@ -1,8 +1,13 @@ -import { AppRegistry } from 'react-native'; +import { AppRegistry, Platform } from 'react-native'; import { getHarnessGlobal } from './globals.js'; import { UI } from './ui/index.js'; -AppRegistry.registerComponent( - getHarnessGlobal().appRegistryComponentName, - () => UI -); +const componentName = getHarnessGlobal().appRegistryComponentName; + +AppRegistry.registerComponent(componentName, () => UI); + +if (Platform.OS === 'web') { + AppRegistry.runApplication(componentName, { + rootTag: document.getElementById('root'), + }); +} \ No newline at end of file diff --git a/packages/runtime/src/react-native.d.ts b/packages/runtime/src/react-native.d.ts index d75a614..0841144 100644 --- a/packages/runtime/src/react-native.d.ts +++ b/packages/runtime/src/react-native.d.ts @@ -7,33 +7,6 @@ declare module 'react-native/Libraries/Core/Devtools/getDevServer' { export default function getDevServer(): DevServerInfo; } -declare module 'react-native/Libraries/Core/Devtools/symbolicateStackTrace' { - import { StackFrame } from 'react-native/Libraries/Core/Devtools/parseErrorStack'; - - export type CodeFrame = Readonly<{ - content: string; - location: - | { - row: number; - column: number; - [key: string]: unknown; - } - | null - | undefined; - fileName: string; - }>; - - export type SymbolicatedStackTrace = Readonly<{ - stack: ReadonlyArray; - codeFrame: CodeFrame | null | undefined; - }>; - - export default function symbolicateStackTrace( - stack: ReadonlyArray, - extraData?: unknown - ): Promise; -} - declare module 'react-native/Libraries/Core/Devtools/parseErrorStack' { export type StackFrame = { column: number | null | undefined; diff --git a/packages/runtime/src/symbolicate.ts b/packages/runtime/src/symbolicate.ts index e043db3..3e20a3c 100644 --- a/packages/runtime/src/symbolicate.ts +++ b/packages/runtime/src/symbolicate.ts @@ -1,6 +1,37 @@ import type { CodeFrame } from '@react-native-harness/bridge'; -import parseErrorStack from 'react-native/Libraries/Core/Devtools/parseErrorStack'; -import symbolicateStackTrace from 'react-native/Libraries/Core/Devtools/symbolicateStackTrace'; +import parseErrorStack, { StackFrame } from 'react-native/Libraries/Core/Devtools/parseErrorStack'; +import { getDevServerUrl } from './utils/dev-server.js'; + +export type RNCodeFrame = Readonly<{ + content: string; + location: + | { + row: number; + column: number; + [key: string]: unknown; + } + | null + | undefined; + fileName: string; +}>; + +export type RNSymbolicatedStackTrace = Readonly<{ + stack: ReadonlyArray; + codeFrame: CodeFrame | null | undefined; +}>; + + +const symbolicateStackTrace = async (stack: ReadonlyArray, extraData?: unknown): Promise => { + const devServerUrl = getDevServerUrl(); + const response = await fetch(devServerUrl + 'symbolicate', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ stack, extraData }), + }); + return await response.json(); +} export const getCodeFrame = async (error: Error): Promise => { const parsedStack = parseErrorStack(error.stack); @@ -17,8 +48,8 @@ export const getCodeFrame = async (error: Error): Promise => { ...codeFrame, location: codeFrame.location ? { - ...codeFrame.location, - } + ...codeFrame.location, + } : undefined, }; }; diff --git a/packages/runtime/src/utils/dev-server.ts b/packages/runtime/src/utils/dev-server.ts index e1aadba..3578006 100644 --- a/packages/runtime/src/utils/dev-server.ts +++ b/packages/runtime/src/utils/dev-server.ts @@ -1,6 +1,13 @@ +import { Platform } from 'react-native'; import getDevServer from 'react-native/Libraries/Core/Devtools/getDevServer'; export const getDevServerUrl = (): string => { + if (Platform.OS === 'web') { + // This is going to be the same as the current URL + return window.location.origin + '/'; + } + + const devServer = getDevServer(); return devServer.url; }; diff --git a/packages/runtime/tsconfig.lib.json b/packages/runtime/tsconfig.lib.json index 5effb71..f8afc10 100644 --- a/packages/runtime/tsconfig.lib.json +++ b/packages/runtime/tsconfig.lib.json @@ -8,7 +8,8 @@ "emitDeclarationOnly": false, "forceConsistentCasingInFileNames": true, "types": ["node"], - "jsx": "react-jsx" + "jsx": "react-jsx", + "lib": ["DOM", "ESNext"] }, "include": ["src/**/*.ts", "src/**/*.tsx"], "references": [ diff --git a/packages/ui/src/NativeHarnessUI.ts b/packages/ui/src/NativeHarnessUI.ts index 03dd294..2e73300 100644 --- a/packages/ui/src/NativeHarnessUI.ts +++ b/packages/ui/src/NativeHarnessUI.ts @@ -1,8 +1,6 @@ import { TurboModuleRegistry, type TurboModule } from 'react-native'; -/** - * Represents the position and dimensions of a view in screen coordinates (points/dp). - */ +// This interface needs to be there for Codegen to work. export interface ViewInfo { x: number; y: number; @@ -11,56 +9,14 @@ export interface ViewInfo { } interface Spec extends TurboModule { - /** - * Simulates a native press at the specified screen coordinates. - * Returns a promise that resolves when the press action is complete. - */ simulatePress(x: number, y: number): Promise; - - /** - * Finds a view by its testID (accessibilityIdentifier on iOS, tag on Android). - * Returns null if no view is found. - */ queryByTestId(testId: string): ViewInfo | null; - - /** - * Finds all views by testID (accessibilityIdentifier on iOS, tag on Android). - * Returns an empty array if no views are found. - */ queryAllByTestId(testId: string): ViewInfo[]; - - /** - * Finds a view by its accessibility label. - * Returns null if no view is found. - */ queryByAccessibilityLabel(label: string): ViewInfo | null; - - /** - * Finds all views by accessibility label. - * Returns an empty array if no views are found. - */ queryAllByAccessibilityLabel(label: string): ViewInfo[]; - - /** - * Captures a screenshot of the app UI. - * @param bounds Optional bounds to capture a specific region. Pass null to capture the entire window. - * @returns Promise resolving to Base64 encoded string containing PNG data, or null on failure. - */ captureScreenshot(bounds: ViewInfo | null): Promise; - - /** - * Types a single character into the currently focused text input. - * If no text input is focused, this is a no-op. - */ typeChar(character: string): Promise; - - /** - * Blurs (resigns first responder from) the currently focused element. - * Optionally triggers submitEditing event before blur. - */ blur(options: { submitEditing?: boolean }): Promise; } -export type HarnessUIModule = Spec; - export default TurboModuleRegistry.getEnforcing('HarnessUI'); diff --git a/packages/ui/src/WebHarnessUI.ts b/packages/ui/src/WebHarnessUI.ts new file mode 100644 index 0000000..b3fd7a9 --- /dev/null +++ b/packages/ui/src/WebHarnessUI.ts @@ -0,0 +1,78 @@ +import { type HarnessUIModule, type ViewInfo } from './types.js'; + +declare global { + interface Window { + __RN_HARNESS_CAPTURE_SCREENSHOT__: ( + bounds: ViewInfo | null + ) => Promise; + __RN_HARNESS_SIMULATE_PRESS__: (x: number, y: number) => Promise; + __RN_HARNESS_TYPE_CHAR__: (character: string) => Promise; + __RN_HARNESS_BLUR__: (options: { + submitEditing?: boolean; + }) => Promise; + } +} + +const getElementViewInfo = (element: Element): ViewInfo => { + const rect = element.getBoundingClientRect(); + return { + x: rect.left, + y: rect.top, + width: rect.width, + height: rect.height, + }; +}; + +const WebHarnessUI: HarnessUIModule = { + simulatePress: async (x, y) => { + await window.__RN_HARNESS_SIMULATE_PRESS__(x, y); + }, + + queryByTestId: (testId) => { + const element = document.querySelector(`[data-testid="${testId}"]`); + return element ? getElementViewInfo(element) : null; + }, + + queryAllByTestId: (testId) => { + const elements = document.querySelectorAll(`[data-testid="${testId}"]`); + return Array.from(elements).map(getElementViewInfo); + }, + + queryByAccessibilityLabel: (label) => { + const element = document.querySelector(`[aria-label="${label}"]`); + return element ? getElementViewInfo(element) : null; + }, + + queryAllByAccessibilityLabel: (label) => { + const elements = document.querySelectorAll(`[aria-label="${label}"]`); + return Array.from(elements).map(getElementViewInfo); + }, + + captureScreenshot: async (bounds) => { + return await window.__RN_HARNESS_CAPTURE_SCREENSHOT__(bounds); + }, + + typeChar: async (character) => { + await window.__RN_HARNESS_TYPE_CHAR__(character); + }, + + blur: async (options) => { + if (options.submitEditing) { + // If we want to submit, we must NOT blur before pressing Enter. + // We let the runner-side bridge handle both Enter and the subsequent blur. + await window.__RN_HARNESS_BLUR__(options); + } else { + // If there is a focused element, blur it directly in the DOM first + // to trigger local events, then call the runner-side bridge. + if ( + document.activeElement instanceof HTMLElement || + document.activeElement instanceof SVGElement + ) { + document.activeElement.blur(); + } + await window.__RN_HARNESS_BLUR__(options); + } + }, +}; + +export default WebHarnessUI; diff --git a/packages/ui/src/harness.ts b/packages/ui/src/harness.ts new file mode 100644 index 0000000..5a6c80e --- /dev/null +++ b/packages/ui/src/harness.ts @@ -0,0 +1,12 @@ +import { Platform } from "react-native"; +import { HarnessUIModule } from "./types.js"; + +const getHarnessUI = (): HarnessUIModule => { + if (Platform.OS === 'web') { + return require('./WebHarnessUI.js').default; + } + + return require('./NativeHarnessUI.js').default; +} + +export default getHarnessUI(); \ No newline at end of file diff --git a/packages/ui/src/index.ts b/packages/ui/src/index.ts index ebe421b..ca127ae 100644 --- a/packages/ui/src/index.ts +++ b/packages/ui/src/index.ts @@ -15,4 +15,4 @@ export { type ScreenshotResult, } from './screen.js'; export { userEvent, type UserEvent } from './userEvent.js'; -export type { ViewInfo } from './NativeHarnessUI.js'; +export type { ViewInfo } from './types.js'; diff --git a/packages/ui/src/screen.ts b/packages/ui/src/screen.ts index 715e417..00821c0 100644 --- a/packages/ui/src/screen.ts +++ b/packages/ui/src/screen.ts @@ -1,5 +1,6 @@ -import NativeHarnessUI, { type ViewInfo } from './NativeHarnessUI.js'; +import { type ViewInfo } from './types.js'; import { waitFor } from '@react-native-harness/runtime'; +import HarnessUI from './harness.js'; /** * Represents an element found on screen with its position and dimensions. @@ -80,7 +81,7 @@ const createScreen = (): Screen => { return { findByTestId: async (testId: string): Promise => { return waitFor(() => { - const result = NativeHarnessUI.queryByTestId(testId); + const result = HarnessUI.queryByTestId(testId); if (!result) { throw new Error(`Unable to find element with testID: ${testId}`); } @@ -90,7 +91,7 @@ const createScreen = (): Screen => { findAllByTestId: async (testId: string): Promise => { return waitFor(() => { - const results = NativeHarnessUI.queryAllByTestId(testId); + const results = HarnessUI.queryAllByTestId(testId); if (results.length === 0) { throw new Error(`Unable to find any elements with testID: ${testId}`); } @@ -99,18 +100,18 @@ const createScreen = (): Screen => { }, queryByTestId: (testId: string): ElementReference | null => { - return NativeHarnessUI.queryByTestId(testId); + return HarnessUI.queryByTestId(testId); }, queryAllByTestId: (testId: string): ElementReference[] => { - return NativeHarnessUI.queryAllByTestId(testId); + return HarnessUI.queryAllByTestId(testId); }, findByAccessibilityLabel: async ( label: string ): Promise => { return waitFor(() => { - const result = NativeHarnessUI.queryByAccessibilityLabel(label); + const result = HarnessUI.queryByAccessibilityLabel(label); if (!result) { throw new Error( `Unable to find element with accessibility label: ${label}` @@ -124,7 +125,7 @@ const createScreen = (): Screen => { label: string ): Promise => { return waitFor(() => { - const results = NativeHarnessUI.queryAllByAccessibilityLabel(label); + const results = HarnessUI.queryAllByAccessibilityLabel(label); if (results.length === 0) { throw new Error( `Unable to find any elements with accessibility label: ${label}` @@ -135,18 +136,18 @@ const createScreen = (): Screen => { }, queryByAccessibilityLabel: (label: string): ElementReference | null => { - return NativeHarnessUI.queryByAccessibilityLabel(label); + return HarnessUI.queryByAccessibilityLabel(label); }, queryAllByAccessibilityLabel: (label: string): ElementReference[] => { - return NativeHarnessUI.queryAllByAccessibilityLabel(label); + return HarnessUI.queryAllByAccessibilityLabel(label); }, screenshot: async ( element?: ElementReference ): Promise => { const bounds = element ?? null; - const base64String = await NativeHarnessUI.captureScreenshot(bounds); + const base64String = await HarnessUI.captureScreenshot(bounds); if (!base64String) { return null; diff --git a/packages/ui/src/types.ts b/packages/ui/src/types.ts new file mode 100644 index 0000000..db02bbe --- /dev/null +++ b/packages/ui/src/types.ts @@ -0,0 +1,60 @@ +/** + * Represents the position and dimensions of a view in screen coordinates (points/dp). + */ +export interface ViewInfo { + x: number; + y: number; + width: number; + height: number; +} + +export interface HarnessUIModule { + /** + * Simulates a native press at the specified screen coordinates. + * Returns a promise that resolves when the press action is complete. + */ + simulatePress(x: number, y: number): Promise; + + /** + * Finds a view by its testID (accessibilityIdentifier on iOS, tag on Android). + * Returns null if no view is found. + */ + queryByTestId(testId: string): ViewInfo | null; + + /** + * Finds all views by testID (accessibilityIdentifier on iOS, tag on Android). + * Returns an empty array if no views are found. + */ + queryAllByTestId(testId: string): ViewInfo[]; + + /** + * Finds a view by its accessibility label. + * Returns null if no view is found. + */ + queryByAccessibilityLabel(label: string): ViewInfo | null; + + /** + * Finds all views by accessibility label. + * Returns an empty array if no views are found. + */ + queryAllByAccessibilityLabel(label: string): ViewInfo[]; + + /** + * Captures a screenshot of the app UI. + * @param bounds Optional bounds to capture a specific region. Pass null to capture the entire window. + * @returns Promise resolving to Base64 encoded string containing PNG data, or null on failure. + */ + captureScreenshot(bounds: ViewInfo | null): Promise; + + /** + * Types a single character into the currently focused text input. + * If no text input is focused, this is a no-op. + */ + typeChar(character: string): Promise; + + /** + * Blurs (resigns first responder from) the currently focused element. + * Optionally triggers submitEditing event before blur. + */ + blur(options: { submitEditing?: boolean }): Promise; +} diff --git a/packages/ui/src/userEvent.ts b/packages/ui/src/userEvent.ts index 3951639..ed95a24 100644 --- a/packages/ui/src/userEvent.ts +++ b/packages/ui/src/userEvent.ts @@ -1,4 +1,4 @@ -import NativeHarnessUI from './NativeHarnessUI.js'; +import HarnessUI from './harness.js'; import type { ElementReference } from './screen.js'; /** @@ -66,13 +66,13 @@ const createUserEvent = (): UserEvent => { // Calculate center point of the element const centerX = element.x + element.width / 2; const centerY = element.y + element.height / 2; - await NativeHarnessUI.simulatePress(centerX, centerY); + await HarnessUI.simulatePress(centerX, centerY); // Flush pending events to ensure onPress and other callbacks are processed await flushEvents(); }, pressAt: async (x: number, y: number): Promise => { - await NativeHarnessUI.simulatePress(x, y); + await HarnessUI.simulatePress(x, y); // Flush pending events to ensure onPress and other callbacks are processed await flushEvents(); }, @@ -93,26 +93,26 @@ const createUserEvent = (): UserEvent => { // Calculate center point of the element const centerX = element.x + element.width / 2; const centerY = element.y + element.height / 2; - await NativeHarnessUI.simulatePress(centerX, centerY); + await HarnessUI.simulatePress(centerX, centerY); await flushEvents(); } else { // Still need to press to focus, but ideally without press events // For now, we press anyway - future enhancement could add a focusOnly method const centerX = element.x + element.width / 2; const centerY = element.y + element.height / 2; - await NativeHarnessUI.simulatePress(centerX, centerY); + await HarnessUI.simulatePress(centerX, centerY); await flushEvents(); } // Type each character one by one for (const char of text) { - await NativeHarnessUI.typeChar(char); + await HarnessUI.typeChar(char); await flushEvents(); // Let onChangeText fire } // Blur (triggers endEditing and blur unless skipBlur) if (!options?.skipBlur) { - await NativeHarnessUI.blur({ + await HarnessUI.blur({ submitEditing: options?.submitEditing ?? false, }); await flushEvents(); diff --git a/packages/ui/tsconfig.lib.json b/packages/ui/tsconfig.lib.json index 7a4a13a..7a6e1cc 100644 --- a/packages/ui/tsconfig.lib.json +++ b/packages/ui/tsconfig.lib.json @@ -7,6 +7,7 @@ "tsBuildInfoFile": "dist/tsconfig.lib.tsbuildinfo", "emitDeclarationOnly": false, "forceConsistentCasingInFileNames": true, + "lib": ["es2022", "dom", "dom.iterable"], "types": ["node"] }, "include": ["src/**/*.ts"], diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1de4b9b..aa4931f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,7 +1,7 @@ lockfileVersion: '9.0' settings: - autoInstallPeers: true + autoInstallPeers: false excludeLinksFromLockfile: false importers: @@ -31,13 +31,13 @@ importers: version: 22.0.4(@babel/traverse@7.27.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))) '@nx/react-native': specifier: 22.0.4 - version: 22.0.4(b6bdbf441fca35f932c3e030670387b0) + version: 22.0.4(@babel/core@7.27.4)(@babel/traverse@7.27.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/helpers@0.5.17)(@types/babel__core@7.20.5)(@types/node@20.19.25)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.29.0(jiti@2.4.2))(metro-config@0.83.3)(metro-resolver@0.83.3)(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)(vite@7.2.2(@types/node@20.19.25)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@20.19.25)(@vitest/ui@3.2.4)(jiti@2.4.2)(jsdom@22.1.0)(terser@5.42.0)(yaml@2.8.0))(webpack@5.102.1(@swc/core@1.5.29(@swc/helpers@0.5.17))) '@nx/rollup': specifier: 22.0.4 - version: 22.0.4(@babel/core@7.27.4)(@babel/traverse@7.27.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/babel__core@7.20.5)(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(ts-node@9.1.1(typescript@5.9.3))(typescript@5.9.3) + version: 22.0.4(@babel/core@7.27.4)(@babel/traverse@7.27.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/babel__core@7.20.5)(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(typescript@5.9.3) '@nx/vite': specifier: 22.0.4 - version: 22.0.4(@babel/traverse@7.27.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(typescript@5.9.3)(vite@7.2.2(@types/node@20.19.25)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.27.0)(sass-embedded@1.89.2)(sass@1.89.2)(stylus@0.64.0)(terser@5.42.0)(yaml@2.8.0))(vitest@3.2.4) + version: 22.0.4(@babel/traverse@7.27.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(typescript@5.9.3)(vite@7.2.2(@types/node@20.19.25)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@20.19.25)(@vitest/ui@3.2.4)(jiti@2.4.2)(jsdom@22.1.0)(terser@5.42.0)(yaml@2.8.0)) '@nx/web': specifier: 22.0.4 version: 22.0.4(@babel/traverse@7.27.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))) @@ -61,10 +61,10 @@ importers: version: 19.1.13 '@vitejs/plugin-react': specifier: ^4.2.0 - version: 4.6.0(vite@7.2.2(@types/node@20.19.25)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.27.0)(sass-embedded@1.89.2)(sass@1.89.2)(stylus@0.64.0)(terser@5.42.0)(yaml@2.8.0)) + version: 4.6.0(vite@7.2.2(@types/node@20.19.25)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0)) '@vitest/coverage-v8': specifier: ^3.0.5 - version: 3.2.4(vitest@3.2.4) + version: 3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@20.19.25)(@vitest/ui@3.2.4)(jiti@2.4.2)(jsdom@22.1.0)(terser@5.42.0)(yaml@2.8.0)) '@vitest/ui': specifier: ^3.0.0 version: 3.2.4(vitest@3.2.4) @@ -91,7 +91,7 @@ importers: version: 5.0.0(eslint@9.29.0(jiti@2.4.2)) jest-cli: specifier: ^30.2.0 - version: 30.2.0(@types/node@20.19.25)(babel-plugin-macros@3.1.0)(ts-node@9.1.1(typescript@5.9.3)) + version: 30.2.0(@types/node@20.19.25)(babel-plugin-macros@3.1.0) jiti: specifier: 2.4.2 version: 2.4.2 @@ -121,19 +121,25 @@ importers: version: 8.47.0(eslint@9.29.0(jiti@2.4.2))(typescript@5.9.3) vite: specifier: 7.2.2 - version: 7.2.2(@types/node@20.19.25)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.27.0)(sass-embedded@1.89.2)(sass@1.89.2)(stylus@0.64.0)(terser@5.42.0)(yaml@2.8.0) + version: 7.2.2(@types/node@20.19.25)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0) vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@20.19.25)(@vitest/ui@3.2.4)(jiti@2.4.2)(jsdom@22.1.0)(less@4.1.3)(lightningcss@1.27.0)(sass-embedded@1.89.2)(sass@1.89.2)(stylus@0.64.0)(terser@5.42.0)(yaml@2.8.0) + version: 3.2.4(@types/debug@4.1.12)(@types/node@20.19.25)(@vitest/ui@3.2.4)(jiti@2.4.2)(jsdom@22.1.0)(terser@5.42.0)(yaml@2.8.0) apps/playground: dependencies: react: - specifier: 19.1.1 - version: 19.1.1 + specifier: 19.2.3 + version: 19.2.3 + react-dom: + specifier: 19.2.3 + version: 19.2.3(react@19.2.3) react-native: specifier: 0.82.1 - version: 0.82.1(@babel/core@7.27.4)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.82.1(@babel/core@7.27.4))(@types/react@19.1.13)(react@19.1.1) + version: 0.82.1(@babel/core@7.27.4)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.82.1)(@types/react@19.1.13)(react@19.2.3) + react-native-web: + specifier: ^0.21.2 + version: 0.21.2(encoding@0.1.13)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) devDependencies: '@react-native-community/cli': specifier: 20.0.0 @@ -156,6 +162,9 @@ importers: '@react-native-harness/platform-vega': specifier: workspace:* version: link:../../packages/platform-vega + '@react-native-harness/platform-web': + specifier: workspace:* + version: link:../../packages/platform-web '@react-native-harness/runtime': specifier: workspace:* version: link:../../packages/runtime @@ -164,19 +173,19 @@ importers: version: link:../../packages/ui '@react-native/babel-preset': specifier: 0.82.1 - version: 0.82.1(@babel/core@7.27.4) + version: 0.82.1 '@react-native/eslint-config': specifier: 0.82.1 - version: 0.82.1(eslint@9.29.0(jiti@2.6.0))(jest@30.2.0(@types/node@18.16.9)(babel-plugin-macros@3.1.0)(ts-node@9.1.1(typescript@5.9.3)))(prettier@2.8.8)(typescript@5.9.3) + version: 0.82.1(eslint@9.29.0(jiti@2.6.1))(jest@30.2.0(@types/node@20.19.25)(babel-plugin-macros@3.1.0))(prettier@2.8.8)(typescript@5.9.3) '@react-native/metro-config': specifier: 0.82.1 - version: 0.82.1(@babel/core@7.27.4) + version: 0.82.1 '@react-native/typescript-config': specifier: 0.82.1 version: 0.82.1 jest: specifier: ^30.2.0 - version: 30.2.0(@types/node@18.16.9)(babel-plugin-macros@3.1.0)(ts-node@9.1.1(typescript@5.9.3)) + version: 30.2.0(@types/node@20.19.25)(babel-plugin-macros@3.1.0) react-native-harness: specifier: workspace:* version: link:../../packages/react-native-harness @@ -279,7 +288,7 @@ importers: devDependencies: jest-cli: specifier: ^30.2.0 - version: 30.2.0(@types/node@20.19.25)(babel-plugin-macros@3.1.0)(ts-node@9.1.1(typescript@5.9.3)) + version: 30.2.0(@types/node@20.19.25)(babel-plugin-macros@3.1.0) packages/config: dependencies: @@ -301,7 +310,7 @@ importers: devDependencies: tsup: specifier: ^8.5.1 - version: 8.5.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(jiti@2.6.0)(postcss@8.5.6)(typescript@5.9.3)(yaml@2.8.0) + version: 8.5.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(jiti@2.6.1)(postcss@8.5.6)(typescript@5.9.3)(yaml@2.8.0) packages/jest: dependencies: @@ -419,6 +428,21 @@ importers: specifier: ^3.25.67 version: 3.25.67 + packages/platform-web: + dependencies: + '@react-native-harness/platforms': + specifier: workspace:* + version: link:../platforms + playwright: + specifier: ^1.50.0 + version: 1.57.0 + tslib: + specifier: ^2.3.0 + version: 2.8.1 + zod: + specifier: ^3.25.67 + version: 3.25.67 + packages/platforms: dependencies: tslib: @@ -475,20 +499,14 @@ importers: version: 6.0.2 use-sync-external-store: specifier: ^1.6.0 - version: 1.6.0(react@19.1.1) + version: 1.6.0(react@19.2.3) zustand: specifier: ^5.0.5 - version: 5.0.5(@types/react@19.1.13)(immer@10.1.1)(react@19.1.1)(use-sync-external-store@1.6.0(react@19.1.1)) + version: 5.0.5(@types/react@19.1.13)(react@19.2.3)(use-sync-external-store@1.6.0(react@19.2.3)) devDependencies: '@types/chai': specifier: ^5.2.2 version: 5.2.3 - react: - specifier: '*' - version: 19.1.1 - react-native: - specifier: '*' - version: 0.82.1(@babel/core@7.27.4)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.82.1(@babel/core@7.27.4))(@types/react@19.1.13)(react@19.1.1) packages/tools: dependencies: @@ -510,7 +528,7 @@ importers: devDependencies: react-native: specifier: '*' - version: 0.82.1(@babel/core@7.27.4)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.82.1(@babel/core@7.27.4))(@types/react@19.1.13)(react@19.1.1) + version: 0.82.1(@babel/core@7.27.4)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.82.1)(@types/react@19.1.13)(react@19.2.3) packages/ui: dependencies: @@ -523,19 +541,19 @@ importers: devDependencies: react-native: specifier: '*' - version: 0.82.1(@babel/core@7.27.4)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.82.1(@babel/core@7.27.4))(@types/react@19.1.13)(react@19.1.1) + version: 0.82.1(@babel/core@7.27.4)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.82.1)(@types/react@19.1.13)(react@19.2.3) website: dependencies: '@callstack/rspress-preset': - specifier: ^0.4.1 - version: 0.4.2(@rsbuild/core@1.5.11)(@rspress/core@2.0.0-beta.32(@types/react@19.1.13))(react@19.1.1) + specifier: 0.5.1 + version: 0.5.1(@rsbuild/core@1.6.15)(@rspress/core@2.0.0-rc.4(@types/react@19.1.13))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@callstack/rspress-theme': - specifier: ^0.4.1 - version: 0.4.2(@rspress/core@2.0.0-beta.32(@types/react@19.1.13))(react@19.1.1) + specifier: 0.5.1 + version: 0.5.1(@rspress/core@2.0.0-rc.4(@types/react@19.1.13))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@rspress/core': - specifier: 2.0.0-beta.32 - version: 2.0.0-beta.32(@types/react@19.1.13) + specifier: 2.0.0-rc.4 + version: 2.0.0-rc.4(@types/react@19.1.13) devDependencies: '@types/node': specifier: ^18.11.17 @@ -546,9 +564,6 @@ importers: packages: - '@adobe/css-tools@4.3.3': - resolution: {integrity: sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ==} - '@ampproject/remapping@2.3.0': resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} @@ -1244,19 +1259,17 @@ packages: resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==} engines: {node: '>=18'} - '@bufbuild/protobuf@2.6.0': - resolution: {integrity: sha512-6cuonJVNOIL7lTj5zgo/Rc2bKAo4/GvN+rKCrUj7GdEHRzCk8zKOfFwUsL9nAVk5rSIsRmlgcpLzTRysopEeeg==} - - '@callstack/rspress-preset@0.4.2': - resolution: {integrity: sha512-8Vh/XGNDowOH34ja8jExyoLFLydRe+kIShwqScMWI93mcMnDfVbbbKhcdhnM0ww0ywkplqx22NYAR/DnAIAAqw==} + '@callstack/rspress-preset@0.5.1': + resolution: {integrity: sha512-AlfWFAClrcwtZNXU1fXrPgnoaIazIJX9Uz8oTd4bUqms4BUEq7Lb/n27JoLdQxZ1RzhXc3APTK12eEAT6DBdwg==} peerDependencies: - '@rspress/core': 2.0.0-beta.32 + '@rspress/core': 2.0.0-rc.4 - '@callstack/rspress-theme@0.4.2': - resolution: {integrity: sha512-2eJQOUm/hYwg7QF72OJuvmG8MYZ24lEs2HjaJ+dejDslmis0NmQHbgz6FzEGNGmP0qEU7XgebAwiLTH5KzKB/w==} + '@callstack/rspress-theme@0.5.1': + resolution: {integrity: sha512-p8iS0icR9JbAvYWKOeglxfnJwwCATEpItjDoFW5srTYNFw4swVD1Aahox8Fv89l+wHLTzADokmC8iqqG8jnvqg==} peerDependencies: - '@rspress/core': ^2.0.0-beta.32 - react: ^19.0.0 + '@rspress/core': ^2.0.0-rc.4 + react: ^19.2.0 + react-dom: ^19.2.0 '@clack/core@1.0.0-alpha.5': resolution: {integrity: sha512-z02wRlW7F7L5N5r2otDMsrLNKAgjDIDD+m4do5/cBqiYCKKb7SNBJgpUISjuCmRI0/P5XyoInmMrr1rBoH8MKw==} @@ -1264,13 +1277,6 @@ packages: '@clack/prompts@1.0.0-alpha.5': resolution: {integrity: sha512-hY67bxfwwti2WkLOLOiuXtAdD43KNMV4yiJPPSEdZG8N5TfZ9lLxibmqwKe5UZ5364PIp4kzTEvge/4Crcd5bg==} - '@colors/colors@1.6.0': - resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} - engines: {node: '>=0.1.90'} - - '@dabh/diagnostics@2.0.8': - resolution: {integrity: sha512-R4MSXTVnuMzGD7bzHdW2ZhhdPC/igELENcq5IjEverBvq5hn1SXCWcsi6eSsdWP0/Ur+SItRRjAktmdoX/8R/Q==} - '@emnapi/core@1.5.0': resolution: {integrity: sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg==} @@ -1628,9 +1634,6 @@ packages: resolution: {integrity: sha512-4SaFZCNfJqvk/kenHpI8xvN42DMaoycy4PzKc5otHxRswww1kAt82OlBuwRVLofCACCTZEcla2Ydxv8scMXaTg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@flatten-js/interval-tree@1.1.4': - resolution: {integrity: sha512-o4emRDDvGdkwX18BSVSXH8q27qAL7Z2WDHSN75C8xyRSE4A8UOkig0mWSGoT5M5KaTHZxoLmalFwOTQmbRusUg==} - '@hapi/hoek@9.3.0': resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} @@ -1803,11 +1806,6 @@ packages: '@mdx-js/mdx@3.1.1': resolution: {integrity: sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ==} - '@mdx-js/react@2.3.0': - resolution: {integrity: sha512-zQH//gdOmuu7nt2oJR29vFhDv88oGPmVw6BggmrHeMI+xgEkp1B2dX9/bMBSYtK0dyLX/aOmesKS09g222K1/g==} - peerDependencies: - react: '>=16' - '@mdx-js/react@3.1.1': resolution: {integrity: sha512-f++rKLQgUVYDAtECQ6fn/is15GkEH9+nZPM3MS0RcxVqoTfawHvDlSCH7JbMhAM6uJ32v3eXLvLmLvjGu7PTQw==} peerDependencies: @@ -1864,6 +1862,9 @@ packages: '@module-federation/error-codes@0.21.4': resolution: {integrity: sha512-ClpL5MereWNXh+EgDjz7w4RrC1JlisQTvXDa1gLxpviHafzNDfdViVmuhi9xXVuj+EYo8KU70Y999KHhk9424Q==} + '@module-federation/error-codes@0.21.6': + resolution: {integrity: sha512-MLJUCQ05KnoVl8xd6xs9a5g2/8U+eWmVxg7xiBMeR0+7OjdWUbHwcwgVFatRIwSZvFgKHfWEiI7wsU1q1XbTRQ==} + '@module-federation/inject-external-runtime-core-plugin@0.21.4': resolution: {integrity: sha512-lOy+qPEA56AdkSIN2hO5zsKvnbplCJHUR5B6BKjo5+q752BrE3C1O0vAXYBRgmdQIBn+JAssdkbJKtfwl8oReQ==} peerDependencies: @@ -1908,24 +1909,36 @@ packages: '@module-federation/runtime-core@0.21.4': resolution: {integrity: sha512-SGpmoOLGNxZofpTOk6Lxb2ewaoz5wMi93AFYuuJB04HTVcngEK+baNeUZ2D/xewrqNIJoMY6f5maUjVfIIBPUA==} + '@module-federation/runtime-core@0.21.6': + resolution: {integrity: sha512-5Hd1Y5qp5lU/aTiK66lidMlM/4ji2gr3EXAtJdreJzkY+bKcI5+21GRcliZ4RAkICmvdxQU5PHPL71XmNc7Lsw==} + '@module-federation/runtime-tools@0.18.0': resolution: {integrity: sha512-fSga9o4t1UfXNV/Kh6qFvRyZpPp3EHSPRISNeyT8ZoTpzDNiYzhtw0BPUSSD8m6C6XQh2s/11rI4g80UY+d+hA==} '@module-federation/runtime-tools@0.21.4': resolution: {integrity: sha512-RzFKaL0DIjSmkn76KZRfzfB6dD07cvID84950jlNQgdyoQFUGkqD80L6rIpVCJTY/R7LzR3aQjHnoqmq4JPo3w==} + '@module-federation/runtime-tools@0.21.6': + resolution: {integrity: sha512-fnP+ZOZTFeBGiTAnxve+axGmiYn2D60h86nUISXjXClK3LUY1krUfPgf6MaD4YDJ4i51OGXZWPekeMe16pkd8Q==} + '@module-federation/runtime@0.18.0': resolution: {integrity: sha512-+C4YtoSztM7nHwNyZl6dQKGUVJdsPrUdaf3HIKReg/GQbrt9uvOlUWo2NXMZ8vDAnf/QRrpSYAwXHmWDn9Obaw==} '@module-federation/runtime@0.21.4': resolution: {integrity: sha512-wgvGqryurVEvkicufJmTG0ZehynCeNLklv8kIk5BLIsWYSddZAE+xe4xov1kgH5fIJQAoQNkRauFFjVNlHoAkA==} + '@module-federation/runtime@0.21.6': + resolution: {integrity: sha512-+caXwaQqwTNh+CQqyb4mZmXq7iEemRDrTZQGD+zyeH454JAYnJ3s/3oDFizdH6245pk+NiqDyOOkHzzFQorKhQ==} + '@module-federation/sdk@0.18.0': resolution: {integrity: sha512-Lo/Feq73tO2unjmpRfyyoUkTVoejhItXOk/h5C+4cistnHbTV8XHrW/13fD5e1Iu60heVdAhhelJd6F898Ve9A==} '@module-federation/sdk@0.21.4': resolution: {integrity: sha512-tzvhOh/oAfX++6zCDDxuvioHY4Jurf8vcfoCbKFxusjmyKr32GPbwFDazUP+OPhYCc3dvaa9oWU6X/qpUBLfJw==} + '@module-federation/sdk@0.21.6': + resolution: {integrity: sha512-x6hARETb8iqHVhEsQBysuWpznNZViUh84qV2yE7AD+g7uIzHKiYdoWqj10posbo5XKf/147qgWDzKZoKoEP2dw==} + '@module-federation/third-party-dts-extractor@0.21.4': resolution: {integrity: sha512-zKaKpABSbpZhKbTUGkN6VKqApa+PcawwXAv+L8co3vhErRna82svSIicgLy27n4QzAFJ09coB4WgnPQLjXdU+A==} @@ -1935,6 +1948,9 @@ packages: '@module-federation/webpack-bundler-runtime@0.21.4': resolution: {integrity: sha512-dusmR3uPnQh9u9ChQo3M+GLOuGFthfvnh7WitF/a1eoeTfRmXqnMFsXtZCUK+f/uXf+64874Zj/bhAgbBcVHZA==} + '@module-federation/webpack-bundler-runtime@0.21.6': + resolution: {integrity: sha512-7zIp3LrcWbhGuFDTUMLJ2FJvcwjlddqhWGxi/MW3ur1a+HaO8v5tF2nl+vElKmbG1DFLU/52l3PElVcWf/YcsQ==} + '@napi-rs/wasm-runtime@0.2.12': resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} @@ -1944,6 +1960,9 @@ packages: '@napi-rs/wasm-runtime@1.0.5': resolution: {integrity: sha512-TBr9Cf9onSAS2LQ2+QHx6XcC6h9+RIzJgbqG3++9TUZSH204AwEy5jg3BTQ0VATsyoGj4ee49tN/y6rvaOOtcg==} + '@napi-rs/wasm-runtime@1.0.7': + resolution: {integrity: sha512-SeDnOO0Tk7Okiq6DbXmmBODgOAb9dp9gjlphokTUxmt8U3liIP1ZsozBahH69j/RJv+Rfs6IwUKHTgQYJ/HBAw==} + '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==} @@ -2075,88 +2094,6 @@ packages: '@nx/workspace@22.0.4': resolution: {integrity: sha512-bbepXLA7YHOXLkA11JImXYp3XBjHIgqMrQ+fq6fGOmnCnq6aEl8JyE7OAByiWKKnZzPhO9z4tHHfRQlqpHwrPg==} - '@parcel/watcher-android-arm64@2.5.1': - resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [android] - - '@parcel/watcher-darwin-arm64@2.5.1': - resolution: {integrity: sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [darwin] - - '@parcel/watcher-darwin-x64@2.5.1': - resolution: {integrity: sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [darwin] - - '@parcel/watcher-freebsd-x64@2.5.1': - resolution: {integrity: sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [freebsd] - - '@parcel/watcher-linux-arm-glibc@2.5.1': - resolution: {integrity: sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==} - engines: {node: '>= 10.0.0'} - cpu: [arm] - os: [linux] - - '@parcel/watcher-linux-arm-musl@2.5.1': - resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==} - engines: {node: '>= 10.0.0'} - cpu: [arm] - os: [linux] - - '@parcel/watcher-linux-arm64-glibc@2.5.1': - resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [linux] - - '@parcel/watcher-linux-arm64-musl@2.5.1': - resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [linux] - - '@parcel/watcher-linux-x64-glibc@2.5.1': - resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [linux] - - '@parcel/watcher-linux-x64-musl@2.5.1': - resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [linux] - - '@parcel/watcher-win32-arm64@2.5.1': - resolution: {integrity: sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [win32] - - '@parcel/watcher-win32-ia32@2.5.1': - resolution: {integrity: sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==} - engines: {node: '>= 10.0.0'} - cpu: [ia32] - os: [win32] - - '@parcel/watcher-win32-x64@2.5.1': - resolution: {integrity: sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [win32] - - '@parcel/watcher@2.5.1': - resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==} - engines: {node: '>= 10.0.0'} - '@phenomnomnominal/tsquery@5.0.1': resolution: {integrity: sha512-3nVv+e2FQwsW8Aw6qTU6f+1rfcJ3hrcnvH/mu9i8YhxO+9sqbOfpL8m6PbET5+xKOlz/VSbp0RoYWYCtIsnmuA==} peerDependencies: @@ -2222,14 +2159,10 @@ packages: '@react-native/babel-preset@0.82.1': resolution: {integrity: sha512-Olj7p4XIsUWLKjlW46CqijaXt45PZT9Lbvv/Hz698FXTenPKk4k7sy6RGRGZPWO2TCBBfcb73dus1iNHRFSq7g==} engines: {node: '>= 20.19.4'} - peerDependencies: - '@babel/core': '*' '@react-native/codegen@0.82.1': resolution: {integrity: sha512-ezXTN70ygVm9l2m0i+pAlct0RntoV4afftWMGUIeAWLgaca9qItQ54uOt32I/9dBJvzBibT33luIR/pBG0dQvg==} engines: {node: '>= 20.19.4'} - peerDependencies: - '@babel/core': '*' '@react-native/community-cli-plugin@0.82.1': resolution: {integrity: sha512-H/eMdtOy9nEeX7YVeEG1N2vyCoifw3dr9OV8++xfUElNYV7LtSmJ6AqxZUUfxGJRDFPQvaU/8enmJlM/l11VxQ==} @@ -2277,13 +2210,14 @@ packages: '@react-native/metro-babel-transformer@0.82.1': resolution: {integrity: sha512-kVQyYxYe1Da7cr7uGK9c44O6vTzM8YY3KW9CSLhhV1CGw7jmohU1HfLaUxDEmYfFZMc4Kj3JsIEbdUlaHMtprQ==} engines: {node: '>= 20.19.4'} - peerDependencies: - '@babel/core': '*' '@react-native/metro-config@0.82.1': resolution: {integrity: sha512-mAY6R3xnDMlmDOrUCAtLTjIkli26DZt4LNVuAjDEdnlv5sHANOr5x4qpMn7ea1p9Q/tpfHLalPQUQeJ8CZH4gA==} engines: {node: '>= 20.19.4'} + '@react-native/normalize-colors@0.74.89': + resolution: {integrity: sha512-qoMMXddVKVhZ8PA1AbUCk83trpd6N+1nF2A6k1i6LsQObyS92fELuk8kU/lQs6M7BsMHwqyLCpQJ1uFgNvIQXg==} + '@react-native/normalize-colors@0.82.1': resolution: {integrity: sha512-CCfTR1uX+Z7zJTdt3DNX9LUXr2zWXsNOyLbwupW2wmRzrxlHRYfmLgTABzRL/cKhh0Ubuwn15o72MQChvCRaHw==} @@ -2301,10 +2235,6 @@ packages: '@types/react': optional: true - '@remix-run/router@1.23.0': - resolution: {integrity: sha512-O3rHJzAQKamUz1fvE0Qaw0xSFqsA/yafi2iqeE0pvdFtCO1viYx8QL6f3Ln/aCCTLxs68SLf0KPM9eSeM8yBnA==} - engines: {node: '>=14.0.0'} - '@rolldown/pluginutils@1.0.0-beta.19': resolution: {integrity: sha512-3FL3mnMbPu0muGOCaKAhhFEYmqv9eTfPSJRJmANrCwtgK8VuxpsZDGK+m0LYAGoyO8+0j5uRe4PeyPDK1yA/hA==} @@ -2492,68 +2422,120 @@ packages: cpu: [x64] os: [win32] - '@rsbuild/core@1.5.11': - resolution: {integrity: sha512-WlpeRlcfwh2Aasx4eJy6KWW9+bWNQo8EjZJE47iR5Rz+3l0znGzke4sNx4OYsDx8xV0gGkAzIbIMRc4ciLVq4Q==} + '@rsbuild/core@1.6.15': + resolution: {integrity: sha512-LvoOF53PL6zXgdzEhgnnP51S4FseDFH1bHrobK4EK6zZX/tN8qgf5tdlmN7h4OkMv/Qs1oUfvj0QcLWSstnnvA==} engines: {node: '>=18.12.0'} hasBin: true - '@rsbuild/plugin-react@1.4.0': - resolution: {integrity: sha512-YhhOUOonJBjnKpUf7E4iXKidldPWAGmYBRtDjQgcSmW4tbW0DasFpNCqLn5870Q2Ly6oCU06sLv+8G597I36+w==} + '@rsbuild/plugin-react@1.4.3': + resolution: {integrity: sha512-Uf9FkKk2TqYDbsypXHgjdivPmEoYFvBTHJT5fPmjCf0Sc3lR2BHtlc0WMdZTCKUJ5jTxREygMs9LbnehX98L8g==} peerDependencies: - '@rsbuild/core': 1.x + '@rsbuild/core': ^1.0.0 || ^2.0.0-0 '@rspack/binding-darwin-arm64@1.5.6': resolution: {integrity: sha512-eRG8wbciBn09rdEGGijt3ZKYNgq1DGaiLaDb08HP1hZ/+SN4OdM9wxGo+abwkWl/Zv9ab/Ff8xc+Ry357UFvKA==} cpu: [arm64] os: [darwin] + '@rspack/binding-darwin-arm64@1.6.8': + resolution: {integrity: sha512-e8CTQtzaeGnf+BIzR7wRMUwKfIg0jd/sxMRc1Vd0bCMHBhSN9EsGoMuJJaKeRrSmy2nwMCNWHIG+TvT1CEKg+A==} + cpu: [arm64] + os: [darwin] + '@rspack/binding-darwin-x64@1.5.6': resolution: {integrity: sha512-+0ulwI2XNu1ArNP2UucKbePr1GAJiwaNL6Us5Ke0Qx/DRRzPGuA6X+R2iT30HjJRSLe6G9T9DxnBOnnqJOlysw==} cpu: [x64] os: [darwin] + '@rspack/binding-darwin-x64@1.6.8': + resolution: {integrity: sha512-ku1XpTEPt6Za11zhpFWhfwrTQogcgi9RJrOUVC4FESiPO9aKyd4hJ+JiPgLY0MZOqsptK6vEAgOip+uDVXrCpg==} + cpu: [x64] + os: [darwin] + '@rspack/binding-linux-arm64-gnu@1.5.6': resolution: {integrity: sha512-a7LxYdJzANj8xNjjlNJDCITQ9yAYGlc4Znz4DAYTX6vW0Q146rXCDif/UJLboYjQgrrbNbufpfRKEpPbYu2zGw==} cpu: [arm64] os: [linux] + '@rspack/binding-linux-arm64-gnu@1.6.8': + resolution: {integrity: sha512-fvZX6xZPvBT8qipSpvkKMX5M7yd2BSpZNCZXcefw6gA3uC7LI3gu+er0LrDXY1PtPzVuHTyDx+abwWpagV3PiQ==} + cpu: [arm64] + os: [linux] + '@rspack/binding-linux-arm64-musl@1.5.6': resolution: {integrity: sha512-Bi2Z8HhWH1ZikH2Ettowzej75Iy219KZYIl2W1RVwLkuAqm/DBRx099YsMmh+6esI8e3UgBQtWcHLz5lXaB+6g==} cpu: [arm64] os: [linux] + '@rspack/binding-linux-arm64-musl@1.6.8': + resolution: {integrity: sha512-++XMKcMNrt59HcFBLnRaJcn70k3X0GwkAegZBVpel8xYIAgvoXT5+L8P1ExId/yTFxqedaz8DbcxQnNmMozviw==} + cpu: [arm64] + os: [linux] + '@rspack/binding-linux-x64-gnu@1.5.6': resolution: {integrity: sha512-Ko4IbyaWA0B4e0EtXyfouVvkeIyh0bcgcESahir1tX/wRyXAV9aqOm0uRZ3eSIRaIvKxWQAmoi49/gFNgUMNJA==} cpu: [x64] os: [linux] + '@rspack/binding-linux-x64-gnu@1.6.8': + resolution: {integrity: sha512-tv3BWkTE1TndfX+DsE1rSTg8fBevCxujNZ3MlfZ22Wfy9x1FMXTJlWG8VIOXmaaJ1wUHzv8S7cE2YUUJ2LuiCg==} + cpu: [x64] + os: [linux] + '@rspack/binding-linux-x64-musl@1.5.6': resolution: {integrity: sha512-Nyk2KoMiWruGe8GSGKlg0MU+EBWUiWJ+fV4/IEZw6tnAsod4YKIm4vD7f9jac0Mw07GIXggKQc0MaVhWTC8F7g==} cpu: [x64] os: [linux] + '@rspack/binding-linux-x64-musl@1.6.8': + resolution: {integrity: sha512-DCGgZ5/in1O3FjHWqXnDsncRy+48cMhfuUAAUyl0yDj1NpsZu9pP+xfGLvGcQTiYrVl7IH9Aojf1eShP/77WGA==} + cpu: [x64] + os: [linux] + '@rspack/binding-wasm32-wasi@1.5.6': resolution: {integrity: sha512-Jj44lsdQWAaBZZwKk/x6UeQD/NFpH5uucHVXQUsC5BGF0PO3XbGSwhX7GSQ7+JuvFvEpIZDg6DuFXycB0Kv6iA==} cpu: [wasm32] + '@rspack/binding-wasm32-wasi@1.6.8': + resolution: {integrity: sha512-VUwdhl/lI4m6o1OGCZ9JwtMjTV/yLY5VZTQdEPKb40JMTlmZ5MBlr5xk7ByaXXYHr6I+qnqEm73iMKQvg6iknw==} + cpu: [wasm32] + '@rspack/binding-win32-arm64-msvc@1.5.6': resolution: {integrity: sha512-zkAe6JRAUqHGYFO64GyGDQHk6jg5s+odFkZ66Z1jun7AvHXB99iDN5mX8+kNjaECXjIl4A9dT5oO8Ogc04vLkQ==} cpu: [arm64] os: [win32] + '@rspack/binding-win32-arm64-msvc@1.6.8': + resolution: {integrity: sha512-23YX7zlOZlub+nPGDBUzktb4D5D6ETUAluKjXEeHIZ9m7fSlEYBnGL66YE+3t1DHXGd0OqsdwlvrNGcyo6EXDQ==} + cpu: [arm64] + os: [win32] + '@rspack/binding-win32-ia32-msvc@1.5.6': resolution: {integrity: sha512-M7ghMl0eh/cD5oNCCd8OPsUdgCPEsI3BKJqrWZmKFIMbJci0mDTLivc2/NIMt7fgbfRBSeUKeIQKbVbey6yufg==} cpu: [ia32] os: [win32] + '@rspack/binding-win32-ia32-msvc@1.6.8': + resolution: {integrity: sha512-cFgRE3APxrY4AEdooVk2LtipwNNT/9mrnjdC5lVbsIsz+SxvGbZR231bxDJEqP15+RJOaD07FO1sIjINFqXMEg==} + cpu: [ia32] + os: [win32] + '@rspack/binding-win32-x64-msvc@1.5.6': resolution: {integrity: sha512-i8HiI1gErP+vQ8DYz+oDbpNHPRZ8BSRl8tt3GA02FINujanKvy0xWyOQyOssxSio4IwWTlZQRQf0TEAT1UraUg==} cpu: [x64] os: [win32] + '@rspack/binding-win32-x64-msvc@1.6.8': + resolution: {integrity: sha512-cIuhVsZYd3o3Neo1JSAhJYw6BDvlxaBoqvgwRkG1rs0ExFmEmgYyG7ip9pFKnKNWph/tmW3rDYypmEfjs1is7g==} + cpu: [x64] + os: [win32] + '@rspack/binding@1.5.6': resolution: {integrity: sha512-1I6VOr5pe4FeL6wUlrOmMUVXWcYTVJTpwBzprxGdiu9oYwltBTiTXd7F6x6NOId1CiPcmXZII+3aZr9X3JwoPA==} + '@rspack/binding@1.6.8': + resolution: {integrity: sha512-lUeL4mbwGo+nqRKqFDCm9vH2jv9FNMVt1X8jqayWRcOCPlj/2UVMEFgqjR7Pp2vlvnTKq//31KbDBJmDZq31RQ==} + '@rspack/core@1.5.6': resolution: {integrity: sha512-lM+0m5P+YZdY1tMWX8qbEO3gywAS2lV7pUWFQRF2hqyF7mwWo9oN4erp99MIf5dq5A+vDrK3oPDNIuTWrWz5NA==} engines: {node: '>=18.12.0'} @@ -2563,12 +2545,24 @@ packages: '@swc/helpers': optional: true + '@rspack/core@1.6.8': + resolution: {integrity: sha512-FolcIAH5FW4J2FET+qwjd1kNeFbCkd0VLuIHO0thyolEjaPSxw5qxG67DA7BZGm6PVcoiSgPLks1DL6eZ8c+fA==} + engines: {node: '>=18.12.0'} + peerDependencies: + '@swc/helpers': '>=0.5.1' + peerDependenciesMeta: + '@swc/helpers': + optional: true + '@rspack/lite-tapable@1.0.1': resolution: {integrity: sha512-VynGOEsVw2s8TAlLf/uESfrgfrq2+rcXB1muPJYBWbsm1Oa6r5qVQhjA5ggM6z/coYPrsVMgovl3Ff7Q7OCp1w==} engines: {node: '>=16.0.0'} - '@rspack/plugin-react-refresh@1.5.1': - resolution: {integrity: sha512-GT3KV1GSmIXO8dQg6taNf9AuZ8XHEs8cZqRn5mC2GT6DPCvUA/ZKezIGsHTyH+HMEbJnJ/T8yYeJnvnzuUcqAQ==} + '@rspack/lite-tapable@1.1.0': + resolution: {integrity: sha512-E2B0JhYFmVAwdDiG14+DW0Di4Ze4Jg10Pc4/lILUrd5DRCaklduz2OvJ5HYQ6G+hd+WTzqQb3QnDNfK4yvAFYw==} + + '@rspack/plugin-react-refresh@1.6.0': + resolution: {integrity: sha512-OO53gkrte/Ty4iRXxxM6lkwPGxsSsupFKdrPFnjwFIYrPvFLjeolAl5cTx+FzO5hYygJiGnw7iEKTmD+ptxqDA==} peerDependencies: react-refresh: '>=0.10.0 <1.0.0' webpack-hot-middleware: 2.x @@ -2576,9 +2570,9 @@ packages: webpack-hot-middleware: optional: true - '@rspress/core@2.0.0-beta.32': - resolution: {integrity: sha512-gShXFSpULNEFjSz+reOWKauUlCBi74PR3R/ej6NpiLnIY5iz7FJuOYuDOajzK2rWxkDkFo3Jqh1tZn5jCrtpJw==} - engines: {node: '>=18.0.0'} + '@rspress/core@2.0.0-rc.4': + resolution: {integrity: sha512-EHJjbc8yA/La6sJN3bjZus24KhSCdh5lEIVtjt7EBEnLteDN+wULzO1sFKj8agH3BXYE0XOuz2W1HbTTGfcGJQ==} + engines: {node: '>=20.9.0'} hasBin: true '@rspress/mdx-rs-darwin-arm64@0.6.6': @@ -2633,28 +2627,24 @@ packages: resolution: {integrity: sha512-NpNhTKBIlV3O6ADhoZkgHvBFvXMW2TYlIWmIT1ysJESUBqDpaN9H3Teve5fugjU2pQ2ORBZO6SQGKliMw/8m/Q==} engines: {node: '>= 10'} - '@rspress/plugin-llms@2.0.0-beta.32': - resolution: {integrity: sha512-18QMlaeJ8K3xhf1a9d77l5KD2pUBMS2LsT+mxYLKCCe8pLi61rIPZbufq6xLdWaWpqyerLAcDmiDH8crSVd91w==} - engines: {node: '>=18.0.0'} + '@rspress/plugin-llms@2.0.0-rc.4': + resolution: {integrity: sha512-PSG8JOO2EOqCeViif48puAeiP2pBhe//v0sC8dm9wGmQsrq8xbx2rH1aiQElZIwcoximqukzHavrU6O3qPW2NA==} + engines: {node: '>=20.9.0'} peerDependencies: - '@rspress/core': ^2.0.0-beta.32 + '@rspress/core': ^2.0.0-rc.4 - '@rspress/plugin-sitemap@2.0.0-beta.32': - resolution: {integrity: sha512-CjWmAzczBVo/hSaWlkrQPUM41TAd7Onay4nUduUMmYY9evJwkdPm51/406kIEryAwBu491AzGB5pjzuceV+xfw==} - engines: {node: '>=18.0.0'} + '@rspress/plugin-sitemap@2.0.0-rc.4': + resolution: {integrity: sha512-sr900krxs9ZVfbV+b/ig7t8mAPaMOonWz2Qj9zXg4TgEgnh+LnNtHQpHYeFbiTF5WAozVxdu5lJ1E36oh231pQ==} + engines: {node: '>=20.9.0'} peerDependencies: - '@rspress/core': ^2.0.0-beta.32 + '@rspress/core': ^2.0.0-rc.4 - '@rspress/runtime@2.0.0-beta.32': - resolution: {integrity: sha512-gIxn8JxiZRtEfLsoJoJlfvpOxQBVctDMJfEHc0RMYcqz7YTmlosHdmJi9NICykTLeUP/PaubPuvGdBMPSymGtg==} - engines: {node: '>=18.0.0'} + '@rspress/runtime@2.0.0-rc.4': + resolution: {integrity: sha512-BcNs6zpIXcWfhXGCDS525HDwSgLXO+S+q2Ty6sQPmyYJzOg+V9tHIlulKTOfuBCyEhTZeTAJofP4+rG4EZBUgw==} + engines: {node: '>=20.9.0'} - '@rspress/shared@2.0.0-beta.32': - resolution: {integrity: sha512-OhiiIWBtFe29MYh71i9HG0QlUyiAc/LyoGqHOCy1EJfX6hLljydc04WAifz0PcaCbTRh96yiWVPE3ieOqS35Uw==} - - '@rspress/theme-default@2.0.0-beta.32': - resolution: {integrity: sha512-+8RDQJDzkRrSfbAB5ORxwVZoS55rp/pE2DkbLkZd4DlFcCdfGkkuNc6mR2n8SpmMB8T04odfVCkR06ihgv8RVw==} - engines: {node: '>=18.0.0'} + '@rspress/shared@2.0.0-rc.4': + resolution: {integrity: sha512-46jTwxV8SRLMbe3euCEMWQudmdYE2Tf+EN/5l6EP10i6QICOXMIzUFFWfr0LOTr4aZCSTSJu7Tp6Xxml6JbheA==} '@rtsao/scc@1.1.0': resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} @@ -2662,26 +2652,26 @@ packages: '@selderee/plugin-htmlparser2@0.11.0': resolution: {integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==} - '@shikijs/core@3.13.0': - resolution: {integrity: sha512-3P8rGsg2Eh2qIHekwuQjzWhKI4jV97PhvYjYUzGqjvJfqdQPz+nMlfWahU24GZAyW1FxFI1sYjyhfh5CoLmIUA==} + '@shikijs/core@3.21.0': + resolution: {integrity: sha512-AXSQu/2n1UIQekY8euBJlvFYZIw0PHY63jUzGbrOma4wPxzznJXTXkri+QcHeBNaFxiiOljKxxJkVSoB3PjbyA==} - '@shikijs/engine-javascript@3.13.0': - resolution: {integrity: sha512-Ty7xv32XCp8u0eQt8rItpMs6rU9Ki6LJ1dQOW3V/56PKDcpvfHPnYFbsx5FFUP2Yim34m/UkazidamMNVR4vKg==} + '@shikijs/engine-javascript@3.21.0': + resolution: {integrity: sha512-ATwv86xlbmfD9n9gKRiwuPpWgPENAWCLwYCGz9ugTJlsO2kOzhOkvoyV/UD+tJ0uT7YRyD530x6ugNSffmvIiQ==} - '@shikijs/engine-oniguruma@3.13.0': - resolution: {integrity: sha512-O42rBGr4UDSlhT2ZFMxqM7QzIU+IcpoTMzb3W7AlziI1ZF7R8eS2M0yt5Ry35nnnTX/LTLXFPUjRFCIW+Operg==} + '@shikijs/engine-oniguruma@3.21.0': + resolution: {integrity: sha512-OYknTCct6qiwpQDqDdf3iedRdzj6hFlOPv5hMvI+hkWfCKs5mlJ4TXziBG9nyabLwGulrUjHiCq3xCspSzErYQ==} - '@shikijs/langs@3.13.0': - resolution: {integrity: sha512-672c3WAETDYHwrRP0yLy3W1QYB89Hbpj+pO4KhxK6FzIrDI2FoEXNiNCut6BQmEApYLfuYfpgOZaqbY+E9b8wQ==} + '@shikijs/langs@3.21.0': + resolution: {integrity: sha512-g6mn5m+Y6GBJ4wxmBYqalK9Sp0CFkUqfNzUy2pJglUginz6ZpWbaWjDB4fbQ/8SHzFjYbtU6Ddlp1pc+PPNDVA==} - '@shikijs/rehype@3.13.0': - resolution: {integrity: sha512-dxvB5gXEpiTI3beGwOPEwxFxQNmUWM4cwOWbvUmL6DnQJGl18/+cCjVHZK2OnasmU0v7SvM39Zh3iliWdwfBDA==} + '@shikijs/rehype@3.21.0': + resolution: {integrity: sha512-fTQvwsZL67QdosMFdTgQ5SNjW3nxaPplRy//312hqOctRbIwviTV0nAbhv3NfnztHXvFli2zLYNKsTz/f9tbpQ==} - '@shikijs/themes@3.13.0': - resolution: {integrity: sha512-Vxw1Nm1/Od8jyA7QuAenaV78BG2nSr3/gCGdBkLpfLscddCkzkL36Q5b67SrLLfvAJTOUzW39x4FHVCFriPVgg==} + '@shikijs/themes@3.21.0': + resolution: {integrity: sha512-BAE4cr9EDiZyYzwIHEk7JTBJ9CzlPuM4PchfcA5ao1dWXb25nv6hYsoDiBq2aZK9E3dlt3WB78uI96UESD+8Mw==} - '@shikijs/types@3.13.0': - resolution: {integrity: sha512-oM9P+NCFri/mmQ8LoFGVfVyemm5Hi27330zuOBp0annwJdKH1kOLndw3zCtAVDehPLg9fKqoEx3Ht/wNZxolfw==} + '@shikijs/types@3.21.0': + resolution: {integrity: sha512-zGrWOxZ0/+0ovPY7PvBU2gIS9tmhSUUt30jAcNV0Bq0gb2S98gwfjIs1vxlmH5zM7/4YxLamT6ChlqqAJmPPjA==} '@shikijs/vscode-textmate@10.0.2': resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} @@ -2710,9 +2700,6 @@ packages: '@sinonjs/fake-timers@13.0.5': resolution: {integrity: sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==} - '@so-ric/colorspace@1.1.6': - resolution: {integrity: sha512-/KiKkpHNOBgkFJwu9sh48LkHSMYGyuTcSFK/qMBdnOAlrRJzRSXAOFB5qwzaVQuDl8wAvHVMkaASQDReTahxuw==} - '@standard-schema/spec@1.1.0': resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} @@ -3010,9 +2997,6 @@ packages: '@types/stack-utils@2.0.3': resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} - '@types/triple-beam@1.3.5': - resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==} - '@types/unist@2.0.11': resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} @@ -3149,8 +3133,8 @@ packages: '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} - '@unhead/react@2.0.17': - resolution: {integrity: sha512-Mg8yDWUMf2eH8uZQ7vHvVaeV/HBqEzO/ThYf2VQKvfy1ZuiynFoGp8UNnC1sCA6Efbg4sPPX33BlCqdnr6vJcg==} + '@unhead/react@2.1.2': + resolution: {integrity: sha512-VNKa0JJZq5Jp28VuiOMfjAA7CTLHI0SdW/Hs1ZPq2PsNV/cgxGv8quFBGXWx4gfoHB52pejO929RKjIpYX5+iQ==} peerDependencies: react: '>=18.3.1' @@ -3384,21 +3368,6 @@ packages: '@webassemblyjs/wast-printer@1.14.1': resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==} - '@wix-pilot/core@3.4.2': - resolution: {integrity: sha512-O8V2NLfPEKI2IviJXG4g/vNbMfsBZNBhzAKFUOOaOR9TTDUJYlZUttqjhjP/fPnaDky0/hrfGES15sO0N7zEkw==} - peerDependencies: - expect: '*' - peerDependenciesMeta: - expect: - optional: true - - '@wix-pilot/detox@1.0.13': - resolution: {integrity: sha512-/34lM25AfmHNMLOeEIhfKVnx2YZyn5VHC/R4Bs1uXQ2B+Yg0JbxAfvfXA3xqxBsdYqrYImILPO3Ih0c5UzoNxw==} - peerDependencies: - '@wix-pilot/core': ^3.4.1 - detox: '>=20.33.0' - expect: 29.x.x || 28.x.x || ^27.2.5 - '@xtuc/ieee754@1.2.0': resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} @@ -3536,9 +3505,6 @@ packages: appdirsjs@1.2.7: resolution: {integrity: sha512-Quji6+8kLBC3NnBeo14nPDq0+2jUs5s3/xEye+udFHumHhRk4M7aAMXp/PBJqkKYGuuyR9M/6Dq7d2AViiGmhw==} - arg@4.1.3: - resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} - argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} @@ -3765,9 +3731,6 @@ packages: bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} - bluebird@3.7.2: - resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} - body-parser@1.20.3: resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} @@ -3788,9 +3751,6 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browser-process-hrtime@1.0.0: - resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==} - browserslist@4.25.0: resolution: {integrity: sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} @@ -3809,9 +3769,6 @@ packages: engines: {node: '>= 0.4.0'} hasBin: true - buffer-builder@0.2.0: - resolution: {integrity: sha512-7VPMEPuYznPSoR21NE1zvd2Xna6c/CloiZCfcMXR1Jny6PjX0N4Nsa38zcBFo/FMK+BlA+FLKbJCQ0i2yxp+Xg==} - buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} @@ -3824,37 +3781,6 @@ packages: peerDependencies: esbuild: '>=0.18' - bunyamin@1.6.3: - resolution: {integrity: sha512-m1hAijFhu8pFiidsVc0XEDic46uxPK+mKNLqkb5mluNx0nTolNzx/DjwMqHChQWCgfOLMjKYJJ2uPTQLE6t4Ng==} - engines: {node: '>=14.18.2'} - peerDependencies: - '@types/bunyan': ^1.8.8 - bunyan: ^1.8.15 || ^2.0.0 - peerDependenciesMeta: - '@types/bunyan': - optional: true - bunyan: - optional: true - - bunyan-debug-stream@3.1.1: - resolution: {integrity: sha512-LfMcz4yKM6s9BP5dfT63Prb5B2hAjReLAfQzLbNQF7qBHtn3P1v+/yn0SZ6UAr4PC3VZRX/QzK7HYkkY0ytokQ==} - engines: {node: '>=0.12.0'} - peerDependencies: - bunyan: '*' - peerDependenciesMeta: - bunyan: - optional: true - - bunyan@1.8.15: - resolution: {integrity: sha512-0tECWShh6wUysgucJcBAoYegf3JJoZWibxdqhTm7OHPeT42qdjkZ29QCMcKwbgU1kiH+auSIasNRXMLWXafXig==} - engines: {'0': node >=0.10.0} - hasBin: true - - bunyan@2.0.5: - resolution: {integrity: sha512-Jvl74TdxCN6rSP9W1I6+UOUtwslTDqsSFkDqZlFb/ilaSvQ+bZAnXT/GT97IZ5L+Vph0joPZPhxUyn6FLNmFAA==} - engines: {'0': node >=0.10.0} - hasBin: true - bytes@3.1.2: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} @@ -3863,9 +3789,6 @@ packages: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} - caf@15.0.1: - resolution: {integrity: sha512-Xp/IK6vMwujxWZXra7djdYzPdPnEQKa7Mudu2wZgDQ3TJry1I0TgtjEgwZHpoBcMp68j4fb0/FZ1SJyMEgJrXQ==} - call-bind-apply-helpers@1.0.2: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} @@ -3995,6 +3918,10 @@ packages: resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} engines: {node: '>=0.8'} + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + co@4.6.0: resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} @@ -4012,28 +3939,12 @@ packages: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} - color-convert@3.1.3: - resolution: {integrity: sha512-fasDH2ont2GqF5HpyO4w0+BcewlhHEZOFn9c1ckZdHpJ56Qb7MHhH/IcJZbBGgvdtwdwNbLvxiBEdg336iA9Sg==} - engines: {node: '>=14.6'} - color-name@1.1.3: resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - color-name@2.1.0: - resolution: {integrity: sha512-1bPaDNFm0axzE4MEAzKPuqKWeRaT43U/hyxKPBdqTfmPF+d6n7FSoTFxLVULUJOmiLp01KjhIPPH+HrXZJN4Rg==} - engines: {node: '>=12.20'} - - color-string@2.1.4: - resolution: {integrity: sha512-Bb6Cq8oq0IjDOe8wJmi4JeNn763Xs9cfrBcaylK1tPypWzyoy2G3l90v9k64kjphl/ZJjPIShFztenRomi8WTg==} - engines: {node: '>=18'} - - color@5.0.3: - resolution: {integrity: sha512-ezmVcLR3xAVp8kYOm4GS45ZLLgIE6SPAFoduLr6hTDajwb3KZ2F46gulK3XpcwRFb5KKGCSezCBAY4Dw4HsyXA==} - engines: {node: '>=18'} - colord@2.9.3: resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} @@ -4043,9 +3954,6 @@ packages: colorette@2.0.20: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} - colorjs.io@0.5.2: - resolution: {integrity: sha512-twmVoizEW7ylZSN32OgKdXRmo1qg+wT5/6C3xu5b9QsWzSFAhHLn2xd8ro0diCsKfCj1RdaTP/nrcW+vAoQPIw==} - columnify@1.6.0: resolution: {integrity: sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==} engines: {node: '>=8.0.0'} @@ -4094,6 +4002,9 @@ packages: resolution: {integrity: sha512-k6WLKfunuqCYD3t6AsuPGvQWaKwuLLh2/xHNcX4qE+vIfDNXpSqnrhwA7O53R7WVQUnt8dVAIW+YHr7xTgOgGA==} engines: {node: '>= 0.8.0'} + compute-scroll-into-view@3.1.1: + resolution: {integrity: sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==} + concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} @@ -4132,24 +4043,22 @@ packages: resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==} engines: {node: '>= 0.6'} + cookie@1.1.1: + resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==} + engines: {node: '>=18'} + cookies@0.9.1: resolution: {integrity: sha512-TG2hpqe4ELx54QER/S3HQ9SRVnQnGBtKUz5bLQWtYAQ+o6GpgMs6sYUvaiJjVxb+UXwhRhAEP3m7LbsIZ77Hmw==} engines: {node: '>= 0.8'} - copy-anything@2.0.6: - resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==} - copy-to-clipboard@3.3.3: resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} core-js-compat@3.43.0: resolution: {integrity: sha512-2GML2ZsCc5LR7hZYz4AXmjQw8zuy2T//2QntwdnpuYI7jteT6GVYJL7F6C2C57R7gSYrcqVW3lAALefdbhBLDA==} - core-js@3.45.1: - resolution: {integrity: sha512-L4NPsJlCfZsPeXukyzHFlg/i7IIVwHSItR0wg0FLNqYClJ4MQYTYLbC7EkjKYRLZF2iof2MUgN0EGy7MdQFChg==} - - core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + core-js@3.47.0: + resolution: {integrity: sha512-c3Q2VVkGAUyupsjRnaNX6u8Dq2vAdzm9iuPj5FW0fRxzlxgq9Q39MDq10IvmQSpLgHQNyQzQmOo6bgGHmH3NNg==} corser@2.0.1: resolution: {integrity: sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==} @@ -4177,13 +4086,13 @@ packages: typescript: optional: true - create-require@1.1.1: - resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - cron-parser@4.9.0: resolution: {integrity: sha512-p0SaNjrHOnQeR8/VnfGbmg9te2kfyYSQ7Sc/j/6DtPL3JQvKxmjO9TSjNFpujqV3vEYYBvNNvXSxzyksBWAx1Q==} engines: {node: '>=12.0.0'} + cross-fetch@3.2.0: + resolution: {integrity: sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==} + cross-spawn@7.0.6: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} @@ -4194,6 +4103,9 @@ packages: peerDependencies: postcss: ^8.0.9 + css-in-js-utils@3.1.0: + resolution: {integrity: sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==} + css-select@4.3.0: resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} @@ -4309,10 +4221,6 @@ packages: resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} engines: {node: '>=0.10.0'} - decamelize@4.0.0: - resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} - engines: {node: '>=10'} - decimal.js@10.5.0: resolution: {integrity: sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==} @@ -4379,11 +4287,6 @@ packages: resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - detect-libc@1.0.3: - resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} - engines: {node: '>=0.10'} - hasBin: true - detect-newline@3.1.0: resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} engines: {node: '>=8'} @@ -4393,23 +4296,9 @@ packages: engines: {node: '>= 4.0.0'} hasBin: true - detox@20.46.0: - resolution: {integrity: sha512-CXJk6/bewvi7KB6btVnmsp+43clIK3OCC2sJOnwwKaz7F2/mfD7GG0YUz/JdMyW57Bm9GF/XScvIsSd7albXWA==} - engines: {node: '>=14'} - hasBin: true - peerDependencies: - jest: 30.x.x || 29.x.x || 28.x.x || ^27.2.5 - peerDependenciesMeta: - jest: - optional: true - devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} - diff@4.0.2: - resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} - engines: {node: '>=0.3.1'} - dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} @@ -4457,24 +4346,13 @@ packages: resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==} engines: {node: '>=12'} - dtrace-provider@0.8.8: - resolution: {integrity: sha512-b7Z7cNtHPhH9EJhNNbbeqTcXB8LGFFZhq1PGgEvpeHlzd36bhbdTWoE/Ba/YguqpBSlAPKnARWhVlhunCMwfxg==} - engines: {node: '>=0.10'} - dunder-proto@1.0.1: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} - duplexer2@0.1.4: - resolution: {integrity: sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==} - eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - easy-stack@1.0.1: - resolution: {integrity: sha512-wK2sCs4feiiJeFXn3zvY0p41mdU5VUgbgs1rNsc/y5ngFUijdWd+iIN8eoyuZHKB8xN6BL4PdWmzqFmxNg6V2w==} - engines: {node: '>=6.0.0'} - ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} @@ -4503,9 +4381,6 @@ packages: resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} engines: {node: '>= 4'} - enabled@2.0.0: - resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==} - encodeurl@1.0.2: resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} engines: {node: '>= 0.8'} @@ -4548,10 +4423,6 @@ packages: engines: {node: '>=4'} hasBin: true - errno@0.1.8: - resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} - hasBin: true - error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} @@ -4834,10 +4705,6 @@ packages: resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} engines: {node: '>= 0.6'} - event-pubsub@4.3.0: - resolution: {integrity: sha512-z7IyloorXvKbFx9Bpie2+vMJKKx1fH1EN5yiTfp8CiLOTptSYy1g8H4yDpGlEdshL1PBiFtBHepF2cNsqeEeFQ==} - engines: {node: '>=4.0.0'} - event-target-shim@5.0.1: resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} engines: {node: '>=6'} @@ -4857,10 +4724,6 @@ packages: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} - exeunt@1.1.0: - resolution: {integrity: sha512-dd++Yn/0Fp+gtJ04YHov7MeAii+LFivJc6KqnJNfplzLVUkUDrfKoQDTLlCgzcW15vY5hKlHasWeIsQJ8agHsw==} - engines: {node: '>=0.10'} - exit-x@0.2.2: resolution: {integrity: sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ==} engines: {node: '>= 0.8.0'} @@ -4922,6 +4785,12 @@ packages: fb-watchman@2.0.2: resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} + fbjs-css-vars@1.0.2: + resolution: {integrity: sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==} + + fbjs@3.0.5: + resolution: {integrity: sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg==} + fdir@6.5.0: resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} engines: {node: '>=12.0.0'} @@ -4931,9 +4800,6 @@ packages: picomatch: optional: true - fecha@4.2.3: - resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} - fflate@0.8.2: resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==} @@ -5007,15 +4873,12 @@ packages: flatted@3.3.3: resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} - flexsearch@0.7.43: - resolution: {integrity: sha512-c5o/+Um8aqCSOXGcZoqZOm+NqtVwNsvVpWv6lfmSclU954O3wvQKxxK8zj74fPaSJbXpSLTs4PRhh+wnoCXnKg==} + flexsearch@0.8.212: + resolution: {integrity: sha512-wSyJr1GUWoOOIISRu+X2IXiOcVfg9qqBRyCPRUdLMIGJqPzMo+jMRlvE83t14v1j0dRMEaBbER/adQjp6Du2pw==} flow-enums-runtime@0.0.6: resolution: {integrity: sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw==} - fn.name@1.1.0: - resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} - follow-redirects@1.15.9: resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} engines: {node: '>=4.0'} @@ -5062,10 +4925,6 @@ packages: resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} engines: {node: '>=12'} - fs-extra@11.3.2: - resolution: {integrity: sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==} - engines: {node: '>=14.14'} - fs-extra@8.1.0: resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} engines: {node: '>=6 <7 || >=8'} @@ -5077,6 +4936,11 @@ packages: fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + fsevents@2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -5092,10 +4956,6 @@ packages: functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - funpermaproxy@1.1.0: - resolution: {integrity: sha512-2Sp1hWuO8m5fqeFDusyhKqYPT+7rGLw34N3qonDcdRP8+n7M7Gl/yKp/q7oCxnnJ6pWCectOmLFJpsMU/++KrQ==} - engines: {node: '>=8.3.0'} - generic-names@4.0.0: resolution: {integrity: sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A==} @@ -5149,10 +5009,6 @@ packages: resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==} hasBin: true - glob@6.0.4: - resolution: {integrity: sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==} - deprecated: Glob versions prior to v9 are no longer supported - glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported @@ -5291,8 +5147,8 @@ packages: resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} engines: {node: '>=0.10.0'} - hookable@5.5.3: - resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} + hookable@6.0.1: + resolution: {integrity: sha512-uKGyY8BuzN/a5gvzvA+3FVWo0+wUjgtfSdnmjtrOVwQCZPHpHDH2WRO3VZSOeluYrHoDCiXFffZXs8Dj1ULWtw==} html-encoding-sniffer@3.0.0: resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} @@ -5355,6 +5211,9 @@ packages: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} + hyphenate-style-name@1.1.0: + resolution: {integrity: sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw==} + iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} @@ -5387,22 +5246,11 @@ packages: resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} engines: {node: '>= 4'} - image-size@0.5.5: - resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==} - engines: {node: '>=0.10.0'} - hasBin: true - image-size@1.2.1: resolution: {integrity: sha512-rH+46sQJ2dlwfjfhCyNx5thzrv+dtmBIhPHk0zgRUukHzZ/kRueTJXoYYsclBaKcSMBWuGbOFXtioLpzTb5euw==} engines: {node: '>=16.x'} hasBin: true - immer@10.1.1: - resolution: {integrity: sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==} - - immutable@5.1.3: - resolution: {integrity: sha512-+chQdDfvscSF1SJqv2gn4SRO2ZyS3xL3r7IW/wWEEzrzLisnOlKiQu5ytC/BVNcS15C39WT2Hg/bjKjDMcu+zg==} - import-cwd@3.0.0: resolution: {integrity: sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==} engines: {node: '>=8'} @@ -5437,6 +5285,9 @@ packages: inline-style-parser@0.2.4: resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==} + inline-style-prefixer@7.0.1: + resolution: {integrity: sha512-lhYo5qNTQp3EvSSp3sRvXMbVQTLrvGV6DycRMJ5dm2BLMiJ30wpXKdDdgX+GmJZ5uQMucwRKHamXSst3Sj/Giw==} + internal-slot@1.1.0: resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} engines: {node: '>= 0.4'} @@ -5563,10 +5414,6 @@ packages: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} - is-plain-obj@2.1.0: - resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} - engines: {node: '>=8'} - is-plain-obj@4.1.0: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} @@ -5629,9 +5476,6 @@ packages: resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} engines: {node: '>= 0.4'} - is-what@3.14.1: - resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==} - is-windows@1.0.2: resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} engines: {node: '>=0.10.0'} @@ -5644,9 +5488,6 @@ packages: resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} engines: {node: '>=8'} - isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - isarray@2.0.5: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} @@ -5739,27 +5580,6 @@ packages: resolution: {integrity: sha512-lpWlJlM7bCUf1mfmuqTA8+j2lNURW9eNafOy99knBM01i5CQeY5UH1vZjgT9071nDJac1M4XsbyI44oNOdhlDQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-environment-emit@1.2.0: - resolution: {integrity: sha512-dSFBrRuIiWbHK2LSUA6CutXpMcNGjjuhvxFLF+TVz5tYFAAH0eesrZgrQ3UtOptajDYNt/fIGRqtlHqGq/bLbA==} - engines: {node: '>=16.14.0'} - peerDependencies: - '@jest/environment': '>=27.2.5' - '@jest/types': '>=27.2.5' - jest: '>=27.2.5' - jest-environment-jsdom: '>=27.2.5' - jest-environment-node: '>=27.2.5' - peerDependenciesMeta: - '@jest/environment': - optional: true - '@jest/types': - optional: true - jest: - optional: true - jest-environment-jsdom: - optional: true - jest-environment-node: - optional: true - jest-environment-node@29.7.0: resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -5887,8 +5707,8 @@ packages: resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} hasBin: true - jiti@2.6.0: - resolution: {integrity: sha512-VXe6RjJkBPj0ohtqaO8vSWP3ZhAKo66fKrFNCll4BTcwljPLz03pCbaNKfzGP5MbrCYcbJ7v0nOYYwUzTEIdXQ==} + jiti@2.6.1: + resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} hasBin: true joi@17.13.3: @@ -5898,14 +5718,6 @@ packages: resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} engines: {node: '>=10'} - js-message@1.0.7: - resolution: {integrity: sha512-efJLHhLjIyKRewNS9EGZ4UpI8NguuL6fKkhRxVuMmrGV2xN/0APGdQYwLFky5w9naebSZ0OwAGp0G6/2Cg90rA==} - engines: {node: '>=0.6.0'} - - js-queue@2.0.2: - resolution: {integrity: sha512-pbKLsbCfi7kriM3s1J4DDCo7jQkI58zPLHi0heXPzPlj0hjUsm+FesPUbE0DSbIVIK503A36aUBoCN7eMFedkA==} - engines: {node: '>=1.0.0'} - js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -5945,10 +5757,6 @@ packages: json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - json-cycle@1.5.0: - resolution: {integrity: sha512-GOehvd5PO2FeZ5T4c+RxobeT5a1PiGpF4u9/3+UvrMU4bhnVqzJY7hm39wg8PDCqkU91fWGH8qjWR4bn+wgq9w==} - engines: {node: '>= 4'} - json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} @@ -6010,9 +5818,6 @@ packages: resolution: {integrity: sha512-MeuwbCoN1daWS32/Ni5qkzmrOtQO2qrnfdxDHjrm6s4b59yG4nexAJ0pTEFyzjLp0pBVO80CZp0vW8Ze30Ebow==} engines: {node: '>= 18'} - kuler@2.0.0: - resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} - language-subtag-registry@0.3.23: resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} @@ -6026,11 +5831,6 @@ packages: leac@0.6.0: resolution: {integrity: sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==} - less@4.1.3: - resolution: {integrity: sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA==} - engines: {node: '>=6'} - hasBin: true - leven@3.1.0: resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} engines: {node: '>=6'} @@ -6042,77 +5842,13 @@ packages: lighthouse-logger@1.4.2: resolution: {integrity: sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==} - lightningcss-darwin-arm64@1.27.0: - resolution: {integrity: sha512-Gl/lqIXY+d+ySmMbgDf0pgaWSqrWYxVHoc88q+Vhf2YNzZ8DwoRzGt5NZDVqqIW5ScpSnmmjcgXP87Dn2ylSSQ==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [darwin] + lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} - lightningcss-darwin-x64@1.27.0: - resolution: {integrity: sha512-0+mZa54IlcNAoQS9E0+niovhyjjQWEMrwW0p2sSdLRhLDc8LMQ/b67z7+B5q4VmjYCMSfnFi3djAAQFIDuj/Tg==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [darwin] - - lightningcss-freebsd-x64@1.27.0: - resolution: {integrity: sha512-n1sEf85fePoU2aDN2PzYjoI8gbBqnmLGEhKq7q0DKLj0UTVmOTwDC7PtLcy/zFxzASTSBlVQYJUhwIStQMIpRA==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [freebsd] - - lightningcss-linux-arm-gnueabihf@1.27.0: - resolution: {integrity: sha512-MUMRmtdRkOkd5z3h986HOuNBD1c2lq2BSQA1Jg88d9I7bmPGx08bwGcnB75dvr17CwxjxD6XPi3Qh8ArmKFqCA==} - engines: {node: '>= 12.0.0'} - cpu: [arm] - os: [linux] - - lightningcss-linux-arm64-gnu@1.27.0: - resolution: {integrity: sha512-cPsxo1QEWq2sfKkSq2Bq5feQDHdUEwgtA9KaB27J5AX22+l4l0ptgjMZZtYtUnteBofjee+0oW1wQ1guv04a7A==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [linux] - - lightningcss-linux-arm64-musl@1.27.0: - resolution: {integrity: sha512-rCGBm2ax7kQ9pBSeITfCW9XSVF69VX+fm5DIpvDZQl4NnQoMQyRwhZQm9pd59m8leZ1IesRqWk2v/DntMo26lg==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [linux] - - lightningcss-linux-x64-gnu@1.27.0: - resolution: {integrity: sha512-Dk/jovSI7qqhJDiUibvaikNKI2x6kWPN79AQiD/E/KeQWMjdGe9kw51RAgoWFDi0coP4jinaH14Nrt/J8z3U4A==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [linux] - - lightningcss-linux-x64-musl@1.27.0: - resolution: {integrity: sha512-QKjTxXm8A9s6v9Tg3Fk0gscCQA1t/HMoF7Woy1u68wCk5kS4fR+q3vXa1p3++REW784cRAtkYKrPy6JKibrEZA==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [linux] - - lightningcss-win32-arm64-msvc@1.27.0: - resolution: {integrity: sha512-/wXegPS1hnhkeG4OXQKEMQeJd48RDC3qdh+OA8pCuOPCyvnm/yEayrJdJVqzBsqpy1aJklRCVxscpFur80o6iQ==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [win32] - - lightningcss-win32-x64-msvc@1.27.0: - resolution: {integrity: sha512-/OJLj94Zm/waZShL8nB5jsNj3CfNATLCTyFxZyouilfTmSoLDX7VlVAmhPHoZWVFp4vdmoiEbPEYC8HID3m6yw==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [win32] - - lightningcss@1.27.0: - resolution: {integrity: sha512-8f7aNmS1+etYSLHht0fQApPc2kNO8qGRutifN5rVIc6Xo6ABsEbqOr758UwI7ALVbTt4x1fllKt0PYgzD9S3yQ==} - engines: {node: '>= 12.0.0'} - - lilconfig@2.1.0: - resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} - engines: {node: '>=10'} - - lilconfig@3.1.3: - resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} - engines: {node: '>=14'} + lilconfig@3.1.3: + resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} + engines: {node: '>=14'} lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} @@ -6149,8 +5885,8 @@ packages: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} - lodash-es@4.17.21: - resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + lodash-es@4.17.23: + resolution: {integrity: sha512-kVI48u3PZr38HdYz98UmfPnXl2DXrpdctLrFLCd3kOx1xUkOmpFPx7gCWWM5MPkL/fD8zb+Ph0QzjGFs4+hHWg==} lodash.camelcase@4.3.0: resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} @@ -6184,10 +5920,6 @@ packages: resolution: {integrity: sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==} engines: {node: '>=8.0'} - logform@2.7.0: - resolution: {integrity: sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ==} - engines: {node: '>= 12.0.0'} - logkitty@0.7.1: resolution: {integrity: sha512-/3ER20CTTbahrCrpYfPn7Xavv9diBROZpoXGVZDWMw4b/X4uuUwAC0ki85tgsdMRONURyIJbcOvS94QsUBYPbQ==} hasBin: true @@ -6224,10 +5956,6 @@ packages: magicast@0.3.5: resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} - make-dir@2.1.0: - resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} - engines: {node: '>=6'} - make-dir@3.1.0: resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} engines: {node: '>=8'} @@ -6236,9 +5964,6 @@ packages: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} - make-error@1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - makeerror@1.0.12: resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} @@ -6327,6 +6052,9 @@ packages: memoize-one@5.2.1: resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==} + memoize-one@6.0.0: + resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==} + merge-descriptors@1.0.3: resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} @@ -6577,10 +6305,6 @@ packages: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} - mkdirp@0.5.6: - resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} - hasBin: true - mkdirp@1.0.4: resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} engines: {node: '>=10'} @@ -6589,9 +6313,6 @@ packages: mlly@1.8.0: resolution: {integrity: sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==} - moment@2.30.1: - resolution: {integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==} - mrmime@2.0.1: resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} engines: {node: '>=10'} @@ -6602,22 +6323,9 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - multi-sort-stream@1.0.4: - resolution: {integrity: sha512-hAZ8JOEQFbgdLe8HWZbb7gdZg0/yAIHF00Qfo3kd0rXFv96nXe+/bPTrKHZ2QMHugGX4FiAyET1Lt+jiB+7Qlg==} - - multipipe@4.0.0: - resolution: {integrity: sha512-jzcEAzFXoWwWwUbvHCNPwBlTz3WCWe/jPcXSmTfbo/VjRwRTfvLZ/bdvtiTdqCe8d4otCSsPCbhGYcX+eggpKQ==} - - mv@2.1.1: - resolution: {integrity: sha512-at/ZndSy3xEGJ8i0ygALh8ru9qy7gWW1cmkaqBN29JmMlIvM//MEO9y1sk/avxuwnPcfhkejkLsuPxH81BrkSg==} - engines: {node: '>=0.8.0'} - mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - nan@2.23.1: - resolution: {integrity: sha512-r7bBUGKzlqk8oPBDYxt6Z0aEdF1G1rwlMcLk8LCOMbOzf0mG+JUfUzG4fIMWwHWP0iyaLWEQZJmtB7nOHEm/qw==} - nano-spawn@1.0.2: resolution: {integrity: sha512-21t+ozMQDAL/UGgQVBbZ/xXvNO10++ZPuTmKRO8k9V3AClVRht49ahtDjfY8l1q6nSHOrE5ASfthzH3ol6R/hg==} engines: {node: '>=20.17'} @@ -6635,15 +6343,6 @@ packages: natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - ncp@2.0.0: - resolution: {integrity: sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==} - hasBin: true - - needle@3.3.1: - resolution: {integrity: sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==} - engines: {node: '>= 4.4.x'} - hasBin: true - negotiator@0.6.3: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} @@ -6666,9 +6365,6 @@ packages: resolution: {integrity: sha512-AntnTbmKZvNYIsTVPPwv7dfZdAfo/6H/2ZlZACK66NAOQtIApxkB/6pf/c+s+ACW8vemGJzUCyVTssrzNUK6yQ==} engines: {node: '>=16.0.0'} - node-addon-api@7.1.1: - resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} - node-fetch@2.7.0: resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} engines: {node: 4.x || >=6.0.0} @@ -6681,10 +6377,6 @@ packages: node-int64@0.4.0: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} - node-ipc@9.2.1: - resolution: {integrity: sha512-mJzaM6O3xHf9VT8BULvJSbdVbmHUKRNOH7zDDkCrA1/T+CVjq2WVIDfLt0azZRXpgArJtl3rtmEozrbXPZ9GaQ==} - engines: {node: '>=8.0.0'} - node-machine-id@1.1.12: resolution: {integrity: sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==} @@ -6793,9 +6485,6 @@ packages: once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - one-time@1.0.0: - resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==} - onetime@5.1.2: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} @@ -6803,8 +6492,8 @@ packages: oniguruma-parser@0.12.1: resolution: {integrity: sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==} - oniguruma-to-es@4.3.3: - resolution: {integrity: sha512-rPiZhzC3wXwE59YQMRDodUwwT9FZ9nNBwQQfsd1wfdtlKEyCdRV0avrTcSZ5xlIvGRVPd/cx6ZN45ECmS39xvg==} + oniguruma-to-es@4.3.4: + resolution: {integrity: sha512-3VhUGN3w2eYxnTzHn+ikMI+fp/96KoRSVK9/kMTcFqj1NRDh2IhQCKvYxDnWePKRXY/AqH+Fuiyb7VHSzBjHfA==} open@6.4.0: resolution: {integrity: sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==} @@ -6892,10 +6581,6 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} - parse-node-version@1.0.1: - resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} - engines: {node: '>= 0.10'} - parse-passwd@1.0.0: resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} engines: {node: '>=0.10.0'} @@ -6965,10 +6650,6 @@ packages: resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} engines: {node: '>=12'} - pify@4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} - engines: {node: '>=6'} - pify@5.0.0: resolution: {integrity: sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==} engines: {node: '>=10'} @@ -6992,6 +6673,16 @@ packages: resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} engines: {node: '>=8'} + playwright-core@1.57.0: + resolution: {integrity: sha512-agTcKlMw/mjBWOnD6kFZttAAGHgi/Nw0CZ2o6JqWSbMlI219lAFLZZCyqByTsvVAJq5XA5H8cA6PrvBRpBWEuQ==} + engines: {node: '>=18'} + hasBin: true + + playwright@1.57.0: + resolution: {integrity: sha512-ilYQj1s8sr2ppEJ2YVadYBN0Mb3mdo9J0wQ+UuDhzYqURwSoW4n1Xs5vs7ORwgDGmyEh33tRMeS8KhdkMoLXQw==} + engines: {node: '>=18'} + hasBin: true + pngjs@7.0.0: resolution: {integrity: sha512-LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow==} engines: {node: '>=14.19.0'} @@ -7256,20 +6947,16 @@ packages: resolution: {integrity: sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - process-nextick-args@2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - promise.series@0.2.0: resolution: {integrity: sha512-VWQJyU2bcDTgZw8kpfBpB/ejZASlCrzwz5f2hjb/zlujOEB4oeiAhHygAWq8ubsX2GVkD4kCU5V2dwOTaCY5EQ==} engines: {node: '>=0.12'} + promise@7.3.1: + resolution: {integrity: sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==} + promise@8.3.0: resolution: {integrity: sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==} - promisify-child-process@4.1.2: - resolution: {integrity: sha512-APnkIgmaHNJpkAn7k+CrJSi9WMuff5ctYFbD0CO2XIPkM8yO7d/ShouU2clywbpHV/DUsyc4bpJCsNgddNtx4g==} - engines: {node: '>=8'} - prompts@2.4.2: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} @@ -7277,9 +6964,6 @@ packages: prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} - proper-lockfile@3.2.0: - resolution: {integrity: sha512-iMghHHXv2bsxl6NchhEaFck8tvX3F9cknEEh1SUpguUOBjN7PAAW9BLzmbc1g/mCD1gY3EE2EABBHPJfFdHFmA==} - property-information@6.5.0: resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} @@ -7293,9 +6977,6 @@ packages: proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} - prr@1.0.1: - resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} - psl@1.15.0: resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==} @@ -7340,10 +7021,10 @@ packages: react-devtools-core@6.1.5: resolution: {integrity: sha512-ePrwPfxAnB+7hgnEr8vpKxL9cmnp7F322t8oqcPshbIQQhDKgFDW4tjhF2wjVbdXF9O/nyuy3sQWd9JGpiLPvA==} - react-dom@19.1.1: - resolution: {integrity: sha512-Dlq/5LAZgF0Gaz6yiqZCf6VCcZs1ghAJyrsu84Q/GT0gV+mCxbfmKNoGRKBYMJ8IEdGPqu49YWXD02GCknEDkw==} + react-dom@19.2.3: + resolution: {integrity: sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==} peerDependencies: - react: ^19.1.1 + react: ^19.2.3 react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} @@ -7354,6 +7035,12 @@ packages: react-lazy-with-preload@2.2.1: resolution: {integrity: sha512-ONSb8gizLE5jFpdHAclZ6EAAKuFX2JydnFXPPPjoUImZlLjGtKzyBS8SJgJq7CpLgsGKh9QCZdugJyEEOVC16Q==} + react-native-web@0.21.2: + resolution: {integrity: sha512-SO2t9/17zM4iEnFvlu2DA9jqNbzNhoUP+AItkoCOyFmDMOhUnBBznBDCYN92fGdfAkfQlWzPoez6+zLxFNsZEg==} + peerDependencies: + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 + react-native@0.82.1: resolution: {integrity: sha512-tFAqcU7Z4g49xf/KnyCEzI4nRTu1Opcx05Ov2helr8ZTg1z7AJR/3sr2rZ+AAVlAs2IXk+B0WOxXGmdD3+4czA==} engines: {node: '>= 20.19.4'} @@ -7365,6 +7052,12 @@ packages: '@types/react': optional: true + react-reconciler@0.33.0: + resolution: {integrity: sha512-KetWRytFv1epdpJc3J4G75I4WrplZE5jOL7Yq0p34+OVOKF4Se7WrdIdVC45XsSSmUTlht2FM/fM1FZb1mfQeA==} + engines: {node: '>=0.10.0'} + peerDependencies: + react: ^19.2.0 + react-refresh@0.14.2: resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} engines: {node: '>=0.10.0'} @@ -7373,26 +7066,31 @@ packages: resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==} engines: {node: '>=0.10.0'} - react-router-dom@6.30.1: - resolution: {integrity: sha512-llKsgOkZdbPU1Eg3zK8lCn+sjD9wMRZZPuzmdWWX5SUs8OFkN5HnFVC0u5KMeMaC9aoancFI/KoLuKPqN+hxHw==} - engines: {node: '>=14.0.0'} + react-refresh@0.18.0: + resolution: {integrity: sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw==} + engines: {node: '>=0.10.0'} + + react-router-dom@7.12.0: + resolution: {integrity: sha512-pfO9fiBcpEfX4Tx+iTYKDtPbrSLLCbwJ5EqP+SPYQu1VYCXdy79GSj0wttR0U4cikVdlImZuEZ/9ZNCgoaxwBA==} + engines: {node: '>=20.0.0'} peerDependencies: - react: '>=16.8' - react-dom: '>=16.8' + react: '>=18' + react-dom: '>=18' - react-router@6.30.1: - resolution: {integrity: sha512-X1m21aEmxGXqENEPG3T6u0Th7g0aS4ZmoNynhbs+Cn+q+QGTLt+d5IQ2bHAXKzKcxGJjxACpVbnYQSCRcfxHlQ==} - engines: {node: '>=14.0.0'} + react-router@7.12.0: + resolution: {integrity: sha512-kTPDYPFzDVGIIGNLS5VJykK0HfHLY5MF3b+xj0/tTyNYL1gF1qs7u67Z9jEhQk2sQ98SUaHxlG31g1JtF7IfVw==} + engines: {node: '>=20.0.0'} peerDependencies: - react: '>=16.8' + react: '>=18' + react-dom: '>=18' + peerDependenciesMeta: + react-dom: + optional: true - react@19.1.1: - resolution: {integrity: sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ==} + react@19.2.3: + resolution: {integrity: sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==} engines: {node: '>=0.10.0'} - readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} - readable-stream@3.6.2: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} @@ -7535,10 +7233,6 @@ packages: resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} engines: {node: '>=8'} - retry@0.12.0: - resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} - engines: {node: '>= 4'} - reusify@1.1.0: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -7546,11 +7240,6 @@ packages: rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - rimraf@2.4.5: - resolution: {integrity: sha512-J5xnxTyqaiw06JjMftq7L9ouA448dw/E7dKghkP9WpKNuwmARNNg+Gk8/u5ryb9N/Yo2+z3MCwuqFK/+qPOPfQ==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} deprecated: Rimraf versions prior to v4 are no longer supported @@ -7597,9 +7286,6 @@ packages: run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - rxjs@7.8.2: - resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} - safe-array-concat@1.1.3: resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} engines: {node: '>=0.4'} @@ -7613,9 +7299,6 @@ packages: safe-identifier@0.4.2: resolution: {integrity: sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w==} - safe-json-stringify@1.2.0: - resolution: {integrity: sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==} - safe-push-apply@1.0.0: resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} engines: {node: '>= 0.4'} @@ -7624,125 +7307,9 @@ packages: resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} engines: {node: '>= 0.4'} - safe-stable-stringify@2.5.0: - resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} - engines: {node: '>=10'} - safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - sanitize-filename@1.6.3: - resolution: {integrity: sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==} - - sass-embedded-android-arm64@1.89.2: - resolution: {integrity: sha512-+pq7a7AUpItNyPu61sRlP6G2A8pSPpyazASb+8AK2pVlFayCSPAEgpwpCE9A2/Xj86xJZeMizzKUHxM2CBCUxA==} - engines: {node: '>=14.0.0'} - cpu: [arm64] - os: [android] - - sass-embedded-android-arm@1.89.2: - resolution: {integrity: sha512-oHAPTboBHRZlDBhyRB6dvDKh4KvFs+DZibDHXbkSI6dBZxMTT+Yb2ivocHnctVGucKTLQeT7+OM5DjWHyynL/A==} - engines: {node: '>=14.0.0'} - cpu: [arm] - os: [android] - - sass-embedded-android-riscv64@1.89.2: - resolution: {integrity: sha512-HfJJWp/S6XSYvlGAqNdakeEMPOdhBkj2s2lN6SHnON54rahKem+z9pUbCriUJfM65Z90lakdGuOfidY61R9TYg==} - engines: {node: '>=14.0.0'} - cpu: [riscv64] - os: [android] - - sass-embedded-android-x64@1.89.2: - resolution: {integrity: sha512-BGPzq53VH5z5HN8de6jfMqJjnRe1E6sfnCWFd4pK+CAiuM7iw5Fx6BQZu3ikfI1l2GY0y6pRXzsVLdp/j4EKEA==} - engines: {node: '>=14.0.0'} - cpu: [x64] - os: [android] - - sass-embedded-darwin-arm64@1.89.2: - resolution: {integrity: sha512-UCm3RL/tzMpG7DsubARsvGUNXC5pgfQvP+RRFJo9XPIi6elopY5B6H4m9dRYDpHA+scjVthdiDwkPYr9+S/KGw==} - engines: {node: '>=14.0.0'} - cpu: [arm64] - os: [darwin] - - sass-embedded-darwin-x64@1.89.2: - resolution: {integrity: sha512-D9WxtDY5VYtMApXRuhQK9VkPHB8R79NIIR6xxVlN2MIdEid/TZWi1MHNweieETXhWGrKhRKglwnHxxyKdJYMnA==} - engines: {node: '>=14.0.0'} - cpu: [x64] - os: [darwin] - - sass-embedded-linux-arm64@1.89.2: - resolution: {integrity: sha512-2N4WW5LLsbtrWUJ7iTpjvhajGIbmDR18ZzYRywHdMLpfdPApuHPMDF5CYzHbS+LLx2UAx7CFKBnj5LLjY6eFgQ==} - engines: {node: '>=14.0.0'} - cpu: [arm64] - os: [linux] - - sass-embedded-linux-arm@1.89.2: - resolution: {integrity: sha512-leP0t5U4r95dc90o8TCWfxNXwMAsQhpWxTkdtySDpngoqtTy3miMd7EYNYd1znI0FN1CBaUvbdCMbnbPwygDlA==} - engines: {node: '>=14.0.0'} - cpu: [arm] - os: [linux] - - sass-embedded-linux-musl-arm64@1.89.2: - resolution: {integrity: sha512-nTyuaBX6U1A/cG7WJh0pKD1gY8hbg1m2SnzsyoFG+exQ0lBX/lwTLHq3nyhF+0atv7YYhYKbmfz+sjPP8CZ9lw==} - engines: {node: '>=14.0.0'} - cpu: [arm64] - os: [linux] - - sass-embedded-linux-musl-arm@1.89.2: - resolution: {integrity: sha512-Z6gG2FiVEEdxYHRi2sS5VIYBmp17351bWtOCUZ/thBM66+e70yiN6Eyqjz80DjL8haRUegNQgy9ZJqsLAAmr9g==} - engines: {node: '>=14.0.0'} - cpu: [arm] - os: [linux] - - sass-embedded-linux-musl-riscv64@1.89.2: - resolution: {integrity: sha512-N6oul+qALO0SwGY8JW7H/Vs0oZIMrRMBM4GqX3AjM/6y8JsJRxkAwnfd0fDyK+aICMFarDqQonQNIx99gdTZqw==} - engines: {node: '>=14.0.0'} - cpu: [riscv64] - os: [linux] - - sass-embedded-linux-musl-x64@1.89.2: - resolution: {integrity: sha512-K+FmWcdj/uyP8GiG9foxOCPfb5OAZG0uSVq80DKgVSC0U44AdGjvAvVZkrgFEcZ6cCqlNC2JfYmslB5iqdL7tg==} - engines: {node: '>=14.0.0'} - cpu: [x64] - os: [linux] - - sass-embedded-linux-riscv64@1.89.2: - resolution: {integrity: sha512-g9nTbnD/3yhOaskeqeBQETbtfDQWRgsjHok6bn7DdAuwBsyrR3JlSFyqKc46pn9Xxd9SQQZU8AzM4IR+sY0A0w==} - engines: {node: '>=14.0.0'} - cpu: [riscv64] - os: [linux] - - sass-embedded-linux-x64@1.89.2: - resolution: {integrity: sha512-Ax7dKvzncyQzIl4r7012KCMBvJzOz4uwSNoyoM5IV6y5I1f5hEwI25+U4WfuTqdkv42taCMgpjZbh9ERr6JVMQ==} - engines: {node: '>=14.0.0'} - cpu: [x64] - os: [linux] - - sass-embedded-win32-arm64@1.89.2: - resolution: {integrity: sha512-j96iJni50ZUsfD6tRxDQE2QSYQ2WrfHxeiyAXf41Kw0V4w5KYR/Sf6rCZQLMTUOHnD16qTMVpQi20LQSqf4WGg==} - engines: {node: '>=14.0.0'} - cpu: [arm64] - os: [win32] - - sass-embedded-win32-x64@1.89.2: - resolution: {integrity: sha512-cS2j5ljdkQsb4PaORiClaVYynE9OAPZG/XjbOMxpQmjRIf7UroY4PEIH+Waf+y47PfXFX9SyxhYuw2NIKGbEng==} - engines: {node: '>=14.0.0'} - cpu: [x64] - os: [win32] - - sass-embedded@1.89.2: - resolution: {integrity: sha512-Ack2K8rc57kCFcYlf3HXpZEJFNUX8xd8DILldksREmYXQkRHI879yy8q4mRDJgrojkySMZqmmmW1NxrFxMsYaA==} - engines: {node: '>=16.0.0'} - hasBin: true - - sass@1.89.2: - resolution: {integrity: sha512-xCmtksBKd/jdJ9Bt9p7nPKiuqrlBMBuuGkQlkhZjjQk3Ty48lv93k5Dq6OPkKt4XwxDJ7tvlfrTa1MPA9bf+QA==} - engines: {node: '>=14.0.0'} - hasBin: true - - sax@1.4.1: - resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} - saxes@6.0.0: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} engines: {node: '>=v12.22.7'} @@ -7750,6 +7317,9 @@ packages: scheduler@0.26.0: resolution: {integrity: sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==} + scheduler@0.27.0: + resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==} + schema-utils@3.3.0: resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} engines: {node: '>= 10.13.0'} @@ -7762,6 +7332,9 @@ packages: resolution: {integrity: sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==} engines: {node: '>= 10.13.0'} + scroll-into-view-if-needed@3.1.0: + resolution: {integrity: sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==} + section-matter@1.0.0: resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} engines: {node: '>=4'} @@ -7772,10 +7345,6 @@ packages: selderee@0.11.0: resolution: {integrity: sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA==} - semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} - hasBin: true - semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true @@ -7798,10 +7367,6 @@ packages: resolution: {integrity: sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw==} engines: {node: '>=0.10.0'} - serialize-error@8.1.0: - resolution: {integrity: sha512-3NnuWfM6vBYoy5gZFvHiYsVbafvI9vZv/+jlIigFn4oP4zjNPK3LhcY0xSCgeb1a5L8jO71Mit9LlNoi2UfDDQ==} - engines: {node: '>=10'} - serialize-javascript@6.0.2: resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} @@ -7812,6 +7377,9 @@ packages: set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + set-cookie-parser@2.7.2: + resolution: {integrity: sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==} + set-function-length@1.2.2: resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} engines: {node: '>= 0.4'} @@ -7824,6 +7392,9 @@ packages: resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} engines: {node: '>= 0.4'} + setimmediate@1.0.5: + resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} + setprototypeof@1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} @@ -7839,8 +7410,8 @@ packages: resolution: {integrity: sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==} engines: {node: '>= 0.4'} - shiki@3.13.0: - resolution: {integrity: sha512-aZW4l8Og16CokuCLf8CF8kq+KK2yOygapU5m3+hoGw0Mdosc6fPitjM+ujYarppj5ZIKGyPDPP1vqmQhr+5/0g==} + shiki@3.21.0: + resolution: {integrity: sha512-N65B/3bqL/TI2crrXr+4UivctrAGEjmsib5rPMMPpFp1xAx/w03v8WZ9RDDFYteXoEgY7qZ4HGgl5KBIu1153w==} side-channel-list@1.0.0: resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} @@ -7910,10 +7481,6 @@ packages: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} - source-map@0.7.4: - resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} - engines: {node: '>= 8'} - source-map@0.7.6: resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} engines: {node: '>= 12'} @@ -7931,9 +7498,6 @@ packages: resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' - stack-trace@0.0.10: - resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} - stack-utils@2.0.6: resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} engines: {node: '>=10'} @@ -7963,12 +7527,6 @@ packages: resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} engines: {node: '>= 0.4'} - stream-chain@2.2.5: - resolution: {integrity: sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA==} - - stream-json@1.9.1: - resolution: {integrity: sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw==} - streamroller@3.1.5: resolution: {integrity: sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==} engines: {node: '>=8.0'} @@ -8014,9 +7572,6 @@ packages: resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} engines: {node: '>= 0.4'} - string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} - string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} @@ -8076,10 +7631,8 @@ packages: peerDependencies: postcss: ^8.2.15 - stylus@0.64.0: - resolution: {integrity: sha512-ZIdT8eUv8tegmqy1tTIdJv9We2DumkNZFdCF5mz/Kpq3OcTaxSuCAYZge6HKK2CmNC02G1eJig2RV7XTw5hQrA==} - engines: {node: '>=16'} - hasBin: true + styleq@0.1.3: + resolution: {integrity: sha512-3ZUifmCDCQanjeej1f6kyl/BeP/Vae5EYkQ9iJfUm/QwZvlgnZzyflqAsAWYURdtea8Vkvswu2GrC57h3qffcA==} sucrase@3.35.0: resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} @@ -8114,22 +7667,10 @@ packages: symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - sync-child-process@1.0.2: - resolution: {integrity: sha512-8lD+t2KrrScJ/7KXCSyfhT3/hRq78rC0wBFqNJXv3mZyn6hW2ypM05JmlSvtqRbeq6jqA94oHbxAr2vYsJ8vDA==} - engines: {node: '>=16.0.0'} - - sync-message-port@1.1.3: - resolution: {integrity: sha512-GTt8rSKje5FilG+wEdfCkOcLL7LWqpMlr2c3LRuKt/YXxcJ52aGSbGBAdI4L3aaqfrBt6y711El53ItyH1NWzg==} - engines: {node: '>=16.0.0'} - synckit@0.11.11: resolution: {integrity: sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==} engines: {node: ^14.18.0 || >=16.0.0} - tapable@2.2.2: - resolution: {integrity: sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==} - engines: {node: '>=6'} - tapable@2.3.0: resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} engines: {node: '>=6'} @@ -8138,9 +7679,6 @@ packages: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} engines: {node: '>=6'} - telnet-client@1.2.8: - resolution: {integrity: sha512-W+w4k3QAmULVNhBVT2Fei369kGZCh/TH25M7caJAXW+hLxwoQRuw0di3cX4l0S9fgH3Mvq7u+IFMoBDpEw/eIg==} - terser-webpack-plugin@5.3.14: resolution: {integrity: sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==} engines: {node: '>= 10.13.0'} @@ -8170,9 +7708,6 @@ packages: resolution: {integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==} engines: {node: '>=18'} - text-hex@1.0.0: - resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} - thenify-all@1.6.0: resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} engines: {node: '>=0.8'} @@ -8242,10 +7777,6 @@ packages: resolution: {integrity: sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==} engines: {node: '>=14'} - trace-event-lib@1.4.1: - resolution: {integrity: sha512-TOgFolKG8JFY+9d5EohGWMvwvteRafcyfPWWNIqcuD1W/FUvxWcy2MSCZ/beYHM63oYPHYHCd3tkbgCctHVP7w==} - engines: {node: '>=12.0.0'} - tree-kill@1.2.2: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true @@ -8253,16 +7784,9 @@ packages: trim-lines@3.0.1: resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} - triple-beam@1.4.1: - resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==} - engines: {node: '>= 14.0.0'} - trough@2.2.0: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - truncate-utf8-bytes@1.0.2: - resolution: {integrity: sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==} - ts-api-utils@2.1.0: resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} engines: {node: '>=18.12'} @@ -8272,13 +7796,6 @@ packages: ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - ts-node@9.1.1: - resolution: {integrity: sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==} - engines: {node: '>=10.0.0'} - hasBin: true - peerDependencies: - typescript: '>=2.7' - tsconfig-paths@3.15.0: resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} @@ -8320,10 +7837,6 @@ packages: resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} engines: {node: '>=4'} - type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - type-fest@0.21.3: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} @@ -8368,6 +7881,10 @@ packages: engines: {node: '>=14.17'} hasBin: true + ua-parser-js@1.0.41: + resolution: {integrity: sha512-LbBDqdIC5s8iROCUjMbW1f5dJQTEFB1+KO9ogbvlb3nm9n4YHa5p4KTvFPWvh2Hs8gZMBuiB1/8+pdfe/tDPug==} + hasBin: true + ufo@1.6.1: resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==} @@ -8378,8 +7895,8 @@ packages: undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} - unhead@2.0.17: - resolution: {integrity: sha512-xX3PCtxaE80khRZobyWCVxeFF88/Tg9eJDcJWY9us727nsTC7C449B8BUfVBmiF2+3LjPcmqeoB2iuMs0U4oJQ==} + unhead@2.1.2: + resolution: {integrity: sha512-vSihrxyb+zsEUfEbraZBCjdE0p/WSoc2NGDrpwwSNAwuPxhYK1nH3eegf02IENLpn1sUhL8IoO84JWmRQ6tILA==} unicode-canonical-property-names-ecmascript@2.0.1: resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} @@ -8474,9 +7991,6 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - utf8-byte-length@1.0.5: - resolution: {integrity: sha512-Xn0w3MtiQ6zoz2vFyUVruaCL53O/DwUvkEeOvj+uulMm0BkUGYWmBYVyElqZaSLhY6ZD0ulfU3aBra2aVT4xfA==} - util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} @@ -8488,9 +8002,6 @@ packages: resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} engines: {node: '>=10.12.0'} - varint@6.0.0: - resolution: {integrity: sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==} - vary@1.1.2: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} @@ -8670,14 +8181,6 @@ packages: engines: {node: '>=8'} hasBin: true - winston-transport@4.9.0: - resolution: {integrity: sha512-8drMJ4rkgaPo1Me4zD/3WLfI/zPdA9o2IipKODunnGDcuqbHwjsbB79ylv04LCGGzU0xQ6vTznOMpQGaLhhm6A==} - engines: {node: '>= 12.0.0'} - - winston@3.18.3: - resolution: {integrity: sha512-NoBZauFNNWENgsnC9YpgyYwOVrl2m58PpQ8lNHjV3kosGs7KJ7Npk9pCUE+WJlawVSe8mykWDKWFSVfs3QO9ww==} - engines: {node: '>= 12.0.0'} - word-wrap@1.2.5: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} @@ -8786,10 +8289,6 @@ packages: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} - yargs-unparser@2.0.0: - resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} - engines: {node: '>=10'} - yargs@15.4.1: resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} engines: {node: '>=8'} @@ -8798,10 +8297,6 @@ packages: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} - yn@3.1.1: - resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} - engines: {node: '>=6'} - yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} @@ -8836,9 +8331,6 @@ packages: snapshots: - '@adobe/css-tools@4.3.3': - optional: true - '@ampproject/remapping@2.3.0': dependencies: '@jridgewell/gen-mapping': 0.3.8 @@ -8872,11 +8364,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/eslint-parser@7.28.5(@babel/core@7.27.4)(eslint@9.29.0(jiti@2.6.0))': + '@babel/eslint-parser@7.28.5(@babel/core@7.27.4)(eslint@9.29.0(jiti@2.6.1))': dependencies: '@babel/core': 7.27.4 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 9.29.0(jiti@2.6.0) + eslint: 9.29.0(jiti@2.6.1) eslint-visitor-keys: 2.1.0 semver: 6.3.1 @@ -9703,17 +9195,14 @@ snapshots: '@bcoe/v8-coverage@1.0.2': {} - '@bufbuild/protobuf@2.6.0': - optional: true - - '@callstack/rspress-preset@0.4.2(@rsbuild/core@1.5.11)(@rspress/core@2.0.0-beta.32(@types/react@19.1.13))(react@19.1.1)': + '@callstack/rspress-preset@0.5.1(@rsbuild/core@1.6.15)(@rspress/core@2.0.0-rc.4(@types/react@19.1.13))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@callstack/rspress-theme': 0.4.2(@rspress/core@2.0.0-beta.32(@types/react@19.1.13))(react@19.1.1) - '@rspress/core': 2.0.0-beta.32(@types/react@19.1.13) - '@rspress/plugin-llms': 2.0.0-beta.32(@rspress/core@2.0.0-beta.32(@types/react@19.1.13)) - '@rspress/plugin-sitemap': 2.0.0-beta.32(@rspress/core@2.0.0-beta.32(@types/react@19.1.13)) - '@vercel/analytics': 1.5.0(react@19.1.1) - rsbuild-plugin-open-graph: 1.1.0(@rsbuild/core@1.5.11) + '@callstack/rspress-theme': 0.5.1(@rspress/core@2.0.0-rc.4(@types/react@19.1.13))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@rspress/core': 2.0.0-rc.4(@types/react@19.1.13) + '@rspress/plugin-llms': 2.0.0-rc.4(@rspress/core@2.0.0-rc.4(@types/react@19.1.13)) + '@rspress/plugin-sitemap': 2.0.0-rc.4(@rspress/core@2.0.0-rc.4(@types/react@19.1.13)) + '@vercel/analytics': 1.5.0(react@19.2.3) + rsbuild-plugin-open-graph: 1.1.0(@rsbuild/core@1.6.15) zod: 3.25.67 transitivePeerDependencies: - '@remix-run/react' @@ -9721,15 +9210,17 @@ snapshots: - '@sveltejs/kit' - next - react + - react-dom - supports-color - svelte - vue - vue-router - '@callstack/rspress-theme@0.4.2(@rspress/core@2.0.0-beta.32(@types/react@19.1.13))(react@19.1.1)': + '@callstack/rspress-theme@0.5.1(@rspress/core@2.0.0-rc.4(@types/react@19.1.13))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@rspress/core': 2.0.0-beta.32(@types/react@19.1.13) - react: 19.1.1 + '@rspress/core': 2.0.0-rc.4(@types/react@19.1.13) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) '@clack/core@1.0.0-alpha.5': dependencies: @@ -9742,16 +9233,6 @@ snapshots: picocolors: 1.1.1 sisteransi: 1.0.5 - '@colors/colors@1.6.0': - optional: true - - '@dabh/diagnostics@2.0.8': - dependencies: - '@so-ric/colorspace': 1.1.6 - enabled: 2.0.0 - kuler: 2.0.0 - optional: true - '@emnapi/core@1.5.0': dependencies: '@emnapi/wasi-threads': 1.1.0 @@ -9923,9 +9404,9 @@ snapshots: eslint: 9.29.0(jiti@2.4.2) eslint-visitor-keys: 3.4.3 - '@eslint-community/eslint-utils@4.7.0(eslint@9.29.0(jiti@2.6.0))': + '@eslint-community/eslint-utils@4.7.0(eslint@9.29.0(jiti@2.6.1))': dependencies: - eslint: 9.29.0(jiti@2.6.0) + eslint: 9.29.0(jiti@2.6.1) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} @@ -9971,9 +9452,6 @@ snapshots: '@eslint/core': 0.15.0 levn: 0.4.1 - '@flatten-js/interval-tree@1.1.4': - optional: true - '@hapi/hoek@9.3.0': {} '@hapi/topo@5.1.0': @@ -10023,7 +9501,7 @@ snapshots: jest-util: 30.2.0 slash: 3.0.0 - '@jest/core@30.2.0(babel-plugin-macros@3.1.0)(ts-node@9.1.1(typescript@5.9.3))': + '@jest/core@30.2.0(babel-plugin-macros@3.1.0)': dependencies: '@jest/console': 30.2.0 '@jest/pattern': 30.0.1 @@ -10038,7 +9516,7 @@ snapshots: exit-x: 0.2.2 graceful-fs: 4.2.11 jest-changed-files: 30.2.0 - jest-config: 30.2.0(@types/node@18.16.9)(babel-plugin-macros@3.1.0)(ts-node@9.1.1(typescript@5.9.3)) + jest-config: 30.2.0(@types/node@18.16.9)(babel-plugin-macros@3.1.0) jest-haste-map: 30.2.0 jest-message-util: 30.2.0 jest-regex-util: 30.0.1 @@ -10289,7 +9767,7 @@ snapshots: remark-mdx: 3.1.1 remark-parse: 11.0.0 remark-rehype: 11.1.2 - source-map: 0.7.4 + source-map: 0.7.6 unified: 11.0.5 unist-util-position-from-estree: 2.0.0 unist-util-stringify-position: 4.0.0 @@ -10298,17 +9776,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@mdx-js/react@2.3.0(react@19.1.1)': - dependencies: - '@types/mdx': 2.0.13 - '@types/react': 19.1.13 - react: 19.1.1 - - '@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1)': + '@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.2.3)': dependencies: '@types/mdx': 2.0.13 '@types/react': 19.1.13 - react: 19.1.1 + react: 19.2.3 '@modern-js/node-bundle-require@2.68.2': dependencies: @@ -10344,13 +9816,13 @@ snapshots: - utf-8-validate - vue-tsc - '@module-federation/data-prefetch@0.21.4(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@module-federation/data-prefetch@0.21.4(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@module-federation/runtime': 0.21.4 '@module-federation/sdk': 0.21.4 fs-extra: 9.1.0 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) '@module-federation/dts-plugin@0.21.4(typescript@5.9.3)': dependencies: @@ -10377,11 +9849,11 @@ snapshots: - supports-color - utf-8-validate - '@module-federation/enhanced@0.21.4(@rspack/core@1.5.6(@swc/helpers@0.5.17))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.3)(webpack@5.102.1(@swc/core@1.5.29(@swc/helpers@0.5.17)))': + '@module-federation/enhanced@0.21.4(@rspack/core@1.5.6(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)(webpack@5.102.1(@swc/core@1.5.29(@swc/helpers@0.5.17)))': dependencies: '@module-federation/bridge-react-webpack-plugin': 0.21.4 '@module-federation/cli': 0.21.4(typescript@5.9.3) - '@module-federation/data-prefetch': 0.21.4(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@module-federation/data-prefetch': 0.21.4(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@module-federation/dts-plugin': 0.21.4(typescript@5.9.3) '@module-federation/error-codes': 0.21.4 '@module-federation/inject-external-runtime-core-plugin': 0.21.4(@module-federation/runtime-tools@0.21.4) @@ -10409,6 +9881,8 @@ snapshots: '@module-federation/error-codes@0.21.4': {} + '@module-federation/error-codes@0.21.6': {} + '@module-federation/inject-external-runtime-core-plugin@0.21.4(@module-federation/runtime-tools@0.21.4)': dependencies: '@module-federation/runtime-tools': 0.21.4 @@ -10434,9 +9908,9 @@ snapshots: - utf-8-validate - vue-tsc - '@module-federation/node@2.7.23(@rspack/core@1.5.6(@swc/helpers@0.5.17))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.3)(webpack@5.102.1(@swc/core@1.5.29(@swc/helpers@0.5.17)))': + '@module-federation/node@2.7.23(@rspack/core@1.5.6(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)(webpack@5.102.1(@swc/core@1.5.29(@swc/helpers@0.5.17)))': dependencies: - '@module-federation/enhanced': 0.21.4(@rspack/core@1.5.6(@swc/helpers@0.5.17))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.3)(webpack@5.102.1(@swc/core@1.5.29(@swc/helpers@0.5.17))) + '@module-federation/enhanced': 0.21.4(@rspack/core@1.5.6(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)(webpack@5.102.1(@swc/core@1.5.29(@swc/helpers@0.5.17))) '@module-federation/runtime': 0.21.4 '@module-federation/sdk': 0.21.4 btoa: 1.2.1 @@ -10444,8 +9918,8 @@ snapshots: node-fetch: 2.7.0(encoding@0.1.13) webpack: 5.102.1(@swc/core@1.5.29(@swc/helpers@0.5.17)) optionalDependencies: - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) transitivePeerDependencies: - '@rspack/core' - bufferutil @@ -10484,6 +9958,11 @@ snapshots: '@module-federation/error-codes': 0.21.4 '@module-federation/sdk': 0.21.4 + '@module-federation/runtime-core@0.21.6': + dependencies: + '@module-federation/error-codes': 0.21.6 + '@module-federation/sdk': 0.21.6 + '@module-federation/runtime-tools@0.18.0': dependencies: '@module-federation/runtime': 0.18.0 @@ -10494,6 +9973,11 @@ snapshots: '@module-federation/runtime': 0.21.4 '@module-federation/webpack-bundler-runtime': 0.21.4 + '@module-federation/runtime-tools@0.21.6': + dependencies: + '@module-federation/runtime': 0.21.6 + '@module-federation/webpack-bundler-runtime': 0.21.6 + '@module-federation/runtime@0.18.0': dependencies: '@module-federation/error-codes': 0.18.0 @@ -10506,10 +9990,18 @@ snapshots: '@module-federation/runtime-core': 0.21.4 '@module-federation/sdk': 0.21.4 + '@module-federation/runtime@0.21.6': + dependencies: + '@module-federation/error-codes': 0.21.6 + '@module-federation/runtime-core': 0.21.6 + '@module-federation/sdk': 0.21.6 + '@module-federation/sdk@0.18.0': {} '@module-federation/sdk@0.21.4': {} + '@module-federation/sdk@0.21.6': {} + '@module-federation/third-party-dts-extractor@0.21.4': dependencies: find-pkg: 2.0.0 @@ -10526,6 +10018,11 @@ snapshots: '@module-federation/runtime': 0.21.4 '@module-federation/sdk': 0.21.4 + '@module-federation/webpack-bundler-runtime@0.21.6': + dependencies: + '@module-federation/runtime': 0.21.6 + '@module-federation/sdk': 0.21.6 + '@napi-rs/wasm-runtime@0.2.12': dependencies: '@emnapi/core': 1.5.0 @@ -10546,6 +10043,13 @@ snapshots: '@tybys/wasm-util': 0.10.1 optional: true + '@napi-rs/wasm-runtime@1.0.7': + dependencies: + '@emnapi/core': 1.5.0 + '@emnapi/runtime': 1.5.0 + '@tybys/wasm-util': 0.10.1 + optional: true + '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': dependencies: eslint-scope: 5.1.1 @@ -10562,14 +10066,13 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.19.1 - '@nx/detox@22.0.4(9b1a4b49f421cf013b90dafab0a49a31)': + '@nx/detox@22.0.4(@babel/core@7.27.4)(@babel/traverse@7.27.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/helpers@0.5.17)(@types/babel__core@7.20.5)(@types/node@20.19.25)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.29.0(jiti@2.4.2))(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)(vite@7.2.2(@types/node@20.19.25)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@20.19.25)(@vitest/ui@3.2.4)(jiti@2.4.2)(jsdom@22.1.0)(terser@5.42.0)(yaml@2.8.0))(webpack@5.102.1(@swc/core@1.5.29(@swc/helpers@0.5.17)))': dependencies: '@nx/devkit': 22.0.4(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))) '@nx/eslint': 22.0.4(@babel/traverse@7.27.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@zkochan/js-yaml@0.0.7)(eslint@9.29.0(jiti@2.4.2))(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))) - '@nx/jest': 22.0.4(@babel/traverse@7.27.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@20.19.25)(babel-plugin-macros@3.1.0)(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(ts-node@9.1.1(typescript@5.9.3))(typescript@5.9.3) + '@nx/jest': 22.0.4(@babel/traverse@7.27.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@20.19.25)(babel-plugin-macros@3.1.0)(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(typescript@5.9.3) '@nx/js': 22.0.4(@babel/traverse@7.27.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))) - '@nx/react': 22.0.4(@babel/core@7.27.4)(@babel/traverse@7.27.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/helpers@0.5.17)(@types/babel__core@7.20.5)(@zkochan/js-yaml@0.0.7)(eslint@9.29.0(jiti@2.4.2))(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(ts-node@9.1.1(typescript@5.9.3))(typescript@5.9.3)(vite@7.2.2(@types/node@20.19.25)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.27.0)(sass-embedded@1.89.2)(sass@1.89.2)(stylus@0.64.0)(terser@5.42.0)(yaml@2.8.0))(vitest@3.2.4)(webpack@5.102.1(@swc/core@1.5.29(@swc/helpers@0.5.17))) - detox: 20.46.0(@jest/environment@30.2.0)(@jest/types@30.2.0)(expect@30.2.0)(jest-environment-node@30.2.0)(jest@30.2.0(@types/node@20.19.25)(babel-plugin-macros@3.1.0)(ts-node@9.1.1(typescript@5.9.3))) + '@nx/react': 22.0.4(@babel/core@7.27.4)(@babel/traverse@7.27.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/helpers@0.5.17)(@types/babel__core@7.20.5)(@zkochan/js-yaml@0.0.7)(eslint@9.29.0(jiti@2.4.2))(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)(vite@7.2.2(@types/node@20.19.25)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@20.19.25)(@vitest/ui@3.2.4)(jiti@2.4.2)(jsdom@22.1.0)(terser@5.42.0)(yaml@2.8.0))(webpack@5.102.1(@swc/core@1.5.29(@swc/helpers@0.5.17))) tslib: 2.8.1 transitivePeerDependencies: - '@babel/core' @@ -10661,7 +10164,7 @@ snapshots: - supports-color - verdaccio - '@nx/jest@22.0.4(@babel/traverse@7.27.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@20.19.25)(babel-plugin-macros@3.1.0)(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(ts-node@9.1.1(typescript@5.9.3))(typescript@5.9.3)': + '@nx/jest@22.0.4(@babel/traverse@7.27.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/node@20.19.25)(babel-plugin-macros@3.1.0)(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(typescript@5.9.3)': dependencies: '@jest/reporters': 30.2.0 '@jest/test-result': 30.2.0 @@ -10669,7 +10172,7 @@ snapshots: '@nx/js': 22.0.4(@babel/traverse@7.27.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))) '@phenomnomnominal/tsquery': 5.0.1(typescript@5.9.3) identity-obj-proxy: 3.0.0 - jest-config: 30.2.0(@types/node@20.19.25)(babel-plugin-macros@3.1.0)(ts-node@9.1.1(typescript@5.9.3)) + jest-config: 30.2.0(@types/node@20.19.25)(babel-plugin-macros@3.1.0) jest-resolve: 30.2.0 jest-util: 30.2.0 minimatch: 9.0.3 @@ -10730,10 +10233,10 @@ snapshots: - nx - supports-color - '@nx/module-federation@22.0.4(@babel/traverse@7.27.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/helpers@0.5.17)(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.3)': + '@nx/module-federation@22.0.4(@babel/traverse@7.27.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/helpers@0.5.17)(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': dependencies: - '@module-federation/enhanced': 0.21.4(@rspack/core@1.5.6(@swc/helpers@0.5.17))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.3)(webpack@5.102.1(@swc/core@1.5.29(@swc/helpers@0.5.17))) - '@module-federation/node': 2.7.23(@rspack/core@1.5.6(@swc/helpers@0.5.17))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.3)(webpack@5.102.1(@swc/core@1.5.29(@swc/helpers@0.5.17))) + '@module-federation/enhanced': 0.21.4(@rspack/core@1.5.6(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)(webpack@5.102.1(@swc/core@1.5.29(@swc/helpers@0.5.17))) + '@module-federation/node': 2.7.23(@rspack/core@1.5.6(@swc/helpers@0.5.17))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)(webpack@5.102.1(@swc/core@1.5.29(@swc/helpers@0.5.17))) '@module-federation/sdk': 0.21.4 '@nx/devkit': 22.0.4(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))) '@nx/js': 22.0.4(@babel/traverse@7.27.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))) @@ -10794,12 +10297,12 @@ snapshots: '@nx/nx-win32-x64-msvc@22.0.4': optional: true - '@nx/react-native@22.0.4(b6bdbf441fca35f932c3e030670387b0)': + '@nx/react-native@22.0.4(@babel/core@7.27.4)(@babel/traverse@7.27.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/helpers@0.5.17)(@types/babel__core@7.20.5)(@types/node@20.19.25)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.29.0(jiti@2.4.2))(metro-config@0.83.3)(metro-resolver@0.83.3)(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)(vite@7.2.2(@types/node@20.19.25)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@20.19.25)(@vitest/ui@3.2.4)(jiti@2.4.2)(jsdom@22.1.0)(terser@5.42.0)(yaml@2.8.0))(webpack@5.102.1(@swc/core@1.5.29(@swc/helpers@0.5.17)))': dependencies: '@nx/devkit': 22.0.4(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))) '@nx/eslint': 22.0.4(@babel/traverse@7.27.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@zkochan/js-yaml@0.0.7)(eslint@9.29.0(jiti@2.4.2))(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))) '@nx/js': 22.0.4(@babel/traverse@7.27.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))) - '@nx/react': 22.0.4(@babel/core@7.27.4)(@babel/traverse@7.27.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/helpers@0.5.17)(@types/babel__core@7.20.5)(@zkochan/js-yaml@0.0.7)(eslint@9.29.0(jiti@2.4.2))(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(ts-node@9.1.1(typescript@5.9.3))(typescript@5.9.3)(vite@7.2.2(@types/node@20.19.25)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.27.0)(sass-embedded@1.89.2)(sass@1.89.2)(stylus@0.64.0)(terser@5.42.0)(yaml@2.8.0))(vitest@3.2.4)(webpack@5.102.1(@swc/core@1.5.29(@swc/helpers@0.5.17))) + '@nx/react': 22.0.4(@babel/core@7.27.4)(@babel/traverse@7.27.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/helpers@0.5.17)(@types/babel__core@7.20.5)(@zkochan/js-yaml@0.0.7)(eslint@9.29.0(jiti@2.4.2))(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)(vite@7.2.2(@types/node@20.19.25)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@20.19.25)(@vitest/ui@3.2.4)(jiti@2.4.2)(jsdom@22.1.0)(terser@5.42.0)(yaml@2.8.0))(webpack@5.102.1(@swc/core@1.5.29(@swc/helpers@0.5.17))) ajv: 8.17.1 enhanced-resolve: 5.18.3 ignore: 5.3.2 @@ -10810,8 +10313,8 @@ snapshots: tsconfig-paths: 4.2.0 tslib: 2.8.1 optionalDependencies: - '@nx/detox': 22.0.4(9b1a4b49f421cf013b90dafab0a49a31) - '@nx/rollup': 22.0.4(@babel/core@7.27.4)(@babel/traverse@7.27.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/babel__core@7.20.5)(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(ts-node@9.1.1(typescript@5.9.3))(typescript@5.9.3) + '@nx/detox': 22.0.4(@babel/core@7.27.4)(@babel/traverse@7.27.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/helpers@0.5.17)(@types/babel__core@7.20.5)(@types/node@20.19.25)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.29.0(jiti@2.4.2))(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)(vite@7.2.2(@types/node@20.19.25)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@20.19.25)(@vitest/ui@3.2.4)(jiti@2.4.2)(jsdom@22.1.0)(terser@5.42.0)(yaml@2.8.0))(webpack@5.102.1(@swc/core@1.5.29(@swc/helpers@0.5.17))) + '@nx/rollup': 22.0.4(@babel/core@7.27.4)(@babel/traverse@7.27.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/babel__core@7.20.5)(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(typescript@5.9.3) transitivePeerDependencies: - '@babel/core' - '@babel/traverse' @@ -10845,13 +10348,13 @@ snapshots: - webpack - webpack-cli - '@nx/react@22.0.4(@babel/core@7.27.4)(@babel/traverse@7.27.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/helpers@0.5.17)(@types/babel__core@7.20.5)(@zkochan/js-yaml@0.0.7)(eslint@9.29.0(jiti@2.4.2))(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(ts-node@9.1.1(typescript@5.9.3))(typescript@5.9.3)(vite@7.2.2(@types/node@20.19.25)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.27.0)(sass-embedded@1.89.2)(sass@1.89.2)(stylus@0.64.0)(terser@5.42.0)(yaml@2.8.0))(vitest@3.2.4)(webpack@5.102.1(@swc/core@1.5.29(@swc/helpers@0.5.17)))': + '@nx/react@22.0.4(@babel/core@7.27.4)(@babel/traverse@7.27.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/helpers@0.5.17)(@types/babel__core@7.20.5)(@zkochan/js-yaml@0.0.7)(eslint@9.29.0(jiti@2.4.2))(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)(vite@7.2.2(@types/node@20.19.25)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@20.19.25)(@vitest/ui@3.2.4)(jiti@2.4.2)(jsdom@22.1.0)(terser@5.42.0)(yaml@2.8.0))(webpack@5.102.1(@swc/core@1.5.29(@swc/helpers@0.5.17)))': dependencies: '@nx/devkit': 22.0.4(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))) '@nx/eslint': 22.0.4(@babel/traverse@7.27.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@zkochan/js-yaml@0.0.7)(eslint@9.29.0(jiti@2.4.2))(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))) '@nx/js': 22.0.4(@babel/traverse@7.27.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))) - '@nx/module-federation': 22.0.4(@babel/traverse@7.27.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/helpers@0.5.17)(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.3) - '@nx/rollup': 22.0.4(@babel/core@7.27.4)(@babel/traverse@7.27.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/babel__core@7.20.5)(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(ts-node@9.1.1(typescript@5.9.3))(typescript@5.9.3) + '@nx/module-federation': 22.0.4(@babel/traverse@7.27.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/helpers@0.5.17)(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@nx/rollup': 22.0.4(@babel/core@7.27.4)(@babel/traverse@7.27.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/babel__core@7.20.5)(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(typescript@5.9.3) '@nx/web': 22.0.4(@babel/traverse@7.27.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))) '@phenomnomnominal/tsquery': 5.0.1(typescript@5.9.3) '@svgr/webpack': 8.1.0(typescript@5.9.3) @@ -10863,7 +10366,7 @@ snapshots: semver: 7.7.2 tslib: 2.8.1 optionalDependencies: - '@nx/vite': 22.0.4(@babel/traverse@7.27.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(typescript@5.9.3)(vite@7.2.2(@types/node@20.19.25)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.27.0)(sass-embedded@1.89.2)(sass@1.89.2)(stylus@0.64.0)(terser@5.42.0)(yaml@2.8.0))(vitest@3.2.4) + '@nx/vite': 22.0.4(@babel/traverse@7.27.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(typescript@5.9.3)(vite@7.2.2(@types/node@20.19.25)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@20.19.25)(@vitest/ui@3.2.4)(jiti@2.4.2)(jsdom@22.1.0)(terser@5.42.0)(yaml@2.8.0)) transitivePeerDependencies: - '@babel/core' - '@babel/traverse' @@ -10892,7 +10395,7 @@ snapshots: - webpack - webpack-cli - '@nx/rollup@22.0.4(@babel/core@7.27.4)(@babel/traverse@7.27.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/babel__core@7.20.5)(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(ts-node@9.1.1(typescript@5.9.3))(typescript@5.9.3)': + '@nx/rollup@22.0.4(@babel/core@7.27.4)(@babel/traverse@7.27.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(@types/babel__core@7.20.5)(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(typescript@5.9.3)': dependencies: '@nx/devkit': 22.0.4(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))) '@nx/js': 22.0.4(@babel/traverse@7.27.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))) @@ -10908,7 +10411,7 @@ snapshots: postcss: 8.5.6 rollup: 4.43.0 rollup-plugin-copy: 3.5.0 - rollup-plugin-postcss: 4.0.2(postcss@8.5.6)(ts-node@9.1.1(typescript@5.9.3)) + rollup-plugin-postcss: 4.0.2(postcss@8.5.6) rollup-plugin-typescript2: 0.36.0(rollup@4.43.0)(typescript@5.9.3) tslib: 2.8.1 transitivePeerDependencies: @@ -10924,7 +10427,7 @@ snapshots: - typescript - verdaccio - '@nx/vite@22.0.4(@babel/traverse@7.27.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(typescript@5.9.3)(vite@7.2.2(@types/node@20.19.25)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.27.0)(sass-embedded@1.89.2)(sass@1.89.2)(stylus@0.64.0)(terser@5.42.0)(yaml@2.8.0))(vitest@3.2.4)': + '@nx/vite@22.0.4(@babel/traverse@7.27.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17)))(typescript@5.9.3)(vite@7.2.2(@types/node@20.19.25)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@20.19.25)(@vitest/ui@3.2.4)(jiti@2.4.2)(jsdom@22.1.0)(terser@5.42.0)(yaml@2.8.0))': dependencies: '@nx/devkit': 22.0.4(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))) '@nx/js': 22.0.4(@babel/traverse@7.27.4)(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))(nx@22.0.4(@swc-node/register@1.9.2(@swc/core@1.5.29(@swc/helpers@0.5.17))(@swc/types@0.1.23)(typescript@5.9.3))(@swc/core@1.5.29(@swc/helpers@0.5.17))) @@ -10935,8 +10438,8 @@ snapshots: semver: 7.7.2 tsconfig-paths: 4.2.0 tslib: 2.8.1 - vite: 7.2.2(@types/node@20.19.25)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.27.0)(sass-embedded@1.89.2)(sass@1.89.2)(stylus@0.64.0)(terser@5.42.0)(yaml@2.8.0) - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@20.19.25)(@vitest/ui@3.2.4)(jiti@2.4.2)(jsdom@22.1.0)(less@4.1.3)(lightningcss@1.27.0)(sass-embedded@1.89.2)(sass@1.89.2)(stylus@0.64.0)(terser@5.42.0)(yaml@2.8.0) + vite: 7.2.2(@types/node@20.19.25)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@20.19.25)(@vitest/ui@3.2.4)(jiti@2.4.2)(jsdom@22.1.0)(terser@5.42.0)(yaml@2.8.0) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -10980,78 +10483,17 @@ snapshots: - '@swc/core' - debug - '@parcel/watcher-android-arm64@2.5.1': - optional: true - - '@parcel/watcher-darwin-arm64@2.5.1': - optional: true - - '@parcel/watcher-darwin-x64@2.5.1': - optional: true + '@phenomnomnominal/tsquery@5.0.1(typescript@5.9.3)': + dependencies: + esquery: 1.6.0 + typescript: 5.9.3 - '@parcel/watcher-freebsd-x64@2.5.1': + '@pkgjs/parseargs@0.11.0': optional: true - '@parcel/watcher-linux-arm-glibc@2.5.1': - optional: true + '@pkgr/core@0.2.9': {} - '@parcel/watcher-linux-arm-musl@2.5.1': - optional: true - - '@parcel/watcher-linux-arm64-glibc@2.5.1': - optional: true - - '@parcel/watcher-linux-arm64-musl@2.5.1': - optional: true - - '@parcel/watcher-linux-x64-glibc@2.5.1': - optional: true - - '@parcel/watcher-linux-x64-musl@2.5.1': - optional: true - - '@parcel/watcher-win32-arm64@2.5.1': - optional: true - - '@parcel/watcher-win32-ia32@2.5.1': - optional: true - - '@parcel/watcher-win32-x64@2.5.1': - optional: true - - '@parcel/watcher@2.5.1': - dependencies: - detect-libc: 1.0.3 - is-glob: 4.0.3 - micromatch: 4.0.8 - node-addon-api: 7.1.1 - optionalDependencies: - '@parcel/watcher-android-arm64': 2.5.1 - '@parcel/watcher-darwin-arm64': 2.5.1 - '@parcel/watcher-darwin-x64': 2.5.1 - '@parcel/watcher-freebsd-x64': 2.5.1 - '@parcel/watcher-linux-arm-glibc': 2.5.1 - '@parcel/watcher-linux-arm-musl': 2.5.1 - '@parcel/watcher-linux-arm64-glibc': 2.5.1 - '@parcel/watcher-linux-arm64-musl': 2.5.1 - '@parcel/watcher-linux-x64-glibc': 2.5.1 - '@parcel/watcher-linux-x64-musl': 2.5.1 - '@parcel/watcher-win32-arm64': 2.5.1 - '@parcel/watcher-win32-ia32': 2.5.1 - '@parcel/watcher-win32-x64': 2.5.1 - optional: true - - '@phenomnomnominal/tsquery@5.0.1(typescript@5.9.3)': - dependencies: - esquery: 1.6.0 - typescript: 5.9.3 - - '@pkgjs/parseargs@0.11.0': - optional: true - - '@pkgr/core@0.2.9': {} - - '@polka/url@1.0.0-next.29': {} + '@polka/url@1.0.0-next.29': {} '@react-native-community/cli-clean@20.0.0': dependencies: @@ -11184,15 +10626,14 @@ snapshots: '@react-native/assets-registry@0.82.1': {} - '@react-native/babel-plugin-codegen@0.82.1(@babel/core@7.27.4)': + '@react-native/babel-plugin-codegen@0.82.1': dependencies: '@babel/traverse': 7.27.4 - '@react-native/codegen': 0.82.1(@babel/core@7.27.4) + '@react-native/codegen': 0.82.1 transitivePeerDependencies: - - '@babel/core' - supports-color - '@react-native/babel-preset@0.82.1(@babel/core@7.27.4)': + '@react-native/babel-preset@0.82.1': dependencies: '@babel/core': 7.27.4 '@babel/plugin-proposal-export-default-from': 7.27.1(@babel/core@7.27.4) @@ -11235,14 +10676,14 @@ snapshots: '@babel/plugin-transform-typescript': 7.27.1(@babel/core@7.27.4) '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.27.4) '@babel/template': 7.27.2 - '@react-native/babel-plugin-codegen': 0.82.1(@babel/core@7.27.4) + '@react-native/babel-plugin-codegen': 0.82.1 babel-plugin-syntax-hermes-parser: 0.32.0 babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.27.4) react-refresh: 0.14.2 transitivePeerDependencies: - supports-color - '@react-native/codegen@0.82.1(@babel/core@7.27.4)': + '@react-native/codegen@0.82.1': dependencies: '@babel/core': 7.27.4 '@babel/parser': 7.27.5 @@ -11251,8 +10692,10 @@ snapshots: invariant: 2.2.4 nullthrows: 1.1.1 yargs: 17.7.2 + transitivePeerDependencies: + - supports-color - '@react-native/community-cli-plugin@0.82.1(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.82.1(@babel/core@7.27.4))': + '@react-native/community-cli-plugin@0.82.1(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.82.1)': dependencies: '@react-native/dev-middleware': 0.82.1 debug: 4.4.1 @@ -11263,7 +10706,7 @@ snapshots: semver: 7.7.2 optionalDependencies: '@react-native-community/cli': 20.0.0(typescript@5.9.3) - '@react-native/metro-config': 0.82.1(@babel/core@7.27.4) + '@react-native/metro-config': 0.82.1 transitivePeerDependencies: - bufferutil - supports-color @@ -11295,21 +10738,21 @@ snapshots: - supports-color - utf-8-validate - '@react-native/eslint-config@0.82.1(eslint@9.29.0(jiti@2.6.0))(jest@30.2.0(@types/node@18.16.9)(babel-plugin-macros@3.1.0)(ts-node@9.1.1(typescript@5.9.3)))(prettier@2.8.8)(typescript@5.9.3)': + '@react-native/eslint-config@0.82.1(eslint@9.29.0(jiti@2.6.1))(jest@30.2.0(@types/node@20.19.25)(babel-plugin-macros@3.1.0))(prettier@2.8.8)(typescript@5.9.3)': dependencies: '@babel/core': 7.27.4 - '@babel/eslint-parser': 7.28.5(@babel/core@7.27.4)(eslint@9.29.0(jiti@2.6.0)) + '@babel/eslint-parser': 7.28.5(@babel/core@7.27.4)(eslint@9.29.0(jiti@2.6.1)) '@react-native/eslint-plugin': 0.82.1 - '@typescript-eslint/eslint-plugin': 8.46.4(@typescript-eslint/parser@8.46.4(eslint@9.29.0(jiti@2.6.0))(typescript@5.9.3))(eslint@9.29.0(jiti@2.6.0))(typescript@5.9.3) - '@typescript-eslint/parser': 8.46.4(eslint@9.29.0(jiti@2.6.0))(typescript@5.9.3) - eslint: 9.29.0(jiti@2.6.0) - eslint-config-prettier: 8.10.2(eslint@9.29.0(jiti@2.6.0)) - eslint-plugin-eslint-comments: 3.2.0(eslint@9.29.0(jiti@2.6.0)) - eslint-plugin-ft-flow: 2.0.3(@babel/eslint-parser@7.28.5(@babel/core@7.27.4)(eslint@9.29.0(jiti@2.6.0)))(eslint@9.29.0(jiti@2.6.0)) - eslint-plugin-jest: 29.1.0(@typescript-eslint/eslint-plugin@8.46.4(@typescript-eslint/parser@8.46.4(eslint@9.29.0(jiti@2.6.0))(typescript@5.9.3))(eslint@9.29.0(jiti@2.6.0))(typescript@5.9.3))(eslint@9.29.0(jiti@2.6.0))(jest@30.2.0(@types/node@18.16.9)(babel-plugin-macros@3.1.0)(ts-node@9.1.1(typescript@5.9.3)))(typescript@5.9.3) - eslint-plugin-react: 7.35.0(eslint@9.29.0(jiti@2.6.0)) - eslint-plugin-react-hooks: 5.2.0(eslint@9.29.0(jiti@2.6.0)) - eslint-plugin-react-native: 4.1.0(eslint@9.29.0(jiti@2.6.0)) + '@typescript-eslint/eslint-plugin': 8.46.4(@typescript-eslint/parser@8.46.4(eslint@9.29.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.29.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': 8.46.4(eslint@9.29.0(jiti@2.6.1))(typescript@5.9.3) + eslint: 9.29.0(jiti@2.6.1) + eslint-config-prettier: 8.10.2(eslint@9.29.0(jiti@2.6.1)) + eslint-plugin-eslint-comments: 3.2.0(eslint@9.29.0(jiti@2.6.1)) + eslint-plugin-ft-flow: 2.0.3(@babel/eslint-parser@7.28.5(@babel/core@7.27.4)(eslint@9.29.0(jiti@2.6.1)))(eslint@9.29.0(jiti@2.6.1)) + eslint-plugin-jest: 29.1.0(@typescript-eslint/eslint-plugin@8.46.4(@typescript-eslint/parser@8.46.4(eslint@9.29.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.29.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.29.0(jiti@2.6.1))(jest@30.2.0(@types/node@20.19.25)(babel-plugin-macros@3.1.0))(typescript@5.9.3) + eslint-plugin-react: 7.35.0(eslint@9.29.0(jiti@2.6.1)) + eslint-plugin-react-hooks: 5.2.0(eslint@9.29.0(jiti@2.6.1)) + eslint-plugin-react-native: 4.1.0(eslint@9.29.0(jiti@2.6.1)) prettier: 2.8.8 transitivePeerDependencies: - jest @@ -11322,42 +10765,41 @@ snapshots: '@react-native/js-polyfills@0.82.1': {} - '@react-native/metro-babel-transformer@0.82.1(@babel/core@7.27.4)': + '@react-native/metro-babel-transformer@0.82.1': dependencies: '@babel/core': 7.27.4 - '@react-native/babel-preset': 0.82.1(@babel/core@7.27.4) + '@react-native/babel-preset': 0.82.1 hermes-parser: 0.32.0 nullthrows: 1.1.1 transitivePeerDependencies: - supports-color - '@react-native/metro-config@0.82.1(@babel/core@7.27.4)': + '@react-native/metro-config@0.82.1': dependencies: '@react-native/js-polyfills': 0.82.1 - '@react-native/metro-babel-transformer': 0.82.1(@babel/core@7.27.4) + '@react-native/metro-babel-transformer': 0.82.1 metro-config: 0.83.3 metro-runtime: 0.83.3 transitivePeerDependencies: - - '@babel/core' - bufferutil - supports-color - utf-8-validate + '@react-native/normalize-colors@0.74.89': {} + '@react-native/normalize-colors@0.82.1': {} '@react-native/typescript-config@0.82.1': {} - '@react-native/virtualized-lists@0.82.1(@types/react@19.1.13)(react-native@0.82.1(@babel/core@7.27.4)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.82.1(@babel/core@7.27.4))(@types/react@19.1.13)(react@19.1.1))(react@19.1.1)': + '@react-native/virtualized-lists@0.82.1(@types/react@19.1.13)(react-native@0.82.1(@babel/core@7.27.4)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.82.1)(@types/react@19.1.13)(react@19.2.3))(react@19.2.3)': dependencies: invariant: 2.2.4 nullthrows: 1.1.1 - react: 19.1.1 - react-native: 0.82.1(@babel/core@7.27.4)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.82.1(@babel/core@7.27.4))(@types/react@19.1.13)(react@19.1.1) + react: 19.2.3 + react-native: 0.82.1(@babel/core@7.27.4)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.82.1)(@types/react@19.1.13)(react@19.2.3) optionalDependencies: '@types/react': 19.1.13 - '@remix-run/router@1.23.0': {} - '@rolldown/pluginutils@1.0.0-beta.19': {} '@rollup/plugin-babel@6.0.4(@babel/core@7.27.4)(@types/babel__core@7.20.5)(rollup@4.43.0)': @@ -11495,54 +10937,86 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.43.0': optional: true - '@rsbuild/core@1.5.11': + '@rsbuild/core@1.6.15': dependencies: - '@rspack/core': 1.5.6(@swc/helpers@0.5.17) - '@rspack/lite-tapable': 1.0.1 + '@rspack/core': 1.6.8(@swc/helpers@0.5.17) + '@rspack/lite-tapable': 1.1.0 '@swc/helpers': 0.5.17 - core-js: 3.45.1 - jiti: 2.6.0 + core-js: 3.47.0 + jiti: 2.6.1 - '@rsbuild/plugin-react@1.4.0(@rsbuild/core@1.5.11)': + '@rsbuild/plugin-react@1.4.3(@rsbuild/core@1.6.15)': dependencies: - '@rsbuild/core': 1.5.11 - '@rspack/plugin-react-refresh': 1.5.1(react-refresh@0.17.0) - react-refresh: 0.17.0 + '@rsbuild/core': 1.6.15 + '@rspack/plugin-react-refresh': 1.6.0(react-refresh@0.18.0) + react-refresh: 0.18.0 transitivePeerDependencies: - webpack-hot-middleware '@rspack/binding-darwin-arm64@1.5.6': optional: true + '@rspack/binding-darwin-arm64@1.6.8': + optional: true + '@rspack/binding-darwin-x64@1.5.6': optional: true + '@rspack/binding-darwin-x64@1.6.8': + optional: true + '@rspack/binding-linux-arm64-gnu@1.5.6': optional: true + '@rspack/binding-linux-arm64-gnu@1.6.8': + optional: true + '@rspack/binding-linux-arm64-musl@1.5.6': optional: true + '@rspack/binding-linux-arm64-musl@1.6.8': + optional: true + '@rspack/binding-linux-x64-gnu@1.5.6': optional: true + '@rspack/binding-linux-x64-gnu@1.6.8': + optional: true + '@rspack/binding-linux-x64-musl@1.5.6': optional: true + '@rspack/binding-linux-x64-musl@1.6.8': + optional: true + '@rspack/binding-wasm32-wasi@1.5.6': dependencies: '@napi-rs/wasm-runtime': 1.0.5 optional: true + '@rspack/binding-wasm32-wasi@1.6.8': + dependencies: + '@napi-rs/wasm-runtime': 1.0.7 + optional: true + '@rspack/binding-win32-arm64-msvc@1.5.6': optional: true + '@rspack/binding-win32-arm64-msvc@1.6.8': + optional: true + '@rspack/binding-win32-ia32-msvc@1.5.6': optional: true + '@rspack/binding-win32-ia32-msvc@1.6.8': + optional: true + '@rspack/binding-win32-x64-msvc@1.5.6': optional: true + '@rspack/binding-win32-x64-msvc@1.6.8': + optional: true + '@rspack/binding@1.5.6': optionalDependencies: '@rspack/binding-darwin-arm64': 1.5.6 @@ -11556,6 +11030,19 @@ snapshots: '@rspack/binding-win32-ia32-msvc': 1.5.6 '@rspack/binding-win32-x64-msvc': 1.5.6 + '@rspack/binding@1.6.8': + optionalDependencies: + '@rspack/binding-darwin-arm64': 1.6.8 + '@rspack/binding-darwin-x64': 1.6.8 + '@rspack/binding-linux-arm64-gnu': 1.6.8 + '@rspack/binding-linux-arm64-musl': 1.6.8 + '@rspack/binding-linux-x64-gnu': 1.6.8 + '@rspack/binding-linux-x64-musl': 1.6.8 + '@rspack/binding-wasm32-wasi': 1.6.8 + '@rspack/binding-win32-arm64-msvc': 1.6.8 + '@rspack/binding-win32-ia32-msvc': 1.6.8 + '@rspack/binding-win32-x64-msvc': 1.6.8 + '@rspack/core@1.5.6(@swc/helpers@0.5.17)': dependencies: '@module-federation/runtime-tools': 0.18.0 @@ -11564,45 +11051,64 @@ snapshots: optionalDependencies: '@swc/helpers': 0.5.17 + '@rspack/core@1.6.8(@swc/helpers@0.5.17)': + dependencies: + '@module-federation/runtime-tools': 0.21.6 + '@rspack/binding': 1.6.8 + '@rspack/lite-tapable': 1.1.0 + optionalDependencies: + '@swc/helpers': 0.5.17 + '@rspack/lite-tapable@1.0.1': {} - '@rspack/plugin-react-refresh@1.5.1(react-refresh@0.17.0)': + '@rspack/lite-tapable@1.1.0': {} + + '@rspack/plugin-react-refresh@1.6.0(react-refresh@0.18.0)': dependencies: error-stack-parser: 2.1.4 html-entities: 2.6.0 - react-refresh: 0.17.0 + react-refresh: 0.18.0 - '@rspress/core@2.0.0-beta.32(@types/react@19.1.13)': + '@rspress/core@2.0.0-rc.4(@types/react@19.1.13)': dependencies: '@mdx-js/mdx': 3.1.1 - '@mdx-js/react': 3.1.1(@types/react@19.1.13)(react@19.1.1) - '@rsbuild/core': 1.5.11 - '@rsbuild/plugin-react': 1.4.0(@rsbuild/core@1.5.11) + '@mdx-js/react': 3.1.1(@types/react@19.1.13)(react@19.2.3) + '@rsbuild/core': 1.6.15 + '@rsbuild/plugin-react': 1.4.3(@rsbuild/core@1.6.15) '@rspress/mdx-rs': 0.6.6 - '@rspress/runtime': 2.0.0-beta.32 - '@rspress/shared': 2.0.0-beta.32 - '@rspress/theme-default': 2.0.0-beta.32 - '@shikijs/rehype': 3.13.0 + '@rspress/runtime': 2.0.0-rc.4 + '@rspress/shared': 2.0.0-rc.4 + '@shikijs/rehype': 3.21.0 '@types/unist': 3.0.3 - '@unhead/react': 2.0.17(react@19.1.1) + '@unhead/react': 2.1.2(react@19.2.3) + body-scroll-lock: 4.0.0-beta.0 cac: 6.7.14 chokidar: 3.6.0 - enhanced-resolve: 5.18.3 + clsx: 2.1.1 + copy-to-clipboard: 3.3.3 + flexsearch: 0.8.212 github-slugger: 2.0.0 hast-util-heading-rank: 3.0.0 + hast-util-to-jsx-runtime: 2.3.6 html-to-text: 9.0.5 - lodash-es: 4.17.21 + lodash-es: 4.17.23 + mdast-util-mdx: 3.0.0 mdast-util-mdxjs-esm: 2.0.1 medium-zoom: 1.1.0 + nprogress: 0.2.0 picocolors: 1.1.1 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) react-lazy-with-preload: 2.2.1 - react-router-dom: 6.30.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + react-reconciler: 0.33.0(react@19.2.3) + react-router-dom: 7.12.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) rehype-external-links: 3.0.0 rehype-raw: 7.0.0 remark-gfm: 4.0.1 - shiki: 3.13.0 + remark-mdx: 3.1.1 + remark-stringify: 11.0.0 + scroll-into-view-if-needed: 3.1.0 + shiki: 3.21.0 tinyglobby: 0.2.15 tinypool: 1.1.1 unified: 11.0.5 @@ -11648,9 +11154,9 @@ snapshots: '@rspress/mdx-rs-win32-arm64-msvc': 0.6.6 '@rspress/mdx-rs-win32-x64-msvc': 0.6.6 - '@rspress/plugin-llms@2.0.0-beta.32(@rspress/core@2.0.0-beta.32(@types/react@19.1.13))': + '@rspress/plugin-llms@2.0.0-rc.4(@rspress/core@2.0.0-rc.4(@types/react@19.1.13))': dependencies: - '@rspress/core': 2.0.0-beta.32(@types/react@19.1.13) + '@rspress/core': 2.0.0-rc.4(@types/react@19.1.13) remark-mdx: 3.1.1 remark-parse: 11.0.0 remark-stringify: 11.0.0 @@ -11659,45 +11165,26 @@ snapshots: transitivePeerDependencies: - supports-color - '@rspress/plugin-sitemap@2.0.0-beta.32(@rspress/core@2.0.0-beta.32(@types/react@19.1.13))': + '@rspress/plugin-sitemap@2.0.0-rc.4(@rspress/core@2.0.0-rc.4(@types/react@19.1.13))': dependencies: - '@rspress/core': 2.0.0-beta.32(@types/react@19.1.13) + '@rspress/core': 2.0.0-rc.4(@types/react@19.1.13) - '@rspress/runtime@2.0.0-beta.32': + '@rspress/runtime@2.0.0-rc.4': dependencies: - '@rspress/shared': 2.0.0-beta.32 - '@unhead/react': 2.0.17(react@19.1.1) - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - react-router-dom: 6.30.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@rspress/shared': 2.0.0-rc.4 + '@unhead/react': 2.1.2(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + react-router-dom: 7.12.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@rspress/shared@2.0.0-beta.32': + '@rspress/shared@2.0.0-rc.4': dependencies: - '@rsbuild/core': 1.5.11 - '@shikijs/rehype': 3.13.0 + '@rsbuild/core': 1.6.15 + '@shikijs/rehype': 3.21.0 gray-matter: 4.0.3 - lodash-es: 4.17.21 + lodash-es: 4.17.23 unified: 11.0.5 - '@rspress/theme-default@2.0.0-beta.32': - dependencies: - '@mdx-js/react': 2.3.0(react@19.1.1) - '@rspress/runtime': 2.0.0-beta.32 - '@rspress/shared': 2.0.0-beta.32 - '@unhead/react': 2.0.17(react@19.1.1) - body-scroll-lock: 4.0.0-beta.0 - copy-to-clipboard: 3.3.3 - flexsearch: 0.7.43 - github-slugger: 2.0.0 - hast-util-to-jsx-runtime: 2.3.6 - lodash-es: 4.17.21 - nprogress: 0.2.0 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - shiki: 3.13.0 - transitivePeerDependencies: - - supports-color - '@rtsao/scc@1.1.0': {} '@selderee/plugin-htmlparser2@0.11.0': @@ -11705,42 +11192,42 @@ snapshots: domhandler: 5.0.3 selderee: 0.11.0 - '@shikijs/core@3.13.0': + '@shikijs/core@3.21.0': dependencies: - '@shikijs/types': 3.13.0 + '@shikijs/types': 3.21.0 '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 hast-util-to-html: 9.0.5 - '@shikijs/engine-javascript@3.13.0': + '@shikijs/engine-javascript@3.21.0': dependencies: - '@shikijs/types': 3.13.0 + '@shikijs/types': 3.21.0 '@shikijs/vscode-textmate': 10.0.2 - oniguruma-to-es: 4.3.3 + oniguruma-to-es: 4.3.4 - '@shikijs/engine-oniguruma@3.13.0': + '@shikijs/engine-oniguruma@3.21.0': dependencies: - '@shikijs/types': 3.13.0 + '@shikijs/types': 3.21.0 '@shikijs/vscode-textmate': 10.0.2 - '@shikijs/langs@3.13.0': + '@shikijs/langs@3.21.0': dependencies: - '@shikijs/types': 3.13.0 + '@shikijs/types': 3.21.0 - '@shikijs/rehype@3.13.0': + '@shikijs/rehype@3.21.0': dependencies: - '@shikijs/types': 3.13.0 + '@shikijs/types': 3.21.0 '@types/hast': 3.0.4 hast-util-to-string: 3.0.1 - shiki: 3.13.0 + shiki: 3.21.0 unified: 11.0.5 unist-util-visit: 5.0.0 - '@shikijs/themes@3.13.0': + '@shikijs/themes@3.21.0': dependencies: - '@shikijs/types': 3.13.0 + '@shikijs/types': 3.21.0 - '@shikijs/types@3.13.0': + '@shikijs/types@3.21.0': dependencies: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 @@ -11771,12 +11258,6 @@ snapshots: dependencies: '@sinonjs/commons': 3.0.1 - '@so-ric/colorspace@1.1.6': - dependencies: - color: 5.0.3 - text-hex: 1.0.0 - optional: true - '@standard-schema/spec@1.1.0': {} '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.27.4)': @@ -12091,9 +11572,6 @@ snapshots: '@types/stack-utils@2.0.3': {} - '@types/triple-beam@1.3.5': - optional: true - '@types/unist@2.0.11': {} '@types/unist@3.0.3': {} @@ -12108,15 +11586,15 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@8.46.4(@typescript-eslint/parser@8.46.4(eslint@9.29.0(jiti@2.6.0))(typescript@5.9.3))(eslint@9.29.0(jiti@2.6.0))(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@8.46.4(@typescript-eslint/parser@8.46.4(eslint@9.29.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.29.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.46.4(eslint@9.29.0(jiti@2.6.0))(typescript@5.9.3) + '@typescript-eslint/parser': 8.46.4(eslint@9.29.0(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/scope-manager': 8.46.4 - '@typescript-eslint/type-utils': 8.46.4(eslint@9.29.0(jiti@2.6.0))(typescript@5.9.3) - '@typescript-eslint/utils': 8.46.4(eslint@9.29.0(jiti@2.6.0))(typescript@5.9.3) + '@typescript-eslint/type-utils': 8.46.4(eslint@9.29.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.46.4(eslint@9.29.0(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/visitor-keys': 8.46.4 - eslint: 9.29.0(jiti@2.6.0) + eslint: 9.29.0(jiti@2.6.1) graphemer: 1.4.0 ignore: 7.0.5 natural-compare: 1.4.0 @@ -12142,14 +11620,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.46.4(eslint@9.29.0(jiti@2.6.0))(typescript@5.9.3)': + '@typescript-eslint/parser@8.46.4(eslint@9.29.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@typescript-eslint/scope-manager': 8.46.4 '@typescript-eslint/types': 8.46.4 '@typescript-eslint/typescript-estree': 8.46.4(typescript@5.9.3) '@typescript-eslint/visitor-keys': 8.46.4 debug: 4.4.1 - eslint: 9.29.0(jiti@2.6.0) + eslint: 9.29.0(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -12214,13 +11692,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.46.4(eslint@9.29.0(jiti@2.6.0))(typescript@5.9.3)': + '@typescript-eslint/type-utils@8.46.4(eslint@9.29.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@typescript-eslint/types': 8.46.4 '@typescript-eslint/typescript-estree': 8.46.4(typescript@5.9.3) - '@typescript-eslint/utils': 8.46.4(eslint@9.29.0(jiti@2.6.0))(typescript@5.9.3) + '@typescript-eslint/utils': 8.46.4(eslint@9.29.0(jiti@2.6.1))(typescript@5.9.3) debug: 4.4.1 - eslint: 9.29.0(jiti@2.6.0) + eslint: 9.29.0(jiti@2.6.1) ts-api-utils: 2.1.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: @@ -12285,13 +11763,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.46.4(eslint@9.29.0(jiti@2.6.0))(typescript@5.9.3)': + '@typescript-eslint/utils@8.46.4(eslint@9.29.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.29.0(jiti@2.6.0)) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.29.0(jiti@2.6.1)) '@typescript-eslint/scope-manager': 8.46.4 '@typescript-eslint/types': 8.46.4 '@typescript-eslint/typescript-estree': 8.46.4(typescript@5.9.3) - eslint: 9.29.0(jiti@2.6.0) + eslint: 9.29.0(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -12319,10 +11797,10 @@ snapshots: '@ungap/structured-clone@1.3.0': {} - '@unhead/react@2.0.17(react@19.1.1)': + '@unhead/react@2.1.2(react@19.2.3)': dependencies: - react: 19.1.1 - unhead: 2.0.17 + react: 19.2.3 + unhead: 2.1.2 '@unrs/resolver-binding-android-arm-eabi@1.11.1': optional: true @@ -12383,11 +11861,11 @@ snapshots: '@unrs/resolver-binding-win32-x64-msvc@1.11.1': optional: true - '@vercel/analytics@1.5.0(react@19.1.1)': + '@vercel/analytics@1.5.0(react@19.2.3)': optionalDependencies: - react: 19.1.1 + react: 19.2.3 - '@vitejs/plugin-react@4.6.0(vite@7.2.2(@types/node@20.19.25)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.27.0)(sass-embedded@1.89.2)(sass@1.89.2)(stylus@0.64.0)(terser@5.42.0)(yaml@2.8.0))': + '@vitejs/plugin-react@4.6.0(vite@7.2.2(@types/node@20.19.25)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0))': dependencies: '@babel/core': 7.27.4 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.27.4) @@ -12395,11 +11873,11 @@ snapshots: '@rolldown/pluginutils': 1.0.0-beta.19 '@types/babel__core': 7.20.5 react-refresh: 0.17.0 - vite: 7.2.2(@types/node@20.19.25)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.27.0)(sass-embedded@1.89.2)(sass@1.89.2)(stylus@0.64.0)(terser@5.42.0)(yaml@2.8.0) + vite: 7.2.2(@types/node@20.19.25)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0) transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@3.2.4(vitest@3.2.4)': + '@vitest/coverage-v8@3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@20.19.25)(@vitest/ui@3.2.4)(jiti@2.4.2)(jsdom@22.1.0)(terser@5.42.0)(yaml@2.8.0))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 1.0.2 @@ -12414,7 +11892,7 @@ snapshots: std-env: 3.9.0 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@20.19.25)(@vitest/ui@3.2.4)(jiti@2.4.2)(jsdom@22.1.0)(less@4.1.3)(lightningcss@1.27.0)(sass-embedded@1.89.2)(sass@1.89.2)(stylus@0.64.0)(terser@5.42.0)(yaml@2.8.0) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@20.19.25)(@vitest/ui@3.2.4)(jiti@2.4.2)(jsdom@22.1.0)(terser@5.42.0)(yaml@2.8.0) transitivePeerDependencies: - supports-color @@ -12435,13 +11913,13 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.0.3 - '@vitest/mocker@3.2.4(vite@7.2.2(@types/node@20.19.25)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.27.0)(sass-embedded@1.89.2)(sass@1.89.2)(stylus@0.64.0)(terser@5.42.0)(yaml@2.8.0))': + '@vitest/mocker@3.2.4(vite@7.2.2(@types/node@20.19.25)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 7.2.2(@types/node@20.19.25)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.27.0)(sass-embedded@1.89.2)(sass@1.89.2)(stylus@0.64.0)(terser@5.42.0)(yaml@2.8.0) + vite: 7.2.2(@types/node@20.19.25)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0) '@vitest/pretty-format@3.2.4': dependencies: @@ -12478,7 +11956,7 @@ snapshots: sirv: 3.0.1 tinyglobby: 0.2.15 tinyrainbow: 2.0.0 - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@20.19.25)(@vitest/ui@3.2.4)(jiti@2.4.2)(jsdom@22.1.0)(less@4.1.3)(lightningcss@1.27.0)(sass-embedded@1.89.2)(sass@1.89.2)(stylus@0.64.0)(terser@5.42.0)(yaml@2.8.0) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@20.19.25)(@vitest/ui@3.2.4)(jiti@2.4.2)(jsdom@22.1.0)(terser@5.42.0)(yaml@2.8.0) '@vitest/utils@3.2.4': dependencies: @@ -12569,22 +12047,6 @@ snapshots: '@webassemblyjs/ast': 1.14.1 '@xtuc/long': 4.2.2 - '@wix-pilot/core@3.4.2(expect@30.2.0)': - dependencies: - chalk: 4.1.2 - pngjs: 7.0.0 - winston: 3.18.3 - optionalDependencies: - expect: 30.2.0 - optional: true - - '@wix-pilot/detox@1.0.13(@wix-pilot/core@3.4.2(expect@30.2.0))(detox@20.46.0(@jest/environment@30.2.0)(@jest/types@30.2.0)(expect@30.2.0)(jest-environment-node@30.2.0)(jest@30.2.0(@types/node@20.19.25)(babel-plugin-macros@3.1.0)(ts-node@9.1.1(typescript@5.9.3))))(expect@30.2.0)': - dependencies: - '@wix-pilot/core': 3.4.2(expect@30.2.0) - detox: 20.46.0(@jest/environment@30.2.0)(@jest/types@30.2.0)(expect@30.2.0)(jest-environment-node@30.2.0)(jest@30.2.0(@types/node@20.19.25)(babel-plugin-macros@3.1.0)(ts-node@9.1.1(typescript@5.9.3))) - expect: 30.2.0 - optional: true - '@xtuc/ieee754@1.2.0': {} '@xtuc/long@4.2.2': {} @@ -12701,9 +12163,6 @@ snapshots: appdirsjs@1.2.7: {} - arg@4.1.3: - optional: true - argparse@1.0.10: dependencies: sprintf-js: 1.0.3 @@ -13011,9 +12470,6 @@ snapshots: inherits: 2.0.4 readable-stream: 3.6.2 - bluebird@3.7.2: - optional: true - body-parser@1.20.3: dependencies: bytes: 3.1.2 @@ -13048,9 +12504,6 @@ snapshots: dependencies: fill-range: 7.1.1 - browser-process-hrtime@1.0.0: - optional: true - browserslist@4.25.0: dependencies: caniuse-lite: 1.0.30001723 @@ -13072,9 +12525,6 @@ snapshots: btoa@1.2.1: {} - buffer-builder@0.2.0: - optional: true - buffer-from@1.1.2: {} buffer@5.7.1: @@ -13087,55 +12537,10 @@ snapshots: esbuild: 0.27.0 load-tsconfig: 0.2.5 - bunyamin@1.6.3(bunyan@2.0.5): - dependencies: - '@flatten-js/interval-tree': 1.1.4 - multi-sort-stream: 1.0.4 - stream-json: 1.9.1 - trace-event-lib: 1.4.1 - optionalDependencies: - bunyan: 2.0.5 - optional: true - - bunyan-debug-stream@3.1.1(bunyan@1.8.15): - dependencies: - chalk: 4.1.2 - optionalDependencies: - bunyan: 1.8.15 - optional: true - - bunyan-debug-stream@3.1.1(bunyan@2.0.5): - dependencies: - chalk: 4.1.2 - optionalDependencies: - bunyan: 2.0.5 - optional: true - - bunyan@1.8.15: - optionalDependencies: - dtrace-provider: 0.8.8 - moment: 2.30.1 - mv: 2.1.1 - safe-json-stringify: 1.2.0 - optional: true - - bunyan@2.0.5: - dependencies: - exeunt: 1.1.0 - optionalDependencies: - dtrace-provider: 0.8.8 - moment: 2.30.1 - mv: 2.1.1 - safe-json-stringify: 1.2.0 - optional: true - bytes@3.1.2: {} cac@6.7.14: {} - caf@15.0.1: - optional: true - call-bind-apply-helpers@1.0.2: dependencies: es-errors: 1.3.0 @@ -13272,6 +12677,8 @@ snapshots: clone@1.0.4: {} + clsx@2.1.1: {} + co@4.6.0: {} collapse-white-space@2.1.0: {} @@ -13286,38 +12693,16 @@ snapshots: dependencies: color-name: 1.1.4 - color-convert@3.1.3: - dependencies: - color-name: 2.1.0 - optional: true - color-name@1.1.3: {} color-name@1.1.4: {} - color-name@2.1.0: - optional: true - - color-string@2.1.4: - dependencies: - color-name: 2.1.0 - optional: true - - color@5.0.3: - dependencies: - color-convert: 3.1.3 - color-string: 2.1.4 - optional: true - colord@2.9.3: {} colorette@1.4.0: {} colorette@2.0.20: {} - colorjs.io@0.5.2: - optional: true - columnify@1.6.0: dependencies: strip-ansi: 6.0.1 @@ -13361,6 +12746,8 @@ snapshots: transitivePeerDependencies: - supports-color + compute-scroll-into-view@3.1.1: {} + concat-map@0.0.1: {} concat-with-sourcemaps@1.1.0: @@ -13394,16 +12781,13 @@ snapshots: cookie@0.7.1: {} + cookie@1.1.1: {} + cookies@0.9.1: dependencies: depd: 2.0.0 keygrip: 1.1.0 - copy-anything@2.0.6: - dependencies: - is-what: 3.14.1 - optional: true - copy-to-clipboard@3.3.3: dependencies: toggle-selection: 1.0.6 @@ -13412,10 +12796,7 @@ snapshots: dependencies: browserslist: 4.28.0 - core-js@3.45.1: {} - - core-util-is@1.0.3: - optional: true + core-js@3.47.0: {} corser@2.0.1: {} @@ -13445,13 +12826,16 @@ snapshots: optionalDependencies: typescript: 5.9.3 - create-require@1.1.1: - optional: true - cron-parser@4.9.0: dependencies: luxon: 3.6.1 + cross-fetch@3.2.0(encoding@0.1.13): + dependencies: + node-fetch: 2.7.0(encoding@0.1.13) + transitivePeerDependencies: + - encoding + cross-spawn@7.0.6: dependencies: path-key: 3.1.1 @@ -13462,6 +12846,10 @@ snapshots: dependencies: postcss: 8.5.6 + css-in-js-utils@3.1.0: + dependencies: + hyphenate-style-name: 1.1.0 + css-select@4.3.0: dependencies: boolbase: 1.0.0 @@ -13599,9 +12987,6 @@ snapshots: decamelize@1.2.0: {} - decamelize@4.0.0: - optional: true - decimal.js@10.5.0: {} decode-named-character-reference@1.2.0: @@ -13650,9 +13035,6 @@ snapshots: destroy@1.2.0: {} - detect-libc@1.0.3: - optional: true - detect-newline@3.1.0: {} detect-port@1.6.1: @@ -13662,65 +13044,10 @@ snapshots: transitivePeerDependencies: - supports-color - detox@20.46.0(@jest/environment@30.2.0)(@jest/types@30.2.0)(expect@30.2.0)(jest-environment-node@30.2.0)(jest@30.2.0(@types/node@20.19.25)(babel-plugin-macros@3.1.0)(ts-node@9.1.1(typescript@5.9.3))): - dependencies: - '@wix-pilot/core': 3.4.2(expect@30.2.0) - '@wix-pilot/detox': 1.0.13(@wix-pilot/core@3.4.2(expect@30.2.0))(detox@20.46.0(@jest/environment@30.2.0)(@jest/types@30.2.0)(expect@30.2.0)(jest-environment-node@30.2.0)(jest@30.2.0(@types/node@20.19.25)(babel-plugin-macros@3.1.0)(ts-node@9.1.1(typescript@5.9.3))))(expect@30.2.0) - ajv: 8.17.1 - bunyan: 1.8.15 - bunyan-debug-stream: 3.1.1(bunyan@1.8.15) - caf: 15.0.1 - chalk: 4.1.2 - execa: 5.1.1 - find-up: 5.0.0 - fs-extra: 11.3.2 - funpermaproxy: 1.1.0 - glob: 8.1.0 - ini: 1.3.8 - jest-environment-emit: 1.2.0(@jest/environment@30.2.0)(@jest/types@30.2.0)(jest-environment-node@30.2.0)(jest@30.2.0(@types/node@20.19.25)(babel-plugin-macros@3.1.0)(ts-node@9.1.1(typescript@5.9.3))) - json-cycle: 1.5.0 - lodash: 4.17.21 - multi-sort-stream: 1.0.4 - multipipe: 4.0.0 - node-ipc: 9.2.1 - promisify-child-process: 4.1.2 - proper-lockfile: 3.2.0 - resolve-from: 5.0.0 - sanitize-filename: 1.6.3 - semver: 7.7.2 - serialize-error: 8.1.0 - shell-quote: 1.8.3 - signal-exit: 3.0.7 - stream-json: 1.9.1 - strip-ansi: 6.0.1 - telnet-client: 1.2.8 - tmp: 0.2.3 - trace-event-lib: 1.4.1 - which: 1.3.1 - ws: 7.5.10 - yargs: 17.7.2 - yargs-parser: 21.1.1 - yargs-unparser: 2.0.0 - optionalDependencies: - jest: 30.2.0(@types/node@20.19.25)(babel-plugin-macros@3.1.0)(ts-node@9.1.1(typescript@5.9.3)) - transitivePeerDependencies: - - '@jest/environment' - - '@jest/types' - - '@types/bunyan' - - bufferutil - - expect - - jest-environment-jsdom - - jest-environment-node - - utf-8-validate - optional: true - devlop@1.1.0: dependencies: dequal: 2.0.3 - diff@4.0.2: - optional: true - dir-glob@3.0.1: dependencies: path-type: 4.0.0 @@ -13778,27 +13105,14 @@ snapshots: dotenv@16.4.7: {} - dtrace-provider@0.8.8: - dependencies: - nan: 2.23.1 - optional: true - dunder-proto@1.0.1: dependencies: call-bind-apply-helpers: 1.0.2 es-errors: 1.3.0 gopd: 1.2.0 - duplexer2@0.1.4: - dependencies: - readable-stream: 2.3.8 - optional: true - eastasianwidth@0.2.0: {} - easy-stack@1.0.1: - optional: true - ee-first@1.1.1: {} ejs@3.1.10: @@ -13817,9 +13131,6 @@ snapshots: emojis-list@3.0.0: {} - enabled@2.0.0: - optional: true - encodeurl@1.0.2: {} encodeurl@2.0.0: {} @@ -13835,7 +13146,7 @@ snapshots: enhanced-resolve@5.18.3: dependencies: graceful-fs: 4.2.11 - tapable: 2.2.2 + tapable: 2.3.0 enquirer@2.3.6: dependencies: @@ -13851,11 +13162,6 @@ snapshots: envinfo@7.14.0: {} - errno@0.1.8: - dependencies: - prr: 1.0.1 - optional: true - error-ex@1.3.2: dependencies: is-arrayish: 0.2.1 @@ -14059,9 +13365,9 @@ snapshots: dependencies: eslint: 9.29.0(jiti@2.4.2) - eslint-config-prettier@8.10.2(eslint@9.29.0(jiti@2.6.0)): + eslint-config-prettier@8.10.2(eslint@9.29.0(jiti@2.6.1)): dependencies: - eslint: 9.29.0(jiti@2.6.0) + eslint: 9.29.0(jiti@2.6.1) eslint-import-resolver-node@0.3.9: dependencies: @@ -14081,16 +13387,16 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-eslint-comments@3.2.0(eslint@9.29.0(jiti@2.6.0)): + eslint-plugin-eslint-comments@3.2.0(eslint@9.29.0(jiti@2.6.1)): dependencies: escape-string-regexp: 1.0.5 - eslint: 9.29.0(jiti@2.6.0) + eslint: 9.29.0(jiti@2.6.1) ignore: 5.3.2 - eslint-plugin-ft-flow@2.0.3(@babel/eslint-parser@7.28.5(@babel/core@7.27.4)(eslint@9.29.0(jiti@2.6.0)))(eslint@9.29.0(jiti@2.6.0)): + eslint-plugin-ft-flow@2.0.3(@babel/eslint-parser@7.28.5(@babel/core@7.27.4)(eslint@9.29.0(jiti@2.6.1)))(eslint@9.29.0(jiti@2.6.1)): dependencies: - '@babel/eslint-parser': 7.28.5(@babel/core@7.27.4)(eslint@9.29.0(jiti@2.6.0)) - eslint: 9.29.0(jiti@2.6.0) + '@babel/eslint-parser': 7.28.5(@babel/core@7.27.4)(eslint@9.29.0(jiti@2.6.1)) + eslint: 9.29.0(jiti@2.6.1) lodash: 4.17.21 string-natural-compare: 3.0.1 @@ -14123,13 +13429,13 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-plugin-jest@29.1.0(@typescript-eslint/eslint-plugin@8.46.4(@typescript-eslint/parser@8.46.4(eslint@9.29.0(jiti@2.6.0))(typescript@5.9.3))(eslint@9.29.0(jiti@2.6.0))(typescript@5.9.3))(eslint@9.29.0(jiti@2.6.0))(jest@30.2.0(@types/node@18.16.9)(babel-plugin-macros@3.1.0)(ts-node@9.1.1(typescript@5.9.3)))(typescript@5.9.3): + eslint-plugin-jest@29.1.0(@typescript-eslint/eslint-plugin@8.46.4(@typescript-eslint/parser@8.46.4(eslint@9.29.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.29.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.29.0(jiti@2.6.1))(jest@30.2.0(@types/node@20.19.25)(babel-plugin-macros@3.1.0))(typescript@5.9.3): dependencies: - '@typescript-eslint/utils': 8.46.4(eslint@9.29.0(jiti@2.6.0))(typescript@5.9.3) - eslint: 9.29.0(jiti@2.6.0) + '@typescript-eslint/utils': 8.46.4(eslint@9.29.0(jiti@2.6.1))(typescript@5.9.3) + eslint: 9.29.0(jiti@2.6.1) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.46.4(@typescript-eslint/parser@8.46.4(eslint@9.29.0(jiti@2.6.0))(typescript@5.9.3))(eslint@9.29.0(jiti@2.6.0))(typescript@5.9.3) - jest: 30.2.0(@types/node@18.16.9)(babel-plugin-macros@3.1.0)(ts-node@9.1.1(typescript@5.9.3)) + '@typescript-eslint/eslint-plugin': 8.46.4(@typescript-eslint/parser@8.46.4(eslint@9.29.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.29.0(jiti@2.6.1))(typescript@5.9.3) + jest: 30.2.0(@types/node@20.19.25)(babel-plugin-macros@3.1.0) transitivePeerDependencies: - supports-color - typescript @@ -14158,15 +13464,15 @@ snapshots: dependencies: eslint: 9.29.0(jiti@2.4.2) - eslint-plugin-react-hooks@5.2.0(eslint@9.29.0(jiti@2.6.0)): + eslint-plugin-react-hooks@5.2.0(eslint@9.29.0(jiti@2.6.1)): dependencies: - eslint: 9.29.0(jiti@2.6.0) + eslint: 9.29.0(jiti@2.6.1) eslint-plugin-react-native-globals@0.1.2: {} - eslint-plugin-react-native@4.1.0(eslint@9.29.0(jiti@2.6.0)): + eslint-plugin-react-native@4.1.0(eslint@9.29.0(jiti@2.6.1)): dependencies: - eslint: 9.29.0(jiti@2.6.0) + eslint: 9.29.0(jiti@2.6.1) eslint-plugin-react-native-globals: 0.1.2 eslint-plugin-react@7.35.0(eslint@9.29.0(jiti@2.4.2)): @@ -14191,7 +13497,7 @@ snapshots: string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 - eslint-plugin-react@7.35.0(eslint@9.29.0(jiti@2.6.0)): + eslint-plugin-react@7.35.0(eslint@9.29.0(jiti@2.6.1)): dependencies: array-includes: 3.1.9 array.prototype.findlast: 1.2.5 @@ -14199,7 +13505,7 @@ snapshots: array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 es-iterator-helpers: 1.2.1 - eslint: 9.29.0(jiti@2.6.0) + eslint: 9.29.0(jiti@2.6.1) estraverse: 5.3.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 @@ -14271,9 +13577,9 @@ snapshots: transitivePeerDependencies: - supports-color - eslint@9.29.0(jiti@2.6.0): + eslint@9.29.0(jiti@2.6.1): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.29.0(jiti@2.6.0)) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.29.0(jiti@2.6.1)) '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.20.1 '@eslint/config-helpers': 0.2.3 @@ -14309,7 +13615,7 @@ snapshots: natural-compare: 1.4.0 optionator: 0.9.4 optionalDependencies: - jiti: 2.6.0 + jiti: 2.6.1 transitivePeerDependencies: - supports-color @@ -14361,7 +13667,7 @@ snapshots: dependencies: '@types/estree-jsx': 1.0.5 astring: 1.9.0 - source-map: 0.7.4 + source-map: 0.7.6 estree-util-visit@2.0.0: dependencies: @@ -14380,9 +13686,6 @@ snapshots: etag@1.8.1: {} - event-pubsub@4.3.0: - optional: true - event-target-shim@5.0.1: {} event-target-shim@6.0.2: {} @@ -14403,9 +13706,6 @@ snapshots: signal-exit: 3.0.7 strip-final-newline: 2.0.0 - exeunt@1.1.0: - optional: true - exit-x@0.2.2: {} expand-tilde@2.0.2: @@ -14497,13 +13797,24 @@ snapshots: dependencies: bser: 2.1.1 + fbjs-css-vars@1.0.2: {} + + fbjs@3.0.5(encoding@0.1.13): + dependencies: + cross-fetch: 3.2.0(encoding@0.1.13) + fbjs-css-vars: 1.0.2 + loose-envify: 1.4.0 + object-assign: 4.1.1 + promise: 7.3.1 + setimmediate: 1.0.5 + ua-parser-js: 1.0.41 + transitivePeerDependencies: + - encoding + fdir@6.5.0(picomatch@4.0.3): optionalDependencies: picomatch: 4.0.3 - fecha@4.2.3: - optional: true - fflate@0.8.2: {} figures@3.2.0: @@ -14599,13 +13910,10 @@ snapshots: flatted@3.3.3: {} - flexsearch@0.7.43: {} + flexsearch@0.8.212: {} flow-enums-runtime@0.0.6: {} - fn.name@1.1.0: - optional: true - follow-redirects@1.15.9(debug@4.4.1): optionalDependencies: debug: 4.4.1 @@ -14653,13 +13961,6 @@ snapshots: jsonfile: 6.1.0 universalify: 2.0.1 - fs-extra@11.3.2: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.1 - optional: true - fs-extra@8.1.0: dependencies: graceful-fs: 4.2.11 @@ -14675,6 +13976,9 @@ snapshots: fs.realpath@1.0.0: {} + fsevents@2.3.2: + optional: true + fsevents@2.3.3: optional: true @@ -14691,9 +13995,6 @@ snapshots: functions-have-names@1.2.3: {} - funpermaproxy@1.1.0: - optional: true - generic-names@4.0.0: dependencies: loader-utils: 3.3.1 @@ -14760,15 +14061,6 @@ snapshots: package-json-from-dist: 1.0.1 path-scurry: 1.11.1 - glob@6.0.4: - dependencies: - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - optional: true - glob@7.2.3: dependencies: fs.realpath: 1.0.0 @@ -15001,7 +14293,7 @@ snapshots: dependencies: parse-passwd: 1.0.0 - hookable@5.5.3: {} + hookable@6.0.1: {} html-encoding-sniffer@3.0.0: dependencies: @@ -15111,6 +14403,8 @@ snapshots: human-signals@2.1.0: {} + hyphenate-style-name@1.1.0: {} + iconv-lite@0.4.24: dependencies: safer-buffer: 2.1.2 @@ -15136,19 +14430,10 @@ snapshots: ignore@7.0.5: {} - image-size@0.5.5: - optional: true - image-size@1.2.1: dependencies: queue: 6.0.2 - immer@10.1.1: - optional: true - - immutable@5.1.3: - optional: true - import-cwd@3.0.0: dependencies: import-from: 3.0.0 @@ -15180,6 +14465,10 @@ snapshots: inline-style-parser@0.2.4: {} + inline-style-prefixer@7.0.1: + dependencies: + css-in-js-utils: 3.1.0 + internal-slot@1.1.0: dependencies: es-errors: 1.3.0 @@ -15293,9 +14582,6 @@ snapshots: is-number@7.0.0: {} - is-plain-obj@2.1.0: - optional: true - is-plain-obj@4.1.0: {} is-plain-object@3.0.1: {} @@ -15351,9 +14637,6 @@ snapshots: call-bound: 1.0.4 get-intrinsic: 1.3.0 - is-what@3.14.1: - optional: true - is-windows@1.0.2: {} is-wsl@1.1.0: {} @@ -15362,9 +14645,6 @@ snapshots: dependencies: is-docker: 2.2.1 - isarray@1.0.0: - optional: true - isarray@2.0.5: {} isexe@2.0.0: {} @@ -15468,34 +14748,15 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@30.2.0(@types/node@18.16.9)(babel-plugin-macros@3.1.0)(ts-node@9.1.1(typescript@5.9.3)): - dependencies: - '@jest/core': 30.2.0(babel-plugin-macros@3.1.0)(ts-node@9.1.1(typescript@5.9.3)) - '@jest/test-result': 30.2.0 - '@jest/types': 30.2.0 - chalk: 4.1.2 - exit-x: 0.2.2 - import-local: 3.2.0 - jest-config: 30.2.0(@types/node@18.16.9)(babel-plugin-macros@3.1.0)(ts-node@9.1.1(typescript@5.9.3)) - jest-util: 30.2.0 - jest-validate: 30.2.0 - yargs: 17.7.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - esbuild-register - - supports-color - - ts-node - - jest-cli@30.2.0(@types/node@20.19.25)(babel-plugin-macros@3.1.0)(ts-node@9.1.1(typescript@5.9.3)): + jest-cli@30.2.0(@types/node@20.19.25)(babel-plugin-macros@3.1.0): dependencies: - '@jest/core': 30.2.0(babel-plugin-macros@3.1.0)(ts-node@9.1.1(typescript@5.9.3)) + '@jest/core': 30.2.0(babel-plugin-macros@3.1.0) '@jest/test-result': 30.2.0 '@jest/types': 30.2.0 chalk: 4.1.2 exit-x: 0.2.2 import-local: 3.2.0 - jest-config: 30.2.0(@types/node@20.19.25)(babel-plugin-macros@3.1.0)(ts-node@9.1.1(typescript@5.9.3)) + jest-config: 30.2.0(@types/node@20.19.25)(babel-plugin-macros@3.1.0) jest-util: 30.2.0 jest-validate: 30.2.0 yargs: 17.7.2 @@ -15506,7 +14767,7 @@ snapshots: - supports-color - ts-node - jest-config@30.2.0(@types/node@18.16.9)(babel-plugin-macros@3.1.0)(ts-node@9.1.1(typescript@5.9.3)): + jest-config@30.2.0(@types/node@18.16.9)(babel-plugin-macros@3.1.0): dependencies: '@babel/core': 7.27.4 '@jest/get-type': 30.1.0 @@ -15534,12 +14795,11 @@ snapshots: strip-json-comments: 3.1.1 optionalDependencies: '@types/node': 18.16.9 - ts-node: 9.1.1(typescript@5.9.3) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@30.2.0(@types/node@20.19.25)(babel-plugin-macros@3.1.0)(ts-node@9.1.1(typescript@5.9.3)): + jest-config@30.2.0(@types/node@20.19.25)(babel-plugin-macros@3.1.0): dependencies: '@babel/core': 7.27.4 '@jest/get-type': 30.1.0 @@ -15567,7 +14827,6 @@ snapshots: strip-json-comments: 3.1.1 optionalDependencies: '@types/node': 20.19.25 - ts-node: 9.1.1(typescript@5.9.3) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -15591,25 +14850,6 @@ snapshots: jest-util: 30.2.0 pretty-format: 30.2.0 - jest-environment-emit@1.2.0(@jest/environment@30.2.0)(@jest/types@30.2.0)(jest-environment-node@30.2.0)(jest@30.2.0(@types/node@20.19.25)(babel-plugin-macros@3.1.0)(ts-node@9.1.1(typescript@5.9.3))): - dependencies: - bunyamin: 1.6.3(bunyan@2.0.5) - bunyan: 2.0.5 - bunyan-debug-stream: 3.1.1(bunyan@2.0.5) - funpermaproxy: 1.1.0 - lodash.merge: 4.6.2 - node-ipc: 9.2.1 - strip-ansi: 6.0.1 - tslib: 2.8.1 - optionalDependencies: - '@jest/environment': 30.2.0 - '@jest/types': 30.2.0 - jest: 30.2.0(@types/node@20.19.25)(babel-plugin-macros@3.1.0)(ts-node@9.1.1(typescript@5.9.3)) - jest-environment-node: 30.2.0 - transitivePeerDependencies: - - '@types/bunyan' - optional: true - jest-environment-node@29.7.0: dependencies: '@jest/environment': 29.7.0 @@ -15884,36 +15124,22 @@ snapshots: merge-stream: 2.0.0 supports-color: 8.1.1 - jest@30.2.0(@types/node@18.16.9)(babel-plugin-macros@3.1.0)(ts-node@9.1.1(typescript@5.9.3)): - dependencies: - '@jest/core': 30.2.0(babel-plugin-macros@3.1.0)(ts-node@9.1.1(typescript@5.9.3)) - '@jest/types': 30.2.0 - import-local: 3.2.0 - jest-cli: 30.2.0(@types/node@18.16.9)(babel-plugin-macros@3.1.0)(ts-node@9.1.1(typescript@5.9.3)) - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - esbuild-register - - supports-color - - ts-node - - jest@30.2.0(@types/node@20.19.25)(babel-plugin-macros@3.1.0)(ts-node@9.1.1(typescript@5.9.3)): + jest@30.2.0(@types/node@20.19.25)(babel-plugin-macros@3.1.0): dependencies: - '@jest/core': 30.2.0(babel-plugin-macros@3.1.0)(ts-node@9.1.1(typescript@5.9.3)) + '@jest/core': 30.2.0(babel-plugin-macros@3.1.0) '@jest/types': 30.2.0 import-local: 3.2.0 - jest-cli: 30.2.0(@types/node@20.19.25)(babel-plugin-macros@3.1.0)(ts-node@9.1.1(typescript@5.9.3)) + jest-cli: 30.2.0(@types/node@20.19.25)(babel-plugin-macros@3.1.0) transitivePeerDependencies: - '@types/node' - babel-plugin-macros - esbuild-register - supports-color - ts-node - optional: true jiti@2.4.2: {} - jiti@2.6.0: {} + jiti@2.6.1: {} joi@17.13.3: dependencies: @@ -15925,14 +15151,6 @@ snapshots: joycon@3.1.1: {} - js-message@1.0.7: - optional: true - - js-queue@2.0.2: - dependencies: - easy-stack: 1.0.1 - optional: true - js-tokens@4.0.0: {} js-tokens@9.0.1: {} @@ -15984,9 +15202,6 @@ snapshots: json-buffer@3.0.1: {} - json-cycle@1.5.0: - optional: true - json-parse-even-better-errors@2.3.1: {} json-schema-traverse@0.4.1: {} @@ -16062,9 +15277,6 @@ snapshots: type-is: 2.0.1 vary: 1.1.2 - kuler@2.0.0: - optional: true - language-subtag-registry@0.3.23: {} language-tags@1.0.9: @@ -16078,21 +15290,6 @@ snapshots: leac@0.6.0: {} - less@4.1.3: - dependencies: - copy-anything: 2.0.6 - parse-node-version: 1.0.1 - tslib: 2.8.1 - optionalDependencies: - errno: 0.1.8 - graceful-fs: 4.2.11 - image-size: 0.5.5 - make-dir: 2.1.0 - mime: 1.6.0 - needle: 3.3.1 - source-map: 0.6.1 - optional: true - leven@3.1.0: {} levn@0.4.1: @@ -16107,52 +15304,6 @@ snapshots: transitivePeerDependencies: - supports-color - lightningcss-darwin-arm64@1.27.0: - optional: true - - lightningcss-darwin-x64@1.27.0: - optional: true - - lightningcss-freebsd-x64@1.27.0: - optional: true - - lightningcss-linux-arm-gnueabihf@1.27.0: - optional: true - - lightningcss-linux-arm64-gnu@1.27.0: - optional: true - - lightningcss-linux-arm64-musl@1.27.0: - optional: true - - lightningcss-linux-x64-gnu@1.27.0: - optional: true - - lightningcss-linux-x64-musl@1.27.0: - optional: true - - lightningcss-win32-arm64-msvc@1.27.0: - optional: true - - lightningcss-win32-x64-msvc@1.27.0: - optional: true - - lightningcss@1.27.0: - dependencies: - detect-libc: 1.0.3 - optionalDependencies: - lightningcss-darwin-arm64: 1.27.0 - lightningcss-darwin-x64: 1.27.0 - lightningcss-freebsd-x64: 1.27.0 - lightningcss-linux-arm-gnueabihf: 1.27.0 - lightningcss-linux-arm64-gnu: 1.27.0 - lightningcss-linux-arm64-musl: 1.27.0 - lightningcss-linux-x64-gnu: 1.27.0 - lightningcss-linux-x64-musl: 1.27.0 - lightningcss-win32-arm64-msvc: 1.27.0 - lightningcss-win32-x64-msvc: 1.27.0 - optional: true - lilconfig@2.1.0: {} lilconfig@3.1.3: {} @@ -16186,7 +15337,7 @@ snapshots: dependencies: p-locate: 5.0.0 - lodash-es@4.17.21: {} + lodash-es@4.17.23: {} lodash.camelcase@4.3.0: {} @@ -16219,16 +15370,6 @@ snapshots: transitivePeerDependencies: - supports-color - logform@2.7.0: - dependencies: - '@colors/colors': 1.6.0 - '@types/triple-beam': 1.3.5 - fecha: 4.2.3 - ms: 2.1.3 - safe-stable-stringify: 2.5.0 - triple-beam: 1.4.1 - optional: true - logkitty@0.7.1: dependencies: ansi-fragments: 0.2.1 @@ -16267,12 +15408,6 @@ snapshots: '@babel/types': 7.27.6 source-map-js: 1.2.1 - make-dir@2.1.0: - dependencies: - pify: 4.0.1 - semver: 5.7.2 - optional: true - make-dir@3.1.0: dependencies: semver: 6.3.1 @@ -16281,9 +15416,6 @@ snapshots: dependencies: semver: 7.7.2 - make-error@1.3.6: - optional: true - makeerror@1.0.12: dependencies: tmpl: 1.0.5 @@ -16473,6 +15605,8 @@ snapshots: memoize-one@5.2.1: {} + memoize-one@6.0.0: {} + merge-descriptors@1.0.3: {} merge-stream@2.0.0: {} @@ -16973,11 +16107,6 @@ snapshots: minipass@7.1.2: {} - mkdirp@0.5.6: - dependencies: - minimist: 1.2.8 - optional: true - mkdirp@1.0.4: {} mlly@1.8.0: @@ -16987,40 +16116,18 @@ snapshots: pkg-types: 1.3.1 ufo: 1.6.1 - moment@2.30.1: - optional: true - mrmime@2.0.1: {} ms@2.0.0: {} ms@2.1.3: {} - multi-sort-stream@1.0.4: - optional: true - - multipipe@4.0.0: - dependencies: - duplexer2: 0.1.4 - object-assign: 4.1.1 - optional: true - - mv@2.1.1: - dependencies: - mkdirp: 0.5.6 - ncp: 2.0.0 - rimraf: 2.4.5 - optional: true - mz@2.7.0: dependencies: any-promise: 1.3.0 object-assign: 4.1.1 thenify-all: 1.6.0 - nan@2.23.1: - optional: true - nano-spawn@1.0.2: {} nanoid@3.3.11: {} @@ -17029,15 +16136,6 @@ snapshots: natural-compare@1.4.0: {} - ncp@2.0.0: - optional: true - - needle@3.3.1: - dependencies: - iconv-lite: 0.6.3 - sax: 1.4.1 - optional: true - negotiator@0.6.3: {} negotiator@0.6.4: {} @@ -17053,9 +16151,6 @@ snapshots: nocache@4.0.0: {} - node-addon-api@7.1.1: - optional: true - node-fetch@2.7.0(encoding@0.1.13): dependencies: whatwg-url: 5.0.0 @@ -17064,13 +16159,6 @@ snapshots: node-int64@0.4.0: {} - node-ipc@9.2.1: - dependencies: - event-pubsub: 4.3.0 - js-message: 1.0.7 - js-queue: 2.0.2 - optional: true - node-machine-id@1.1.12: {} node-releases@2.0.19: {} @@ -17218,18 +16306,13 @@ snapshots: dependencies: wrappy: 1.0.2 - one-time@1.0.0: - dependencies: - fn.name: 1.1.0 - optional: true - onetime@5.1.2: dependencies: mimic-fn: 2.1.0 oniguruma-parser@0.12.1: {} - oniguruma-to-es@4.3.3: + oniguruma-to-es@4.3.4: dependencies: oniguruma-parser: 0.12.1 regex: 6.0.1 @@ -17350,9 +16433,6 @@ snapshots: json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 - parse-node-version@1.0.1: - optional: true - parse-passwd@1.0.0: {} parse5@7.3.0: @@ -17399,9 +16479,6 @@ snapshots: picomatch@4.0.3: {} - pify@4.0.1: - optional: true - pify@5.0.0: {} pirates@4.0.7: {} @@ -17424,6 +16501,14 @@ snapshots: dependencies: find-up: 3.0.0 + playwright-core@1.57.0: {} + + playwright@1.57.0: + dependencies: + playwright-core: 1.57.0 + optionalDependencies: + fsevents: 2.3.2 + pngjs@7.0.0: {} portfinder@1.0.37: @@ -17471,19 +16556,18 @@ snapshots: dependencies: postcss: 8.5.6 - postcss-load-config@3.1.4(postcss@8.5.6)(ts-node@9.1.1(typescript@5.9.3)): + postcss-load-config@3.1.4(postcss@8.5.6): dependencies: lilconfig: 2.1.0 yaml: 1.10.2 optionalDependencies: postcss: 8.5.6 - ts-node: 9.1.1(typescript@5.9.3) - postcss-load-config@6.0.1(jiti@2.6.0)(postcss@8.5.6)(yaml@2.8.0): + postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.6)(yaml@2.8.0): dependencies: lilconfig: 3.1.3 optionalDependencies: - jiti: 2.6.0 + jiti: 2.6.1 postcss: 8.5.6 yaml: 2.8.0 @@ -17666,17 +16750,15 @@ snapshots: ansi-styles: 5.2.0 react-is: 18.3.1 - process-nextick-args@2.0.1: - optional: true - promise.series@0.2.0: {} - promise@8.3.0: + promise@7.3.1: dependencies: asap: 2.0.6 - promisify-child-process@4.1.2: - optional: true + promise@8.3.0: + dependencies: + asap: 2.0.6 prompts@2.4.2: dependencies: @@ -17689,13 +16771,6 @@ snapshots: object-assign: 4.1.1 react-is: 16.13.1 - proper-lockfile@3.2.0: - dependencies: - graceful-fs: 4.2.11 - retry: 0.12.0 - signal-exit: 3.0.7 - optional: true - property-information@6.5.0: {} property-information@7.1.0: {} @@ -17707,9 +16782,6 @@ snapshots: proxy-from-env@1.1.0: {} - prr@1.0.1: - optional: true - psl@1.15.0: dependencies: punycode: 2.3.1 @@ -17757,10 +16829,10 @@ snapshots: - bufferutil - utf-8-validate - react-dom@19.1.1(react@19.1.1): + react-dom@19.2.3(react@19.2.3): dependencies: - react: 19.1.1 - scheduler: 0.26.0 + react: 19.2.3 + scheduler: 0.27.0 react-is@16.13.1: {} @@ -17768,16 +16840,31 @@ snapshots: react-lazy-with-preload@2.2.1: {} - react-native@0.82.1(@babel/core@7.27.4)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.82.1(@babel/core@7.27.4))(@types/react@19.1.13)(react@19.1.1): + react-native-web@0.21.2(encoding@0.1.13)(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + dependencies: + '@babel/runtime': 7.27.6 + '@react-native/normalize-colors': 0.74.89 + fbjs: 3.0.5(encoding@0.1.13) + inline-style-prefixer: 7.0.1 + memoize-one: 6.0.0 + nullthrows: 1.1.1 + postcss-value-parser: 4.2.0 + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + styleq: 0.1.3 + transitivePeerDependencies: + - encoding + + react-native@0.82.1(@babel/core@7.27.4)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.82.1)(@types/react@19.1.13)(react@19.2.3): dependencies: '@jest/create-cache-key-function': 29.7.0 '@react-native/assets-registry': 0.82.1 - '@react-native/codegen': 0.82.1(@babel/core@7.27.4) - '@react-native/community-cli-plugin': 0.82.1(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.82.1(@babel/core@7.27.4)) + '@react-native/codegen': 0.82.1 + '@react-native/community-cli-plugin': 0.82.1(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.82.1) '@react-native/gradle-plugin': 0.82.1 '@react-native/js-polyfills': 0.82.1 '@react-native/normalize-colors': 0.82.1 - '@react-native/virtualized-lists': 0.82.1(@types/react@19.1.13)(react-native@0.82.1(@babel/core@7.27.4)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.82.1(@babel/core@7.27.4))(@types/react@19.1.13)(react@19.1.1))(react@19.1.1) + '@react-native/virtualized-lists': 0.82.1(@types/react@19.1.13)(react-native@0.82.1(@babel/core@7.27.4)(@react-native-community/cli@20.0.0(typescript@5.9.3))(@react-native/metro-config@0.82.1)(@types/react@19.1.13)(react@19.2.3))(react@19.2.3) abort-controller: 3.0.0 anser: 1.4.10 ansi-regex: 5.0.1 @@ -17796,7 +16883,7 @@ snapshots: nullthrows: 1.1.1 pretty-format: 29.7.0 promise: 8.3.0 - react: 19.1.1 + react: 19.2.3 react-devtools-core: 6.1.5 react-refresh: 0.14.2 regenerator-runtime: 0.13.11 @@ -17816,34 +16903,32 @@ snapshots: - supports-color - utf-8-validate + react-reconciler@0.33.0(react@19.2.3): + dependencies: + react: 19.2.3 + scheduler: 0.27.0 + react-refresh@0.14.2: {} react-refresh@0.17.0: {} - react-router-dom@6.30.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1): - dependencies: - '@remix-run/router': 1.23.0 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - react-router: 6.30.1(react@19.1.1) + react-refresh@0.18.0: {} - react-router@6.30.1(react@19.1.1): + react-router-dom@7.12.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3): dependencies: - '@remix-run/router': 1.23.0 - react: 19.1.1 + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + react-router: 7.12.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - react@19.1.1: {} - - readable-stream@2.3.8: + react-router@7.12.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3): dependencies: - core-util-is: 1.0.3 - inherits: 2.0.4 - isarray: 1.0.0 - process-nextick-args: 2.0.1 - safe-buffer: 5.1.2 - string_decoder: 1.1.1 - util-deprecate: 1.0.2 - optional: true + cookie: 1.1.1 + react: 19.2.3 + set-cookie-parser: 2.7.2 + optionalDependencies: + react-dom: 19.2.3(react@19.2.3) + + react@19.2.3: {} readable-stream@3.6.2: dependencies: @@ -18051,18 +17136,10 @@ snapshots: onetime: 5.1.2 signal-exit: 3.0.7 - retry@0.12.0: - optional: true - reusify@1.1.0: {} rfdc@1.4.1: {} - rimraf@2.4.5: - dependencies: - glob: 6.0.4 - optional: true - rimraf@3.0.2: dependencies: glob: 7.2.3 @@ -18075,7 +17152,7 @@ snapshots: globby: 10.0.1 is-plain-object: 3.0.1 - rollup-plugin-postcss@4.0.2(postcss@8.5.6)(ts-node@9.1.1(typescript@5.9.3)): + rollup-plugin-postcss@4.0.2(postcss@8.5.6): dependencies: chalk: 4.1.2 concat-with-sourcemaps: 1.1.0 @@ -18084,7 +17161,7 @@ snapshots: p-queue: 6.6.2 pify: 5.0.0 postcss: 8.5.6 - postcss-load-config: 3.1.4(postcss@8.5.6)(ts-node@9.1.1(typescript@5.9.3)) + postcss-load-config: 3.1.4(postcss@8.5.6) postcss-modules: 4.3.1(postcss@8.5.6) promise.series: 0.2.0 resolve: 1.22.10 @@ -18136,9 +17213,9 @@ snapshots: rrweb-cssom@0.6.0: {} - rsbuild-plugin-open-graph@1.1.0(@rsbuild/core@1.5.11): + rsbuild-plugin-open-graph@1.1.0(@rsbuild/core@1.6.15): optionalDependencies: - '@rsbuild/core': 1.5.11 + '@rsbuild/core': 1.6.15 rslog@1.2.6: {} @@ -18146,11 +17223,6 @@ snapshots: dependencies: queue-microtask: 1.2.3 - rxjs@7.8.2: - dependencies: - tslib: 2.8.1 - optional: true - safe-array-concat@1.1.3: dependencies: call-bind: 1.0.8 @@ -18165,9 +17237,6 @@ snapshots: safe-identifier@0.4.2: {} - safe-json-stringify@1.2.0: - optional: true - safe-push-apply@1.0.0: dependencies: es-errors: 1.3.0 @@ -18179,111 +17248,16 @@ snapshots: es-errors: 1.3.0 is-regex: 1.2.1 - safe-stable-stringify@2.5.0: - optional: true - safer-buffer@2.1.2: {} - sanitize-filename@1.6.3: - dependencies: - truncate-utf8-bytes: 1.0.2 - optional: true - - sass-embedded-android-arm64@1.89.2: - optional: true - - sass-embedded-android-arm@1.89.2: - optional: true - - sass-embedded-android-riscv64@1.89.2: - optional: true - - sass-embedded-android-x64@1.89.2: - optional: true - - sass-embedded-darwin-arm64@1.89.2: - optional: true - - sass-embedded-darwin-x64@1.89.2: - optional: true - - sass-embedded-linux-arm64@1.89.2: - optional: true - - sass-embedded-linux-arm@1.89.2: - optional: true - - sass-embedded-linux-musl-arm64@1.89.2: - optional: true - - sass-embedded-linux-musl-arm@1.89.2: - optional: true - - sass-embedded-linux-musl-riscv64@1.89.2: - optional: true - - sass-embedded-linux-musl-x64@1.89.2: - optional: true - - sass-embedded-linux-riscv64@1.89.2: - optional: true - - sass-embedded-linux-x64@1.89.2: - optional: true - - sass-embedded-win32-arm64@1.89.2: - optional: true - - sass-embedded-win32-x64@1.89.2: - optional: true - - sass-embedded@1.89.2: - dependencies: - '@bufbuild/protobuf': 2.6.0 - buffer-builder: 0.2.0 - colorjs.io: 0.5.2 - immutable: 5.1.3 - rxjs: 7.8.2 - supports-color: 8.1.1 - sync-child-process: 1.0.2 - varint: 6.0.0 - optionalDependencies: - sass-embedded-android-arm: 1.89.2 - sass-embedded-android-arm64: 1.89.2 - sass-embedded-android-riscv64: 1.89.2 - sass-embedded-android-x64: 1.89.2 - sass-embedded-darwin-arm64: 1.89.2 - sass-embedded-darwin-x64: 1.89.2 - sass-embedded-linux-arm: 1.89.2 - sass-embedded-linux-arm64: 1.89.2 - sass-embedded-linux-musl-arm: 1.89.2 - sass-embedded-linux-musl-arm64: 1.89.2 - sass-embedded-linux-musl-riscv64: 1.89.2 - sass-embedded-linux-musl-x64: 1.89.2 - sass-embedded-linux-riscv64: 1.89.2 - sass-embedded-linux-x64: 1.89.2 - sass-embedded-win32-arm64: 1.89.2 - sass-embedded-win32-x64: 1.89.2 - optional: true - - sass@1.89.2: - dependencies: - chokidar: 4.0.3 - immutable: 5.1.3 - source-map-js: 1.2.1 - optionalDependencies: - '@parcel/watcher': 2.5.1 - optional: true - - sax@1.4.1: - optional: true - saxes@6.0.0: dependencies: xmlchars: 2.2.0 scheduler@0.26.0: {} + scheduler@0.27.0: {} + schema-utils@3.3.0: dependencies: '@types/json-schema': 7.0.15 @@ -18304,6 +17278,10 @@ snapshots: ajv-formats: 2.1.1(ajv@8.17.1) ajv-keywords: 5.1.0(ajv@8.17.1) + scroll-into-view-if-needed@3.1.0: + dependencies: + compute-scroll-into-view: 3.1.1 + section-matter@1.0.0: dependencies: extend-shallow: 2.0.1 @@ -18315,9 +17293,6 @@ snapshots: dependencies: parseley: 0.12.1 - semver@5.7.2: - optional: true - semver@6.3.1: {} semver@7.6.3: {} @@ -18344,11 +17319,6 @@ snapshots: serialize-error@2.1.0: {} - serialize-error@8.1.0: - dependencies: - type-fest: 0.20.2 - optional: true - serialize-javascript@6.0.2: dependencies: randombytes: 2.1.0 @@ -18364,6 +17334,8 @@ snapshots: set-blocking@2.0.0: {} + set-cookie-parser@2.7.2: {} + set-function-length@1.2.2: dependencies: define-data-property: 1.1.4 @@ -18386,6 +17358,8 @@ snapshots: es-errors: 1.3.0 es-object-atoms: 1.1.1 + setimmediate@1.0.5: {} + setprototypeof@1.2.0: {} shebang-command@2.0.0: @@ -18396,14 +17370,14 @@ snapshots: shell-quote@1.8.3: {} - shiki@3.13.0: + shiki@3.21.0: dependencies: - '@shikijs/core': 3.13.0 - '@shikijs/engine-javascript': 3.13.0 - '@shikijs/engine-oniguruma': 3.13.0 - '@shikijs/langs': 3.13.0 - '@shikijs/themes': 3.13.0 - '@shikijs/types': 3.13.0 + '@shikijs/core': 3.21.0 + '@shikijs/engine-javascript': 3.21.0 + '@shikijs/engine-oniguruma': 3.21.0 + '@shikijs/langs': 3.21.0 + '@shikijs/themes': 3.21.0 + '@shikijs/types': 3.21.0 '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 @@ -18485,8 +17459,6 @@ snapshots: source-map@0.6.1: {} - source-map@0.7.4: {} - source-map@0.7.6: {} space-separated-tokens@2.0.2: {} @@ -18497,9 +17469,6 @@ snapshots: stable@0.1.8: {} - stack-trace@0.0.10: - optional: true - stack-utils@2.0.6: dependencies: escape-string-regexp: 2.0.0 @@ -18523,14 +17492,6 @@ snapshots: es-errors: 1.3.0 internal-slot: 1.1.0 - stream-chain@2.2.5: - optional: true - - stream-json@1.9.1: - dependencies: - stream-chain: 2.2.5 - optional: true - streamroller@3.1.5: dependencies: date-format: 4.0.14 @@ -18610,11 +17571,6 @@ snapshots: define-properties: 1.2.1 es-object-atoms: 1.1.1 - string_decoder@1.1.1: - dependencies: - safe-buffer: 5.1.2 - optional: true - string_decoder@1.3.0: dependencies: safe-buffer: 5.2.1 @@ -18668,16 +17624,7 @@ snapshots: postcss: 8.5.6 postcss-selector-parser: 6.1.2 - stylus@0.64.0: - dependencies: - '@adobe/css-tools': 4.3.3 - debug: 4.4.1 - glob: 10.5.0 - sax: 1.4.1 - source-map: 0.7.6 - transitivePeerDependencies: - - supports-color - optional: true + styleq@0.1.3: {} sucrase@3.35.0: dependencies: @@ -18723,20 +17670,10 @@ snapshots: symbol-tree@3.2.4: {} - sync-child-process@1.0.2: - dependencies: - sync-message-port: 1.1.3 - optional: true - - sync-message-port@1.1.3: - optional: true - synckit@0.11.11: dependencies: '@pkgr/core': 0.2.9 - tapable@2.2.2: {} - tapable@2.3.0: {} tar-stream@2.2.0: @@ -18747,11 +17684,6 @@ snapshots: inherits: 2.0.4 readable-stream: 3.6.2 - telnet-client@1.2.8: - dependencies: - bluebird: 3.7.2 - optional: true - terser-webpack-plugin@5.3.14(@swc/core@1.5.29(@swc/helpers@0.5.17))(webpack@5.102.1(@swc/core@1.5.29(@swc/helpers@0.5.17))): dependencies: '@jridgewell/trace-mapping': 0.3.25 @@ -18782,9 +17714,6 @@ snapshots: glob: 10.5.0 minimatch: 9.0.5 - text-hex@1.0.0: - optional: true - thenify-all@1.6.0: dependencies: thenify: 3.3.1 @@ -18839,42 +17768,18 @@ snapshots: dependencies: punycode: 2.3.1 - trace-event-lib@1.4.1: - dependencies: - browser-process-hrtime: 1.0.0 - optional: true - tree-kill@1.2.2: {} trim-lines@3.0.1: {} - triple-beam@1.4.1: - optional: true - trough@2.2.0: {} - truncate-utf8-bytes@1.0.2: - dependencies: - utf8-byte-length: 1.0.5 - optional: true - ts-api-utils@2.1.0(typescript@5.9.3): dependencies: typescript: 5.9.3 ts-interface-checker@0.1.13: {} - ts-node@9.1.1(typescript@5.9.3): - dependencies: - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - source-map-support: 0.5.21 - typescript: 5.9.3 - yn: 3.1.1 - optional: true - tsconfig-paths@3.15.0: dependencies: '@types/json5': 0.0.29 @@ -18892,7 +17797,7 @@ snapshots: tsscmp@1.0.6: {} - tsup@8.5.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(jiti@2.6.0)(postcss@8.5.6)(typescript@5.9.3)(yaml@2.8.0): + tsup@8.5.1(@swc/core@1.5.29(@swc/helpers@0.5.17))(jiti@2.6.1)(postcss@8.5.6)(typescript@5.9.3)(yaml@2.8.0): dependencies: bundle-require: 5.1.0(esbuild@0.27.0) cac: 6.7.14 @@ -18903,7 +17808,7 @@ snapshots: fix-dts-default-cjs-exports: 1.0.1 joycon: 3.1.1 picocolors: 1.1.1 - postcss-load-config: 6.0.1(jiti@2.6.0)(postcss@8.5.6)(yaml@2.8.0) + postcss-load-config: 6.0.1(jiti@2.6.1)(postcss@8.5.6)(yaml@2.8.0) resolve-from: 5.0.0 rollup: 4.43.0 source-map: 0.7.6 @@ -18927,9 +17832,6 @@ snapshots: type-detect@4.0.8: {} - type-fest@0.20.2: - optional: true - type-fest@0.21.3: {} type-fest@0.7.1: {} @@ -18991,6 +17893,8 @@ snapshots: typescript@5.9.3: {} + ua-parser-js@1.0.41: {} + ufo@1.6.1: {} unbox-primitive@1.1.0: @@ -19002,9 +17906,9 @@ snapshots: undici-types@6.21.0: {} - unhead@2.0.17: + unhead@2.1.2: dependencies: - hookable: 5.5.3 + hookable: 6.0.1 unicode-canonical-property-names-ecmascript@2.0.1: {} @@ -19119,12 +18023,9 @@ snapshots: querystringify: 2.2.0 requires-port: 1.0.0 - use-sync-external-store@1.6.0(react@19.1.1): + use-sync-external-store@1.6.0(react@19.2.3): dependencies: - react: 19.1.1 - - utf8-byte-length@1.0.5: - optional: true + react: 19.2.3 util-deprecate@1.0.2: {} @@ -19136,9 +18037,6 @@ snapshots: '@types/istanbul-lib-coverage': 2.0.6 convert-source-map: 2.0.0 - varint@6.0.0: - optional: true - vary@1.1.2: {} vfile-location@5.0.3: @@ -19156,13 +18054,13 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 - vite-node@3.2.4(@types/node@20.19.25)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.27.0)(sass-embedded@1.89.2)(sass@1.89.2)(stylus@0.64.0)(terser@5.42.0)(yaml@2.8.0): + vite-node@3.2.4(@types/node@20.19.25)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0): dependencies: cac: 6.7.14 debug: 4.4.1 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.2.2(@types/node@20.19.25)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.27.0)(sass-embedded@1.89.2)(sass@1.89.2)(stylus@0.64.0)(terser@5.42.0)(yaml@2.8.0) + vite: 7.2.2(@types/node@20.19.25)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0) transitivePeerDependencies: - '@types/node' - jiti @@ -19177,7 +18075,7 @@ snapshots: - tsx - yaml - vite@7.2.2(@types/node@20.19.25)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.27.0)(sass-embedded@1.89.2)(sass@1.89.2)(stylus@0.64.0)(terser@5.42.0)(yaml@2.8.0): + vite@7.2.2(@types/node@20.19.25)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0): dependencies: esbuild: 0.25.5 fdir: 6.5.0(picomatch@4.0.3) @@ -19189,19 +18087,14 @@ snapshots: '@types/node': 20.19.25 fsevents: 2.3.3 jiti: 2.4.2 - less: 4.1.3 - lightningcss: 1.27.0 - sass: 1.89.2 - sass-embedded: 1.89.2 - stylus: 0.64.0 terser: 5.42.0 yaml: 2.8.0 - vitest@3.2.4(@types/debug@4.1.12)(@types/node@20.19.25)(@vitest/ui@3.2.4)(jiti@2.4.2)(jsdom@22.1.0)(less@4.1.3)(lightningcss@1.27.0)(sass-embedded@1.89.2)(sass@1.89.2)(stylus@0.64.0)(terser@5.42.0)(yaml@2.8.0): + vitest@3.2.4(@types/debug@4.1.12)(@types/node@20.19.25)(@vitest/ui@3.2.4)(jiti@2.4.2)(jsdom@22.1.0)(terser@5.42.0)(yaml@2.8.0): dependencies: '@types/chai': 5.2.3 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.2.2(@types/node@20.19.25)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.27.0)(sass-embedded@1.89.2)(sass@1.89.2)(stylus@0.64.0)(terser@5.42.0)(yaml@2.8.0)) + '@vitest/mocker': 3.2.4(vite@7.2.2(@types/node@20.19.25)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -19219,8 +18112,8 @@ snapshots: tinyglobby: 0.2.15 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.2.2(@types/node@20.19.25)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.27.0)(sass-embedded@1.89.2)(sass@1.89.2)(stylus@0.64.0)(terser@5.42.0)(yaml@2.8.0) - vite-node: 3.2.4(@types/node@20.19.25)(jiti@2.4.2)(less@4.1.3)(lightningcss@1.27.0)(sass-embedded@1.89.2)(sass@1.89.2)(stylus@0.64.0)(terser@5.42.0)(yaml@2.8.0) + vite: 7.2.2(@types/node@20.19.25)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0) + vite-node: 3.2.4(@types/node@20.19.25)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 @@ -19374,28 +18267,6 @@ snapshots: siginfo: 2.0.0 stackback: 0.0.2 - winston-transport@4.9.0: - dependencies: - logform: 2.7.0 - readable-stream: 3.6.2 - triple-beam: 1.4.1 - optional: true - - winston@3.18.3: - dependencies: - '@colors/colors': 1.6.0 - '@dabh/diagnostics': 2.0.8 - async: 3.2.6 - is-stream: 2.0.1 - logform: 2.7.0 - one-time: 1.0.0 - readable-stream: 3.6.2 - safe-stable-stringify: 2.5.0 - stack-trace: 0.0.10 - triple-beam: 1.4.1 - winston-transport: 4.9.0 - optional: true - word-wrap@1.2.5: {} wrap-ansi@6.2.0: @@ -19459,14 +18330,6 @@ snapshots: yargs-parser@21.1.1: {} - yargs-unparser@2.0.0: - dependencies: - camelcase: 6.3.0 - decamelize: 4.0.0 - flat: 5.0.2 - is-plain-obj: 2.1.0 - optional: true - yargs@15.4.1: dependencies: cliui: 6.0.0 @@ -19491,20 +18354,16 @@ snapshots: y18n: 5.0.8 yargs-parser: 21.1.1 - yn@3.1.1: - optional: true - yocto-queue@0.1.0: {} yocto-queue@1.2.1: {} zod@3.25.67: {} - zustand@5.0.5(@types/react@19.1.13)(immer@10.1.1)(react@19.1.1)(use-sync-external-store@1.6.0(react@19.1.1)): + zustand@5.0.5(@types/react@19.1.13)(react@19.2.3)(use-sync-external-store@1.6.0(react@19.2.3)): optionalDependencies: '@types/react': 19.1.13 - immer: 10.1.1 - react: 19.1.1 - use-sync-external-store: 1.6.0(react@19.1.1) + react: 19.2.3 + use-sync-external-store: 1.6.0(react@19.2.3) zwitch@2.0.4: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 63e305e..01e1987 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -18,3 +18,4 @@ onlyBuiltDependencies: - sharp - sqlite3 - unrs-resolver +autoInstallPeers: false \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index c3aa2fe..25580ff 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -48,6 +48,9 @@ { "path": "./packages/platform-vega" }, + { + "path": "./packages/platform-web" + }, { "path": "./packages/bundler-metro" }, diff --git a/website/package.json b/website/package.json index cb206de..d245b1a 100644 --- a/website/package.json +++ b/website/package.json @@ -8,9 +8,9 @@ "preview": "rspress preview" }, "dependencies": { - "@callstack/rspress-preset": "^0.4.1", - "@callstack/rspress-theme": "^0.4.1", - "@rspress/core": "2.0.0-beta.32" + "@callstack/rspress-preset": "0.5.1", + "@callstack/rspress-theme": "0.5.1", + "@rspress/core": "2.0.0-rc.4" }, "devDependencies": { "@types/node": "^18.11.17", diff --git a/website/src/docs/getting-started/configuration.mdx b/website/src/docs/getting-started/configuration.mdx index 6ccbc24..47404e2 100644 --- a/website/src/docs/getting-started/configuration.mdx +++ b/website/src/docs/getting-started/configuration.mdx @@ -194,6 +194,40 @@ vegaPlatform({ }); ``` +### Web Runner + +:::danger Experimental +Web support is currently an **experimental feature**. It may not work in all scenarios and the API is subject to change. Use with caution. +::: + +Install the Web platform package: + + + +**Usage:** + +```javascript +import { + webPlatform, + chromium, + chrome, + firefox, + webkit, +} from '@react-native-harness/platform-web'; + +// Using Chromium (headless by default) +webPlatform({ + name: 'web', + browser: chromium('http://localhost:3000'), +}); + +// Using a specific browser channel or non-headless mode +webPlatform({ + name: 'chrome', + browser: chrome('http://localhost:3000', { headless: false }), +}); +``` + ## Default Runner When you have multiple runners configured, you can specify which one to use by default when no runner is explicitly specified in the CLI command. diff --git a/website/src/docs/getting-started/quick-start.mdx b/website/src/docs/getting-started/quick-start.mdx index 9ed9310..9f88efb 100644 --- a/website/src/docs/getting-started/quick-start.mdx +++ b/website/src/docs/getting-started/quick-start.mdx @@ -22,7 +22,7 @@ Install React Native Harness as a development dependency: First, install the platform packages you need: - + ### 2. Create Harness Configuration @@ -37,6 +37,7 @@ import { applePlatform, appleSimulator, } from '@react-native-harness/platform-apple'; +import { webPlatform, chromium } from '@react-native-harness/platform-web'; const config = { entryPoint: './index.js', @@ -53,6 +54,10 @@ const config = { device: appleSimulator('iPhone 16 Pro', '18.0'), // Your iOS simulator name and version bundleId: 'com.yourapp', // Your iOS bundle ID }), + webPlatform({ + name: 'web', + browser: chromium('http://localhost:3000'), // Your web app URL + }), ], }; @@ -229,6 +234,8 @@ Now you're ready to run your tests! Use the `react-native-harness` command with + + :::tip Default Runner If you don't provide the `--harnessRunner` flag, React Native Harness will use the runner specified in the `defaultRunner` property of your `rn-harness.config.mjs` file. If no `defaultRunner` is configured, you must explicitly provide the `--harnessRunner` flag. ::: diff --git a/website/src/docs/guides/ui-testing.md b/website/src/docs/guides/ui-testing.mdx similarity index 60% rename from website/src/docs/guides/ui-testing.md rename to website/src/docs/guides/ui-testing.mdx index 82358a4..7b044e9 100644 --- a/website/src/docs/guides/ui-testing.md +++ b/website/src/docs/guides/ui-testing.mdx @@ -7,7 +7,9 @@ React Native Harness provides powerful UI testing capabilities that allow you to :::warning UI testing is an **opt-in feature** that requires installing an additional package. The `@react-native-harness/ui` package is not included by default and must be explicitly installed to use these features. -This package contains **native code** and requires rebuilding your app after installation. Additionally, this code is **automatically excluded from release builds** and is only available in debug builds. +For **iOS and Android**, this package contains **native code** and requires rebuilding your app after installation. This code is **automatically excluded from release builds** and is only available in debug builds. + +For **Web**, this package uses standard DOM APIs for interactions and a Playwright-based bridge for capturing screenshots. ::: ## Installation @@ -61,15 +63,15 @@ describe('Element Queries', () => { ### Available query methods -| Method | Description | -|--------|-------------| -| `findByTestId(testId)` | Find single element by testID (throws if not found) | -| `findAllByTestId(testId)` | Find all elements by testID (throws if none found) | -| `queryByTestId(testId)` | Find single element by testID (returns null if not found) | -| `queryAllByTestId(testId)` | Find all elements by testID (returns empty array if none found) | -| `findByAccessibilityLabel(label)` | Find single element by accessibility label (throws if not found) | -| `findAllByAccessibilityLabel(label)` | Find all elements by accessibility label (throws if none found) | -| `queryByAccessibilityLabel(label)` | Find single element by accessibility label (returns null if not found) | +| Method | Description | +| ------------------------------------- | ---------------------------------------------------------------------------- | +| `findByTestId(testId)` | Find single element by testID (throws if not found) | +| `findAllByTestId(testId)` | Find all elements by testID (throws if none found) | +| `queryByTestId(testId)` | Find single element by testID (returns null if not found) | +| `queryAllByTestId(testId)` | Find all elements by testID (returns empty array if none found) | +| `findByAccessibilityLabel(label)` | Find single element by accessibility label (throws if not found) | +| `findAllByAccessibilityLabel(label)` | Find all elements by accessibility label (throws if none found) | +| `queryByAccessibilityLabel(label)` | Find single element by accessibility label (returns null if not found) | | `queryAllByAccessibilityLabel(label)` | Find all elements by accessibility label (returns empty array if none found) | ## Screenshot testing @@ -133,16 +135,16 @@ test('screenshot with custom options', async () => { ### Screenshot options reference -| Option | Type | Default | Description | -|--------|------|---------|-------------| -| `name` | `string` | - | **Required.** Unique name for the snapshot | -| `threshold` | `number` | `0.1` | Matching threshold for pixelmatch (0-1). Smaller values are more sensitive | -| `failureThreshold` | `number` | - | Minimum difference required to fail the test | -| `failureThresholdType` | `'pixel' \| 'percent'` | `'pixel'` | How to interpret the failure threshold | -| `comparisonMethod` | `'pixelmatch' \| 'ssim'` | `'pixelmatch'` | Algorithm used for image comparison | -| `ssimThreshold` | `number` | `0.95` | Minimum similarity for SSIM comparison (0-1) | -| `diffColor` | `[number, number, number]` | `[255, 0, 0]` | RGB color for highlighting differences | -| `ignoreRegions` | `Array<{x,y,width,height}>` | `[]` | Regions to exclude from comparison | +| Option | Type | Default | Description | +| ---------------------- | --------------------------- | -------------- | -------------------------------------------------------------------------- | +| `name` | `string` | - | **Required.** Unique name for the snapshot | +| `threshold` | `number` | `0.1` | Matching threshold for pixelmatch (0-1). Smaller values are more sensitive | +| `failureThreshold` | `number` | - | Minimum difference required to fail the test | +| `failureThresholdType` | `'pixel' \| 'percent'` | `'pixel'` | How to interpret the failure threshold | +| `comparisonMethod` | `'pixelmatch' \| 'ssim'` | `'pixelmatch'` | Algorithm used for image comparison | +| `ssimThreshold` | `number` | `0.95` | Minimum similarity for SSIM comparison (0-1) | +| `diffColor` | `[number, number, number]` | `[255, 0, 0]` | RGB color for highlighting differences | +| `ignoreRegions` | `Array<{x,y,width,height}>` | `[]` | Regions to exclude from comparison | ### Element-specific screenshots @@ -165,7 +167,7 @@ test('capture specific element', async () => { const headerScreenshot = await screen.screenshot(headerElement); await expect(headerScreenshot).toMatchImageSnapshot({ - name: 'header-element' + name: 'header-element', }); }); ``` @@ -190,7 +192,7 @@ test('multiple screenshots', async () => { The `userEvent` API allows you to simulate user interactions with your components: -```typescript +````typescript import { describe, test, render, expect, fn } from 'react-native-harness'; import { screen, userEvent } from '@react-native-harness/ui'; @@ -220,12 +222,41 @@ describe('User Interactions', () => { expect(input.props.value).toBe('testuser'); }); }); -``` + +## Web Support + +React Native Harness supports UI testing on the web using Playwright. When running tests on the web platform, the interaction logic is handled by a Playwright bridge that simulates real user events at the browser level. + +### Interaction logic + +- **Pressing**: Simulates a real mouse click at the element's coordinates using Playwright's mouse API. +- **Typing**: Simulates real keyboard input using Playwright's keyboard API. This ensures that all browser events (keydown, keypress, input, keyup) are fired correctly and picked up by React Native Web. +- **Blurring**: Supports blurring the active element, with an option to trigger "Submit" (Enter key) before blurring. + +### Configuration + +To use UI testing on web, make sure you have the `@react-native-harness/platform-web` package installed and configured in your `rn-harness.config.mjs`. + +```javascript +import { webPlatform, chromium } from '@react-native-harness/platform-web'; + +export default { + // ... + runners: [ + webPlatform({ + name: 'web', + browser: chromium('http://localhost:3000'), + }), + ], +}; +```` ## Troubleshooting ### Anti-aliased text differences + Small differences in text rendering can cause false positives. Increase the `threshold` value for less sensitive comparison. ### Dynamic content -For components with dynamic content (dates, random values), use `ignoreRegions` to exclude those areas from comparison. \ No newline at end of file + +For components with dynamic content (dates, random values), use `ignoreRegions` to exclude those areas from comparison.