From 8d5e96d3684cfc61f31b1f416a0c10f032128c6f Mon Sep 17 00:00:00 2001 From: rory Date: Tue, 23 Dec 2025 18:37:13 -0800 Subject: [PATCH 1/9] Upgrade storybook to 10.1.10 --- .storybook/main.ts | 6 +- .storybook/manager.ts | 2 +- .storybook/theme.ts | 4 +- .storybook/webpack.config.ts | 40 +- .storybook/webpackMockPaths.ts | 8 +- config/webpack/CustomVersionFilePlugin.ts | 4 +- config/webpack/webpack.common.ts | 79 +- package-lock.json | 2628 +++++++++-------- package.json | 21 +- src/stories/AddressSearch.stories.tsx | 2 +- src/stories/Avatar.stories.tsx | 2 +- src/stories/AvatarSelector.stories.tsx | 2 +- src/stories/Banner.stories.tsx | 2 +- src/stories/Button.stories.tsx | 2 +- .../ButtonWithDropdownMenu.stories.tsx | 2 +- src/stories/Checkbox.stories.tsx | 2 +- src/stories/CheckboxWithLabel.stories.tsx | 2 +- src/stories/Composer.stories.tsx | 2 +- src/stories/DragAndDrop.stories.tsx | 2 +- src/stories/EReceipt.stories.tsx | 2 +- src/stories/EReceiptThumbail.stories.tsx | 2 +- src/stories/Form.stories.tsx | 2 +- .../FormAlertWithSubmitButton.stories.tsx | 2 +- src/stories/Header.stories.tsx | 2 +- src/stories/HeaderWithBackButton.stories.tsx | 2 +- src/stories/InlineSystemMessage.stories.tsx | 2 +- src/stories/MagicCodeInput.stories.tsx | 2 +- src/stories/MenuItem.stories.tsx | 2 +- .../MoneyRequestReportPreview.stories.tsx | 2 +- src/stories/NumberWithSymbolForm.stories.tsx | 2 +- src/stories/Picker.stories.tsx | 2 +- src/stories/PopoverMenu.stories.tsx | 2 +- src/stories/RadioButtonWithLabel.stories.tsx | 2 +- .../ReportActionItemImages.stories.tsx | 2 +- src/stories/SelectionList.stories.tsx | 2 +- src/stories/TextInput.stories.tsx | 2 +- src/stories/Tooltip.stories.tsx | 2 +- src/stories/TransactionItemRow.stories.tsx | 2 +- .../TransactionPreviewContent.stories.tsx | 4 +- 39 files changed, 1557 insertions(+), 1297 deletions(-) diff --git a/.storybook/main.ts b/.storybook/main.ts index 5c164873b7be..cf64417a2a1d 100644 --- a/.storybook/main.ts +++ b/.storybook/main.ts @@ -2,7 +2,11 @@ import type {StorybookConfig} from 'storybook/internal/types'; const main: StorybookConfig = { stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|ts|tsx)'], - addons: ['@storybook/addon-essentials', '@storybook/addon-a11y', '@storybook/addon-webpack5-compiler-babel'], + addons: [ + '@storybook/addon-a11y', + '@storybook/addon-webpack5-compiler-babel', + '@storybook/addon-docs' + ], staticDirs: ['./public', {from: '../assets/css', to: 'css'}, {from: '../assets/fonts/web', to: 'fonts'}], core: {}, diff --git a/.storybook/manager.ts b/.storybook/manager.ts index b22ba73bac5b..2a4d4e249564 100644 --- a/.storybook/manager.ts +++ b/.storybook/manager.ts @@ -1,4 +1,4 @@ -import {addons} from '@storybook/manager-api'; +import {addons} from 'storybook/manager-api'; import theme from './theme'; addons.setConfig({ diff --git a/.storybook/theme.ts b/.storybook/theme.ts index ace6208bdb3b..ee34f3da8b7a 100644 --- a/.storybook/theme.ts +++ b/.storybook/theme.ts @@ -1,5 +1,5 @@ -import type {ThemeVars} from '@storybook/theming'; -import {create} from '@storybook/theming/create'; +import type {ThemeVars} from 'storybook/theming'; +import {create} from 'storybook/theming/create'; // eslint-disable-next-line @dword-design/import-alias/prefer-alias import colors from '../src/styles/theme/colors'; diff --git a/.storybook/webpack.config.ts b/.storybook/webpack.config.ts index 581f9231129b..e0867187dc67 100644 --- a/.storybook/webpack.config.ts +++ b/.storybook/webpack.config.ts @@ -3,12 +3,20 @@ /* eslint-disable no-param-reassign */ /* eslint-disable @typescript-eslint/naming-convention */ -import type Environment from 'config/webpack/types'; import dotenv from 'dotenv'; +import {createRequire} from 'module'; import path from 'path'; -import {DefinePlugin} from 'webpack'; +import {fileURLToPath} from 'url'; +import webpack from 'webpack'; import type {Configuration, RuleSetRule} from 'webpack'; -import webpackMockPaths from './webpackMockPaths'; +// Storybook 10 loads TS files directly and requires .ts extension for ESM imports +// @ts-expect-error -- Can't use .ts extensions without allowImportingTsExtensions in tsconfig +// eslint-disable-next-line import/extensions +import webpackMockPaths from './webpackMockPaths.ts'; + +const require = createRequire(import.meta.url); +const filename = fileURLToPath(import.meta.url); +const dirname = path.dirname(filename); type CustomWebpackConfig = { resolve: { @@ -20,12 +28,6 @@ type CustomWebpackConfig = { }; }; -type CustomWebpackFunction = ({file, platform}: Environment) => CustomWebpackConfig; - -type WebpackModule = { - default: CustomWebpackFunction; -}; - let envFile: string; switch (process.env.ENV) { case 'production': @@ -38,12 +40,14 @@ switch (process.env.ENV) { envFile = '.env'; } -const env = dotenv.config({path: path.resolve(__dirname, `../${envFile}`)}); -const customFunction = require('../config/webpack/webpack.common').default; - -const custom: CustomWebpackConfig = customFunction({file: envFile}); +const env = dotenv.config({path: path.resolve(dirname, `../${envFile}`)}); -const webpackConfig = ({config}: {config: Configuration}) => { +const webpackConfig = async ({config}: {config: Configuration}) => { + // Storybook 10 loads TS files directly and requires .ts extension for ESM imports + // @ts-expect-error -- Can't use .ts extensions without allowImportingTsExtensions in tsconfig + // eslint-disable-next-line import/extensions + const {default: customFunction} = await import('../config/webpack/webpack.common.ts'); + const custom = customFunction({file: envFile}) as CustomWebpackConfig; if (!config.resolve) { config.resolve = {}; } @@ -64,9 +68,9 @@ const webpackConfig = ({config}: {config: Configuration}) => { config.ignoreWarnings = [{module: new RegExp('node_modules/lottie-react-native/lib/module/LottieView/index.web.js')}]; // Necessary to overwrite the values in the existing DefinePlugin hardcoded to the Config staging values - const definePluginIndex = config.plugins.findIndex((plugin) => plugin instanceof DefinePlugin); - if (definePluginIndex !== -1 && config.plugins.at(definePluginIndex) instanceof DefinePlugin) { - const definePlugin = config.plugins.at(definePluginIndex) as DefinePlugin; + const definePluginIndex = config.plugins.findIndex((plugin) => plugin instanceof webpack.DefinePlugin); + if (definePluginIndex !== -1 && config.plugins.at(definePluginIndex) instanceof webpack.DefinePlugin) { + const definePlugin = config.plugins.at(definePluginIndex) as webpack.DefinePlugin; if (definePlugin.definitions) { definePlugin.definitions.__REACT_WEB_CONFIG__ = JSON.stringify(env); } @@ -98,7 +102,7 @@ const webpackConfig = ({config}: {config: Configuration}) => { }); config.plugins.push( - new DefinePlugin({ + new webpack.DefinePlugin({ __DEV__: process.env.NODE_ENV === 'development', }), ); diff --git a/.storybook/webpackMockPaths.ts b/.storybook/webpackMockPaths.ts index ee142a684013..78fbdc85cfa6 100644 --- a/.storybook/webpackMockPaths.ts +++ b/.storybook/webpackMockPaths.ts @@ -1,10 +1,14 @@ import path from 'path'; +import {fileURLToPath} from 'url'; + +const filename = fileURLToPath(import.meta.url); +const dirname = path.dirname(filename); /* eslint-disable @typescript-eslint/naming-convention */ export default { 'react-native-config': 'react-web-config', 'react-native$': 'react-native-web', - '@react-native-community/netinfo': path.resolve(__dirname, '../__mocks__/@react-native-community/netinfo.ts'), - '@react-navigation/native': path.resolve(__dirname, '../__mocks__/@react-navigation/native'), + '@react-native-community/netinfo': path.resolve(dirname, '../__mocks__/@react-native-community/netinfo.ts'), + '@react-navigation/native': path.resolve(dirname, '../__mocks__/@react-navigation/native'), }; /* eslint-enable @typescript-eslint/naming-convention */ diff --git a/config/webpack/CustomVersionFilePlugin.ts b/config/webpack/CustomVersionFilePlugin.ts index 1e442d55325e..19b5af09835b 100644 --- a/config/webpack/CustomVersionFilePlugin.ts +++ b/config/webpack/CustomVersionFilePlugin.ts @@ -1,7 +1,9 @@ import fs from 'fs'; import path from 'path'; import type {Compiler} from 'webpack'; -import {version as APP_VERSION} from '../../package.json'; +import packageJson from '../../package.json' with {type: 'json'}; + +const APP_VERSION = packageJson.version; /** * Custom webpack plugin that writes the app version (from package.json) and the webpack hash to './version.json' diff --git a/config/webpack/webpack.common.ts b/config/webpack/webpack.common.ts index fe9c943b14fc..2600e970de40 100644 --- a/config/webpack/webpack.common.ts +++ b/config/webpack/webpack.common.ts @@ -5,14 +5,24 @@ import dotenv from 'dotenv'; import fs from 'fs'; import HtmlWebpackPlugin from 'html-webpack-plugin'; import MiniCssExtractPlugin from 'mini-css-extract-plugin'; +import {createRequire} from 'module'; import path from 'path'; import TerserPlugin from 'terser-webpack-plugin'; import type {Class} from 'type-fest'; +import {fileURLToPath} from 'url'; +import webpack from 'webpack'; import type {Configuration, WebpackPluginInstance} from 'webpack'; -import {DefinePlugin, EnvironmentPlugin, IgnorePlugin, ProvidePlugin} from 'webpack'; import {BundleAnalyzerPlugin} from 'webpack-bundle-analyzer'; -import CustomVersionFilePlugin from './CustomVersionFilePlugin'; -import type Environment from './types'; +// Storybook 10 loads TS files directly and requires .ts extension for ESM imports +// @ts-expect-error -- Can't use .ts extensions without allowImportingTsExtensions in tsconfig +// eslint-disable-next-line import/extensions +import CustomVersionFilePlugin from './CustomVersionFilePlugin.ts'; +// eslint-disable-next-line import/extensions +import type Environment from './types.ts'; + +const require = createRequire(import.meta.url); +const filename = fileURLToPath(import.meta.url); +const dirname = path.dirname(filename); dotenv.config(); @@ -77,6 +87,7 @@ const getCommonConfiguration = ({file = '.env', platform = 'web'}: Environment): console.debug(`[SENTRY ${platform.toUpperCase()}] Assets Path: ${platform === 'desktop' ? './desktop/dist/www/**/*.{js,map}' : './dist/**/*.{js,map}'}`); } + /* eslint-disable @typescript-eslint/naming-convention */ return { mode: isDevelopment ? 'development' : 'production', devtool: 'source-map', @@ -86,7 +97,7 @@ const getCommonConfiguration = ({file = '.env', platform = 'web'}: Environment): output: { // Use simple filenames in development to prevent memory leaks from contenthash changes filename: isDevelopment ? '[name].bundle.js' : '[name]-[contenthash].bundle.js', - path: path.resolve(__dirname, '../../dist'), + path: path.resolve(dirname, '../../dist'), publicPath: '/', }, stats: { @@ -99,7 +110,7 @@ const getCommonConfiguration = ({file = '.env', platform = 'web'}: Environment): new HtmlWebpackPlugin({ template: 'web/index.html', filename: 'index.html', - splashLogo: fs.readFileSync(path.resolve(__dirname, `../../assets/images/new-expensify${mapEnvironmentToLogoSuffix(file)}.svg`), 'utf-8'), + splashLogo: fs.readFileSync(path.resolve(dirname, `../../assets/images/new-expensify${mapEnvironmentToLogoSuffix(file)}.svg`), 'utf-8'), isWeb: platform === 'web', isProduction: file === '.env.production', isStaging: file === '.env.staging', @@ -117,7 +128,7 @@ const getCommonConfiguration = ({file = '.env', platform = 'web'}: Environment): fileWhitelist: [/\.lottie$/], include: 'allAssets', }), - new ProvidePlugin({ + new webpack.ProvidePlugin({ process: 'process/browser', }), @@ -148,31 +159,28 @@ const getCommonConfiguration = ({file = '.env', platform = 'web'}: Environment): {from: 'web/snippets/gib.js', to: 'gib.js'}, ], }), - new EnvironmentPlugin({JEST_WORKER_ID: ''}), - new IgnorePlugin({ + new webpack.EnvironmentPlugin({JEST_WORKER_ID: ''}), + new webpack.IgnorePlugin({ resourceRegExp: /^\.\/locale$/, contextRegExp: /moment$/, }), ...(file === '.env.production' || file === '.env.staging' ? [ - new IgnorePlugin({ + new webpack.IgnorePlugin({ resourceRegExp: /@welldone-software\/why-did-you-render/, }), ] : []), ...(platform === 'web' ? [new CustomVersionFilePlugin()] : []), - new DefinePlugin({ + new webpack.DefinePlugin({ ...(platform === 'desktop' ? {} : {process: {env: {}}}), // Define EXPO_OS for web platform to fix expo-modules-core warning - // eslint-disable-next-line @typescript-eslint/naming-convention 'process.env.EXPO_OS': JSON.stringify('web'), - // eslint-disable-next-line @typescript-eslint/naming-convention __REACT_WEB_CONFIG__: JSON.stringify(dotenv.config({path: file}).parsed), // React Native JavaScript environment requires the global __DEV__ variable to be accessible. // react-native-render-html uses variable to log exclusively during development. // See https://reactnative.dev/docs/javascript-environment - // eslint-disable-next-line @typescript-eslint/naming-convention __DEV__: /staging|prod|adhoc/.test(file) === false, }), ...(isDevelopment ? [] : [new MiniCssExtractPlugin()]), @@ -289,44 +297,30 @@ const getCommonConfiguration = ({file = '.env', platform = 'web'}: Environment): resolve: { fullySpecified: false, }, - include: [path.resolve(__dirname, '../../node_modules/react-native-tab-view/lib/module/TabView.js')], + include: [path.resolve(dirname, '../../node_modules/react-native-tab-view/lib/module/TabView.js')], }, ], }, resolve: { alias: { lodash: 'lodash-es', - // eslint-disable-next-line @typescript-eslint/naming-convention 'react-native-config': 'react-web-config', - // eslint-disable-next-line @typescript-eslint/naming-convention 'react-native$': 'react-native-web', // Module alias for web & desktop // https://webpack.js.org/configuration/resolve/#resolvealias - // eslint-disable-next-line @typescript-eslint/naming-convention - '@assets': path.resolve(__dirname, '../../assets'), - // eslint-disable-next-line @typescript-eslint/naming-convention - '@components': path.resolve(__dirname, '../../src/components/'), - // eslint-disable-next-line @typescript-eslint/naming-convention - '@hooks': path.resolve(__dirname, '../../src/hooks/'), - // eslint-disable-next-line @typescript-eslint/naming-convention - '@libs': path.resolve(__dirname, '../../src/libs/'), - // eslint-disable-next-line @typescript-eslint/naming-convention - '@navigation': path.resolve(__dirname, '../../src/libs/Navigation/'), - // eslint-disable-next-line @typescript-eslint/naming-convention - '@pages': path.resolve(__dirname, '../../src/pages/'), - // eslint-disable-next-line @typescript-eslint/naming-convention - '@prompts': path.resolve(__dirname, '../../prompts'), - // eslint-disable-next-line @typescript-eslint/naming-convention - '@styles': path.resolve(__dirname, '../../src/styles/'), + '@assets': path.resolve(dirname, '../../assets'), + '@components': path.resolve(dirname, '../../src/components/'), + '@hooks': path.resolve(dirname, '../../src/hooks/'), + '@libs': path.resolve(dirname, '../../src/libs/'), + '@navigation': path.resolve(dirname, '../../src/libs/Navigation/'), + '@pages': path.resolve(dirname, '../../src/pages/'), + '@prompts': path.resolve(dirname, '../../prompts'), + '@styles': path.resolve(dirname, '../../src/styles/'), // This path is provide alias for files like `ONYXKEYS` and `CONST`. - // eslint-disable-next-line @typescript-eslint/naming-convention - '@src': path.resolve(__dirname, '../../src/'), - // eslint-disable-next-line @typescript-eslint/naming-convention - '@userActions': path.resolve(__dirname, '../../src/libs/actions/'), - // eslint-disable-next-line @typescript-eslint/naming-convention - '@desktop': path.resolve(__dirname, '../../desktop'), - // eslint-disable-next-line @typescript-eslint/naming-convention - '@selectors': path.resolve(__dirname, '../../src/selectors/'), + '@src': path.resolve(dirname, '../../src/'), + '@userActions': path.resolve(dirname, '../../src/libs/actions/'), + '@desktop': path.resolve(dirname, '../../desktop'), + '@selectors': path.resolve(dirname, '../../src/selectors/'), }, // React Native libraries may have web-specific module implementations that appear with the extension `.web.js` @@ -350,7 +344,6 @@ const getCommonConfiguration = ({file = '.env', platform = 'web'}: Environment): '.tsx', ], fallback: { - // eslint-disable-next-line @typescript-eslint/naming-convention 'process/browser': require.resolve('process/browser'), crypto: false, }, @@ -365,10 +358,8 @@ const getCommonConfiguration = ({file = '.env', platform = 'web'}: Environment): compress: { passes: 2, }, - // eslint-disable-next-line @typescript-eslint/naming-convention keep_classnames: /ImageManipulator|ImageModule/, mangle: { - // eslint-disable-next-line @typescript-eslint/naming-convention keep_fnames: true, }, }, @@ -422,4 +413,6 @@ const getCommonConfiguration = ({file = '.env', platform = 'web'}: Environment): }; }; +/* eslint-enable @typescript-eslint/naming-convention */ + export default getCommonConfiguration; diff --git a/package-lock.json b/package-lock.json index fe4b81023702..2bb83b9a9e83 100644 --- a/package-lock.json +++ b/package-lock.json @@ -189,14 +189,12 @@ "@rock-js/plugin-metro": "0.11.9", "@rock-js/provider-s3": "0.11.9", "@sentry/webpack-plugin": "4.6.0", - "@storybook/addon-a11y": "^8.6.9", - "@storybook/addon-essentials": "^8.6.9", - "@storybook/addon-webpack5-compiler-babel": "^3.0.5", - "@storybook/cli": "^8.6.14", - "@storybook/manager-api": "^8.6.9", - "@storybook/react": "^8.6.9", - "@storybook/react-webpack5": "^8.6.9", - "@storybook/theming": "^8.6.9", + "@storybook/addon-a11y": "10.1.10", + "@storybook/addon-docs": "10.1.10", + "@storybook/addon-webpack5-compiler-babel": "4.0.0", + "@storybook/cli": "10.1.10", + "@storybook/react": "10.1.10", + "@storybook/react-webpack5": "10.1.10", "@svgr/webpack": "^6.0.0", "@testing-library/react-native": "13.2.0", "@trivago/prettier-plugin-sort-imports": "^4.2.0", @@ -224,6 +222,7 @@ "@types/webpack": "^5.28.5", "@types/webpack-bundle-analyzer": "^4.7.0", "@vercel/ncc": "0.38.1", + "@vitest/mocker": "^4.0.16", "@vue/preload-webpack-plugin": "^2.0.0", "@welldone-software/why-did-you-render": "7.0.1", "babel-jest": "29.7.0", @@ -252,7 +251,7 @@ "eslint-plugin-lodash": "^7.4.0", "eslint-plugin-react-compiler": "^19.1.0-rc.2", "eslint-plugin-react-native-a11y": "^3.3.0", - "eslint-plugin-storybook": "^0.12.0", + "eslint-plugin-storybook": "^10.1.10", "eslint-plugin-testing-library": "^7.11.0", "eslint-plugin-you-dont-need-lodash-underscore": "^6.14.0", "glob": "^10.4.5", @@ -286,7 +285,7 @@ "setimmediate": "^1.0.5", "shellcheck": "^1.1.0", "source-map": "^0.7.4", - "storybook": "^8.6.9", + "storybook": "10.1.10", "style-loader": "^2.0.0", "svgo": "^4.0.0", "time-analytics-webpack-plugin": "^0.1.17", @@ -459,7 +458,9 @@ } }, "node_modules/@adobe/css-tools": { - "version": "4.4.2", + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.4.tgz", + "integrity": "sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==", "dev": true, "license": "MIT" }, @@ -3960,7 +3961,9 @@ } }, "node_modules/@babel/register": { - "version": "7.25.9", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.28.3.tgz", + "integrity": "sha512-CieDOtd8u208eI49bYl4z1J22ySFw87IGwE+IswFEExH7e3rLgKb0WNQeumnacQ1+VoDJLYI5QFA3AJZuyZQfA==", "dev": true, "license": "MIT", "dependencies": { @@ -3977,6 +3980,114 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/register/node_modules/find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/register/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/register/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/register/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/register/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@babel/register/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/register/node_modules/pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/register/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, "node_modules/@babel/regjsgen": { "version": "0.8.0", "license": "MIT" @@ -5783,8 +5894,78 @@ "node": ">=20.0.0" } }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.2.tgz", + "integrity": "sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.2.tgz", + "integrity": "sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.2.tgz", + "integrity": "sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.2.tgz", + "integrity": "sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.5", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.2.tgz", + "integrity": "sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==", "cpu": [ "arm64" ], @@ -5798,6 +5979,363 @@ "node": ">=18" } }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.2.tgz", + "integrity": "sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.2.tgz", + "integrity": "sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.2.tgz", + "integrity": "sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.2.tgz", + "integrity": "sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.2.tgz", + "integrity": "sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.2.tgz", + "integrity": "sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.2.tgz", + "integrity": "sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.2.tgz", + "integrity": "sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.2.tgz", + "integrity": "sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.2.tgz", + "integrity": "sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.2.tgz", + "integrity": "sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.2.tgz", + "integrity": "sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.2.tgz", + "integrity": "sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.2.tgz", + "integrity": "sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.2.tgz", + "integrity": "sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.2.tgz", + "integrity": "sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.2.tgz", + "integrity": "sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.2.tgz", + "integrity": "sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.2.tgz", + "integrity": "sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.2.tgz", + "integrity": "sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.2.tgz", + "integrity": "sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, "node_modules/@eslint-community/eslint-utils": { "version": "4.9.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz", @@ -10467,6 +11005,28 @@ "node": ">=6.0.0" } }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.0", "license": "MIT", @@ -10502,7 +11062,9 @@ } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { @@ -14449,17 +15011,6 @@ "url": "https://github.com/sindresorhus/is?sponsor=1" } }, - "node_modules/@sindresorhus/merge-streams": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@sinonjs/commons": { "version": "2.0.0", "license": "BSD-3-Clause", @@ -15262,13 +15813,13 @@ "license": "MIT" }, "node_modules/@storybook/addon-a11y": { - "version": "8.6.9", + "version": "10.1.10", + "resolved": "https://registry.npmjs.org/@storybook/addon-a11y/-/addon-a11y-10.1.10.tgz", + "integrity": "sha512-lXVFywCSdA39uCR0KEFz3F6WTjzoqSi5gQYtWrFelzaUiMH46uBLHPYaKlpUuNbTL/o9ctrhX1YNzegujrXSoQ==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/addon-highlight": "8.6.9", "@storybook/global": "^5.0.0", - "@storybook/test": "8.6.9", "axe-core": "^4.2.0" }, "funding": { @@ -15276,83 +15827,20 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.6.9" - } - }, - "node_modules/@storybook/addon-actions": { - "version": "8.6.9", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/global": "^5.0.0", - "@types/uuid": "^9.0.1", - "dequal": "^2.0.2", - "polished": "^4.2.2", - "uuid": "^9.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^8.6.9" - } - }, - "node_modules/@storybook/addon-actions/node_modules/uuid": { - "version": "9.0.1", - "dev": true, - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/@storybook/addon-backgrounds": { - "version": "8.6.9", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/global": "^5.0.0", - "memoizerific": "^1.11.3", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^8.6.9" - } - }, - "node_modules/@storybook/addon-controls": { - "version": "8.6.9", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/global": "^5.0.0", - "dequal": "^2.0.2", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^8.6.9" + "storybook": "^10.1.10" } }, "node_modules/@storybook/addon-docs": { - "version": "8.6.9", + "version": "10.1.10", + "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-10.1.10.tgz", + "integrity": "sha512-PSJVtawnGNrEkeLJQn9TTdeqrtDij8onvmnFtfkDaFG5IaUdQaLX9ibJ4gfxYakq+BEtlCcYiWErNJcqDrDluQ==", "dev": true, "license": "MIT", "dependencies": { "@mdx-js/react": "^3.0.0", - "@storybook/blocks": "8.6.9", - "@storybook/csf-plugin": "8.6.9", - "@storybook/react-dom-shim": "8.6.9", + "@storybook/csf-plugin": "10.1.10", + "@storybook/icons": "^2.0.0", + "@storybook/react-dom-shim": "10.1.10", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "ts-dedent": "^2.0.0" @@ -15362,170 +15850,91 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.6.9" - } - }, - "node_modules/@storybook/addon-essentials": { - "version": "8.6.9", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/addon-actions": "8.6.9", - "@storybook/addon-backgrounds": "8.6.9", - "@storybook/addon-controls": "8.6.9", - "@storybook/addon-docs": "8.6.9", - "@storybook/addon-highlight": "8.6.9", - "@storybook/addon-measure": "8.6.9", - "@storybook/addon-outline": "8.6.9", - "@storybook/addon-toolbars": "8.6.9", - "@storybook/addon-viewport": "8.6.9", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^8.6.9" + "storybook": "^10.1.10" } }, - "node_modules/@storybook/addon-highlight": { - "version": "8.6.9", + "node_modules/@storybook/addon-docs/node_modules/@storybook/csf-plugin": { + "version": "10.1.10", + "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-10.1.10.tgz", + "integrity": "sha512-2dri4TRU8uuj/skmx/ZBw+GnnXf8EZHiMDMeijVRdBQtYFWPeoYzNIrGRpNfbuGpnDP0dcxrqti/TsedoxwFkA==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/global": "^5.0.0" + "unplugin": "^2.3.5" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.6.9" - } - }, - "node_modules/@storybook/addon-measure": { - "version": "8.6.9", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/global": "^5.0.0", - "tiny-invariant": "^1.3.1" + "esbuild": "*", + "rollup": "*", + "storybook": "^10.1.10", + "vite": "*", + "webpack": "*" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^8.6.9" - } - }, - "node_modules/@storybook/addon-outline": { - "version": "8.6.9", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/global": "^5.0.0", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^8.6.9" - } - }, - "node_modules/@storybook/addon-toolbars": { - "version": "8.6.9", - "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^8.6.9" - } - }, - "node_modules/@storybook/addon-viewport": { - "version": "8.6.9", - "dev": true, - "license": "MIT", - "dependencies": { - "memoizerific": "^1.11.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^8.6.9" + "peerDependenciesMeta": { + "esbuild": { + "optional": true + }, + "rollup": { + "optional": true + }, + "vite": { + "optional": true + }, + "webpack": { + "optional": true + } } }, "node_modules/@storybook/addon-webpack5-compiler-babel": { - "version": "3.0.5", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@storybook/addon-webpack5-compiler-babel/-/addon-webpack5-compiler-babel-4.0.0.tgz", + "integrity": "sha512-dNcFCBPX1FO2TvUrAoDim8vekVVTivIAi5lo3lFF3BwDK29dNi0TF805XXWu+7LMauPq8sf51DQVSE3lrwCcnw==", "dev": true, "license": "MIT", "dependencies": { "@babel/core": "^7.26.0", - "babel-loader": "^9.2.1" - }, - "engines": { - "node": ">=18" + "babel-loader": "^10.0.0" } }, - "node_modules/@storybook/blocks": { - "version": "8.6.9", + "node_modules/@storybook/addon-webpack5-compiler-babel/node_modules/babel-loader": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-10.0.0.tgz", + "integrity": "sha512-z8jt+EdS61AMw22nSfoNJAZ0vrtmhPRVi6ghL3rCeRZI8cdNYFiV5xeV3HbE7rlZZNmGH8BVccwWt8/ED0QOHA==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/icons": "^1.2.12", - "ts-dedent": "^2.0.0" + "find-up": "^5.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" + "engines": { + "node": "^18.20.0 || ^20.10.0 || >=22.0.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "storybook": "^8.6.9" - }, - "peerDependenciesMeta": { - "react": { - "optional": true - }, - "react-dom": { - "optional": true - } + "@babel/core": "^7.12.0", + "webpack": ">=5.61.0" } }, "node_modules/@storybook/builder-webpack5": { - "version": "8.6.9", + "version": "10.1.10", + "resolved": "https://registry.npmjs.org/@storybook/builder-webpack5/-/builder-webpack5-10.1.10.tgz", + "integrity": "sha512-ifoS897+T92uve1+WLlDrf1fu3ldfVVJ/WdOYZ52d9F8sZ1ULSreg7Xnq5FKbBCKmQVOxL9f2NjEWbLJkP67CQ==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/core-webpack": "8.6.9", - "@types/semver": "^7.3.4", - "browser-assert": "^1.2.1", + "@storybook/core-webpack": "10.1.10", + "@vitest/mocker": "3.2.4", "case-sensitive-paths-webpack-plugin": "^2.4.0", "cjs-module-lexer": "^1.2.3", - "constants-browserify": "^1.0.0", - "css-loader": "^6.7.1", + "css-loader": "^7.1.2", "es-module-lexer": "^1.5.0", - "fork-ts-checker-webpack-plugin": "^8.0.0", + "fork-ts-checker-webpack-plugin": "^9.1.0", "html-webpack-plugin": "^5.5.0", "magic-string": "^0.30.5", - "path-browserify": "^1.0.1", - "process": "^0.11.10", - "semver": "^7.3.7", - "style-loader": "^3.3.1", - "terser-webpack-plugin": "^5.3.1", + "style-loader": "^4.0.0", + "terser-webpack-plugin": "^5.3.14", "ts-dedent": "^2.0.0", - "url": "^0.11.0", - "util": "^0.12.4", - "util-deprecate": "^1.0.2", "webpack": "5", "webpack-dev-middleware": "^6.1.2", "webpack-hot-middleware": "^2.25.1", @@ -15536,7 +15945,7 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.6.9" + "storybook": "^10.1.10" }, "peerDependenciesMeta": { "typescript": { @@ -15544,314 +15953,223 @@ } } }, - "node_modules/@storybook/builder-webpack5/node_modules/style-loader": { - "version": "3.3.4", + "node_modules/@storybook/builder-webpack5/node_modules/@vitest/mocker": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.4.tgz", + "integrity": "sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==", "dev": true, "license": "MIT", - "engines": { - "node": ">= 12.13.0" + "dependencies": { + "@vitest/spy": "3.2.4", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.17" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "url": "https://opencollective.com/vitest" }, "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/@storybook/cli": { - "version": "8.6.14", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.24.4", - "@babel/types": "^7.24.0", - "@storybook/codemod": "8.6.14", - "@types/semver": "^7.3.4", - "commander": "^12.1.0", - "create-storybook": "8.6.14", - "cross-spawn": "^7.0.3", - "envinfo": "^7.7.3", - "fd-package-json": "^1.2.0", - "find-up": "^5.0.0", - "giget": "^1.0.0", - "glob": "^10.0.0", - "globby": "^14.0.1", - "jscodeshift": "^0.15.1", - "leven": "^3.1.0", - "p-limit": "^6.2.0", - "prompts": "^2.4.0", - "semver": "^7.3.7", - "storybook": "8.6.14", - "tiny-invariant": "^1.3.1", - "ts-dedent": "^2.0.0" + "msw": "^2.4.9", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" }, - "bin": { - "cli": "bin/index.cjs" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } } }, - "node_modules/@storybook/cli/node_modules/globby": { - "version": "14.1.0", + "node_modules/@storybook/builder-webpack5/node_modules/css-loader": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-7.1.2.tgz", + "integrity": "sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA==", "dev": true, "license": "MIT", "dependencies": { - "@sindresorhus/merge-streams": "^2.1.0", - "fast-glob": "^3.3.3", - "ignore": "^7.0.3", - "path-type": "^6.0.0", - "slash": "^5.1.0", - "unicorn-magic": "^0.3.0" + "icss-utils": "^5.1.0", + "postcss": "^8.4.33", + "postcss-modules-extract-imports": "^3.1.0", + "postcss-modules-local-by-default": "^4.0.5", + "postcss-modules-scope": "^3.2.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.5.4" }, "engines": { - "node": ">=18" + "node": ">= 18.12.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/cli/node_modules/ignore": { - "version": "7.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/@storybook/cli/node_modules/p-limit": { - "version": "6.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^1.1.1" - }, - "engines": { - "node": ">=18" + "type": "opencollective", + "url": "https://opencollective.com/webpack" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/cli/node_modules/path-type": { - "version": "6.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.27.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } } }, - "node_modules/@storybook/cli/node_modules/slash": { - "version": "5.1.0", + "node_modules/@storybook/builder-webpack5/node_modules/schema-utils": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", "dev": true, "license": "MIT", - "engines": { - "node": ">=14.16" + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/cli/node_modules/yocto-queue": { - "version": "1.2.1", - "dev": true, - "license": "MIT", "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/codemod": { - "version": "8.6.14", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.24.4", - "@babel/preset-env": "^7.24.4", - "@babel/types": "^7.24.0", - "@storybook/core": "8.6.14", - "@types/cross-spawn": "^6.0.2", - "cross-spawn": "^7.0.3", - "es-toolkit": "^1.22.0", - "globby": "^14.0.1", - "jscodeshift": "^0.15.1", - "prettier": "^3.1.1", - "recast": "^0.23.5", - "tiny-invariant": "^1.3.1" + "node": ">= 10.13.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/storybook" + "url": "https://opencollective.com/webpack" } }, - "node_modules/@storybook/codemod/node_modules/globby": { - "version": "14.1.0", + "node_modules/@storybook/builder-webpack5/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", "dev": true, - "license": "MIT", - "dependencies": { - "@sindresorhus/merge-streams": "^2.1.0", - "fast-glob": "^3.3.3", - "ignore": "^7.0.3", - "path-type": "^6.0.0", - "slash": "^5.1.0", - "unicorn-magic": "^0.3.0" - }, - "engines": { - "node": ">=18" + "license": "ISC", + "bin": { + "semver": "bin/semver.js" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/codemod/node_modules/ignore": { - "version": "7.0.5", - "dev": true, - "license": "MIT", "engines": { - "node": ">= 4" - } - }, - "node_modules/@storybook/codemod/node_modules/path-type": { - "version": "6.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=10" } }, - "node_modules/@storybook/codemod/node_modules/slash": { - "version": "5.1.0", + "node_modules/@storybook/builder-webpack5/node_modules/style-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-4.0.0.tgz", + "integrity": "sha512-1V4WqhhZZgjVAVJyt7TdDPZoPBPNHbekX4fWnCJL1yQukhCeZhJySUL+gL9y6sNdN95uEOS83Y55SqHcP7MzLA==", "dev": true, "license": "MIT", "engines": { - "node": ">=14.16" + "node": ">= 18.12.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/components": { - "version": "8.6.9", - "dev": true, - "license": "MIT", "funding": { "type": "opencollective", - "url": "https://opencollective.com/storybook" + "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "storybook": "^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0" + "webpack": "^5.27.0" } }, - "node_modules/@storybook/core": { - "version": "8.6.14", + "node_modules/@storybook/builder-webpack5/node_modules/terser-webpack-plugin": { + "version": "5.3.16", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.16.tgz", + "integrity": "sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/theming": "8.6.14", - "better-opn": "^3.0.2", - "browser-assert": "^1.2.1", - "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0 || ^0.25.0", - "esbuild-register": "^3.5.0", - "jsdoc-type-pratt-parser": "^4.0.0", - "process": "^0.11.10", - "recast": "^0.23.5", - "semver": "^7.6.2", - "util": "^0.12.5", - "ws": "^8.2.3" + "@jridgewell/trace-mapping": "^0.3.25", + "jest-worker": "^27.4.5", + "schema-utils": "^4.3.0", + "serialize-javascript": "^6.0.2", + "terser": "^5.31.1" + }, + "engines": { + "node": ">= 10.13.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/storybook" + "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "prettier": "^2 || ^3" + "webpack": "^5.1.0" }, "peerDependenciesMeta": { - "prettier": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { "optional": true } } }, - "node_modules/@storybook/core-webpack": { - "version": "8.6.9", + "node_modules/@storybook/cli": { + "version": "10.1.10", + "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-10.1.10.tgz", + "integrity": "sha512-h5h4KcBvra5qRsgVQC1HEWRL/SINf0/usQj0v4mQCPAsh6uGUj0Y5yI2MqQjzm96xhRrRF5aGkgj3abKd4CfTg==", "dev": true, "license": "MIT", "dependencies": { + "@storybook/codemod": "10.1.10", + "@types/semver": "^7.3.4", + "commander": "^14.0.1", + "create-storybook": "10.1.10", + "jscodeshift": "^0.15.1", + "storybook": "10.1.10", "ts-dedent": "^2.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" + "bin": { + "cli": "dist/bin/index.js" }, - "peerDependencies": { - "storybook": "^8.6.9" - } - }, - "node_modules/@storybook/core/node_modules/@storybook/theming": { - "version": "8.6.14", - "dev": true, - "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0" } }, - "node_modules/@storybook/core/node_modules/semver": { - "version": "7.7.2", + "node_modules/@storybook/cli/node_modules/commander": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.2.tgz", + "integrity": "sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ==", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, + "license": "MIT", "engines": { - "node": ">=10" + "node": ">=20" } }, - "node_modules/@storybook/csf": { - "version": "0.1.13", + "node_modules/@storybook/codemod": { + "version": "10.1.10", + "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-10.1.10.tgz", + "integrity": "sha512-4MNIaojcEQiAWpMpwzbVVsRwLfnBkTVno+SwRpV98fU45jlZyKkGleyvzYf0Q8sC2XDqQmojCg+pRiBV+22VNw==", "dev": true, "license": "MIT", "dependencies": { - "type-fest": "^2.19.0" + "@types/cross-spawn": "^6.0.6", + "cross-spawn": "^7.0.6", + "es-toolkit": "^1.36.0", + "jscodeshift": "^0.15.1", + "prettier": "^3.5.3", + "storybook": "10.1.10", + "tiny-invariant": "^1.3.1", + "tinyglobby": "^0.2.13" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/csf-plugin": { - "version": "8.6.9", + "node_modules/@storybook/core-webpack": { + "version": "10.1.10", + "resolved": "https://registry.npmjs.org/@storybook/core-webpack/-/core-webpack-10.1.10.tgz", + "integrity": "sha512-hXNf5yHyGtZOZbCA+MHDkW0iCKSBkFSD06XVc2ZhtZ7D1FHivSRJMY6kCKQoFbt0kSj0V/UbPGBOpgOa1vuYFg==", "dev": true, "license": "MIT", "dependencies": { - "unplugin": "^1.3.1" + "ts-dedent": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.6.9" - } - }, - "node_modules/@storybook/csf/node_modules/type-fest": { - "version": "2.19.0", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "storybook": "^10.1.10" } }, "node_modules/@storybook/global": { @@ -15860,73 +16178,41 @@ "license": "MIT" }, "node_modules/@storybook/icons": { - "version": "1.4.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta" - } - }, - "node_modules/@storybook/instrumenter": { - "version": "8.6.9", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/global": "^5.0.0", - "@vitest/utils": "^2.1.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^8.6.9" - } - }, - "node_modules/@storybook/manager-api": { - "version": "8.6.9", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@storybook/icons/-/icons-2.0.1.tgz", + "integrity": "sha512-/smVjw88yK3CKsiuR71vNgWQ9+NuY2L+e8X7IMrFjexjm6ZR8ULrV2DRkTA61aV6ryefslzHEGDInGpnNeIocg==", "dev": true, "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, "peerDependencies": { - "storybook": "^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0" + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "node_modules/@storybook/preset-react-webpack": { - "version": "8.6.9", + "version": "10.1.10", + "resolved": "https://registry.npmjs.org/@storybook/preset-react-webpack/-/preset-react-webpack-10.1.10.tgz", + "integrity": "sha512-rO72bA4SgTKn9O08k9v4T116ZE7kB5Vd00pPmqA1IGiFWdASqbh02SzduN9p3iM06YL8EptmRucN/jctPLe10g==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/core-webpack": "8.6.9", - "@storybook/react": "8.6.9", + "@storybook/core-webpack": "10.1.10", "@storybook/react-docgen-typescript-plugin": "1.0.6--canary.9.0c3f3b7.0", "@types/semver": "^7.3.4", - "find-up": "^5.0.0", "magic-string": "^0.30.5", - "react-docgen": "^7.0.0", + "react-docgen": "^7.1.1", "resolve": "^1.22.8", "semver": "^7.3.7", "tsconfig-paths": "^4.2.0", "webpack": "5" }, - "engines": { - "node": ">=18.0.0" - }, "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "storybook": "^8.6.9" + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "storybook": "^10.1.10" }, "peerDependenciesMeta": { "typescript": { @@ -15934,48 +16220,63 @@ } } }, - "node_modules/@storybook/preview-api": { - "version": "8.6.9", + "node_modules/@storybook/preset-react-webpack/node_modules/react-docgen": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/react-docgen/-/react-docgen-7.1.1.tgz", + "integrity": "sha512-hlSJDQ2synMPKFZOsKo9Hi8WWZTC7POR8EmWvTSjow+VDgKzkmjQvFm2fk0tmRw+f0vTOIYKlarR0iL4996pdg==", "dev": true, "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" + "dependencies": { + "@babel/core": "^7.18.9", + "@babel/traverse": "^7.18.9", + "@babel/types": "^7.18.9", + "@types/babel__core": "^7.18.0", + "@types/babel__traverse": "^7.18.0", + "@types/doctrine": "^0.0.9", + "@types/resolve": "^1.20.2", + "doctrine": "^3.0.0", + "resolve": "^1.22.1", + "strip-indent": "^4.0.0" }, - "peerDependencies": { - "storybook": "^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0" + "engines": { + "node": ">=16.14.0" + } + }, + "node_modules/@storybook/preset-react-webpack/node_modules/strip-indent": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.1.1.tgz", + "integrity": "sha512-SlyRoSkdh1dYP0PzclLE7r0M9sgbFKKMFXpFRUMNuKhQSbC6VQIGzq3E0qsfvGJaUFJPGv6Ws1NZ/haTAjfbMA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@storybook/react": { - "version": "8.6.9", + "version": "10.1.10", + "resolved": "https://registry.npmjs.org/@storybook/react/-/react-10.1.10.tgz", + "integrity": "sha512-9Rpr8/wX0p5/EaulrxpqrjKjhGaA/Ab9HgxzTqs2Shz0gvMAQHoiRnTEp7RCCkP49ruFYnIp0yGRSovu03LakQ==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/components": "8.6.9", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "8.6.9", - "@storybook/preview-api": "8.6.9", - "@storybook/react-dom-shim": "8.6.9", - "@storybook/theming": "8.6.9" - }, - "engines": { - "node": ">=18.0.0" + "@storybook/react-dom-shim": "10.1.10", + "react-docgen": "^8.0.2" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "@storybook/test": "8.6.9", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "storybook": "^8.6.9", - "typescript": ">= 4.2.x" + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "storybook": "^10.1.10", + "typescript": ">= 4.9.x" }, "peerDependenciesMeta": { - "@storybook/test": { - "optional": true - }, "typescript": { "optional": true } @@ -15983,6 +16284,8 @@ }, "node_modules/@storybook/react-docgen-typescript-plugin": { "version": "1.0.6--canary.9.0c3f3b7.0", + "resolved": "https://registry.npmjs.org/@storybook/react-docgen-typescript-plugin/-/react-docgen-typescript-plugin-1.0.6--canary.9.0c3f3b7.0.tgz", + "integrity": "sha512-KUqXC3oa9JuQ0kZJLBhVdS4lOneKTOopnNBK4tUAgoxWQ3u/IjzdueZjFr7gyBrXMoU6duutk3RQR9u8ZpYJ4Q==", "dev": true, "license": "MIT", "dependencies": { @@ -15999,46 +16302,10 @@ "webpack": ">= 4" } }, - "node_modules/@storybook/react-docgen-typescript-plugin/node_modules/find-cache-dir": { - "version": "3.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/@storybook/react-docgen-typescript-plugin/node_modules/make-dir": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/react-docgen-typescript-plugin/node_modules/semver": { - "version": "6.3.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@storybook/react-dom-shim": { - "version": "8.6.9", + "version": "10.1.10", + "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-10.1.10.tgz", + "integrity": "sha512-9pmUbEr1MeMHg9TG0c2jVUfHWr2AA86vqZGphY/nT6mbe/rGyWtBl5EnFLrz6WpI8mo3h+Kxs6p2oiuIYieRtw==", "dev": true, "license": "MIT", "funding": { @@ -16046,32 +16313,31 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "storybook": "^8.6.9" + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "storybook": "^10.1.10" } }, "node_modules/@storybook/react-webpack5": { - "version": "8.6.9", + "version": "10.1.10", + "resolved": "https://registry.npmjs.org/@storybook/react-webpack5/-/react-webpack5-10.1.10.tgz", + "integrity": "sha512-EEzmDKzA0HNKgz5vDtYR4EdpVZj+SkxWrpYHiBj+dSOdWvXs1NoDwLmCps5i34ngbpEqIILDqHMYCnuBQsF7mw==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/builder-webpack5": "8.6.9", - "@storybook/preset-react-webpack": "8.6.9", - "@storybook/react": "8.6.9" - }, - "engines": { - "node": ">=18.0.0" + "@storybook/builder-webpack5": "10.1.10", + "@storybook/preset-react-webpack": "10.1.10", + "@storybook/react": "10.1.10" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "storybook": "^8.6.9", - "typescript": ">= 4.2.x" + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "storybook": "^10.1.10", + "typescript": ">= 4.9.x" }, "peerDependenciesMeta": { "typescript": { @@ -16079,39 +16345,6 @@ } } }, - "node_modules/@storybook/test": { - "version": "8.6.9", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/global": "^5.0.0", - "@storybook/instrumenter": "8.6.9", - "@testing-library/dom": "10.4.0", - "@testing-library/jest-dom": "6.5.0", - "@testing-library/user-event": "14.5.2", - "@vitest/expect": "2.0.5", - "@vitest/spy": "2.0.5" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^8.6.9" - } - }, - "node_modules/@storybook/theming": { - "version": "8.6.9", - "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0" - } - }, "node_modules/@svgr/babel-plugin-add-jsx-attribute": { "version": "6.5.1", "dev": true, @@ -16456,17 +16689,20 @@ } }, "node_modules/@testing-library/dom": { - "version": "10.4.0", + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.1.tgz", + "integrity": "sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.10.4", "@babel/runtime": "^7.12.5", "@types/aria-query": "^5.0.1", "aria-query": "5.3.0", - "chalk": "^4.1.0", "dom-accessibility-api": "^0.5.9", "lz-string": "^1.5.0", + "picocolors": "1.1.1", "pretty-format": "^27.0.2" }, "engines": { @@ -16475,69 +16711,36 @@ }, "node_modules/@testing-library/dom/node_modules/ansi-regex": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=8" } }, "node_modules/@testing-library/dom/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@testing-library/dom/node_modules/chalk": { - "version": "4.1.2", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, + "peer": true, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@testing-library/dom/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@testing-library/dom/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/@testing-library/dom/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/@testing-library/dom/node_modules/pretty-format": { "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ansi-regex": "^5.0.1", "ansi-styles": "^5.0.0", @@ -16547,44 +16750,26 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/@testing-library/dom/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/@testing-library/dom/node_modules/react-is": { "version": "17.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/@testing-library/dom/node_modules/supports-color": { - "version": "7.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", "dev": true, "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } + "peer": true }, "node_modules/@testing-library/jest-dom": { - "version": "6.5.0", + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.9.1.tgz", + "integrity": "sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==", "dev": true, "license": "MIT", "dependencies": { "@adobe/css-tools": "^4.4.0", "aria-query": "^5.0.0", - "chalk": "^3.0.0", "css.escape": "^1.5.1", "dom-accessibility-api": "^0.6.3", - "lodash": "^4.17.21", + "picocolors": "^1.1.1", "redent": "^3.0.0" }, "engines": { @@ -16593,72 +16778,13 @@ "yarn": ">=1" } }, - "node_modules/@testing-library/jest-dom/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@testing-library/jest-dom/node_modules/chalk": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@testing-library/jest-dom/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@testing-library/jest-dom/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { "version": "0.6.3", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz", + "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==", "dev": true, "license": "MIT" }, - "node_modules/@testing-library/jest-dom/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@testing-library/jest-dom/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@testing-library/react-native": { "version": "13.2.0", "dev": true, @@ -16749,7 +16875,9 @@ } }, "node_modules/@testing-library/user-event": { - "version": "14.5.2", + "version": "14.6.1", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.6.1.tgz", + "integrity": "sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==", "dev": true, "license": "MIT", "engines": { @@ -17026,8 +17154,11 @@ }, "node_modules/@types/aria-query": { "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@types/babel__core": { "version": "7.20.5", @@ -17056,10 +17187,12 @@ } }, "node_modules/@types/babel__traverse": { - "version": "7.18.0", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", "license": "MIT", "dependencies": { - "@babel/types": "^7.3.0" + "@babel/types": "^7.28.2" } }, "node_modules/@types/base-64": { @@ -17100,6 +17233,17 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/chai": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", + "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/deep-eql": "*", + "assertion-error": "^2.0.1" + } + }, "node_modules/@types/concurrently": { "version": "7.0.0", "dev": true, @@ -17127,6 +17271,8 @@ }, "node_modules/@types/cross-spawn": { "version": "6.0.6", + "resolved": "https://registry.npmjs.org/@types/cross-spawn/-/cross-spawn-6.0.6.tgz", + "integrity": "sha512-fXRhhUkG4H3TQk5dBhQ7m/JDdSNHKwR2BBia62lhwEIq9xGiQKLxd6LymNhn47SjXhsUEPmxi+PKw2OkW4LLjA==", "dev": true, "license": "MIT", "dependencies": { @@ -17143,8 +17289,17 @@ "@types/ms": "*" } }, + "node_modules/@types/deep-eql": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", + "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/doctrine": { "version": "0.0.9", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.9.tgz", + "integrity": "sha512-eOIHzCUSH7SMfonMG1LsC2f8vxBFtho6NGBznK41R84YzPuvSBzrhEps33IsQiOW9+VL6NQ9DbjQJznk/S4uRA==", "dev": true, "license": "MIT" }, @@ -17526,6 +17681,8 @@ }, "node_modules/@types/resolve": { "version": "1.20.6", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.6.tgz", + "integrity": "sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==", "dev": true, "license": "MIT" }, @@ -17602,11 +17759,6 @@ "version": "1.19.19", "license": "MIT" }, - "node_modules/@types/uuid": { - "version": "9.0.8", - "dev": true, - "license": "MIT" - }, "node_modules/@types/verror": { "version": "1.10.11", "resolved": "https://registry.npmjs.org/@types/verror/-/verror-1.10.11.tgz", @@ -18039,74 +18191,95 @@ } }, "node_modules/@vitest/expect": { - "version": "2.0.5", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz", + "integrity": "sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/spy": "2.0.5", - "@vitest/utils": "2.0.5", - "chai": "^5.1.1", - "tinyrainbow": "^1.2.0" + "@types/chai": "^5.2.2", + "@vitest/spy": "3.2.4", + "@vitest/utils": "3.2.4", + "chai": "^5.2.0", + "tinyrainbow": "^2.0.0" }, "funding": { "url": "https://opencollective.com/vitest" } }, - "node_modules/@vitest/expect/node_modules/@vitest/pretty-format": { - "version": "2.0.5", + "node_modules/@vitest/mocker": { + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.0.16.tgz", + "integrity": "sha512-yb6k4AZxJTB+q9ycAvsoxGn+j/po0UaPgajllBgt1PzoMAAmJGYFdDk0uCcRcxb3BrME34I6u8gHZTQlkqSZpg==", "dev": true, "license": "MIT", "dependencies": { - "tinyrainbow": "^1.2.0" + "@vitest/spy": "4.0.16", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.21" }, "funding": { "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^6.0.0 || ^7.0.0-0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } } }, - "node_modules/@vitest/expect/node_modules/@vitest/utils": { - "version": "2.0.5", + "node_modules/@vitest/mocker/node_modules/@vitest/spy": { + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.0.16.tgz", + "integrity": "sha512-4jIOWjKP0ZUaEmJm00E0cOBLU+5WE0BpeNr3XN6TEF05ltro6NJqHWxXD0kA8/Zc8Nh23AT8WQxwNG+WeROupw==", "dev": true, "license": "MIT", - "dependencies": { - "@vitest/pretty-format": "2.0.5", - "estree-walker": "^3.0.3", - "loupe": "^3.1.1", - "tinyrainbow": "^1.2.0" - }, "funding": { "url": "https://opencollective.com/vitest" } }, "node_modules/@vitest/pretty-format": { - "version": "2.1.9", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.4.tgz", + "integrity": "sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==", "dev": true, "license": "MIT", "dependencies": { - "tinyrainbow": "^1.2.0" + "tinyrainbow": "^2.0.0" }, "funding": { "url": "https://opencollective.com/vitest" } }, "node_modules/@vitest/spy": { - "version": "2.0.5", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.2.4.tgz", + "integrity": "sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==", "dev": true, "license": "MIT", "dependencies": { - "tinyspy": "^3.0.0" + "tinyspy": "^4.0.3" }, "funding": { "url": "https://opencollective.com/vitest" } }, "node_modules/@vitest/utils": { - "version": "2.1.9", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.2.4.tgz", + "integrity": "sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "2.1.9", - "loupe": "^3.1.2", - "tinyrainbow": "^1.2.0" + "@vitest/pretty-format": "3.2.4", + "loupe": "^3.1.4", + "tinyrainbow": "^2.0.0" }, "funding": { "url": "https://opencollective.com/vitest" @@ -18851,6 +19024,8 @@ }, "node_modules/aria-query": { "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -19062,6 +19237,8 @@ }, "node_modules/assertion-error": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", "dev": true, "license": "MIT", "engines": { @@ -19077,6 +19254,8 @@ }, "node_modules/ast-types": { "version": "0.16.1", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.16.1.tgz", + "integrity": "sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==", "dev": true, "license": "MIT", "dependencies": { @@ -19188,6 +19367,8 @@ }, "node_modules/babel-core": { "version": "7.0.0-bridge.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz", + "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==", "dev": true, "license": "MIT", "peerDependencies": { @@ -20124,10 +20305,6 @@ "node": ">=8" } }, - "node_modules/browser-assert": { - "version": "1.2.1", - "dev": true - }, "node_modules/browser-image-hash": { "version": "0.0.5", "license": "MIT", @@ -20736,6 +20913,8 @@ }, "node_modules/case-sensitive-paths-webpack-plugin": { "version": "2.4.0", + "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", + "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==", "dev": true, "license": "MIT", "engines": { @@ -20756,7 +20935,9 @@ } }, "node_modules/chai": { - "version": "5.2.0", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz", + "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==", "dev": true, "license": "MIT", "dependencies": { @@ -20767,7 +20948,7 @@ "pathval": "^2.0.0" }, "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/chalk": { @@ -20851,6 +21032,8 @@ }, "node_modules/check-error": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", + "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", "dev": true, "license": "MIT", "engines": { @@ -20943,14 +21126,6 @@ "node": ">=8" } }, - "node_modules/citty": { - "version": "0.1.6", - "dev": true, - "license": "MIT", - "dependencies": { - "consola": "^3.2.3" - } - }, "node_modules/cjs-module-lexer": { "version": "1.2.3", "dev": true, @@ -21392,6 +21567,8 @@ }, "node_modules/commondir": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", "dev": true, "license": "MIT" }, @@ -21577,11 +21754,6 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/confbox": { - "version": "0.1.8", - "dev": true, - "license": "MIT" - }, "node_modules/confusing-browser-globals": { "version": "1.0.11", "dev": true, @@ -21652,19 +21824,6 @@ "node": ">= 0.6" } }, - "node_modules/consola": { - "version": "3.4.2", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.18.0 || >=16.10.0" - } - }, - "node_modules/constants-browserify": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, "node_modules/content-disposition": { "version": "0.5.4", "dev": true, @@ -22038,15 +22197,17 @@ "license": "MIT" }, "node_modules/create-storybook": { - "version": "8.6.14", + "version": "10.1.10", + "resolved": "https://registry.npmjs.org/create-storybook/-/create-storybook-10.1.10.tgz", + "integrity": "sha512-aWymKWxUjSJ+1C+5AN1aa45xEAulDgBKC3LHeN+/b80vh1F/S8YzjNbwDAta8zM/IOUBxe9wXoailChzSlTGZg==", "dev": true, "license": "MIT", "dependencies": { - "recast": "^0.23.5", - "semver": "^7.6.2" + "semver": "^7.6.2", + "storybook": "10.1.10" }, "bin": { - "create-storybook": "bin/index.cjs" + "create-storybook": "dist/bin/index.js" }, "funding": { "type": "opencollective", @@ -22054,7 +22215,9 @@ } }, "node_modules/create-storybook/node_modules/semver": { - "version": "7.7.2", + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", "dev": true, "license": "ISC", "bin": { @@ -22408,72 +22571,6 @@ "webpack": "^5.0.0" } }, - "node_modules/css-loader/node_modules/icss-utils": { - "version": "5.1.0", - "dev": true, - "license": "ISC", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/css-loader/node_modules/postcss-modules-extract-imports": { - "version": "3.0.0", - "dev": true, - "license": "ISC", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/css-loader/node_modules/postcss-modules-local-by-default": { - "version": "4.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/css-loader/node_modules/postcss-modules-scope": { - "version": "3.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/css-loader/node_modules/postcss-modules-values": { - "version": "4.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "icss-utils": "^5.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, "node_modules/css-select": { "version": "5.1.0", "license": "BSD-2-Clause", @@ -22561,6 +22658,8 @@ }, "node_modules/css.escape": { "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", "dev": true, "license": "MIT" }, @@ -22570,6 +22669,8 @@ }, "node_modules/cssesc": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true, "license": "MIT", "bin": { @@ -22771,11 +22872,15 @@ }, "node_modules/dedent": { "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", "dev": true, "license": "MIT" }, "node_modules/deep-eql": { "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", "dev": true, "license": "MIT", "engines": { @@ -22907,11 +23012,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/defu": { - "version": "6.1.4", - "dev": true, - "license": "MIT" - }, "node_modules/del": { "version": "4.1.1", "dev": true, @@ -23250,6 +23350,8 @@ }, "node_modules/doctrine": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -23261,8 +23363,11 @@ }, "node_modules/dom-accessibility-api": { "version": "0.5.16", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/dom-converter": { "version": "0.2.0", @@ -23890,6 +23995,8 @@ }, "node_modules/endent": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/endent/-/endent-2.1.0.tgz", + "integrity": "sha512-r8VyPX7XL8U01Xgnb1CjZ3XV+z90cXIJ9JPE/R9SEC9vpw2P6CfsRPJmp20DppC5N7ZAMCmjYkJIa744Iyg96w==", "dev": true, "license": "MIT", "dependencies": { @@ -24160,7 +24267,9 @@ } }, "node_modules/es-toolkit": { - "version": "1.39.5", + "version": "1.43.0", + "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.43.0.tgz", + "integrity": "sha512-SKCT8AsWvYzBBuUqMk4NPwFlSdqLpJwmy6AP322ERn8W2YLIB6JBXnwMI2Qsh2gfphT3q7EKAxKb23cvFHFwKA==", "dev": true, "license": "MIT", "workspaces": [ @@ -24174,7 +24283,9 @@ "license": "MIT" }, "node_modules/esbuild": { - "version": "0.25.5", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.2.tgz", + "integrity": "sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -24185,42 +24296,32 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.5", - "@esbuild/android-arm": "0.25.5", - "@esbuild/android-arm64": "0.25.5", - "@esbuild/android-x64": "0.25.5", - "@esbuild/darwin-arm64": "0.25.5", - "@esbuild/darwin-x64": "0.25.5", - "@esbuild/freebsd-arm64": "0.25.5", - "@esbuild/freebsd-x64": "0.25.5", - "@esbuild/linux-arm": "0.25.5", - "@esbuild/linux-arm64": "0.25.5", - "@esbuild/linux-ia32": "0.25.5", - "@esbuild/linux-loong64": "0.25.5", - "@esbuild/linux-mips64el": "0.25.5", - "@esbuild/linux-ppc64": "0.25.5", - "@esbuild/linux-riscv64": "0.25.5", - "@esbuild/linux-s390x": "0.25.5", - "@esbuild/linux-x64": "0.25.5", - "@esbuild/netbsd-arm64": "0.25.5", - "@esbuild/netbsd-x64": "0.25.5", - "@esbuild/openbsd-arm64": "0.25.5", - "@esbuild/openbsd-x64": "0.25.5", - "@esbuild/sunos-x64": "0.25.5", - "@esbuild/win32-arm64": "0.25.5", - "@esbuild/win32-ia32": "0.25.5", - "@esbuild/win32-x64": "0.25.5" - } - }, - "node_modules/esbuild-register": { - "version": "3.6.0", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.3.4" - }, - "peerDependencies": { - "esbuild": ">=0.12 <1" + "@esbuild/aix-ppc64": "0.27.2", + "@esbuild/android-arm": "0.27.2", + "@esbuild/android-arm64": "0.27.2", + "@esbuild/android-x64": "0.27.2", + "@esbuild/darwin-arm64": "0.27.2", + "@esbuild/darwin-x64": "0.27.2", + "@esbuild/freebsd-arm64": "0.27.2", + "@esbuild/freebsd-x64": "0.27.2", + "@esbuild/linux-arm": "0.27.2", + "@esbuild/linux-arm64": "0.27.2", + "@esbuild/linux-ia32": "0.27.2", + "@esbuild/linux-loong64": "0.27.2", + "@esbuild/linux-mips64el": "0.27.2", + "@esbuild/linux-ppc64": "0.27.2", + "@esbuild/linux-riscv64": "0.27.2", + "@esbuild/linux-s390x": "0.27.2", + "@esbuild/linux-x64": "0.27.2", + "@esbuild/netbsd-arm64": "0.27.2", + "@esbuild/netbsd-x64": "0.27.2", + "@esbuild/openbsd-arm64": "0.27.2", + "@esbuild/openbsd-x64": "0.27.2", + "@esbuild/openharmony-arm64": "0.27.2", + "@esbuild/sunos-x64": "0.27.2", + "@esbuild/win32-arm64": "0.27.2", + "@esbuild/win32-ia32": "0.27.2", + "@esbuild/win32-x64": "0.27.2" } }, "node_modules/escalade": { @@ -24922,19 +25023,17 @@ } }, "node_modules/eslint-plugin-storybook": { - "version": "0.12.0", + "version": "10.1.10", + "resolved": "https://registry.npmjs.org/eslint-plugin-storybook/-/eslint-plugin-storybook-10.1.10.tgz", + "integrity": "sha512-ITr6Aq3buR/DuDATkq1BafUVJLybyo676fY+tj9Zjd1Ak+UXBAMQcQ++tiBVVHm1RqADwM3b1o6bnWHK2fPPKw==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/csf": "^0.1.11", - "@typescript-eslint/utils": "^8.8.1", - "ts-dedent": "^2.2.0" - }, - "engines": { - "node": ">= 18" + "@typescript-eslint/utils": "^8.8.1" }, "peerDependencies": { - "eslint": ">=8" + "eslint": ">=8", + "storybook": "^10.1.10" } }, "node_modules/eslint-plugin-testing-library": { @@ -25308,6 +25407,8 @@ }, "node_modules/estree-walker": { "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", "dev": true, "license": "MIT", "dependencies": { @@ -26601,14 +26702,6 @@ "version": "1.0.2", "license": "MIT" }, - "node_modules/fd-package-json": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "walk-up-path": "^3.0.1" - } - }, "node_modules/fd-slicer": { "version": "1.1.0", "dev": true, @@ -26751,75 +26844,21 @@ } }, "node_modules/find-cache-dir": { - "version": "2.1.0", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", "dev": true, "license": "MIT", "dependencies": { "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-cache-dir/node_modules/find-up": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-cache-dir/node_modules/locate-path": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-cache-dir/node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" }, "engines": { - "node": ">=6" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/find-cache-dir/node_modules/p-locate": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-cache-dir/node_modules/pkg-dir": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=6" + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" } }, "node_modules/find-up": { @@ -26972,11 +27011,14 @@ } }, "node_modules/flat-cache": { - "version": "3.0.4", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, "license": "MIT", "dependencies": { - "flatted": "^3.1.0", + "flatted": "^3.2.9", + "keyv": "^4.5.3", "rimraf": "^3.0.2" }, "engines": { @@ -26995,7 +27037,9 @@ "license": "MIT" }, "node_modules/flow-parser": { - "version": "0.230.0", + "version": "0.295.0", + "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.295.0.tgz", + "integrity": "sha512-M4GVdl9SIKQEGULoEh/PO5K1REnXvHT6XOEthuKMUDWsLCi576mOWo3Xe8BfKdy2e2aMaW5rKGfMDlMDOA9RqA==", "dev": true, "license": "MIT", "engines": { @@ -27088,14 +27132,16 @@ } }, "node_modules/fork-ts-checker-webpack-plugin": { - "version": "8.0.0", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-9.1.0.tgz", + "integrity": "sha512-mpafl89VFPJmhnJ1ssH+8wmM2b50n+Rew5x42NeI2U78aRWgtkEtGmctp7iT16UjquJTjorEmIfESj3DxdW84Q==", "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.16.7", "chalk": "^4.1.2", - "chokidar": "^3.5.3", - "cosmiconfig": "^7.0.1", + "chokidar": "^4.0.1", + "cosmiconfig": "^8.2.0", "deepmerge": "^4.2.2", "fs-extra": "^10.0.0", "memfs": "^3.4.1", @@ -27106,8 +27152,7 @@ "tapable": "^2.2.1" }, "engines": { - "node": ">=12.13.0", - "yarn": ">=1.0.0" + "node": ">=14.21.3" }, "peerDependencies": { "typescript": ">3.6.0", @@ -27116,6 +27161,8 @@ }, "node_modules/fork-ts-checker-webpack-plugin/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", "dependencies": { @@ -27128,8 +27175,17 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, "node_modules/fork-ts-checker-webpack-plugin/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "license": "MIT", "dependencies": { @@ -27143,8 +27199,26 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/fork-ts-checker-webpack-plugin/node_modules/color-convert": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "license": "MIT", "dependencies": { @@ -27156,11 +27230,42 @@ }, "node_modules/fork-ts-checker-webpack-plugin/node_modules/color-name": { "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true, "license": "MIT" }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": { "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dev": true, "license": "MIT", "dependencies": { @@ -27174,14 +27279,31 @@ }, "node_modules/fork-ts-checker-webpack-plugin/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "license": "MIT", "engines": { "node": ">=8" } }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/fork-ts-checker-webpack-plugin/node_modules/memfs": { "version": "3.5.3", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", + "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", "dev": true, "license": "Unlicense", "dependencies": { @@ -27191,8 +27313,24 @@ "node": ">= 4.0.0" } }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/fork-ts-checker-webpack-plugin/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "license": "MIT", "dependencies": { @@ -27338,7 +27476,9 @@ } }, "node_modules/fs-monkey": { - "version": "1.0.6", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.1.0.tgz", + "integrity": "sha512-QMUezzXWII9EV5aTFXW1UBVUO77wYPpjqIF8/AviUCThNeSYZykpoTixUeaNNBwmCev0AMDWMAni+f8Hxb1IFw==", "dev": true, "license": "Unlicense" }, @@ -27594,23 +27734,6 @@ "node": ">=6" } }, - "node_modules/giget": { - "version": "1.2.5", - "dev": true, - "license": "MIT", - "dependencies": { - "citty": "^0.1.6", - "consola": "^3.4.0", - "defu": "^6.1.4", - "node-fetch-native": "^1.6.6", - "nypm": "^0.5.4", - "pathe": "^2.0.3", - "tar": "^6.2.1" - }, - "bin": { - "giget": "dist/cli.mjs" - } - }, "node_modules/github-from-package": { "version": "0.0.0", "license": "MIT", @@ -28519,6 +28642,19 @@ "node": ">=0.10.0" } }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, "node_modules/idb": { "version": "7.1.1", "license": "ISC" @@ -31736,6 +31872,8 @@ }, "node_modules/jscodeshift": { "version": "0.15.2", + "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.15.2.tgz", + "integrity": "sha512-FquR7Okgmc4Sd0aEDwqho3rEiKR3BdvuG9jfdHjLJ6JQoWSMpavug3AoIfnfWhxFlf+5pzQh8qjqz0DWFrNQzA==", "dev": true, "license": "MIT", "dependencies": { @@ -31774,6 +31912,8 @@ }, "node_modules/jscodeshift/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", "dependencies": { @@ -31788,6 +31928,8 @@ }, "node_modules/jscodeshift/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "license": "MIT", "dependencies": { @@ -31803,6 +31945,8 @@ }, "node_modules/jscodeshift/node_modules/color-convert": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "license": "MIT", "dependencies": { @@ -31814,11 +31958,15 @@ }, "node_modules/jscodeshift/node_modules/color-name": { "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true, "license": "MIT" }, "node_modules/jscodeshift/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "license": "MIT", "engines": { @@ -31827,6 +31975,8 @@ }, "node_modules/jscodeshift/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "license": "MIT", "dependencies": { @@ -31836,14 +31986,6 @@ "node": ">=8" } }, - "node_modules/jsdoc-type-pratt-parser": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.0.0" - } - }, "node_modules/jsesc": { "version": "2.5.2", "dev": true, @@ -32590,7 +32732,9 @@ "license": "MIT" }, "node_modules/loupe": { - "version": "3.1.3", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.2.1.tgz", + "integrity": "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==", "dev": true, "license": "MIT" }, @@ -32630,18 +32774,23 @@ }, "node_modules/lz-string": { "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", "dev": true, "license": "MIT", + "peer": true, "bin": { "lz-string": "bin/bin.js" } }, "node_modules/magic-string": { - "version": "0.30.17", + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0" + "@jridgewell/sourcemap-codec": "^1.5.5" } }, "node_modules/make-cancellable-promise": { @@ -32652,23 +32801,29 @@ } }, "node_modules/make-dir": { - "version": "2.1.0", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, "license": "MIT", "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" + "semver": "^6.0.0" }, "engines": { - "node": ">=6" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/make-dir/node_modules/semver": { - "version": "5.7.2", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "license": "ISC", "bin": { - "semver": "bin/semver" + "semver": "bin/semver.js" } }, "node_modules/make-error": { @@ -32728,11 +32883,6 @@ "tmpl": "1.0.5" } }, - "node_modules/map-or-similar": { - "version": "1.5.0", - "dev": true, - "license": "MIT" - }, "node_modules/mapbox-gl": { "version": "2.15.0", "license": "SEE LICENSE IN LICENSE.txt", @@ -32887,14 +33037,6 @@ "version": "5.2.1", "license": "MIT" }, - "node_modules/memoizerific": { - "version": "1.11.3", - "dev": true, - "license": "MIT", - "dependencies": { - "map-or-similar": "^1.5.0" - } - }, "node_modules/merge-descriptors": { "version": "1.0.3", "dev": true, @@ -33698,17 +33840,6 @@ "license": "MIT", "optional": true }, - "node_modules/mlly": { - "version": "1.7.4", - "dev": true, - "license": "MIT", - "dependencies": { - "acorn": "^8.14.0", - "pathe": "^2.0.1", - "pkg-types": "^1.3.0", - "ufo": "^1.5.4" - } - }, "node_modules/mrmime": { "version": "2.0.0", "dev": true, @@ -33875,6 +34006,8 @@ }, "node_modules/node-abort-controller": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz", + "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==", "dev": true, "license": "MIT" }, @@ -33898,6 +34031,8 @@ }, "node_modules/node-dir": { "version": "0.1.17", + "resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz", + "integrity": "sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==", "dev": true, "license": "MIT", "dependencies": { @@ -33925,11 +34060,6 @@ } } }, - "node_modules/node-fetch-native": { - "version": "1.6.6", - "dev": true, - "license": "MIT" - }, "node_modules/node-forge": { "version": "1.3.1", "license": "(BSD-3-Clause OR GPL-2.0)", @@ -34058,25 +34188,6 @@ "dev": true, "license": "MIT" }, - "node_modules/nypm": { - "version": "0.5.4", - "dev": true, - "license": "MIT", - "dependencies": { - "citty": "^0.1.6", - "consola": "^3.4.0", - "pathe": "^2.0.3", - "pkg-types": "^1.3.1", - "tinyexec": "^0.3.2", - "ufo": "^1.5.4" - }, - "bin": { - "nypm": "dist/cli.mjs" - }, - "engines": { - "node": "^14.16.0 || >=16.10.0" - } - }, "node_modules/ob1": { "version": "0.83.2", "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.83.2.tgz", @@ -34891,13 +35002,10 @@ "node": ">=6" } }, - "node_modules/pathe": { - "version": "2.0.3", - "dev": true, - "license": "MIT" - }, "node_modules/pathval": { - "version": "2.0.0", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz", + "integrity": "sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==", "dev": true, "license": "MIT", "engines": { @@ -35097,16 +35205,6 @@ "node": ">=8" } }, - "node_modules/pkg-types": { - "version": "1.3.1", - "dev": true, - "license": "MIT", - "dependencies": { - "confbox": "^0.1.8", - "mlly": "^1.7.4", - "pathe": "^2.0.1" - } - }, "node_modules/pkg-up": { "version": "3.1.0", "dev": true, @@ -35195,17 +35293,6 @@ "node": ">=10.13.0" } }, - "node_modules/polished": { - "version": "4.3.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.17.8" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/portfinder": { "version": "1.0.32", "dev": true, @@ -35279,8 +35366,73 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", + "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^7.0.0", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", + "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", + "dev": true, + "license": "ISC", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, "node_modules/postcss-selector-parser": { - "version": "6.0.10", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", "dev": true, "license": "MIT", "dependencies": { @@ -35930,15 +36082,17 @@ } }, "node_modules/react-docgen": { - "version": "7.1.1", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/react-docgen/-/react-docgen-8.0.2.tgz", + "integrity": "sha512-+NRMYs2DyTP4/tqWz371Oo50JqmWltR1h2gcdgUMAWZJIAvrd0/SqlCfx7tpzpl/s36rzw6qH2MjoNrxtRNYhA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/core": "^7.18.9", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9", - "@types/babel__core": "^7.18.0", - "@types/babel__traverse": "^7.18.0", + "@babel/core": "^7.28.0", + "@babel/traverse": "^7.28.0", + "@babel/types": "^7.28.2", + "@types/babel__core": "^7.20.5", + "@types/babel__traverse": "^7.20.7", "@types/doctrine": "^0.0.9", "@types/resolve": "^1.20.2", "doctrine": "^3.0.0", @@ -35946,24 +36100,44 @@ "strip-indent": "^4.0.0" }, "engines": { - "node": ">=16.14.0" + "node": "^20.9.0 || >=22" } }, "node_modules/react-docgen-typescript": { - "version": "2.2.2", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/react-docgen-typescript/-/react-docgen-typescript-2.4.0.tgz", + "integrity": "sha512-ZtAp5XTO5HRzQctjPU0ybY0RRCQO19X/8fxn3w7y2VVTUbGHDKULPTL4ky3vB05euSgG5NpALhEhDPvQ56wvXg==", "dev": true, "license": "MIT", "peerDependencies": { "typescript": ">= 4.3.x" } }, - "node_modules/react-docgen/node_modules/strip-indent": { - "version": "4.0.0", + "node_modules/react-docgen/node_modules/@babel/traverse": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz", + "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==", "dev": true, "license": "MIT", "dependencies": { - "min-indent": "^1.0.1" + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.5", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.5", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.5", + "debug": "^4.3.1" }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/react-docgen/node_modules/strip-indent": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.1.1.tgz", + "integrity": "sha512-SlyRoSkdh1dYP0PzclLE7r0M9sgbFKKMFXpFRUMNuKhQSbC6VQIGzq3E0qsfvGJaUFJPGv6Ws1NZ/haTAjfbMA==", + "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -37271,6 +37445,8 @@ }, "node_modules/recast": { "version": "0.23.11", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.23.11.tgz", + "integrity": "sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==", "dev": true, "license": "MIT", "dependencies": { @@ -37286,6 +37462,8 @@ }, "node_modules/recast/node_modules/source-map": { "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "license": "BSD-3-Clause", "engines": { @@ -39196,16 +39374,27 @@ } }, "node_modules/storybook": { - "version": "8.6.14", + "version": "10.1.10", + "resolved": "https://registry.npmjs.org/storybook/-/storybook-10.1.10.tgz", + "integrity": "sha512-oK0t0jEogiKKfv5Z1ao4Of99+xWw1TMUGuGRYDQS4kp2yyBsJQEgu7NI7OLYsCDI6gzt5p3RPtl1lqdeVLUi8A==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/core": "8.6.14" + "@storybook/global": "^5.0.0", + "@storybook/icons": "^2.0.0", + "@testing-library/jest-dom": "^6.6.3", + "@testing-library/user-event": "^14.6.1", + "@vitest/expect": "3.2.4", + "@vitest/spy": "3.2.4", + "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0 || ^0.25.0 || ^0.26.0 || ^0.27.0", + "open": "^10.2.0", + "recast": "^0.23.5", + "semver": "^7.6.2", + "use-sync-external-store": "^1.5.0", + "ws": "^8.18.0" }, "bin": { - "getstorybook": "bin/index.cjs", - "sb": "bin/index.cjs", - "storybook": "bin/index.cjs" + "storybook": "dist/bin/dispatcher.js" }, "funding": { "type": "opencollective", @@ -39220,6 +39409,51 @@ } } }, + "node_modules/storybook/node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/storybook/node_modules/open": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/open/-/open-10.2.0.tgz", + "integrity": "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "wsl-utils": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/storybook/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/stream-browserify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", @@ -39816,6 +40050,8 @@ }, "node_modules/temp": { "version": "0.8.4", + "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.4.tgz", + "integrity": "sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==", "dev": true, "license": "MIT", "dependencies": { @@ -39862,6 +40098,9 @@ }, "node_modules/temp/node_modules/glob": { "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, "license": "ISC", "dependencies": { @@ -39881,6 +40120,9 @@ }, "node_modules/temp/node_modules/rimraf": { "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, "license": "ISC", "dependencies": { @@ -39907,11 +40149,13 @@ } }, "node_modules/terser": { - "version": "5.30.3", + "version": "5.44.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.44.1.tgz", + "integrity": "sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==", "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", + "acorn": "^8.15.0", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, @@ -40154,11 +40398,6 @@ "dev": true, "license": "MIT" }, - "node_modules/tinyexec": { - "version": "0.3.2", - "dev": true, - "license": "MIT" - }, "node_modules/tinyglobby": { "version": "0.2.15", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", @@ -40212,7 +40451,9 @@ "license": "ISC" }, "node_modules/tinyrainbow": { - "version": "1.2.0", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz", + "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==", "dev": true, "license": "MIT", "engines": { @@ -40220,7 +40461,9 @@ } }, "node_modules/tinyspy": { - "version": "3.0.2", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.4.tgz", + "integrity": "sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==", "dev": true, "license": "MIT", "engines": { @@ -40727,11 +40970,6 @@ "node": "*" } }, - "node_modules/ufo": { - "version": "1.5.4", - "dev": true, - "license": "MIT" - }, "node_modules/uglify-js": { "version": "3.19.3", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", @@ -40813,17 +41051,6 @@ "node": ">=4" } }, - "node_modules/unicorn-magic": { - "version": "0.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/union": { "version": "0.5.0", "dev": true, @@ -40913,15 +41140,32 @@ } }, "node_modules/unplugin": { - "version": "1.16.1", + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-2.3.11.tgz", + "integrity": "sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==", "dev": true, "license": "MIT", "dependencies": { - "acorn": "^8.14.0", + "@jridgewell/remapping": "^2.3.5", + "acorn": "^8.15.0", + "picomatch": "^4.0.3", "webpack-virtual-modules": "^0.6.2" }, "engines": { - "node": ">=14.0.0" + "node": ">=18.12.0" + } + }, + "node_modules/unplugin/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, "node_modules/update-browserslist-db": { @@ -40965,18 +41209,6 @@ "version": "1.19.11", "license": "MIT" }, - "node_modules/url": { - "version": "0.11.4", - "dev": true, - "license": "MIT", - "dependencies": { - "punycode": "^1.4.1", - "qs": "^6.12.3" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/url-parse": { "version": "1.5.10", "dev": true, @@ -40991,11 +41223,6 @@ "dev": true, "license": "BSD" }, - "node_modules/url/node_modules/punycode": { - "version": "1.4.1", - "dev": true, - "license": "MIT" - }, "node_modules/use-latest-callback": { "version": "0.2.6", "resolved": "https://registry.npmjs.org/use-latest-callback/-/use-latest-callback-0.2.6.tgz", @@ -41025,18 +41252,6 @@ "dev": true, "license": "(WTFPL OR MIT)" }, - "node_modules/util": { - "version": "0.12.5", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" - } - }, "node_modules/util-deprecate": { "version": "1.0.2", "license": "MIT" @@ -41172,11 +41387,6 @@ "dev": true, "license": "MIT" }, - "node_modules/walk-up-path": { - "version": "3.0.1", - "dev": true, - "license": "ISC" - }, "node_modules/walker": { "version": "1.0.8", "license": "Apache-2.0", @@ -41384,6 +41594,8 @@ }, "node_modules/webpack-dev-middleware": { "version": "6.1.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-6.1.3.tgz", + "integrity": "sha512-A4ChP0Qj8oGociTs6UdlRUGANIGrCDL3y+pmQMc+dSsraXHCatFpmMey4mYELA+juqwUqwQsUgJJISXl1KWmiw==", "dev": true, "license": "MIT", "dependencies": { @@ -41411,11 +41623,15 @@ }, "node_modules/webpack-dev-middleware/node_modules/colorette": { "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", "dev": true, "license": "MIT" }, "node_modules/webpack-dev-middleware/node_modules/memfs": { "version": "3.5.3", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", + "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", "dev": true, "license": "Unlicense", "dependencies": { @@ -41426,7 +41642,9 @@ } }, "node_modules/webpack-dev-middleware/node_modules/schema-utils": { - "version": "4.3.0", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", "dev": true, "license": "MIT", "dependencies": { @@ -41631,6 +41849,8 @@ }, "node_modules/webpack-virtual-modules": { "version": "0.6.2", + "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz", + "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==", "dev": true, "license": "MIT" }, @@ -41956,6 +42176,8 @@ }, "node_modules/write-file-atomic": { "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", "dev": true, "license": "ISC", "dependencies": { @@ -41983,6 +42205,38 @@ } } }, + "node_modules/wsl-utils": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.1.0.tgz", + "integrity": "sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-wsl": "^3.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/wsl-utils/node_modules/is-wsl": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", + "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/xcode": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/xcode/-/xcode-3.0.1.tgz", diff --git a/package.json b/package.json index d49f7f282036..cbde8f3bd400 100644 --- a/package.json +++ b/package.json @@ -262,14 +262,12 @@ "@rock-js/plugin-metro": "0.11.9", "@rock-js/provider-s3": "0.11.9", "@sentry/webpack-plugin": "4.6.0", - "@storybook/addon-a11y": "^8.6.9", - "@storybook/addon-essentials": "^8.6.9", - "@storybook/addon-webpack5-compiler-babel": "^3.0.5", - "@storybook/cli": "^8.6.14", - "@storybook/manager-api": "^8.6.9", - "@storybook/react": "^8.6.9", - "@storybook/react-webpack5": "^8.6.9", - "@storybook/theming": "^8.6.9", + "@storybook/addon-a11y": "10.1.10", + "@storybook/addon-docs": "10.1.10", + "@storybook/addon-webpack5-compiler-babel": "4.0.0", + "@storybook/cli": "10.1.10", + "@storybook/react": "10.1.10", + "@storybook/react-webpack5": "10.1.10", "@svgr/webpack": "^6.0.0", "@testing-library/react-native": "13.2.0", "@trivago/prettier-plugin-sort-imports": "^4.2.0", @@ -297,6 +295,7 @@ "@types/webpack": "^5.28.5", "@types/webpack-bundle-analyzer": "^4.7.0", "@vercel/ncc": "0.38.1", + "@vitest/mocker": "4.0.16", "@vue/preload-webpack-plugin": "^2.0.0", "@welldone-software/why-did-you-render": "7.0.1", "babel-jest": "29.7.0", @@ -307,8 +306,8 @@ "babel-plugin-transform-remove-console": "^6.9.4", "clean-webpack-plugin": "^4.0.0", "concurrently": "^8.2.2", - "cspell": "9.4.0", "copy-webpack-plugin": "^10.1.0", + "cspell": "9.4.0", "css-loader": "^6.7.2", "csv-parse": "^5.5.5", "csv-writer": "^1.6.0", @@ -325,7 +324,7 @@ "eslint-plugin-lodash": "^7.4.0", "eslint-plugin-react-compiler": "^19.1.0-rc.2", "eslint-plugin-react-native-a11y": "^3.3.0", - "eslint-plugin-storybook": "^0.12.0", + "eslint-plugin-storybook": "^10.1.10", "eslint-plugin-testing-library": "^7.11.0", "eslint-plugin-you-dont-need-lodash-underscore": "^6.14.0", "glob": "^10.4.5", @@ -359,7 +358,7 @@ "setimmediate": "^1.0.5", "shellcheck": "^1.1.0", "source-map": "^0.7.4", - "storybook": "^8.6.9", + "storybook": "10.1.10", "style-loader": "^2.0.0", "svgo": "^4.0.0", "time-analytics-webpack-plugin": "^0.1.17", diff --git a/src/stories/AddressSearch.stories.tsx b/src/stories/AddressSearch.stories.tsx index 72284a8ea3d2..3b6406af94c5 100644 --- a/src/stories/AddressSearch.stories.tsx +++ b/src/stories/AddressSearch.stories.tsx @@ -1,4 +1,4 @@ -import type {Meta, StoryFn} from '@storybook/react'; +import type {Meta, StoryFn} from '@storybook/react-webpack5'; import React, {useState} from 'react'; import type {AddressSearchProps} from '@components/AddressSearch'; import AddressSearch from '@components/AddressSearch'; diff --git a/src/stories/Avatar.stories.tsx b/src/stories/Avatar.stories.tsx index 9a8d28fab030..c173666d3025 100644 --- a/src/stories/Avatar.stories.tsx +++ b/src/stories/Avatar.stories.tsx @@ -1,5 +1,5 @@ /* eslint-disable react/jsx-props-no-spreading */ -import type {Meta, StoryFn} from '@storybook/react'; +import type {Meta, StoryFn} from '@storybook/react-webpack5'; import React from 'react'; import {View} from 'react-native'; import type {AvatarProps} from '@components/Avatar'; diff --git a/src/stories/AvatarSelector.stories.tsx b/src/stories/AvatarSelector.stories.tsx index 4c4bb9b271d9..cb231cb63854 100644 --- a/src/stories/AvatarSelector.stories.tsx +++ b/src/stories/AvatarSelector.stories.tsx @@ -1,5 +1,5 @@ /* eslint-disable react/jsx-props-no-spreading */ -import type {Meta, StoryFn} from '@storybook/react'; +import type {Meta, StoryFn} from '@storybook/react-webpack5'; import React, {useState} from 'react'; import type {AvatarSelectorProps} from '@components/AvatarSelector'; import AvatarSelector from '@components/AvatarSelector'; diff --git a/src/stories/Banner.stories.tsx b/src/stories/Banner.stories.tsx index edecbbbf1de6..2ca2489dd8e0 100644 --- a/src/stories/Banner.stories.tsx +++ b/src/stories/Banner.stories.tsx @@ -1,4 +1,4 @@ -import type {StoryFn} from '@storybook/react'; +import type {StoryFn} from '@storybook/react-webpack5'; import React from 'react'; import type {BannerProps} from '@components/Banner'; import Banner from '@components/Banner'; diff --git a/src/stories/Button.stories.tsx b/src/stories/Button.stories.tsx index 820ea6a697f5..5b1c2bf06d27 100644 --- a/src/stories/Button.stories.tsx +++ b/src/stories/Button.stories.tsx @@ -1,5 +1,5 @@ /* eslint-disable react/jsx-props-no-spreading */ -import type {Meta, StoryFn} from '@storybook/react'; +import type {Meta, StoryFn} from '@storybook/react-webpack5'; import React, {useCallback, useState} from 'react'; import {View} from 'react-native'; import type {ButtonProps} from '@components/Button'; diff --git a/src/stories/ButtonWithDropdownMenu.stories.tsx b/src/stories/ButtonWithDropdownMenu.stories.tsx index d73e687be55c..60f1212c29e7 100644 --- a/src/stories/ButtonWithDropdownMenu.stories.tsx +++ b/src/stories/ButtonWithDropdownMenu.stories.tsx @@ -1,4 +1,4 @@ -import type {StoryFn} from '@storybook/react'; +import type {StoryFn} from '@storybook/react-webpack5'; import React, {useMemo} from 'react'; import ButtonWithDropdownMenu from '@components/ButtonWithDropdownMenu'; import type {ButtonWithDropdownMenuProps} from '@components/ButtonWithDropdownMenu/types'; diff --git a/src/stories/Checkbox.stories.tsx b/src/stories/Checkbox.stories.tsx index fda0b4050e2c..abb0da9c8f88 100644 --- a/src/stories/Checkbox.stories.tsx +++ b/src/stories/Checkbox.stories.tsx @@ -1,4 +1,4 @@ -import type {Meta, StoryFn} from '@storybook/react'; +import type {Meta, StoryFn} from '@storybook/react-webpack5'; import React from 'react'; import Checkbox from '@components/Checkbox'; import type {CheckboxProps} from '@components/Checkbox'; diff --git a/src/stories/CheckboxWithLabel.stories.tsx b/src/stories/CheckboxWithLabel.stories.tsx index db25b9d2d3b9..630a24100713 100644 --- a/src/stories/CheckboxWithLabel.stories.tsx +++ b/src/stories/CheckboxWithLabel.stories.tsx @@ -1,4 +1,4 @@ -import type {Meta, StoryFn} from '@storybook/react'; +import type {Meta, StoryFn} from '@storybook/react-webpack5'; import React from 'react'; import CheckboxWithLabel from '@components/CheckboxWithLabel'; import type {CheckboxWithLabelProps} from '@components/CheckboxWithLabel'; diff --git a/src/stories/Composer.stories.tsx b/src/stories/Composer.stories.tsx index dcc7555c819b..601303cd91dc 100644 --- a/src/stories/Composer.stories.tsx +++ b/src/stories/Composer.stories.tsx @@ -1,4 +1,4 @@ -import type {Meta} from '@storybook/react'; +import type {Meta} from '@storybook/react-webpack5'; // eslint-disable-next-line no-restricted-imports import {ExpensiMark} from 'expensify-common'; import React, {useState} from 'react'; diff --git a/src/stories/DragAndDrop.stories.tsx b/src/stories/DragAndDrop.stories.tsx index f899d7526ce7..6d77c10b06e6 100644 --- a/src/stories/DragAndDrop.stories.tsx +++ b/src/stories/DragAndDrop.stories.tsx @@ -1,4 +1,4 @@ -import type {Meta} from '@storybook/react'; +import type {Meta} from '@storybook/react-webpack5'; import React, {useState} from 'react'; import {Image, View} from 'react-native'; import DragAndDropConsumer from '@components/DragAndDrop/Consumer'; diff --git a/src/stories/EReceipt.stories.tsx b/src/stories/EReceipt.stories.tsx index 768ac6903f42..061a6f4fe2b4 100644 --- a/src/stories/EReceipt.stories.tsx +++ b/src/stories/EReceipt.stories.tsx @@ -1,5 +1,5 @@ /* eslint-disable @typescript-eslint/naming-convention, rulesdir/prefer-actions-set-data */ -import type {Meta, StoryFn} from '@storybook/react'; +import type {Meta, StoryFn} from '@storybook/react-webpack5'; import React from 'react'; import Onyx from 'react-native-onyx'; import type {EReceiptProps} from '@components/EReceipt'; diff --git a/src/stories/EReceiptThumbail.stories.tsx b/src/stories/EReceiptThumbail.stories.tsx index 6ac4413a083f..54ee90ebd83a 100644 --- a/src/stories/EReceiptThumbail.stories.tsx +++ b/src/stories/EReceiptThumbail.stories.tsx @@ -1,5 +1,5 @@ /* eslint-disable react/jsx-props-no-spreading */ -import type {Meta, StoryFn} from '@storybook/react'; +import type {Meta, StoryFn} from '@storybook/react-webpack5'; import React from 'react'; import {View} from 'react-native'; import type {EReceiptThumbnailProps} from '@components/EReceiptThumbnail'; diff --git a/src/stories/Form.stories.tsx b/src/stories/Form.stories.tsx index bd62ea70c092..38c34009b2b7 100644 --- a/src/stories/Form.stories.tsx +++ b/src/stories/Form.stories.tsx @@ -1,4 +1,4 @@ -import type {Meta, StoryFn} from '@storybook/react'; +import type {Meta, StoryFn} from '@storybook/react-webpack5'; import React, {useState} from 'react'; import type {ComponentType} from 'react'; import {View} from 'react-native'; diff --git a/src/stories/FormAlertWithSubmitButton.stories.tsx b/src/stories/FormAlertWithSubmitButton.stories.tsx index ca630bd971f5..37a65c4e9d3f 100644 --- a/src/stories/FormAlertWithSubmitButton.stories.tsx +++ b/src/stories/FormAlertWithSubmitButton.stories.tsx @@ -1,4 +1,4 @@ -import type {Meta, StoryFn} from '@storybook/react'; +import type {Meta, StoryFn} from '@storybook/react-webpack5'; import React from 'react'; import FormAlertWithSubmitButton from '@components/FormAlertWithSubmitButton'; import type {FormAlertWithSubmitButtonProps} from '@components/FormAlertWithSubmitButton'; diff --git a/src/stories/Header.stories.tsx b/src/stories/Header.stories.tsx index deab62f92701..fb38cf94d11f 100644 --- a/src/stories/Header.stories.tsx +++ b/src/stories/Header.stories.tsx @@ -1,4 +1,4 @@ -import type {Meta, StoryFn} from '@storybook/react'; +import type {Meta, StoryFn} from '@storybook/react-webpack5'; import React from 'react'; import type {HeaderProps} from '@components/Header'; import Header from '@components/Header'; diff --git a/src/stories/HeaderWithBackButton.stories.tsx b/src/stories/HeaderWithBackButton.stories.tsx index a29ced791c20..a293b99c0d9f 100644 --- a/src/stories/HeaderWithBackButton.stories.tsx +++ b/src/stories/HeaderWithBackButton.stories.tsx @@ -1,4 +1,4 @@ -import type {Meta, StoryFn} from '@storybook/react'; +import type {Meta, StoryFn} from '@storybook/react-webpack5'; import React from 'react'; import HeaderWithBackButton from '@components/HeaderWithBackButton'; import type HeaderWithBackButtonProps from '@components/HeaderWithBackButton/types'; diff --git a/src/stories/InlineSystemMessage.stories.tsx b/src/stories/InlineSystemMessage.stories.tsx index 4e8226d3fe6e..40479cda2199 100644 --- a/src/stories/InlineSystemMessage.stories.tsx +++ b/src/stories/InlineSystemMessage.stories.tsx @@ -1,4 +1,4 @@ -import type {Meta, StoryFn} from '@storybook/react'; +import type {Meta, StoryFn} from '@storybook/react-webpack5'; import React from 'react'; import InlineSystemMessage from '@components/InlineSystemMessage'; import type {InlineSystemMessageProps} from '@components/InlineSystemMessage'; diff --git a/src/stories/MagicCodeInput.stories.tsx b/src/stories/MagicCodeInput.stories.tsx index 6d46ad1b96db..ccd8dde3961d 100644 --- a/src/stories/MagicCodeInput.stories.tsx +++ b/src/stories/MagicCodeInput.stories.tsx @@ -1,4 +1,4 @@ -import type {Meta, StoryFn} from '@storybook/react'; +import type {Meta, StoryFn} from '@storybook/react-webpack5'; import React, {useState} from 'react'; import MagicCodeInput from '@components/MagicCodeInput'; import type {MagicCodeInputProps} from '@components/MagicCodeInput'; diff --git a/src/stories/MenuItem.stories.tsx b/src/stories/MenuItem.stories.tsx index 57268da69557..59cfad176c44 100644 --- a/src/stories/MenuItem.stories.tsx +++ b/src/stories/MenuItem.stories.tsx @@ -1,4 +1,4 @@ -import type {Meta, StoryFn} from '@storybook/react'; +import type {Meta, StoryFn} from '@storybook/react-webpack5'; import React from 'react'; import Chase from '@assets/images/bank-icons/chase.svg'; import MenuItem from '@components/MenuItem'; diff --git a/src/stories/MoneyRequestReportPreview.stories.tsx b/src/stories/MoneyRequestReportPreview.stories.tsx index 2afcbe316fc9..eb78a158975b 100644 --- a/src/stories/MoneyRequestReportPreview.stories.tsx +++ b/src/stories/MoneyRequestReportPreview.stories.tsx @@ -1,4 +1,4 @@ -import type {StoryFn} from '@storybook/react'; +import type {StoryFn} from '@storybook/react-webpack5'; import React from 'react'; import type {ListRenderItem} from 'react-native'; import {View} from 'react-native'; diff --git a/src/stories/NumberWithSymbolForm.stories.tsx b/src/stories/NumberWithSymbolForm.stories.tsx index 1dbf0e68ac87..7b0ae8f46ca8 100644 --- a/src/stories/NumberWithSymbolForm.stories.tsx +++ b/src/stories/NumberWithSymbolForm.stories.tsx @@ -1,4 +1,4 @@ -import type {Meta, StoryFn} from '@storybook/react'; +import type {Meta, StoryFn} from '@storybook/react-webpack5'; import React from 'react'; import Button from '@components/Button'; import NumberWithSymbolForm from '@components/NumberWithSymbolForm'; diff --git a/src/stories/Picker.stories.tsx b/src/stories/Picker.stories.tsx index 54d6296d4aef..bee63ddb8c1d 100644 --- a/src/stories/Picker.stories.tsx +++ b/src/stories/Picker.stories.tsx @@ -1,4 +1,4 @@ -import type {Meta, StoryFn} from '@storybook/react'; +import type {Meta, StoryFn} from '@storybook/react-webpack5'; import React, {useState} from 'react'; import Picker from '@components/Picker'; import type {BasePickerProps} from '@components/Picker/types'; diff --git a/src/stories/PopoverMenu.stories.tsx b/src/stories/PopoverMenu.stories.tsx index 1f0e84888c50..83e2878fd8d6 100644 --- a/src/stories/PopoverMenu.stories.tsx +++ b/src/stories/PopoverMenu.stories.tsx @@ -1,4 +1,4 @@ -import type {Meta, StoryFn} from '@storybook/react'; +import type {Meta, StoryFn} from '@storybook/react-webpack5'; import React from 'react'; import {SafeAreaProvider} from 'react-native-safe-area-context'; // eslint-disable-next-line no-restricted-imports diff --git a/src/stories/RadioButtonWithLabel.stories.tsx b/src/stories/RadioButtonWithLabel.stories.tsx index 6973e3f8f86f..134a256f08cb 100644 --- a/src/stories/RadioButtonWithLabel.stories.tsx +++ b/src/stories/RadioButtonWithLabel.stories.tsx @@ -1,4 +1,4 @@ -import type {Meta, StoryFn} from '@storybook/react'; +import type {Meta, StoryFn} from '@storybook/react-webpack5'; import React from 'react'; import RadioButtonWithLabel from '@components/RadioButtonWithLabel'; import type {RadioButtonWithLabelProps} from '@components/RadioButtonWithLabel'; diff --git a/src/stories/ReportActionItemImages.stories.tsx b/src/stories/ReportActionItemImages.stories.tsx index 34e8df9c0266..bceea78d32af 100644 --- a/src/stories/ReportActionItemImages.stories.tsx +++ b/src/stories/ReportActionItemImages.stories.tsx @@ -1,4 +1,4 @@ -import type {Meta, StoryFn} from '@storybook/react'; +import type {Meta, StoryFn} from '@storybook/react-webpack5'; import React from 'react'; import PressableWithoutFeedback from '@components/Pressable/PressableWithoutFeedback'; import type {ReportActionItemImagesProps} from '@components/ReportActionItem/ReportActionItemImages'; diff --git a/src/stories/SelectionList.stories.tsx b/src/stories/SelectionList.stories.tsx index cdd5ba688a06..b4b007f22ca6 100644 --- a/src/stories/SelectionList.stories.tsx +++ b/src/stories/SelectionList.stories.tsx @@ -1,4 +1,4 @@ -import type {Meta} from '@storybook/react'; +import type {Meta} from '@storybook/react-webpack5'; import React, {useMemo, useState} from 'react'; import Badge from '@components/Badge'; // eslint-disable-next-line no-restricted-imports diff --git a/src/stories/TextInput.stories.tsx b/src/stories/TextInput.stories.tsx index f76a0751cf82..f9585f45535d 100644 --- a/src/stories/TextInput.stories.tsx +++ b/src/stories/TextInput.stories.tsx @@ -1,4 +1,4 @@ -import type {Meta, StoryFn} from '@storybook/react'; +import type {Meta, StoryFn} from '@storybook/react-webpack5'; import React, {useState} from 'react'; import TextInput from '@components/TextInput'; import type {BaseTextInputProps} from '@components/TextInput/BaseTextInput/types'; diff --git a/src/stories/Tooltip.stories.tsx b/src/stories/Tooltip.stories.tsx index 13c185935404..4b241d88cfbc 100644 --- a/src/stories/Tooltip.stories.tsx +++ b/src/stories/Tooltip.stories.tsx @@ -1,4 +1,4 @@ -import type {Meta, StoryFn} from '@storybook/react'; +import type {Meta, StoryFn} from '@storybook/react-webpack5'; import React from 'react'; import Tooltip from '@components/Tooltip'; import type {TooltipExtendedProps} from '@components/Tooltip/types'; diff --git a/src/stories/TransactionItemRow.stories.tsx b/src/stories/TransactionItemRow.stories.tsx index a7567ef30627..9d24ea4a545c 100644 --- a/src/stories/TransactionItemRow.stories.tsx +++ b/src/stories/TransactionItemRow.stories.tsx @@ -1,4 +1,4 @@ -import type {Meta, StoryFn} from '@storybook/react'; +import type {Meta, StoryFn} from '@storybook/react-webpack5'; import React from 'react'; import ScreenWrapper from '@components/ScreenWrapper'; import type {SearchColumnType} from '@components/Search/types'; diff --git a/src/stories/TransactionPreviewContent.stories.tsx b/src/stories/TransactionPreviewContent.stories.tsx index 032d0845c588..f5e929e0da69 100644 --- a/src/stories/TransactionPreviewContent.stories.tsx +++ b/src/stories/TransactionPreviewContent.stories.tsx @@ -1,5 +1,5 @@ -import type {InputType} from '@storybook/csf'; -import type {Meta, StoryFn} from '@storybook/react'; +import type {InputType} from 'storybook/internal/csf'; +import type {Meta, StoryFn} from '@storybook/react-webpack5'; import React from 'react'; import {View} from 'react-native'; import type {ValueOf} from 'type-fest'; From 70ab73c81373a8205beffc99f26f2b4d3e9e45db Mon Sep 17 00:00:00 2001 From: rory Date: Wed, 24 Dec 2025 07:50:49 -0800 Subject: [PATCH 2/9] Fix prettier --- .storybook/main.ts | 6 +----- src/stories/TransactionPreviewContent.stories.tsx | 2 +- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/.storybook/main.ts b/.storybook/main.ts index cf64417a2a1d..3afea997a315 100644 --- a/.storybook/main.ts +++ b/.storybook/main.ts @@ -2,11 +2,7 @@ import type {StorybookConfig} from 'storybook/internal/types'; const main: StorybookConfig = { stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|ts|tsx)'], - addons: [ - '@storybook/addon-a11y', - '@storybook/addon-webpack5-compiler-babel', - '@storybook/addon-docs' - ], + addons: ['@storybook/addon-a11y', '@storybook/addon-webpack5-compiler-babel', '@storybook/addon-docs'], staticDirs: ['./public', {from: '../assets/css', to: 'css'}, {from: '../assets/fonts/web', to: 'fonts'}], core: {}, diff --git a/src/stories/TransactionPreviewContent.stories.tsx b/src/stories/TransactionPreviewContent.stories.tsx index f5e929e0da69..cca92bd51081 100644 --- a/src/stories/TransactionPreviewContent.stories.tsx +++ b/src/stories/TransactionPreviewContent.stories.tsx @@ -1,7 +1,7 @@ -import type {InputType} from 'storybook/internal/csf'; import type {Meta, StoryFn} from '@storybook/react-webpack5'; import React from 'react'; import {View} from 'react-native'; +import type {InputType} from 'storybook/internal/csf'; import type {ValueOf} from 'type-fest'; import TransactionPreviewContent from '@components/ReportActionItem/TransactionPreview/TransactionPreviewContent'; import type {TransactionPreviewContentProps} from '@components/ReportActionItem/TransactionPreview/types'; From 176da77428654e9490c5bdde6aef46d7635822dd Mon Sep 17 00:00:00 2001 From: rory Date: Wed, 24 Dec 2025 07:51:19 -0800 Subject: [PATCH 3/9] Rebuild gh actions --- .../javascript/authorChecklist/index.js | 871 +++++++++--------- 1 file changed, 444 insertions(+), 427 deletions(-) diff --git a/.github/actions/javascript/authorChecklist/index.js b/.github/actions/javascript/authorChecklist/index.js index ba98ebae665a..8cf35afbe0a8 100644 --- a/.github/actions/javascript/authorChecklist/index.js +++ b/.github/actions/javascript/authorChecklist/index.js @@ -4171,444 +4171,461 @@ module.exports = jsesc; /***/ }), /***/ 7225: -/***/ (function(__unused_webpack_module, exports) { +/***/ (function(module, __unused_webpack_exports, __nccwpck_require__) { +/* module decorator */ module = __nccwpck_require__.nmd(module); (function (global, factory) { - true ? factory(exports) : - 0; -})(this, (function (exports) { 'use strict'; - - const comma = ','.charCodeAt(0); - const semicolon = ';'.charCodeAt(0); - const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; - const intToChar = new Uint8Array(64); // 64 possible chars. - const charToInt = new Uint8Array(128); // z is 122 in ASCII - for (let i = 0; i < chars.length; i++) { - const c = chars.charCodeAt(i); - intToChar[i] = c; - charToInt[c] = i; - } - function decodeInteger(reader, relative) { - let value = 0; - let shift = 0; - let integer = 0; - do { - const c = reader.next(); - integer = charToInt[c]; - value |= (integer & 31) << shift; - shift += 5; - } while (integer & 32); - const shouldNegate = value & 1; - value >>>= 1; - if (shouldNegate) { - value = -0x80000000 | -value; - } - return relative + value; - } - function encodeInteger(builder, num, relative) { - let delta = num - relative; - delta = delta < 0 ? (-delta << 1) | 1 : delta << 1; - do { - let clamped = delta & 0b011111; - delta >>>= 5; - if (delta > 0) - clamped |= 0b100000; - builder.write(intToChar[clamped]); - } while (delta > 0); - return num; - } - function hasMoreVlq(reader, max) { - if (reader.pos >= max) - return false; - return reader.peek() !== comma; - } - - const bufLength = 1024 * 16; - // Provide a fallback for older environments. - const td = typeof TextDecoder !== 'undefined' - ? /* #__PURE__ */ new TextDecoder() - : typeof Buffer !== 'undefined' - ? { - decode(buf) { - const out = Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength); - return out.toString(); - }, - } - : { - decode(buf) { - let out = ''; - for (let i = 0; i < buf.length; i++) { - out += String.fromCharCode(buf[i]); - } - return out; - }, - }; - class StringWriter { - constructor() { - this.pos = 0; - this.out = ''; - this.buffer = new Uint8Array(bufLength); - } - write(v) { - const { buffer } = this; - buffer[this.pos++] = v; - if (this.pos === bufLength) { - this.out += td.decode(buffer); - this.pos = 0; - } - } - flush() { - const { buffer, out, pos } = this; - return pos > 0 ? out + td.decode(buffer.subarray(0, pos)) : out; - } + if (true) { + factory(module); + module.exports = def(module); + } else {} + function def(m) { return 'default' in m.exports ? m.exports.default : m.exports; } +})(this, (function (module) { +"use strict"; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// src/sourcemap-codec.ts +var sourcemap_codec_exports = {}; +__export(sourcemap_codec_exports, { + decode: () => decode, + decodeGeneratedRanges: () => decodeGeneratedRanges, + decodeOriginalScopes: () => decodeOriginalScopes, + encode: () => encode, + encodeGeneratedRanges: () => encodeGeneratedRanges, + encodeOriginalScopes: () => encodeOriginalScopes +}); +module.exports = __toCommonJS(sourcemap_codec_exports); + +// src/vlq.ts +var comma = ",".charCodeAt(0); +var semicolon = ";".charCodeAt(0); +var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; +var intToChar = new Uint8Array(64); +var charToInt = new Uint8Array(128); +for (let i = 0; i < chars.length; i++) { + const c = chars.charCodeAt(i); + intToChar[i] = c; + charToInt[c] = i; +} +function decodeInteger(reader, relative) { + let value = 0; + let shift = 0; + let integer = 0; + do { + const c = reader.next(); + integer = charToInt[c]; + value |= (integer & 31) << shift; + shift += 5; + } while (integer & 32); + const shouldNegate = value & 1; + value >>>= 1; + if (shouldNegate) { + value = -2147483648 | -value; + } + return relative + value; +} +function encodeInteger(builder, num, relative) { + let delta = num - relative; + delta = delta < 0 ? -delta << 1 | 1 : delta << 1; + do { + let clamped = delta & 31; + delta >>>= 5; + if (delta > 0) clamped |= 32; + builder.write(intToChar[clamped]); + } while (delta > 0); + return num; +} +function hasMoreVlq(reader, max) { + if (reader.pos >= max) return false; + return reader.peek() !== comma; +} + +// src/strings.ts +var bufLength = 1024 * 16; +var td = typeof TextDecoder !== "undefined" ? /* @__PURE__ */ new TextDecoder() : typeof Buffer !== "undefined" ? { + decode(buf) { + const out = Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength); + return out.toString(); + } +} : { + decode(buf) { + let out = ""; + for (let i = 0; i < buf.length; i++) { + out += String.fromCharCode(buf[i]); } - class StringReader { - constructor(buffer) { - this.pos = 0; - this.buffer = buffer; - } - next() { - return this.buffer.charCodeAt(this.pos++); - } - peek() { - return this.buffer.charCodeAt(this.pos); - } - indexOf(char) { - const { buffer, pos } = this; - const idx = buffer.indexOf(char, pos); - return idx === -1 ? buffer.length : idx; - } + return out; + } +}; +var StringWriter = class { + constructor() { + this.pos = 0; + this.out = ""; + this.buffer = new Uint8Array(bufLength); + } + write(v) { + const { buffer } = this; + buffer[this.pos++] = v; + if (this.pos === bufLength) { + this.out += td.decode(buffer); + this.pos = 0; } + } + flush() { + const { buffer, out, pos } = this; + return pos > 0 ? out + td.decode(buffer.subarray(0, pos)) : out; + } +}; +var StringReader = class { + constructor(buffer) { + this.pos = 0; + this.buffer = buffer; + } + next() { + return this.buffer.charCodeAt(this.pos++); + } + peek() { + return this.buffer.charCodeAt(this.pos); + } + indexOf(char) { + const { buffer, pos } = this; + const idx = buffer.indexOf(char, pos); + return idx === -1 ? buffer.length : idx; + } +}; - const EMPTY = []; - function decodeOriginalScopes(input) { - const { length } = input; - const reader = new StringReader(input); - const scopes = []; - const stack = []; - let line = 0; - for (; reader.pos < length; reader.pos++) { - line = decodeInteger(reader, line); - const column = decodeInteger(reader, 0); - if (!hasMoreVlq(reader, length)) { - const last = stack.pop(); - last[2] = line; - last[3] = column; - continue; - } - const kind = decodeInteger(reader, 0); - const fields = decodeInteger(reader, 0); - const hasName = fields & 0b0001; - const scope = (hasName ? [line, column, 0, 0, kind, decodeInteger(reader, 0)] : [line, column, 0, 0, kind]); - let vars = EMPTY; - if (hasMoreVlq(reader, length)) { - vars = []; - do { - const varsIndex = decodeInteger(reader, 0); - vars.push(varsIndex); - } while (hasMoreVlq(reader, length)); - } - scope.vars = vars; - scopes.push(scope); - stack.push(scope); - } - return scopes; - } - function encodeOriginalScopes(scopes) { - const writer = new StringWriter(); - for (let i = 0; i < scopes.length;) { - i = _encodeOriginalScopes(scopes, i, writer, [0]); - } - return writer.flush(); - } - function _encodeOriginalScopes(scopes, index, writer, state) { - const scope = scopes[index]; - const { 0: startLine, 1: startColumn, 2: endLine, 3: endColumn, 4: kind, vars } = scope; - if (index > 0) - writer.write(comma); - state[0] = encodeInteger(writer, startLine, state[0]); - encodeInteger(writer, startColumn, 0); - encodeInteger(writer, kind, 0); - const fields = scope.length === 6 ? 0b0001 : 0; - encodeInteger(writer, fields, 0); - if (scope.length === 6) - encodeInteger(writer, scope[5], 0); - for (const v of vars) { - encodeInteger(writer, v, 0); - } - for (index++; index < scopes.length;) { - const next = scopes[index]; - const { 0: l, 1: c } = next; - if (l > endLine || (l === endLine && c >= endColumn)) { - break; - } - index = _encodeOriginalScopes(scopes, index, writer, state); - } - writer.write(comma); - state[0] = encodeInteger(writer, endLine, state[0]); - encodeInteger(writer, endColumn, 0); - return index; - } - function decodeGeneratedRanges(input) { - const { length } = input; - const reader = new StringReader(input); - const ranges = []; - const stack = []; - let genLine = 0; - let definitionSourcesIndex = 0; - let definitionScopeIndex = 0; - let callsiteSourcesIndex = 0; - let callsiteLine = 0; - let callsiteColumn = 0; - let bindingLine = 0; - let bindingColumn = 0; - do { - const semi = reader.indexOf(';'); - let genColumn = 0; - for (; reader.pos < semi; reader.pos++) { - genColumn = decodeInteger(reader, genColumn); - if (!hasMoreVlq(reader, semi)) { - const last = stack.pop(); - last[2] = genLine; - last[3] = genColumn; - continue; - } - const fields = decodeInteger(reader, 0); - const hasDefinition = fields & 0b0001; - const hasCallsite = fields & 0b0010; - const hasScope = fields & 0b0100; - let callsite = null; - let bindings = EMPTY; - let range; - if (hasDefinition) { - const defSourcesIndex = decodeInteger(reader, definitionSourcesIndex); - definitionScopeIndex = decodeInteger(reader, definitionSourcesIndex === defSourcesIndex ? definitionScopeIndex : 0); - definitionSourcesIndex = defSourcesIndex; - range = [genLine, genColumn, 0, 0, defSourcesIndex, definitionScopeIndex]; - } - else { - range = [genLine, genColumn, 0, 0]; - } - range.isScope = !!hasScope; - if (hasCallsite) { - const prevCsi = callsiteSourcesIndex; - const prevLine = callsiteLine; - callsiteSourcesIndex = decodeInteger(reader, callsiteSourcesIndex); - const sameSource = prevCsi === callsiteSourcesIndex; - callsiteLine = decodeInteger(reader, sameSource ? callsiteLine : 0); - callsiteColumn = decodeInteger(reader, sameSource && prevLine === callsiteLine ? callsiteColumn : 0); - callsite = [callsiteSourcesIndex, callsiteLine, callsiteColumn]; - } - range.callsite = callsite; - if (hasMoreVlq(reader, semi)) { - bindings = []; - do { - bindingLine = genLine; - bindingColumn = genColumn; - const expressionsCount = decodeInteger(reader, 0); - let expressionRanges; - if (expressionsCount < -1) { - expressionRanges = [[decodeInteger(reader, 0)]]; - for (let i = -1; i > expressionsCount; i--) { - const prevBl = bindingLine; - bindingLine = decodeInteger(reader, bindingLine); - bindingColumn = decodeInteger(reader, bindingLine === prevBl ? bindingColumn : 0); - const expression = decodeInteger(reader, 0); - expressionRanges.push([expression, bindingLine, bindingColumn]); - } - } - else { - expressionRanges = [[expressionsCount]]; - } - bindings.push(expressionRanges); - } while (hasMoreVlq(reader, semi)); - } - range.bindings = bindings; - ranges.push(range); - stack.push(range); - } - genLine++; - reader.pos = semi + 1; - } while (reader.pos < length); - return ranges; +// src/scopes.ts +var EMPTY = []; +function decodeOriginalScopes(input) { + const { length } = input; + const reader = new StringReader(input); + const scopes = []; + const stack = []; + let line = 0; + for (; reader.pos < length; reader.pos++) { + line = decodeInteger(reader, line); + const column = decodeInteger(reader, 0); + if (!hasMoreVlq(reader, length)) { + const last = stack.pop(); + last[2] = line; + last[3] = column; + continue; } - function encodeGeneratedRanges(ranges) { - if (ranges.length === 0) - return ''; - const writer = new StringWriter(); - for (let i = 0; i < ranges.length;) { - i = _encodeGeneratedRanges(ranges, i, writer, [0, 0, 0, 0, 0, 0, 0]); - } - return writer.flush(); - } - function _encodeGeneratedRanges(ranges, index, writer, state) { - const range = ranges[index]; - const { 0: startLine, 1: startColumn, 2: endLine, 3: endColumn, isScope, callsite, bindings, } = range; - if (state[0] < startLine) { - catchupLine(writer, state[0], startLine); - state[0] = startLine; - state[1] = 0; - } - else if (index > 0) { - writer.write(comma); - } - state[1] = encodeInteger(writer, range[1], state[1]); - const fields = (range.length === 6 ? 0b0001 : 0) | (callsite ? 0b0010 : 0) | (isScope ? 0b0100 : 0); - encodeInteger(writer, fields, 0); - if (range.length === 6) { - const { 4: sourcesIndex, 5: scopesIndex } = range; - if (sourcesIndex !== state[2]) { - state[3] = 0; - } - state[2] = encodeInteger(writer, sourcesIndex, state[2]); - state[3] = encodeInteger(writer, scopesIndex, state[3]); - } - if (callsite) { - const { 0: sourcesIndex, 1: callLine, 2: callColumn } = range.callsite; - if (sourcesIndex !== state[4]) { - state[5] = 0; - state[6] = 0; - } - else if (callLine !== state[5]) { - state[6] = 0; - } - state[4] = encodeInteger(writer, sourcesIndex, state[4]); - state[5] = encodeInteger(writer, callLine, state[5]); - state[6] = encodeInteger(writer, callColumn, state[6]); - } - if (bindings) { - for (const binding of bindings) { - if (binding.length > 1) - encodeInteger(writer, -binding.length, 0); - const expression = binding[0][0]; - encodeInteger(writer, expression, 0); - let bindingStartLine = startLine; - let bindingStartColumn = startColumn; - for (let i = 1; i < binding.length; i++) { - const expRange = binding[i]; - bindingStartLine = encodeInteger(writer, expRange[1], bindingStartLine); - bindingStartColumn = encodeInteger(writer, expRange[2], bindingStartColumn); - encodeInteger(writer, expRange[0], 0); - } - } - } - for (index++; index < ranges.length;) { - const next = ranges[index]; - const { 0: l, 1: c } = next; - if (l > endLine || (l === endLine && c >= endColumn)) { - break; - } - index = _encodeGeneratedRanges(ranges, index, writer, state); - } - if (state[0] < endLine) { - catchupLine(writer, state[0], endLine); - state[0] = endLine; - state[1] = 0; - } - else { - writer.write(comma); - } - state[1] = encodeInteger(writer, endColumn, state[1]); - return index; + const kind = decodeInteger(reader, 0); + const fields = decodeInteger(reader, 0); + const hasName = fields & 1; + const scope = hasName ? [line, column, 0, 0, kind, decodeInteger(reader, 0)] : [line, column, 0, 0, kind]; + let vars = EMPTY; + if (hasMoreVlq(reader, length)) { + vars = []; + do { + const varsIndex = decodeInteger(reader, 0); + vars.push(varsIndex); + } while (hasMoreVlq(reader, length)); + } + scope.vars = vars; + scopes.push(scope); + stack.push(scope); + } + return scopes; +} +function encodeOriginalScopes(scopes) { + const writer = new StringWriter(); + for (let i = 0; i < scopes.length; ) { + i = _encodeOriginalScopes(scopes, i, writer, [0]); + } + return writer.flush(); +} +function _encodeOriginalScopes(scopes, index, writer, state) { + const scope = scopes[index]; + const { 0: startLine, 1: startColumn, 2: endLine, 3: endColumn, 4: kind, vars } = scope; + if (index > 0) writer.write(comma); + state[0] = encodeInteger(writer, startLine, state[0]); + encodeInteger(writer, startColumn, 0); + encodeInteger(writer, kind, 0); + const fields = scope.length === 6 ? 1 : 0; + encodeInteger(writer, fields, 0); + if (scope.length === 6) encodeInteger(writer, scope[5], 0); + for (const v of vars) { + encodeInteger(writer, v, 0); + } + for (index++; index < scopes.length; ) { + const next = scopes[index]; + const { 0: l, 1: c } = next; + if (l > endLine || l === endLine && c >= endColumn) { + break; } - function catchupLine(writer, lastLine, line) { - do { - writer.write(semicolon); - } while (++lastLine < line); - } - - function decode(mappings) { - const { length } = mappings; - const reader = new StringReader(mappings); - const decoded = []; - let genColumn = 0; - let sourcesIndex = 0; - let sourceLine = 0; - let sourceColumn = 0; - let namesIndex = 0; + index = _encodeOriginalScopes(scopes, index, writer, state); + } + writer.write(comma); + state[0] = encodeInteger(writer, endLine, state[0]); + encodeInteger(writer, endColumn, 0); + return index; +} +function decodeGeneratedRanges(input) { + const { length } = input; + const reader = new StringReader(input); + const ranges = []; + const stack = []; + let genLine = 0; + let definitionSourcesIndex = 0; + let definitionScopeIndex = 0; + let callsiteSourcesIndex = 0; + let callsiteLine = 0; + let callsiteColumn = 0; + let bindingLine = 0; + let bindingColumn = 0; + do { + const semi = reader.indexOf(";"); + let genColumn = 0; + for (; reader.pos < semi; reader.pos++) { + genColumn = decodeInteger(reader, genColumn); + if (!hasMoreVlq(reader, semi)) { + const last = stack.pop(); + last[2] = genLine; + last[3] = genColumn; + continue; + } + const fields = decodeInteger(reader, 0); + const hasDefinition = fields & 1; + const hasCallsite = fields & 2; + const hasScope = fields & 4; + let callsite = null; + let bindings = EMPTY; + let range; + if (hasDefinition) { + const defSourcesIndex = decodeInteger(reader, definitionSourcesIndex); + definitionScopeIndex = decodeInteger( + reader, + definitionSourcesIndex === defSourcesIndex ? definitionScopeIndex : 0 + ); + definitionSourcesIndex = defSourcesIndex; + range = [genLine, genColumn, 0, 0, defSourcesIndex, definitionScopeIndex]; + } else { + range = [genLine, genColumn, 0, 0]; + } + range.isScope = !!hasScope; + if (hasCallsite) { + const prevCsi = callsiteSourcesIndex; + const prevLine = callsiteLine; + callsiteSourcesIndex = decodeInteger(reader, callsiteSourcesIndex); + const sameSource = prevCsi === callsiteSourcesIndex; + callsiteLine = decodeInteger(reader, sameSource ? callsiteLine : 0); + callsiteColumn = decodeInteger( + reader, + sameSource && prevLine === callsiteLine ? callsiteColumn : 0 + ); + callsite = [callsiteSourcesIndex, callsiteLine, callsiteColumn]; + } + range.callsite = callsite; + if (hasMoreVlq(reader, semi)) { + bindings = []; do { - const semi = reader.indexOf(';'); - const line = []; - let sorted = true; - let lastCol = 0; - genColumn = 0; - while (reader.pos < semi) { - let seg; - genColumn = decodeInteger(reader, genColumn); - if (genColumn < lastCol) - sorted = false; - lastCol = genColumn; - if (hasMoreVlq(reader, semi)) { - sourcesIndex = decodeInteger(reader, sourcesIndex); - sourceLine = decodeInteger(reader, sourceLine); - sourceColumn = decodeInteger(reader, sourceColumn); - if (hasMoreVlq(reader, semi)) { - namesIndex = decodeInteger(reader, namesIndex); - seg = [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex]; - } - else { - seg = [genColumn, sourcesIndex, sourceLine, sourceColumn]; - } - } - else { - seg = [genColumn]; - } - line.push(seg); - reader.pos++; - } - if (!sorted) - sort(line); - decoded.push(line); - reader.pos = semi + 1; - } while (reader.pos <= length); - return decoded; - } - function sort(line) { - line.sort(sortComparator); - } - function sortComparator(a, b) { - return a[0] - b[0]; - } - function encode(decoded) { - const writer = new StringWriter(); - let sourcesIndex = 0; - let sourceLine = 0; - let sourceColumn = 0; - let namesIndex = 0; - for (let i = 0; i < decoded.length; i++) { - const line = decoded[i]; - if (i > 0) - writer.write(semicolon); - if (line.length === 0) - continue; - let genColumn = 0; - for (let j = 0; j < line.length; j++) { - const segment = line[j]; - if (j > 0) - writer.write(comma); - genColumn = encodeInteger(writer, segment[0], genColumn); - if (segment.length === 1) - continue; - sourcesIndex = encodeInteger(writer, segment[1], sourcesIndex); - sourceLine = encodeInteger(writer, segment[2], sourceLine); - sourceColumn = encodeInteger(writer, segment[3], sourceColumn); - if (segment.length === 4) - continue; - namesIndex = encodeInteger(writer, segment[4], namesIndex); + bindingLine = genLine; + bindingColumn = genColumn; + const expressionsCount = decodeInteger(reader, 0); + let expressionRanges; + if (expressionsCount < -1) { + expressionRanges = [[decodeInteger(reader, 0)]]; + for (let i = -1; i > expressionsCount; i--) { + const prevBl = bindingLine; + bindingLine = decodeInteger(reader, bindingLine); + bindingColumn = decodeInteger(reader, bindingLine === prevBl ? bindingColumn : 0); + const expression = decodeInteger(reader, 0); + expressionRanges.push([expression, bindingLine, bindingColumn]); } - } - return writer.flush(); + } else { + expressionRanges = [[expressionsCount]]; + } + bindings.push(expressionRanges); + } while (hasMoreVlq(reader, semi)); + } + range.bindings = bindings; + ranges.push(range); + stack.push(range); } + genLine++; + reader.pos = semi + 1; + } while (reader.pos < length); + return ranges; +} +function encodeGeneratedRanges(ranges) { + if (ranges.length === 0) return ""; + const writer = new StringWriter(); + for (let i = 0; i < ranges.length; ) { + i = _encodeGeneratedRanges(ranges, i, writer, [0, 0, 0, 0, 0, 0, 0]); + } + return writer.flush(); +} +function _encodeGeneratedRanges(ranges, index, writer, state) { + const range = ranges[index]; + const { + 0: startLine, + 1: startColumn, + 2: endLine, + 3: endColumn, + isScope, + callsite, + bindings + } = range; + if (state[0] < startLine) { + catchupLine(writer, state[0], startLine); + state[0] = startLine; + state[1] = 0; + } else if (index > 0) { + writer.write(comma); + } + state[1] = encodeInteger(writer, range[1], state[1]); + const fields = (range.length === 6 ? 1 : 0) | (callsite ? 2 : 0) | (isScope ? 4 : 0); + encodeInteger(writer, fields, 0); + if (range.length === 6) { + const { 4: sourcesIndex, 5: scopesIndex } = range; + if (sourcesIndex !== state[2]) { + state[3] = 0; + } + state[2] = encodeInteger(writer, sourcesIndex, state[2]); + state[3] = encodeInteger(writer, scopesIndex, state[3]); + } + if (callsite) { + const { 0: sourcesIndex, 1: callLine, 2: callColumn } = range.callsite; + if (sourcesIndex !== state[4]) { + state[5] = 0; + state[6] = 0; + } else if (callLine !== state[5]) { + state[6] = 0; + } + state[4] = encodeInteger(writer, sourcesIndex, state[4]); + state[5] = encodeInteger(writer, callLine, state[5]); + state[6] = encodeInteger(writer, callColumn, state[6]); + } + if (bindings) { + for (const binding of bindings) { + if (binding.length > 1) encodeInteger(writer, -binding.length, 0); + const expression = binding[0][0]; + encodeInteger(writer, expression, 0); + let bindingStartLine = startLine; + let bindingStartColumn = startColumn; + for (let i = 1; i < binding.length; i++) { + const expRange = binding[i]; + bindingStartLine = encodeInteger(writer, expRange[1], bindingStartLine); + bindingStartColumn = encodeInteger(writer, expRange[2], bindingStartColumn); + encodeInteger(writer, expRange[0], 0); + } + } + } + for (index++; index < ranges.length; ) { + const next = ranges[index]; + const { 0: l, 1: c } = next; + if (l > endLine || l === endLine && c >= endColumn) { + break; + } + index = _encodeGeneratedRanges(ranges, index, writer, state); + } + if (state[0] < endLine) { + catchupLine(writer, state[0], endLine); + state[0] = endLine; + state[1] = 0; + } else { + writer.write(comma); + } + state[1] = encodeInteger(writer, endColumn, state[1]); + return index; +} +function catchupLine(writer, lastLine, line) { + do { + writer.write(semicolon); + } while (++lastLine < line); +} - exports.decode = decode; - exports.decodeGeneratedRanges = decodeGeneratedRanges; - exports.decodeOriginalScopes = decodeOriginalScopes; - exports.encode = encode; - exports.encodeGeneratedRanges = encodeGeneratedRanges; - exports.encodeOriginalScopes = encodeOriginalScopes; - - Object.defineProperty(exports, '__esModule', { value: true }); - +// src/sourcemap-codec.ts +function decode(mappings) { + const { length } = mappings; + const reader = new StringReader(mappings); + const decoded = []; + let genColumn = 0; + let sourcesIndex = 0; + let sourceLine = 0; + let sourceColumn = 0; + let namesIndex = 0; + do { + const semi = reader.indexOf(";"); + const line = []; + let sorted = true; + let lastCol = 0; + genColumn = 0; + while (reader.pos < semi) { + let seg; + genColumn = decodeInteger(reader, genColumn); + if (genColumn < lastCol) sorted = false; + lastCol = genColumn; + if (hasMoreVlq(reader, semi)) { + sourcesIndex = decodeInteger(reader, sourcesIndex); + sourceLine = decodeInteger(reader, sourceLine); + sourceColumn = decodeInteger(reader, sourceColumn); + if (hasMoreVlq(reader, semi)) { + namesIndex = decodeInteger(reader, namesIndex); + seg = [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex]; + } else { + seg = [genColumn, sourcesIndex, sourceLine, sourceColumn]; + } + } else { + seg = [genColumn]; + } + line.push(seg); + reader.pos++; + } + if (!sorted) sort(line); + decoded.push(line); + reader.pos = semi + 1; + } while (reader.pos <= length); + return decoded; +} +function sort(line) { + line.sort(sortComparator); +} +function sortComparator(a, b) { + return a[0] - b[0]; +} +function encode(decoded) { + const writer = new StringWriter(); + let sourcesIndex = 0; + let sourceLine = 0; + let sourceColumn = 0; + let namesIndex = 0; + for (let i = 0; i < decoded.length; i++) { + const line = decoded[i]; + if (i > 0) writer.write(semicolon); + if (line.length === 0) continue; + let genColumn = 0; + for (let j = 0; j < line.length; j++) { + const segment = line[j]; + if (j > 0) writer.write(comma); + genColumn = encodeInteger(writer, segment[0], genColumn); + if (segment.length === 1) continue; + sourcesIndex = encodeInteger(writer, segment[1], sourcesIndex); + sourceLine = encodeInteger(writer, segment[2], sourceLine); + sourceColumn = encodeInteger(writer, segment[3], sourceColumn); + if (segment.length === 4) continue; + namesIndex = encodeInteger(writer, segment[4], namesIndex); + } + } + return writer.flush(); +} })); //# sourceMappingURL=sourcemap-codec.umd.js.map From 95dec4d20373548d17a9f96b061990baf5991f2a Mon Sep 17 00:00:00 2001 From: rory Date: Wed, 24 Dec 2025 07:53:03 -0800 Subject: [PATCH 4/9] Fix lint-changed --- src/stories/Form.stories.tsx | 38 ++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/src/stories/Form.stories.tsx b/src/stories/Form.stories.tsx index 38c34009b2b7..2a2b3e45f73c 100644 --- a/src/stories/Form.stories.tsx +++ b/src/stories/Form.stories.tsx @@ -14,8 +14,8 @@ import StateSelector from '@components/StateSelector'; import Text from '@components/Text'; import TextInput from '@components/TextInput'; import NetworkConnection from '@libs/NetworkConnection'; -import * as ValidationUtils from '@libs/ValidationUtils'; -import * as FormActions from '@userActions/FormActions'; +import {isRequiredFulfilled} from '@libs/ValidationUtils'; +import {clearErrors, setDraftValues, setErrors, setIsLoading} from '@userActions/FormActions'; import CONST from '@src/CONST'; import type {OnyxFormValuesMapping} from '@src/ONYXKEYS'; import {defaultStyles} from '@src/styles'; @@ -67,13 +67,13 @@ const story: Meta = { function Template(props: FormProviderProps & FormProviderOnyxProps) { // Form consumes data from Onyx, so we initialize Onyx with the necessary data here NetworkConnection.setOfflineStatus(false); - FormActions.setIsLoading(props.formID, !!props.formState?.isLoading); - FormActions.setDraftValues(props.formID, props.draftValues); + setIsLoading(props.formID, !!props.formState?.isLoading); + setDraftValues(props.formID, props.draftValues); if (props.formState?.error) { - FormActions.setErrors(props.formID, {error: props.formState.error as string}); + setErrors(props.formID, {error: props.formState.error as string}); } else { - FormActions.clearErrors(props.formID); + clearErrors(props.formID); } return ( @@ -181,13 +181,13 @@ function WithNativeEventHandler(props: FormProviderProps & FormProviderOnyxProps // Form consumes data from Onyx, so we initialize Onyx with the necessary data here NetworkConnection.setOfflineStatus(false); - FormActions.setIsLoading(props.formID, !!props.formState?.isLoading); - FormActions.setDraftValues(props.formID, props.draftValues); + setIsLoading(props.formID, !!props.formState?.isLoading); + setDraftValues(props.formID, props.draftValues); if (props.formState?.error) { - FormActions.setErrors(props.formID, {error: props.formState.error as string}); + setErrors(props.formID, {error: props.formState.error as string}); } else { - FormActions.clearErrors(props.formID); + clearErrors(props.formID); } return ( @@ -219,28 +219,28 @@ const defaultArgs = { submitButtonText: 'Submit', validate: (values: StorybookFormValues) => { const errors: StorybookFormErrors = {}; - if (!ValidationUtils.isRequiredFulfilled(values.routingNumber)) { + if (!isRequiredFulfilled(values.routingNumber)) { errors.routingNumber = 'Please enter a routing number'; } - if (!ValidationUtils.isRequiredFulfilled(values.accountNumber)) { + if (!isRequiredFulfilled(values.accountNumber)) { errors.accountNumber = 'Please enter an account number'; } - if (!ValidationUtils.isRequiredFulfilled(values.street)) { + if (!isRequiredFulfilled(values.street)) { errors.street = 'Please enter an address'; } - if (!ValidationUtils.isRequiredFulfilled(values.dob)) { + if (!isRequiredFulfilled(values.dob)) { errors.dob = 'Please enter your date of birth'; } - if (!ValidationUtils.isRequiredFulfilled(values.pickFruit)) { + if (!isRequiredFulfilled(values.pickFruit)) { errors.pickFruit = 'Please select a fruit'; } - if (!ValidationUtils.isRequiredFulfilled(values.pickAnotherFruit)) { + if (!isRequiredFulfilled(values.pickAnotherFruit)) { errors.pickAnotherFruit = 'Please select a fruit'; } - if (!ValidationUtils.isRequiredFulfilled(values.state)) { + if (!isRequiredFulfilled(values.state)) { errors.state = 'Please select a state'; } - if (!ValidationUtils.isRequiredFulfilled(values.checkbox)) { + if (!isRequiredFulfilled(values.checkbox)) { errors.checkbox = 'You must accept the Terms of Service to continue'; } return errors; @@ -248,7 +248,7 @@ const defaultArgs = { onSubmit: (values: StorybookFormValues) => { setTimeout(() => { alert(`Form submitted!\n\nInput values: ${JSON.stringify(values, null, 4)}`); - FormActions.setIsLoading(STORYBOOK_FORM_ID, false); + setIsLoading(STORYBOOK_FORM_ID, false); }, 1000); }, formState: { From 01bc547c67dd5fc9fd93a77ebaf3f23c81f62966 Mon Sep 17 00:00:00 2001 From: rory Date: Wed, 24 Dec 2025 08:40:03 -0800 Subject: [PATCH 5/9] Upgrade prettier and @trivago/prettier-plugin-sort-imports to support import aliases --- .prettierignore | 3 + .prettierrc.js | 4 + .storybook/webpack.config.ts | 2 - __mocks__/react-native-onyx.ts | 1 - desktop/electron-serve.ts | 3 - package-lock.json | 599 ++---------------- package.json | 4 +- scripts/react-compiler-compliance-check.ts | 1 - scripts/symbolicate-profile.ts | 1 - .../ReportActionItem/MoneyRequestView.tsx | 3 +- .../SidePanel/HelpContent/helpContentMap.tsx | 2 - src/libs/DebugUtils.ts | 1 - src/libs/E2E/actions/e2eLogin.ts | 1 - src/libs/Log.ts | 1 - .../helpers/createNormalizedConfigs.ts | 8 - src/libs/SidebarUtils.ts | 3 +- .../PopoverReportActionContextMenu.tsx | 1 - .../FloatingActionButtonAndPopover.tsx | 3 +- src/styles/index.ts | 1 - .../EnforceActionExportRestrictions.ts | 1 - tests/actions/IOUTest.ts | 1 - tests/actions/TaskTest.ts | 1 - tests/e2e/testRunner.ts | 1 - tests/perf-test/ReportUtils.perf-test.ts | 3 +- tests/ui/GroupChatNameTests.tsx | 2 - tests/unit/CIGitLogicTest.ts | 1 - tests/unit/GithubUtilsTest.ts | 1 - tests/unit/Search/buildCardFilterDataTest.ts | 1 - tests/unit/awaitStagingDeploysTest.ts | 1 - tests/unit/markPullRequestsAsDeployedTest.ts | 1 - tests/utils/debug.ts | 1 - 31 files changed, 75 insertions(+), 582 deletions(-) diff --git a/.prettierignore b/.prettierignore index 58780f08707c..cbc0ee55c534 100644 --- a/.prettierignore +++ b/.prettierignore @@ -22,6 +22,9 @@ index.js # We need to modify the import here specifically, hence we disable prettier to get rid of the sorted imports src/libs/E2E/reactNativeLaunchingTest.ts +# Disable prettier in 3rd-party snippets +web/snippets/** + # Automatically generated files src/libs/SearchParser/searchParser.js src/libs/SearchParser/autocompleteParser.js diff --git a/.prettierrc.js b/.prettierrc.js index fb3b68f0116e..9e0aa7557f37 100644 --- a/.prettierrc.js +++ b/.prettierrc.js @@ -7,6 +7,10 @@ module.exports = { printWidth: 190, singleAttributePerLine: true, plugins: [require.resolve('@trivago/prettier-plugin-sort-imports')], + // Parser plugins to support TypeScript and JSX + importOrderParserPlugins: ['typescript', 'jsx'], + // Use modern 'with' syntax for import assertions + importOrderImportAttributesKeyword: 'with', /** `importOrder` should be defined in an alphabetical order. */ importOrder: [ '@assets/(.*)$', diff --git a/.storybook/webpack.config.ts b/.storybook/webpack.config.ts index e0867187dc67..ffe6fe201d24 100644 --- a/.storybook/webpack.config.ts +++ b/.storybook/webpack.config.ts @@ -1,7 +1,5 @@ /* eslint-disable no-underscore-dangle */ - /* eslint-disable no-param-reassign */ - /* eslint-disable @typescript-eslint/naming-convention */ import dotenv from 'dotenv'; import {createRequire} from 'module'; diff --git a/__mocks__/react-native-onyx.ts b/__mocks__/react-native-onyx.ts index 3c84f8dfa951..23894e119b27 100644 --- a/__mocks__/react-native-onyx.ts +++ b/__mocks__/react-native-onyx.ts @@ -2,7 +2,6 @@ * We are disabling the lint rule that doesn't allow the usage of Onyx.connect outside libs * because the intent of this file is to mock the usage of react-native-onyx so we will have to mock the connect function */ - /* eslint-disable rulesdir/prefer-onyx-connect-in-libs */ import type {ConnectOptions, OnyxKey} from 'react-native-onyx'; // eslint-disable-next-line no-restricted-imports diff --git a/desktop/electron-serve.ts b/desktop/electron-serve.ts index 9914074c8288..088efb09d3a1 100644 --- a/desktop/electron-serve.ts +++ b/desktop/electron-serve.ts @@ -1,9 +1,6 @@ /* eslint-disable @typescript-eslint/naming-convention */ - /* eslint-disable @typescript-eslint/no-misused-promises */ - /* eslint-disable rulesdir/no-negated-variables */ - /** * This file is a modified version of the electron-serve package. * We keep the same interface, but instead of file protocol we use buffer protocol (with support of JS self profiling). diff --git a/package-lock.json b/package-lock.json index 2bb83b9a9e83..85c721141069 100644 --- a/package-lock.json +++ b/package-lock.json @@ -197,7 +197,7 @@ "@storybook/react-webpack5": "10.1.10", "@svgr/webpack": "^6.0.0", "@testing-library/react-native": "13.2.0", - "@trivago/prettier-plugin-sort-imports": "^4.2.0", + "@trivago/prettier-plugin-sort-imports": "6.0.0", "@types/base-64": "^1.0.2", "@types/canvas-size": "^1.2.2", "@types/concurrently": "^7.0.0", @@ -222,7 +222,7 @@ "@types/webpack": "^5.28.5", "@types/webpack-bundle-analyzer": "^4.7.0", "@vercel/ncc": "0.38.1", - "@vitest/mocker": "^4.0.16", + "@vitest/mocker": "4.0.16", "@vue/preload-webpack-plugin": "^2.0.0", "@welldone-software/why-did-you-render": "7.0.1", "babel-jest": "29.7.0", @@ -274,7 +274,7 @@ "patch-package": "^8.1.0-canary.1", "peggy": "^4.0.3", "portfinder": "^1.0.28", - "prettier": "3.5.3", + "prettier": "3.7.4", "react-compiler-healthcheck": "^19.0.0-beta-8a03594-20241020", "react-native-clean-project": "^4.0.0-alpha4.0", "react-refresh": "^0.14.2", @@ -1743,24 +1743,6 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/core/node_modules/@babel/traverse": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.3.tgz", - "integrity": "sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.3", - "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.3", - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.2", - "debug": "^4.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/core/node_modules/semver": { "version": "6.3.1", "license": "ISC", @@ -1855,23 +1837,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor/node_modules/@babel/traverse": { - "version": "7.25.9", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.25.9", - "@babel/generator": "^7.25.9", - "@babel/parser": "^7.25.9", - "@babel/template": "^7.25.9", - "@babel/types": "^7.25.9", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-compilation-targets": { "version": "7.27.2", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", @@ -1927,24 +1892,6 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/traverse": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.4.tgz", - "integrity": "sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.3", - "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.4", - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.4", - "debug": "^4.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { "version": "6.3.1", "license": "ISC", @@ -2019,29 +1966,6 @@ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.24.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.24.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.24.7", - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-globals": { "version": "7.28.0", "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", @@ -2051,17 +1975,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.24.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-member-expression-to-functions": { "version": "7.27.1", "license": "MIT", @@ -2073,22 +1986,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/traverse": { - "version": "7.27.1", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.27.1", - "@babel/parser": "^7.27.1", - "@babel/template": "^7.27.1", - "@babel/types": "^7.27.1", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-module-imports": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", @@ -2102,24 +1999,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-module-imports/node_modules/@babel/traverse": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.3.tgz", - "integrity": "sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.3", - "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.3", - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.2", - "debug": "^4.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-module-transforms": { "version": "7.28.3", "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", @@ -2137,24 +2016,6 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-module-transforms/node_modules/@babel/traverse": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.3.tgz", - "integrity": "sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.3", - "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.3", - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.2", - "debug": "^4.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-optimise-call-expression": { "version": "7.27.1", "license": "MIT", @@ -2187,22 +2048,6 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-remap-async-to-generator/node_modules/@babel/traverse": { - "version": "7.25.9", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.25.9", - "@babel/generator": "^7.25.9", - "@babel/parser": "^7.25.9", - "@babel/template": "^7.25.9", - "@babel/types": "^7.25.9", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-replace-supers": { "version": "7.27.1", "license": "MIT", @@ -2218,22 +2063,6 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-replace-supers/node_modules/@babel/traverse": { - "version": "7.27.1", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.27.1", - "@babel/parser": "^7.27.1", - "@babel/template": "^7.27.1", - "@babel/types": "^7.27.1", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-simple-access": { "version": "7.25.9", "license": "MIT", @@ -2245,22 +2074,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-simple-access/node_modules/@babel/traverse": { - "version": "7.25.9", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.25.9", - "@babel/generator": "^7.25.9", - "@babel/parser": "^7.25.9", - "@babel/template": "^7.25.9", - "@babel/types": "^7.25.9", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { "version": "7.27.1", "license": "MIT", @@ -2272,33 +2085,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers/node_modules/@babel/traverse": { - "version": "7.27.1", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.27.1", - "@babel/parser": "^7.27.1", - "@babel/template": "^7.27.1", - "@babel/types": "^7.27.1", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.24.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-string-parser": { "version": "7.27.1", "license": "MIT", @@ -2336,22 +2122,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-wrap-function/node_modules/@babel/traverse": { - "version": "7.25.9", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.25.9", - "@babel/generator": "^7.25.9", - "@babel/parser": "^7.25.9", - "@babel/template": "^7.25.9", - "@babel/types": "^7.25.9", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helpers": { "version": "7.28.3", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.3.tgz", @@ -2410,23 +2180,6 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key/node_modules/@babel/traverse": { - "version": "7.25.9", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.25.9", - "@babel/generator": "^7.25.9", - "@babel/parser": "^7.25.9", - "@babel/template": "^7.25.9", - "@babel/types": "^7.25.9", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { "version": "7.25.9", "dev": true, @@ -2486,23 +2239,6 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/node_modules/@babel/traverse": { - "version": "7.25.9", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.25.9", - "@babel/generator": "^7.25.9", - "@babel/parser": "^7.25.9", - "@babel/template": "^7.25.9", - "@babel/types": "^7.25.9", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/plugin-proposal-class-properties": { "version": "7.18.6", "dev": true, @@ -2908,22 +2644,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-async-generator-functions/node_modules/@babel/traverse": { - "version": "7.25.9", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.25.9", - "@babel/generator": "^7.25.9", - "@babel/parser": "^7.25.9", - "@babel/template": "^7.25.9", - "@babel/types": "^7.25.9", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/plugin-transform-async-to-generator": { "version": "7.25.9", "license": "MIT", @@ -3014,22 +2734,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-classes/node_modules/@babel/traverse": { - "version": "7.25.9", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.25.9", - "@babel/generator": "^7.25.9", - "@babel/parser": "^7.25.9", - "@babel/template": "^7.25.9", - "@babel/types": "^7.25.9", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/plugin-transform-computed-properties": { "version": "7.25.9", "license": "MIT", @@ -3188,22 +2892,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-function-name/node_modules/@babel/traverse": { - "version": "7.25.9", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.25.9", - "@babel/generator": "^7.25.9", - "@babel/parser": "^7.25.9", - "@babel/template": "^7.25.9", - "@babel/types": "^7.25.9", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/plugin-transform-json-strings": { "version": "7.25.9", "dev": true, @@ -3305,23 +2993,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-modules-systemjs/node_modules/@babel/traverse": { - "version": "7.25.9", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.25.9", - "@babel/generator": "^7.25.9", - "@babel/parser": "^7.25.9", - "@babel/template": "^7.25.9", - "@babel/types": "^7.25.9", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/plugin-transform-modules-umd": { "version": "7.25.9", "dev": true, @@ -4121,20 +3792,18 @@ } }, "node_modules/@babel/traverse": { - "version": "7.23.2", - "dev": true, + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz", + "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==", "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.0", - "@babel/types": "^7.23.0", - "debug": "^4.1.0", - "globals": "^11.1.0" + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.5", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.5", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.5", + "debug": "^4.3.1" }, "engines": { "node": ">=6.9.0" @@ -7397,24 +7066,6 @@ } } }, - "node_modules/@expo/metro/node_modules/@babel/traverse": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.4.tgz", - "integrity": "sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.3", - "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.4", - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.4", - "debug": "^4.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@expo/metro/node_modules/agent-base": { "version": "7.1.4", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", @@ -12985,25 +12636,6 @@ "node": ">= 20.19.4" } }, - "node_modules/@react-native/babel-plugin-codegen/node_modules/@babel/traverse": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.4.tgz", - "integrity": "sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.3", - "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.4", - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.4", - "debug": "^4.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@react-native/babel-preset": { "version": "0.81.4", "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.81.4.tgz", @@ -13840,25 +13472,6 @@ "tslib": "^2.3.0" } }, - "node_modules/@rock-js/plugin-metro/node_modules/@babel/traverse": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.4.tgz", - "integrity": "sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.3", - "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.4", - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.4", - "debug": "^4.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@rock-js/plugin-metro/node_modules/@react-native-community/cli-server-api": { "version": "20.0.2", "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-20.0.2.tgz", @@ -16897,58 +16510,70 @@ } }, "node_modules/@trivago/prettier-plugin-sort-imports": { - "version": "4.2.1", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@trivago/prettier-plugin-sort-imports/-/prettier-plugin-sort-imports-6.0.0.tgz", + "integrity": "sha512-Xarx55ow0R8oC7ViL5fPmDsg1EBa1dVhyZFVbFXNtPPJyW2w9bJADIla8YFSaNG9N06XfcklA9O9vmw4noNxkQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@babel/generator": "7.17.7", - "@babel/parser": "^7.20.5", - "@babel/traverse": "7.23.2", - "@babel/types": "7.17.0", - "javascript-natural-sort": "0.7.1", - "lodash": "^4.17.21" + "@babel/generator": "^7.28.0", + "@babel/parser": "^7.28.0", + "@babel/traverse": "^7.28.0", + "@babel/types": "^7.28.0", + "javascript-natural-sort": "^0.7.1", + "lodash-es": "^4.17.21", + "minimatch": "^9.0.0", + "parse-imports-exports": "^0.2.4" + }, + "engines": { + "node": ">= 20" }, "peerDependencies": { "@vue/compiler-sfc": "3.x", - "prettier": "2.x - 3.x" + "prettier": "2.x - 3.x", + "prettier-plugin-ember-template-tag": ">= 2.0.0", + "prettier-plugin-svelte": "3.x", + "svelte": "4.x || 5.x" }, "peerDependenciesMeta": { "@vue/compiler-sfc": { "optional": true + }, + "prettier-plugin-ember-template-tag": { + "optional": true + }, + "prettier-plugin-svelte": { + "optional": true + }, + "svelte": { + "optional": true } } }, - "node_modules/@trivago/prettier-plugin-sort-imports/node_modules/@babel/generator": { - "version": "7.17.7", + "node_modules/@trivago/prettier-plugin-sort-imports/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.17.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" + "balanced-match": "^1.0.0" } }, - "node_modules/@trivago/prettier-plugin-sort-imports/node_modules/@babel/types": { - "version": "7.17.0", + "node_modules/@trivago/prettier-plugin-sort-imports/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@trivago/prettier-plugin-sort-imports/node_modules/source-map": { - "version": "0.5.7", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/@trysound/sax": { @@ -19854,24 +19479,6 @@ } } }, - "node_modules/babel-preset-expo/node_modules/@babel/traverse": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz", - "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.5", - "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.5", - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.5", - "debug": "^4.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/babel-preset-expo/node_modules/@react-native/babel-plugin-codegen": { "version": "0.81.5", "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.81.5.tgz", @@ -31986,17 +31593,6 @@ "node": ">=8" } }, - "node_modules/jsesc": { - "version": "2.5.2", - "dev": true, - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/json-bigint": { "version": "1.0.0", "dev": true, @@ -33349,24 +32945,6 @@ "node": ">=20.19.4" } }, - "node_modules/metro-source-map/node_modules/@babel/traverse": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.4.tgz", - "integrity": "sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.3", - "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.4", - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.4", - "debug": "^4.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/metro-source-map/node_modules/source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -33422,24 +33000,6 @@ "node": ">=20.19.4" } }, - "node_modules/metro-transform-plugins/node_modules/@babel/traverse": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.4.tgz", - "integrity": "sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.3", - "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.4", - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.4", - "debug": "^4.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/metro-transform-worker": { "version": "0.83.2", "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.83.2.tgz", @@ -33464,24 +33024,6 @@ "node": ">=20.19.4" } }, - "node_modules/metro/node_modules/@babel/traverse": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.4.tgz", - "integrity": "sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.3", - "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.4", - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.4", - "debug": "^4.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/metro/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -35539,7 +35081,9 @@ } }, "node_modules/prettier": { - "version": "3.5.3", + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.7.4.tgz", + "integrity": "sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==", "dev": true, "license": "MIT", "bin": { @@ -36113,25 +35657,6 @@ "typescript": ">= 4.3.x" } }, - "node_modules/react-docgen/node_modules/@babel/traverse": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz", - "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.5", - "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.5", - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.5", - "debug": "^4.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/react-docgen/node_modules/strip-indent": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.1.1.tgz", @@ -40494,14 +40019,6 @@ "version": "1.0.5", "license": "BSD-3-Clause" }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "license": "MIT", diff --git a/package.json b/package.json index cbde8f3bd400..bb788711e08e 100644 --- a/package.json +++ b/package.json @@ -270,7 +270,7 @@ "@storybook/react-webpack5": "10.1.10", "@svgr/webpack": "^6.0.0", "@testing-library/react-native": "13.2.0", - "@trivago/prettier-plugin-sort-imports": "^4.2.0", + "@trivago/prettier-plugin-sort-imports": "6.0.0", "@types/base-64": "^1.0.2", "@types/canvas-size": "^1.2.2", "@types/concurrently": "^7.0.0", @@ -347,7 +347,7 @@ "patch-package": "^8.1.0-canary.1", "peggy": "^4.0.3", "portfinder": "^1.0.28", - "prettier": "3.5.3", + "prettier": "3.7.4", "react-compiler-healthcheck": "^19.0.0-beta-8a03594-20241020", "react-native-clean-project": "^4.0.0-alpha4.0", "react-refresh": "^0.14.2", diff --git a/scripts/react-compiler-compliance-check.ts b/scripts/react-compiler-compliance-check.ts index ec594b109c24..1776bc314195 100644 --- a/scripts/react-compiler-compliance-check.ts +++ b/scripts/react-compiler-compliance-check.ts @@ -1,7 +1,6 @@ #!/usr/bin/env ts-node /* eslint-disable max-classes-per-file */ - /** * React Compiler Compliance Checker * diff --git a/scripts/symbolicate-profile.ts b/scripts/symbolicate-profile.ts index a58c2894edb6..5ea77b8a67ae 100755 --- a/scripts/symbolicate-profile.ts +++ b/scripts/symbolicate-profile.ts @@ -1,7 +1,6 @@ #!/usr/bin/env ts-node /* eslint-disable @typescript-eslint/naming-convention */ - /** * This script helps to symbolicate a .cpuprofile file that was obtained from a specific (staging) app version (usually provided by a user using the app). * diff --git a/src/components/ReportActionItem/MoneyRequestView.tsx b/src/components/ReportActionItem/MoneyRequestView.tsx index 3e475e5bfe96..9df066894a9f 100644 --- a/src/components/ReportActionItem/MoneyRequestView.tsx +++ b/src/components/ReportActionItem/MoneyRequestView.tsx @@ -55,7 +55,8 @@ import type {TransactionDetails} from '@libs/ReportUtils'; import { canEditFieldOfMoneyRequest, canEditMoneyRequest, - canUserPerformWriteAction as canUserPerformWriteActionReportUtils, // eslint-disable-next-line @typescript-eslint/no-deprecated + canUserPerformWriteAction as canUserPerformWriteActionReportUtils, + // eslint-disable-next-line @typescript-eslint/no-deprecated getReportName, getTransactionDetails, getTripIDFromTransactionParentReportID, diff --git a/src/components/SidePanel/HelpContent/helpContentMap.tsx b/src/components/SidePanel/HelpContent/helpContentMap.tsx index 6f9c180c418d..1128272fe339 100644 --- a/src/components/SidePanel/HelpContent/helpContentMap.tsx +++ b/src/components/SidePanel/HelpContent/helpContentMap.tsx @@ -1,7 +1,5 @@ /* eslint-disable react/jsx-key */ - /* eslint-disable react/no-unescaped-entities */ - /* eslint-disable @typescript-eslint/naming-convention */ import type {ReactNode} from 'react'; import React from 'react'; diff --git a/src/libs/DebugUtils.ts b/src/libs/DebugUtils.ts index f880c38291fc..07e4eb584b85 100644 --- a/src/libs/DebugUtils.ts +++ b/src/libs/DebugUtils.ts @@ -1,5 +1,4 @@ /* eslint-disable default-case */ - /* eslint-disable max-classes-per-file */ import {isMatch, isValid} from 'date-fns'; import type {OnyxCollection, OnyxEntry} from 'react-native-onyx'; diff --git a/src/libs/E2E/actions/e2eLogin.ts b/src/libs/E2E/actions/e2eLogin.ts index a57aa9cb261f..a1a266fd156d 100644 --- a/src/libs/E2E/actions/e2eLogin.ts +++ b/src/libs/E2E/actions/e2eLogin.ts @@ -1,5 +1,4 @@ /* eslint-disable rulesdir/prefer-actions-set-data */ - /* eslint-disable rulesdir/prefer-onyx-connect-in-libs */ import Onyx from 'react-native-onyx'; import {Authenticate} from '@libs/Authentication'; diff --git a/src/libs/Log.ts b/src/libs/Log.ts index 57fc67a41f51..41d35841eecb 100644 --- a/src/libs/Log.ts +++ b/src/libs/Log.ts @@ -1,6 +1,5 @@ // Making an exception to this rule here since we don't need an "action" for Log and Log should just be used directly. Creating a Log // action would likely cause confusion about which one to use. But most other API methods should happen inside an action file. - /* eslint-disable rulesdir/no-api-in-views */ import HybridAppModule from '@expensify/react-native-hybrid-app'; import {Logger} from 'expensify-common'; diff --git a/src/libs/Navigation/helpers/createNormalizedConfigs.ts b/src/libs/Navigation/helpers/createNormalizedConfigs.ts index b6ae85a4c778..ecf996fbda1a 100644 --- a/src/libs/Navigation/helpers/createNormalizedConfigs.ts +++ b/src/libs/Navigation/helpers/createNormalizedConfigs.ts @@ -1,19 +1,11 @@ /* eslint-disable @typescript-eslint/no-unsafe-assignment */ - /* eslint-disable @typescript-eslint/default-param-last */ - /* eslint-disable @typescript-eslint/prefer-nullish-coalescing */ - /* eslint-disable no-param-reassign */ - /* eslint-disable @typescript-eslint/no-unsafe-argument */ - /* eslint-disable @typescript-eslint/no-non-null-assertion */ - /* eslint-disable @typescript-eslint/no-unsafe-member-access */ - /* eslint-disable @typescript-eslint/no-explicit-any */ - /* eslint-disable @typescript-eslint/no-restricted-types */ // THOSE FUNCTIONS ARE COPIED FROM react-navigation/core IN ORDER TO AVOID PATCHING // THAT'S THE REASON WHY ESLINT IS DISABLED diff --git a/src/libs/SidebarUtils.ts b/src/libs/SidebarUtils.ts index 48e2434cc912..3919185011ae 100644 --- a/src/libs/SidebarUtils.ts +++ b/src/libs/SidebarUtils.ts @@ -105,7 +105,8 @@ import { getPolicyName, getReportActionActorAccountID, getReportDescription, - getReportMetadata, // eslint-disable-next-line @typescript-eslint/no-deprecated + getReportMetadata, + // eslint-disable-next-line @typescript-eslint/no-deprecated getReportName, getReportNotificationPreference, getReportParticipantsTitle, diff --git a/src/pages/home/report/ContextMenu/PopoverReportActionContextMenu.tsx b/src/pages/home/report/ContextMenu/PopoverReportActionContextMenu.tsx index 7348a9717e4c..968a684d3aed 100644 --- a/src/pages/home/report/ContextMenu/PopoverReportActionContextMenu.tsx +++ b/src/pages/home/report/ContextMenu/PopoverReportActionContextMenu.tsx @@ -1,7 +1,6 @@ /* eslint-disable react-compiler/react-compiler */ import type {ForwardedRef} from 'react'; import React, {useCallback, useContext, useEffect, useImperativeHandle, useRef, useState} from 'react'; - /* eslint-disable no-restricted-imports */ import type {EmitterSubscription, GestureResponderEvent, NativeTouchEvent, View} from 'react-native'; import {DeviceEventEmitter, Dimensions, InteractionManager} from 'react-native'; diff --git a/src/pages/home/sidebar/FloatingActionButtonAndPopover.tsx b/src/pages/home/sidebar/FloatingActionButtonAndPopover.tsx index 0b8ae71dbe64..07b35d81ade4 100644 --- a/src/pages/home/sidebar/FloatingActionButtonAndPopover.tsx +++ b/src/pages/home/sidebar/FloatingActionButtonAndPopover.tsx @@ -52,7 +52,8 @@ import {getQuickActionIcon, getQuickActionTitle, isQuickActionAllowed} from '@li import { generateReportID, getDisplayNameForParticipant, - getIcons, // Will be fixed in https://github.com/Expensify/App/issues/76852 + getIcons, + // Will be fixed in https://github.com/Expensify/App/issues/76852 // eslint-disable-next-line @typescript-eslint/no-deprecated getReportName, getWorkspaceChats, diff --git a/src/styles/index.ts b/src/styles/index.ts index d2f5878bbfe7..88f68f32c037 100644 --- a/src/styles/index.ts +++ b/src/styles/index.ts @@ -1,5 +1,4 @@ /* eslint-disable max-lines */ - /* eslint-disable @typescript-eslint/naming-convention */ import type {LineLayerStyleProps} from '@rnmapbox/maps/src/utils/MapboxStyles'; import lodashClamp from 'lodash/clamp'; diff --git a/tests/actions/EnforceActionExportRestrictions.ts b/tests/actions/EnforceActionExportRestrictions.ts index b63c6dbeed4f..8720f641149e 100644 --- a/tests/actions/EnforceActionExportRestrictions.ts +++ b/tests/actions/EnforceActionExportRestrictions.ts @@ -1,5 +1,4 @@ // this file is for testing which methods should not be exported so it is not possible to use named imports - that's why we need to disable the no-restricted-syntax rule - /* eslint-disable no-restricted-syntax */ import * as IOU from '@libs/actions/IOU'; import * as OptionsListUtils from '@libs/OptionsListUtils'; diff --git a/tests/actions/IOUTest.ts b/tests/actions/IOUTest.ts index 715a7f9a325c..56e254ebe002 100644 --- a/tests/actions/IOUTest.ts +++ b/tests/actions/IOUTest.ts @@ -1,5 +1,4 @@ /* eslint-disable @typescript-eslint/no-unsafe-member-access */ - /* eslint-disable @typescript-eslint/no-unsafe-assignment */ import {renderHook, waitFor} from '@testing-library/react-native'; import {format} from 'date-fns'; diff --git a/tests/actions/TaskTest.ts b/tests/actions/TaskTest.ts index 59c8ee876a59..2a3a27c05e82 100644 --- a/tests/actions/TaskTest.ts +++ b/tests/actions/TaskTest.ts @@ -1,5 +1,4 @@ /* eslint-disable @typescript-eslint/no-unsafe-member-access */ - /* eslint-disable @typescript-eslint/no-unsafe-assignment */ import {act, renderHook} from '@testing-library/react-native'; import Onyx from 'react-native-onyx'; diff --git a/tests/e2e/testRunner.ts b/tests/e2e/testRunner.ts index 6c2401b1ef86..3cb52a6589ea 100644 --- a/tests/e2e/testRunner.ts +++ b/tests/e2e/testRunner.ts @@ -12,7 +12,6 @@ * This two runs will generate a main.json and a delta.json with the performance data, which then you can merge via * node tests/e2e/merge.js */ - /* eslint-disable no-restricted-syntax,no-await-in-loop */ import {execSync} from 'child_process'; import fs from 'fs'; diff --git a/tests/perf-test/ReportUtils.perf-test.ts b/tests/perf-test/ReportUtils.perf-test.ts index 373b924bb464..c0f5edb5bf2a 100644 --- a/tests/perf-test/ReportUtils.perf-test.ts +++ b/tests/perf-test/ReportUtils.perf-test.ts @@ -9,7 +9,8 @@ import { getDisplayNamesWithTooltips, getIcons, getIconsForParticipants, - getIOUReportActionDisplayMessage, // Will be fixed in https://github.com/Expensify/App/issues/76852 + getIOUReportActionDisplayMessage, + // Will be fixed in https://github.com/Expensify/App/issues/76852 // eslint-disable-next-line @typescript-eslint/no-deprecated getReportName, getReportPreviewMessage, diff --git a/tests/ui/GroupChatNameTests.tsx b/tests/ui/GroupChatNameTests.tsx index 667433065aa5..94eb0491fbdf 100644 --- a/tests/ui/GroupChatNameTests.tsx +++ b/tests/ui/GroupChatNameTests.tsx @@ -1,7 +1,5 @@ /* eslint-disable testing-library/no-node-access */ - /* eslint-disable @typescript-eslint/no-unsafe-assignment */ - /* eslint-disable @typescript-eslint/no-unsafe-member-access */ import {act, render, screen, waitFor} from '@testing-library/react-native'; import React from 'react'; diff --git a/tests/unit/CIGitLogicTest.ts b/tests/unit/CIGitLogicTest.ts index 62b74c938699..62be33e846dc 100644 --- a/tests/unit/CIGitLogicTest.ts +++ b/tests/unit/CIGitLogicTest.ts @@ -2,7 +2,6 @@ * @jest-environment node * @jest-config bail=true */ - /* eslint-disable no-console */ import * as core from '@actions/core'; import {execSync} from 'child_process'; diff --git a/tests/unit/GithubUtilsTest.ts b/tests/unit/GithubUtilsTest.ts index f0f40549484e..6650e826d31f 100644 --- a/tests/unit/GithubUtilsTest.ts +++ b/tests/unit/GithubUtilsTest.ts @@ -1,7 +1,6 @@ /** * @jest-environment node */ - /* eslint-disable @typescript-eslint/naming-convention */ import * as core from '@actions/core'; import {RequestError} from '@octokit/request-error'; diff --git a/tests/unit/Search/buildCardFilterDataTest.ts b/tests/unit/Search/buildCardFilterDataTest.ts index 1548e24dfe4a..1a5ec5ff89c8 100644 --- a/tests/unit/Search/buildCardFilterDataTest.ts +++ b/tests/unit/Search/buildCardFilterDataTest.ts @@ -1,5 +1,4 @@ // The cards_ object keys don't follow normal naming convention, so to test this reliably we have to disable liner - /* eslint-disable @typescript-eslint/naming-convention */ import type {LocaleContextProps} from '@components/LocaleContextProvider'; import {buildCardFeedsData, buildCardsData} from '@libs/CardFeedUtils'; diff --git a/tests/unit/awaitStagingDeploysTest.ts b/tests/unit/awaitStagingDeploysTest.ts index dc049ef3ae36..e61115a3a02f 100644 --- a/tests/unit/awaitStagingDeploysTest.ts +++ b/tests/unit/awaitStagingDeploysTest.ts @@ -1,5 +1,4 @@ /* eslint-disable @typescript-eslint/naming-convention */ - /** * @jest-environment node */ diff --git a/tests/unit/markPullRequestsAsDeployedTest.ts b/tests/unit/markPullRequestsAsDeployedTest.ts index fb29e697f1e3..d5242033c628 100644 --- a/tests/unit/markPullRequestsAsDeployedTest.ts +++ b/tests/unit/markPullRequestsAsDeployedTest.ts @@ -1,7 +1,6 @@ /** * @jest-environment node */ - /* eslint-disable @typescript-eslint/naming-convention */ import CONST from '../../.github/libs/CONST'; import type {InternalOctokit} from '../../.github/libs/GithubUtils'; diff --git a/tests/utils/debug.ts b/tests/utils/debug.ts index 24484448900a..35f1ad1ef893 100644 --- a/tests/utils/debug.ts +++ b/tests/utils/debug.ts @@ -3,7 +3,6 @@ * has limited functionality. This is a better version of it that allows logging a subtree of * the app. */ - /* eslint-disable no-console, testing-library/no-node-access, testing-library/no-debugging-utils, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-return, @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/prefer-nullish-coalescing */ import type {NewPlugin} from 'pretty-format'; import prettyFormat, {plugins} from 'pretty-format'; From 2f3fc2455606ad1b1c10f0cc8ac8d818f08a2ea6 Mon Sep 17 00:00:00 2001 From: rory Date: Fri, 26 Dec 2025 09:10:11 -0800 Subject: [PATCH 6/9] Reinstall packages --- package-lock.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index 2f35f555fb55..d063fe476e63 100644 --- a/package-lock.json +++ b/package-lock.json @@ -40778,7 +40778,7 @@ }, "node_modules/url/node_modules/punycode": { "version": "1.4.1", - "dev": true, + "extraneous": true, "license": "MIT" }, "node_modules/use-sync-external-store": { From a4c59bf672d500133de7f7694621fc179d805c35 Mon Sep 17 00:00:00 2001 From: rory Date: Fri, 26 Dec 2025 09:11:03 -0800 Subject: [PATCH 7/9] Rebuild gh actions --- .../javascript/authorChecklist/index.js | 2065 ++++++++++------- 1 file changed, 1226 insertions(+), 839 deletions(-) diff --git a/.github/actions/javascript/authorChecklist/index.js b/.github/actions/javascript/authorChecklist/index.js index 8cf35afbe0a8..e5329648eb40 100644 --- a/.github/actions/javascript/authorChecklist/index.js +++ b/.github/actions/javascript/authorChecklist/index.js @@ -9415,16 +9415,6 @@ class Deprecation extends Error { exports.Deprecation = Deprecation; -/***/ }), - -/***/ 455: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - -module.exports = __nccwpck_require__(8487); - - /***/ }), /***/ 1621: @@ -22168,368 +22158,6 @@ function* childrenIterator(node) { //# sourceMappingURL=token-map.js.map -/***/ }), - -/***/ 1097: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; -exports.requeueComputedKeyAndDecorators = requeueComputedKeyAndDecorators; -{ - exports.skipAllButComputedKey = function skipAllButComputedKey(path) { - path.skip(); - if (path.node.computed) { - path.context.maybeQueue(path.get("key")); - } - }; -} -function requeueComputedKeyAndDecorators(path) { - const { - context, - node - } = path; - if (node.computed) { - context.maybeQueue(path.get("key")); - } - if (node.decorators) { - for (const decorator of path.get("decorators")) { - context.maybeQueue(decorator); - } - } -} -const visitor = { - FunctionParent(path) { - if (path.isArrowFunctionExpression()) { - return; - } else { - path.skip(); - if (path.isMethod()) { - requeueComputedKeyAndDecorators(path); - } - } - }, - Property(path) { - if (path.isObjectProperty()) { - return; - } - path.skip(); - requeueComputedKeyAndDecorators(path); - } -}; -var _default = exports["default"] = visitor; - -//# sourceMappingURL=index.js.map - - -/***/ }), - -/***/ 3968: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = _default; -var _template = __nccwpck_require__(3412); -var _t = __nccwpck_require__(7912); -const { - NOT_LOCAL_BINDING, - cloneNode, - identifier, - isAssignmentExpression, - isAssignmentPattern, - isFunction, - isIdentifier, - isLiteral, - isNullLiteral, - isObjectMethod, - isObjectProperty, - isRegExpLiteral, - isRestElement, - isTemplateLiteral, - isVariableDeclarator, - toBindingIdentifierName -} = _t; -function getFunctionArity(node) { - const count = node.params.findIndex(param => isAssignmentPattern(param) || isRestElement(param)); - return count === -1 ? node.params.length : count; -} -const buildPropertyMethodAssignmentWrapper = _template.default.statement(` - (function (FUNCTION_KEY) { - function FUNCTION_ID() { - return FUNCTION_KEY.apply(this, arguments); - } - - FUNCTION_ID.toString = function () { - return FUNCTION_KEY.toString(); - } - - return FUNCTION_ID; - })(FUNCTION) -`); -const buildGeneratorPropertyMethodAssignmentWrapper = _template.default.statement(` - (function (FUNCTION_KEY) { - function* FUNCTION_ID() { - return yield* FUNCTION_KEY.apply(this, arguments); - } - - FUNCTION_ID.toString = function () { - return FUNCTION_KEY.toString(); - }; - - return FUNCTION_ID; - })(FUNCTION) -`); -const visitor = { - "ReferencedIdentifier|BindingIdentifier"(path, state) { - if (path.node.name !== state.name) return; - const localDeclar = path.scope.getBindingIdentifier(state.name); - if (localDeclar !== state.outerDeclar) return; - state.selfReference = true; - path.stop(); - } -}; -function getNameFromLiteralId(id) { - if (isNullLiteral(id)) { - return "null"; - } - if (isRegExpLiteral(id)) { - return `_${id.pattern}_${id.flags}`; - } - if (isTemplateLiteral(id)) { - return id.quasis.map(quasi => quasi.value.raw).join(""); - } - if (id.value !== undefined) { - return id.value + ""; - } - return ""; -} -function wrap(state, method, id, scope) { - if (state.selfReference) { - if (scope.hasBinding(id.name) && !scope.hasGlobal(id.name)) { - scope.rename(id.name); - } else { - if (!isFunction(method)) return; - let build = buildPropertyMethodAssignmentWrapper; - if (method.generator) { - build = buildGeneratorPropertyMethodAssignmentWrapper; - } - const template = build({ - FUNCTION: method, - FUNCTION_ID: id, - FUNCTION_KEY: scope.generateUidIdentifier(id.name) - }).expression; - const params = template.callee.body.body[0].params; - for (let i = 0, len = getFunctionArity(method); i < len; i++) { - params.push(scope.generateUidIdentifier("x")); - } - return template; - } - } - method.id = id; - scope.getProgramParent().references[id.name] = true; -} -function visit(node, name, scope) { - const state = { - selfAssignment: false, - selfReference: false, - outerDeclar: scope.getBindingIdentifier(name), - name: name - }; - const binding = scope.getOwnBinding(name); - if (binding) { - if (binding.kind === "param") { - state.selfReference = true; - } else {} - } else if (state.outerDeclar || scope.hasGlobal(name)) { - scope.traverse(node, visitor, state); - } - return state; -} -function _default({ - node, - parent, - scope, - id -}, localBinding = false, supportUnicodeId = false) { - if (node.id) return; - if ((isObjectProperty(parent) || isObjectMethod(parent, { - kind: "method" - })) && (!parent.computed || isLiteral(parent.key))) { - id = parent.key; - } else if (isVariableDeclarator(parent)) { - id = parent.id; - if (isIdentifier(id) && !localBinding) { - const binding = scope.parent.getBinding(id.name); - if (binding && binding.constant && scope.getBinding(id.name) === binding) { - node.id = cloneNode(id); - node.id[NOT_LOCAL_BINDING] = true; - return; - } - } - } else if (isAssignmentExpression(parent, { - operator: "=" - })) { - id = parent.left; - } else if (!id) { - return; - } - let name; - if (id && isLiteral(id)) { - name = getNameFromLiteralId(id); - } else if (id && isIdentifier(id)) { - name = id.name; - } - if (name === undefined) { - return; - } - if (!supportUnicodeId && isFunction(node) && /[\uD800-\uDFFF]/.test(name)) { - return; - } - name = toBindingIdentifierName(name); - const newId = identifier(name); - newId[NOT_LOCAL_BINDING] = true; - const state = visit(node, name, scope); - return wrap(state, node, newId, scope) || node; -} - -//# sourceMappingURL=index.js.map - - -/***/ }), - -/***/ 6934: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = hoistVariables; -var _t = __nccwpck_require__(7912); -const { - assignmentExpression, - expressionStatement, - identifier -} = _t; -const visitor = { - Scope(path, state) { - if (state.kind === "let") path.skip(); - }, - FunctionParent(path) { - path.skip(); - }, - VariableDeclaration(path, state) { - if (state.kind && path.node.kind !== state.kind) return; - const nodes = []; - const declarations = path.get("declarations"); - let firstId; - for (const declar of declarations) { - firstId = declar.node.id; - if (declar.node.init) { - nodes.push(expressionStatement(assignmentExpression("=", declar.node.id, declar.node.init))); - } - for (const name of Object.keys(declar.getBindingIdentifiers())) { - state.emit(identifier(name), name, declar.node.init !== null); - } - } - if (path.parentPath.isFor({ - left: path.node - })) { - path.replaceWith(firstId); - } else { - path.replaceWithMultiple(nodes); - } - } -}; -function hoistVariables(path, emit, kind = "var") { - path.traverse(visitor, { - kind, - emit - }); -} - -//# sourceMappingURL=index.js.map - - -/***/ }), - -/***/ 5176: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = splitExportDeclaration; -var _t = __nccwpck_require__(7912); -const { - cloneNode, - exportNamedDeclaration, - exportSpecifier, - identifier, - variableDeclaration, - variableDeclarator -} = _t; -function splitExportDeclaration(exportDeclaration) { - if (!exportDeclaration.isExportDeclaration() || exportDeclaration.isExportAllDeclaration()) { - throw new Error("Only default and named export declarations can be split."); - } - if (exportDeclaration.isExportDefaultDeclaration()) { - const declaration = exportDeclaration.get("declaration"); - const standaloneDeclaration = declaration.isFunctionDeclaration() || declaration.isClassDeclaration(); - const exportExpr = declaration.isFunctionExpression() || declaration.isClassExpression(); - const scope = declaration.isScope() ? declaration.scope.parent : declaration.scope; - let id = declaration.node.id; - let needBindingRegistration = false; - if (!id) { - needBindingRegistration = true; - id = scope.generateUidIdentifier("default"); - if (standaloneDeclaration || exportExpr) { - declaration.node.id = cloneNode(id); - } - } else if (exportExpr && scope.hasBinding(id.name)) { - needBindingRegistration = true; - id = scope.generateUidIdentifier(id.name); - } - const updatedDeclaration = standaloneDeclaration ? declaration.node : variableDeclaration("var", [variableDeclarator(cloneNode(id), declaration.node)]); - const updatedExportDeclaration = exportNamedDeclaration(null, [exportSpecifier(cloneNode(id), identifier("default"))]); - exportDeclaration.insertAfter(updatedExportDeclaration); - exportDeclaration.replaceWith(updatedDeclaration); - if (needBindingRegistration) { - scope.registerDeclaration(exportDeclaration); - } - return exportDeclaration; - } else if (exportDeclaration.get("specifiers").length > 0) { - throw new Error("It doesn't make sense to split exported specifiers."); - } - const declaration = exportDeclaration.get("declaration"); - const bindingIdentifiers = declaration.getOuterBindingIdentifiers(); - const specifiers = Object.keys(bindingIdentifiers).map(name => { - return exportSpecifier(identifier(name), identifier(name)); - }); - const aliasDeclar = exportNamedDeclaration(null, specifiers); - exportDeclaration.insertAfter(aliasDeclar); - exportDeclaration.replaceWith(declaration.node); - return exportDeclaration; -} - -//# sourceMappingURL=index.js.map - - /***/ }), /***/ 8217: @@ -38386,10 +38014,8 @@ exports.clearScope = clearScope; exports.getCachedPaths = getCachedPaths; exports.getOrCreateCachedPaths = getOrCreateCachedPaths; exports.scope = exports.path = void 0; -let pathsCache = new WeakMap(); -exports.path = pathsCache; -let scope = new WeakMap(); -exports.scope = scope; +let pathsCache = exports.path = new WeakMap(); +let scope = exports.scope = new WeakMap(); function clear() { clearPath(); clearScope(); @@ -38400,23 +38026,17 @@ function clearPath() { function clearScope() { exports.scope = scope = new WeakMap(); } -const nullHub = Object.freeze({}); -function getCachedPaths(hub, parent) { - var _pathsCache$get, _hub; - { - hub = null; - } - return (_pathsCache$get = pathsCache.get((_hub = hub) != null ? _hub : nullHub)) == null ? void 0 : _pathsCache$get.get(parent); +function getCachedPaths(path) { + const { + parent, + parentPath + } = path; + return pathsCache.get(parent); } -function getOrCreateCachedPaths(hub, parent) { - var _hub2, _hub3; - { - hub = null; - } - let parents = pathsCache.get((_hub2 = hub) != null ? _hub2 : nullHub); - if (!parents) pathsCache.set((_hub3 = hub) != null ? _hub3 : nullHub, parents = new WeakMap()); - let paths = parents.get(parent); - if (!paths) parents.set(parent, paths = new Map()); +function getOrCreateCachedPaths(node, parentPath) { + ; + let paths = pathsCache.get(node); + if (!paths) pathsCache.set(node, paths = new Map()); return paths; } @@ -38437,6 +38057,7 @@ Object.defineProperty(exports, "__esModule", ({ exports["default"] = void 0; var _index = __nccwpck_require__(8877); var _t = __nccwpck_require__(7912); +var _context = __nccwpck_require__(4108); const { VISITOR_KEYS } = _t; @@ -38503,10 +38124,14 @@ class TraversalContext { this.priorityQueue = []; const visited = new WeakSet(); let stop = false; - for (const path of queue) { - path.resync(); + let visitIndex = 0; + for (; visitIndex < queue.length;) { + const path = queue[visitIndex]; + visitIndex++; + _context.resync.call(path); + ; if (path.contexts.length === 0 || path.contexts[path.contexts.length - 1] !== this) { - path.pushContext(this); + _context.pushContext.call(path, this); } if (path.key === null) continue; const { @@ -38525,8 +38150,9 @@ class TraversalContext { if (stop) break; } } - for (const path of queue) { - path.popContext(); + for (let i = 0; i < visitIndex; i++) { + ; + _context.popContext.call(queue[i]); } this.queue = null; return stop; @@ -38603,6 +38229,7 @@ Object.defineProperty(exports, "Scope", ({ } })); exports.visitors = exports["default"] = void 0; +__nccwpck_require__(4108); var visitors = __nccwpck_require__(3494); exports.visitors = visitors; var _t = __nccwpck_require__(7912); @@ -38630,10 +38257,9 @@ function traverse(parent, opts = {}, scope, state, parentPath, visitSelf) { return; } visitors.explode(opts); - (0, _traverseNode.traverseNode)(parent, opts, scope, state, parentPath, null, visitSelf); + (0, _traverseNode.traverseNode)(parent, opts, scope, state, parentPath, undefined, visitSelf); } -var _default = traverse; -exports["default"] = _default; +var _default = exports["default"] = traverse; traverse.visitors = visitors; traverse.verify = visitors.verify; traverse.explode = visitors.explode; @@ -38651,25 +38277,17 @@ traverse.removeProperties = function (tree, opts) { traverseFast(tree, traverse.clearNode, opts); return tree; }; -function hasDenylistedType(path, state) { - if (path.node.type === state.type) { - state.has = true; - path.stop(); - } -} traverse.hasType = function (tree, type, denylistTypes) { if (denylistTypes != null && denylistTypes.includes(tree.type)) return false; if (tree.type === type) return true; - const state = { - has: false, - type: type - }; - traverse(tree, { - noScope: true, - denylist: denylistTypes, - enter: hasDenylistedType - }, null, state); - return state.has; + return traverseFast(tree, function (node) { + if (denylistTypes != null && denylistTypes.includes(node.type)) { + return traverseFast.skip; + } + if (node.type === type) { + return traverseFast.stop; + } + }); }; traverse.cache = cache; @@ -38814,9 +38432,7 @@ function isDescendant(maybeAncestor) { function inType(...candidateTypes) { let path = this; while (path) { - for (const type of candidateTypes) { - if (path.node.type === type) return true; - } + if (candidateTypes.includes(path.node.type)) return true; path = path.parentPath; } return false; @@ -38869,12 +38485,10 @@ function shareCommentsWithSiblings() { } } function removeIfExisting(list, toRemove) { - if (!toRemove) return list; - let lastFoundIndex = -1; + if (!(toRemove != null && toRemove.length)) return list; + const set = new Set(toRemove); return list.filter(el => { - const i = toRemove.indexOf(el, lastFoundIndex); - if (i === -1) return true; - lastFoundIndex = i; + return !set.has(el); }); } function addComment(type, content, line) { @@ -38905,10 +38519,11 @@ exports._resyncList = _resyncList; exports._resyncParent = _resyncParent; exports._resyncRemoved = _resyncRemoved; exports.call = call; -exports.isBlacklisted = exports.isDenylisted = isDenylisted; +exports.isDenylisted = isDenylisted; exports.popContext = popContext; exports.pushContext = pushContext; exports.requeue = requeue; +exports.requeueComputedKeyAndDecorators = requeueComputedKeyAndDecorators; exports.resync = resync; exports.setContext = setContext; exports.setKey = setKey; @@ -38920,15 +38535,17 @@ exports.stop = stop; exports.visit = visit; var _traverseNode = __nccwpck_require__(1250); var _index = __nccwpck_require__(8877); +var _removal = __nccwpck_require__(408); +var t = __nccwpck_require__(7912); function call(key) { const opts = this.opts; this.debug(key); if (this.node) { - if (this._call(opts[key])) return true; + if (_call.call(this, opts[key])) return true; } if (this.node) { var _opts$this$node$type; - return this._call((_opts$this$node$type = opts[this.node.type]) == null ? void 0 : _opts$this$node$type[key]); + return _call.call(this, (_opts$this$node$type = opts[this.node.type]) == null ? void 0 : _opts$this$node$type[key]); } return false; } @@ -38953,7 +38570,10 @@ function _call(fns) { function isDenylisted() { var _this$opts$denylist; const denylist = (_this$opts$denylist = this.opts.denylist) != null ? _this$opts$denylist : this.opts.blacklist; - return denylist && denylist.indexOf(this.node.type) > -1; + return denylist == null ? void 0 : denylist.includes(this.node.type); +} +{ + exports.isBlacklisted = isDenylisted; } function restoreContext(path, context) { if (path.context !== context) { @@ -38974,7 +38594,7 @@ function visit() { return false; } const currentContext = this.context; - if (this.shouldSkip || this.call("enter")) { + if (this.shouldSkip || call.call(this, "enter")) { this.debug("Skip..."); return this.shouldStop; } @@ -38982,7 +38602,7 @@ function visit() { this.debug("Recursing into..."); this.shouldStop = (0, _traverseNode.traverseNode)(this.node, this.opts, this.scope, this.state, this, this.skipKeys); restoreContext(this, currentContext); - this.call("exit"); + call.call(this, "exit"); return this.shouldStop; } function skip() { @@ -39012,7 +38632,7 @@ function setScope() { path = path.parentPath; } this.scope = this.getScope(target); - (_this$scope = this.scope) == null ? void 0 : _this$scope.init(); + (_this$scope = this.scope) == null || _this$scope.init(); } function setContext(context) { if (this.skipKeys != null) { @@ -39024,14 +38644,14 @@ function setContext(context) { this.state = context.state; this.opts = context.opts; } - this.setScope(); + setScope.call(this); return this; } function resync() { if (this.removed) return; - this._resyncParent(); - this._resyncList(); - this._resyncKey(); + _resyncParent.call(this); + _resyncList.call(this); + _resyncKey.call(this); } function _resyncParent() { if (this.parentPath) { @@ -39046,14 +38666,14 @@ function _resyncKey() { if (Array.isArray(this.container)) { for (let i = 0; i < this.container.length; i++) { if (this.container[i] === this.node) { - this.setKey(i); + setKey.call(this, i); return; } } } else { for (const key of Object.keys(this.container)) { if (this.container[key] === this.node) { - this.setKey(key); + setKey.call(this, key); return; } } @@ -39068,7 +38688,7 @@ function _resyncList() { } function _resyncRemoved() { if (this.key == null || !this.container || this.container[this.key] !== this.node) { - this._markRemoved(); + _removal._markRemoved.call(this); } } function popContext() { @@ -39087,7 +38707,7 @@ function setup(parentPath, container, listKey, key) { this.listKey = listKey; this.container = container; this.parentPath = parentPath || this.parentPath; - this.setKey(key); + setKey.call(this, key); } function setKey(key) { var _this$node; @@ -39103,6 +38723,20 @@ function requeue(pathToQueue = this) { context.maybeQueue(pathToQueue); } } +function requeueComputedKeyAndDecorators() { + const { + context, + node + } = this; + if (!t.isPrivate(node) && node.computed) { + context.maybeQueue(this.get("key")); + } + if (node.decorators) { + for (const decorator of this.get("decorators")) { + context.maybeQueue(decorator); + } + } +} function _getQueueContexts() { let path = this; let contexts = this.contexts; @@ -39130,12 +38764,14 @@ Object.defineProperty(exports, "__esModule", ({ })); exports.arrowFunctionToExpression = arrowFunctionToExpression; exports.ensureBlock = ensureBlock; +exports.ensureFunctionName = ensureFunctionName; +exports.splitExportDeclaration = splitExportDeclaration; exports.toComputedKey = toComputedKey; exports.unwrapFunctionEnvironment = unwrapFunctionEnvironment; var _t = __nccwpck_require__(7912); -var _helperEnvironmentVisitor = __nccwpck_require__(1097); -var _helperFunctionName = __nccwpck_require__(3968); +var _template = __nccwpck_require__(3412); var _visitors = __nccwpck_require__(3494); +var _context = __nccwpck_require__(4108); const { arrowFunctionExpression, assignmentExpression, @@ -39161,7 +38797,18 @@ const { super: _super, thisExpression, toExpression, - unaryExpression + unaryExpression, + toBindingIdentifierName, + isFunction, + isAssignmentPattern, + isRestElement, + getFunctionName, + cloneNode, + variableDeclaration, + variableDeclarator, + exportNamedDeclaration, + exportSpecifier, + inherits } = _t; function toComputedKey() { let key; @@ -39209,7 +38856,7 @@ function ensureBlock() { } this.node.body = blockStatement(statements); const parentPath = this.get(stringPath); - body.setup(parentPath, listKey ? parentPath.node[listKey] : parentPath.node, listKey, key); + _context.setup.call(body, parentPath, listKey ? parentPath.node[listKey] : parentPath.node, listKey, key); return this.node; } { @@ -39235,10 +38882,15 @@ function arrowFunctionToExpression({ if (!this.isArrowFunctionExpression()) { throw this.buildCodeFrameError("Cannot convert non-arrow function to a function expression."); } + let self = this; + if (!noNewArrows) { + var _self$ensureFunctionN; + self = (_self$ensureFunctionN = self.ensureFunctionName(false)) != null ? _self$ensureFunctionN : self; + } const { thisBinding, fnPath: fn - } = hoistFunctionEnvironment(this, noNewArrows, allowInsertArrow, allowInsertArrowWithRest); + } = hoistFunctionEnvironment(self, noNewArrows, allowInsertArrow, allowInsertArrowWithRest); fn.ensureBlock(); setType(fn, "FunctionExpression"); if (!noNewArrows) { @@ -39250,25 +38902,24 @@ function arrowFunctionToExpression({ }); } fn.get("body").unshiftContainer("body", expressionStatement(callExpression(this.hub.addHelper("newArrowCheck"), [thisExpression(), checkBinding ? identifier(checkBinding.name) : identifier(thisBinding)]))); - fn.replaceWith(callExpression(memberExpression((0, _helperFunctionName.default)(this, true) || fn.node, identifier("bind")), [checkBinding ? identifier(checkBinding.name) : thisExpression()])); + fn.replaceWith(callExpression(memberExpression(fn.node, identifier("bind")), [checkBinding ? identifier(checkBinding.name) : thisExpression()])); return fn.get("callee.object"); } return fn; } -const getSuperCallsVisitor = (0, _visitors.merge)([{ +const getSuperCallsVisitor = (0, _visitors.environmentVisitor)({ CallExpression(child, { allSuperCalls }) { if (!child.get("callee").isSuper()) return; allSuperCalls.push(child); } -}, _helperEnvironmentVisitor.default]); +}); function hoistFunctionEnvironment(fnPath, noNewArrows = true, allowInsertArrow = true, allowInsertArrowWithRest = true) { let arrowParent; let thisEnvFn = fnPath.findParent(p => { if (p.isArrowFunctionExpression()) { - var _arrowParent; - (_arrowParent = arrowParent) != null ? _arrowParent : arrowParent = p; + arrowParent != null ? arrowParent : arrowParent = p; return false; } return p.isFunction() || p.isProgram() || p.isClassProperty({ @@ -39393,7 +39044,7 @@ function hoistFunctionEnvironment(fnPath, noNewArrows = true, allowInsertArrow = } } return { - thisBinding, + thisBinding: thisBinding, fnPath }; } @@ -39408,8 +39059,10 @@ function standardizeSuperProperty(superProp) { const isLogicalAssignment = isLogicalOp(op); if (superProp.node.computed) { const tmp = superProp.scope.generateDeclaredUidIdentifier("tmp"); - const object = superProp.node.object; - const property = superProp.node.property; + const { + object, + property + } = superProp.node; assignmentPath.get("left").replaceWith(memberExpression(object, assignmentExpression("=", tmp, property), true)); assignmentPath.get("right").replaceWith(rightExpression(isLogicalAssignment ? "=" : op, memberExpression(object, identifier(tmp.name), true), value)); } else { @@ -39449,7 +39102,7 @@ function standardizeSuperProperty(superProp) { function hasSuperClass(thisEnvFn) { return thisEnvFn.isClassMethod() && !!thisEnvFn.parentPath.parentPath.node.superClass; } -const assignSuperThisVisitor = (0, _visitors.merge)([{ +const assignSuperThisVisitor = (0, _visitors.environmentVisitor)({ CallExpression(child, { supers, thisBinding @@ -39459,7 +39112,7 @@ const assignSuperThisVisitor = (0, _visitors.merge)([{ supers.add(child.node); child.replaceWithMultiple([child.node, assignmentExpression("=", identifier(thisBinding), identifier("this"))]); } -}, _helperEnvironmentVisitor.default]); +}); function getThisBinding(thisEnvFn, inConstructor) { return getBinding(thisEnvFn, "this", thisBinding => { if (!inConstructor || !hasSuperClass(thisEnvFn)) return thisExpression(); @@ -39509,7 +39162,7 @@ function getBinding(thisEnvFn, key, init) { } return data; } -const getScopeInformationVisitor = (0, _visitors.merge)([{ +const getScopeInformationVisitor = (0, _visitors.environmentVisitor)({ ThisExpression(child, { thisPaths }) { @@ -39567,7 +39220,7 @@ const getScopeInformationVisitor = (0, _visitors.merge)([{ })) return; newTargetPaths.push(child); } -}, _helperEnvironmentVisitor.default]); +}); function getScopeInformation(fnPath) { const thisPaths = []; const argumentsPaths = []; @@ -39589,6 +39242,133 @@ function getScopeInformation(fnPath) { superCalls }; } +function splitExportDeclaration() { + if (!this.isExportDeclaration() || this.isExportAllDeclaration()) { + throw new Error("Only default and named export declarations can be split."); + } + if (this.isExportNamedDeclaration() && this.get("specifiers").length > 0) { + throw new Error("It doesn't make sense to split exported specifiers."); + } + const declaration = this.get("declaration"); + if (this.isExportDefaultDeclaration()) { + const standaloneDeclaration = declaration.isFunctionDeclaration() || declaration.isClassDeclaration(); + const exportExpr = declaration.isFunctionExpression() || declaration.isClassExpression(); + const scope = declaration.isScope() ? declaration.scope.parent : declaration.scope; + let id = declaration.node.id; + let needBindingRegistration = false; + if (!id) { + needBindingRegistration = true; + id = scope.generateUidIdentifier("default"); + if (standaloneDeclaration || exportExpr) { + declaration.node.id = cloneNode(id); + } + } else if (exportExpr && scope.hasBinding(id.name)) { + needBindingRegistration = true; + id = scope.generateUidIdentifier(id.name); + } + const updatedDeclaration = standaloneDeclaration ? declaration.node : variableDeclaration("var", [variableDeclarator(cloneNode(id), declaration.node)]); + const updatedExportDeclaration = exportNamedDeclaration(null, [exportSpecifier(cloneNode(id), identifier("default"))]); + this.insertAfter(updatedExportDeclaration); + this.replaceWith(updatedDeclaration); + if (needBindingRegistration) { + scope.registerDeclaration(this); + } + return this; + } else if (this.get("specifiers").length > 0) { + throw new Error("It doesn't make sense to split exported specifiers."); + } + const bindingIdentifiers = declaration.getOuterBindingIdentifiers(); + const specifiers = Object.keys(bindingIdentifiers).map(name => { + return exportSpecifier(identifier(name), identifier(name)); + }); + const aliasDeclar = exportNamedDeclaration(null, specifiers); + this.insertAfter(aliasDeclar); + this.replaceWith(declaration.node); + return this; +} +const refersOuterBindingVisitor = { + "ReferencedIdentifier|BindingIdentifier"(path, state) { + if (path.node.name !== state.name) return; + state.needsRename = true; + path.stop(); + }, + Scope(path, state) { + if (path.scope.hasOwnBinding(state.name)) { + path.skip(); + } + } +}; +function ensureFunctionName(supportUnicodeId) { + if (this.node.id) return this; + const res = getFunctionName(this.node, this.parent); + if (res == null) return this; + let { + name + } = res; + if (!supportUnicodeId && /[\uD800-\uDFFF]/.test(name)) { + return null; + } + if (name.startsWith("get ") || name.startsWith("set ")) { + return null; + } + name = toBindingIdentifierName(name.replace(/[/ ]/g, "_")); + const id = identifier(name); + inherits(id, res.originalNode); + const state = { + needsRename: false, + name + }; + const { + scope + } = this; + const binding = scope.getOwnBinding(name); + if (binding) { + if (binding.kind === "param") { + state.needsRename = true; + } else {} + } else if (scope.parent.hasBinding(name) || scope.hasGlobal(name)) { + this.traverse(refersOuterBindingVisitor, state); + } + if (!state.needsRename) { + this.node.id = id; + { + scope.getProgramParent().references[id.name] = true; + } + return this; + } + if (scope.hasBinding(id.name) && !scope.hasGlobal(id.name)) { + scope.rename(id.name); + this.node.id = id; + { + scope.getProgramParent().references[id.name] = true; + } + return this; + } + if (!isFunction(this.node)) return null; + const key = scope.generateUidIdentifier(id.name); + const params = []; + for (let i = 0, len = getFunctionArity(this.node); i < len; i++) { + params.push(scope.generateUidIdentifier("x")); + } + const call = _template.default.expression.ast` + (function (${key}) { + function ${id}(${params}) { + return ${cloneNode(key)}.apply(this, arguments); + } + + ${cloneNode(id)}.toString = function () { + return ${cloneNode(key)}.toString(); + } + + return ${cloneNode(id)}; + })(${toExpression(this.node)}) + `; + return this.replaceWith(call)[0].get("arguments.0"); +} +function getFunctionArity(node) { + const count = node.params.findIndex(param => isAssignmentPattern(param) || isRestElement(param)); + return count === -1 ? node.params.length : count; +} //# sourceMappingURL=conversion.js.map @@ -39722,6 +39502,23 @@ function _evaluate(path, state) { deopt(binding.path, state); return; } + const bindingPathScope = binding.path.scope; + if (binding.kind === "var" && bindingPathScope !== binding.scope) { + let hasUnsafeBlock = !bindingPathScope.path.parentPath.isBlockStatement(); + for (let scope = bindingPathScope.parent; scope; scope = scope.parent) { + var _scope$path$parentPat; + if (scope === path.scope) { + if (hasUnsafeBlock) { + deopt(binding.path, state); + return; + } + break; + } + if ((_scope$path$parentPat = scope.path.parentPath) != null && _scope$path$parentPat.isBlockStatement()) { + hasUnsafeBlock = true; + } + } + } if (binding.hasValue) { return binding.value; } @@ -39738,9 +39535,13 @@ function _evaluate(path, state) { if (resolved === path) { deopt(path, state); return; - } else { - return evaluateCached(resolved, state); } + const value = evaluateCached(resolved, state); + if (typeof value === "object" && value !== null && binding.references > 1) { + deopt(resolved, state); + return; + } + return value; } if (path.isUnaryExpression({ prefix: true @@ -39897,7 +39698,7 @@ function _evaluate(path, state) { if (object.isIdentifier() && property.isIdentifier() && isValidObjectCallee(object.node.name) && !isInvalidMethod(property.node.name)) { context = global[object.node.name]; const key = property.node.name; - if (Object.hasOwnProperty.call(context, key)) { + if (hasOwnProperty.call(context, key)) { func = context[key]; } } @@ -39964,6 +39765,7 @@ exports._getPattern = _getPattern; exports.get = get; exports.getAllNextSiblings = getAllNextSiblings; exports.getAllPrevSiblings = getAllPrevSiblings; +exports.getAssignmentIdentifiers = getAssignmentIdentifiers; exports.getBindingIdentifierPaths = getBindingIdentifierPaths; exports.getBindingIdentifiers = getBindingIdentifiers; exports.getCompletionRecords = getCompletionRecords; @@ -39976,9 +39778,9 @@ exports.getSibling = getSibling; var _index = __nccwpck_require__(8877); var _t = __nccwpck_require__(7912); const { + getAssignmentIdentifiers: _getAssignmentIdentifiers, getBindingIdentifiers: _getBindingIdentifiers, getOuterBindingIdentifiers: _getOuterBindingIdentifiers, - isDeclaration, numericLiteral, unaryExpression } = _t; @@ -40074,12 +39876,16 @@ function getStatementListCompletion(paths, context) { completions.push(...lastNormalCompletions); if (lastNormalCompletions.some(c => c.path.isDeclaration())) { completions.push(...statementCompletions); - replaceBreakStatementInBreakCompletion(statementCompletions, true); + if (!context.shouldPreserveBreak) { + replaceBreakStatementInBreakCompletion(statementCompletions, true); + } + } + if (!context.shouldPreserveBreak) { + replaceBreakStatementInBreakCompletion(statementCompletions, false); } - replaceBreakStatementInBreakCompletion(statementCompletions, false); } else { completions.push(...statementCompletions); - if (!context.shouldPopulateBreak) { + if (!context.shouldPopulateBreak && !context.shouldPreserveBreak) { replaceBreakStatementInBreakCompletion(statementCompletions, true); } } @@ -40103,7 +39909,7 @@ function getStatementListCompletion(paths, context) { } else if (paths.length) { for (let i = paths.length - 1; i >= 0; i--) { const pathCompletions = _getCompletionRecords(paths[i], context); - if (pathCompletions.length > 1 || pathCompletions.length === 1 && !pathCompletions[0].path.isVariableDeclaration()) { + if (pathCompletions.length > 1 || pathCompletions.length === 1 && !pathCompletions[0].path.isVariableDeclaration() && !pathCompletions[0].path.isEmptyStatement()) { completions.push(...pathCompletions); break; } @@ -40133,7 +39939,8 @@ function _getCompletionRecords(path, context) { return getStatementListCompletion(path.get("consequent"), { canHaveBreak: true, shouldPopulateBreak: false, - inCaseClause: true + inCaseClause: true, + shouldPreserveBreak: context.shouldPreserveBreak }); } else if (path.isBreakStatement()) { records.push(BreakCompletion(path)); @@ -40142,11 +39949,12 @@ function _getCompletionRecords(path, context) { } return records; } -function getCompletionRecords() { +function getCompletionRecords(shouldPreserveBreak = false) { const records = _getCompletionRecords(this, { canHaveBreak: false, shouldPopulateBreak: false, - inCaseClause: false + inCaseClause: false, + shouldPreserveBreak }); return records.map(r => r.path); } @@ -40189,9 +39997,9 @@ function get(key, context = true) { if (context === true) context = this.context; const parts = key.split("."); if (parts.length === 1) { - return this._getKey(key, context); + return _getKey.call(this, key, context); } else { - return this._getPattern(parts, context); + return _getPattern.call(this, parts, context); } } function _getKey(key, context) { @@ -40231,6 +40039,9 @@ function _getPattern(parts, context) { } return path; } +function getAssignmentIdentifiers() { + return _getAssignmentIdentifiers(this.node); +} function getBindingIdentifiers(duplicates) { return _getBindingIdentifiers(this.node, duplicates); } @@ -40257,7 +40068,7 @@ function getBindingIdentifierPaths(duplicates = false, outerOnly = false) { } if (id.isExportDeclaration()) { const declaration = id.get("declaration"); - if (isDeclaration(declaration)) { + if (declaration.isDeclaration()) { search.push(declaration); } continue; @@ -40318,7 +40129,8 @@ var NodePath_replacement = __nccwpck_require__(8805); var NodePath_evaluation = __nccwpck_require__(7969); var NodePath_conversion = __nccwpck_require__(277); var NodePath_introspection = __nccwpck_require__(217); -var NodePath_context = __nccwpck_require__(4108); +var _context = __nccwpck_require__(4108); +var NodePath_context = _context; var NodePath_removal = __nccwpck_require__(408); var NodePath_modification = __nccwpck_require__(7575); var NodePath_family = __nccwpck_require__(9853); @@ -40328,17 +40140,13 @@ const { validate } = _t; const debug = _debug("babel"); -const REMOVED = 1 << 0; -exports.REMOVED = REMOVED; -const SHOULD_STOP = 1 << 1; -exports.SHOULD_STOP = SHOULD_STOP; -const SHOULD_SKIP = 1 << 2; -exports.SHOULD_SKIP = SHOULD_SKIP; -class NodePath { +const REMOVED = exports.REMOVED = 1 << 0; +const SHOULD_STOP = exports.SHOULD_STOP = 1 << 1; +const SHOULD_SKIP = exports.SHOULD_SKIP = 1 << 2; +const NodePath_Final = exports["default"] = class NodePath { constructor(hub, parent) { this.contexts = []; this.state = null; - this.opts = null; this._traverseFlags = 0; this.skipKeys = null; this.parentPath = null; @@ -40347,12 +40155,31 @@ class NodePath { this.key = null; this.node = null; this.type = null; + this._store = null; this.parent = parent; this.hub = hub; this.data = null; this.context = null; this.scope = null; } + get removed() { + return (this._traverseFlags & 1) > 0; + } + set removed(v) { + if (v) this._traverseFlags |= 1;else this._traverseFlags &= -2; + } + get shouldStop() { + return (this._traverseFlags & 2) > 0; + } + set shouldStop(v) { + if (v) this._traverseFlags |= 2;else this._traverseFlags &= -3; + } + get shouldSkip() { + return (this._traverseFlags & 4) > 0; + } + set shouldSkip(v) { + if (v) this._traverseFlags |= 4;else this._traverseFlags &= -5; + } static get({ hub, parentPath, @@ -40368,13 +40195,13 @@ class NodePath { throw new Error("To get a node path the parent needs to exist"); } const targetNode = container[key]; - const paths = cache.getOrCreateCachedPaths(hub, parent); + const paths = cache.getOrCreateCachedPaths(parent, parentPath); let path = paths.get(targetNode); if (!path) { path = new NodePath(hub, parent); if (targetNode) paths.set(targetNode, path); } - path.setup(parentPath, container, listKey, key); + _context.setup.call(path, parentPath, container, listKey, key); return path; } getScope(scope) { @@ -40435,60 +40262,143 @@ class NodePath { get parentKey() { return this.listKey || this.key; } - get shouldSkip() { - return !!(this._traverseFlags & SHOULD_SKIP); - } - set shouldSkip(v) { - if (v) { - this._traverseFlags |= SHOULD_SKIP; - } else { - this._traverseFlags &= ~SHOULD_SKIP; - } - } - get shouldStop() { - return !!(this._traverseFlags & SHOULD_STOP); - } - set shouldStop(v) { - if (v) { - this._traverseFlags |= SHOULD_STOP; - } else { - this._traverseFlags &= ~SHOULD_STOP; - } - } - get removed() { - return !!(this._traverseFlags & REMOVED); - } - set removed(v) { - if (v) { - this._traverseFlags |= REMOVED; - } else { - this._traverseFlags &= ~REMOVED; - } - } +}; +const methods = { + findParent: NodePath_ancestry.findParent, + find: NodePath_ancestry.find, + getFunctionParent: NodePath_ancestry.getFunctionParent, + getStatementParent: NodePath_ancestry.getStatementParent, + getEarliestCommonAncestorFrom: NodePath_ancestry.getEarliestCommonAncestorFrom, + getDeepestCommonAncestorFrom: NodePath_ancestry.getDeepestCommonAncestorFrom, + getAncestry: NodePath_ancestry.getAncestry, + isAncestor: NodePath_ancestry.isAncestor, + isDescendant: NodePath_ancestry.isDescendant, + inType: NodePath_ancestry.inType, + getTypeAnnotation: NodePath_inference.getTypeAnnotation, + isBaseType: NodePath_inference.isBaseType, + couldBeBaseType: NodePath_inference.couldBeBaseType, + baseTypeStrictlyMatches: NodePath_inference.baseTypeStrictlyMatches, + isGenericType: NodePath_inference.isGenericType, + replaceWithMultiple: NodePath_replacement.replaceWithMultiple, + replaceWithSourceString: NodePath_replacement.replaceWithSourceString, + replaceWith: NodePath_replacement.replaceWith, + replaceExpressionWithStatements: NodePath_replacement.replaceExpressionWithStatements, + replaceInline: NodePath_replacement.replaceInline, + evaluateTruthy: NodePath_evaluation.evaluateTruthy, + evaluate: NodePath_evaluation.evaluate, + toComputedKey: NodePath_conversion.toComputedKey, + ensureBlock: NodePath_conversion.ensureBlock, + unwrapFunctionEnvironment: NodePath_conversion.unwrapFunctionEnvironment, + arrowFunctionToExpression: NodePath_conversion.arrowFunctionToExpression, + splitExportDeclaration: NodePath_conversion.splitExportDeclaration, + ensureFunctionName: NodePath_conversion.ensureFunctionName, + matchesPattern: NodePath_introspection.matchesPattern, + isStatic: NodePath_introspection.isStatic, + isNodeType: NodePath_introspection.isNodeType, + canHaveVariableDeclarationOrExpression: NodePath_introspection.canHaveVariableDeclarationOrExpression, + canSwapBetweenExpressionAndStatement: NodePath_introspection.canSwapBetweenExpressionAndStatement, + isCompletionRecord: NodePath_introspection.isCompletionRecord, + isStatementOrBlock: NodePath_introspection.isStatementOrBlock, + referencesImport: NodePath_introspection.referencesImport, + getSource: NodePath_introspection.getSource, + willIMaybeExecuteBefore: NodePath_introspection.willIMaybeExecuteBefore, + _guessExecutionStatusRelativeTo: NodePath_introspection._guessExecutionStatusRelativeTo, + resolve: NodePath_introspection.resolve, + isConstantExpression: NodePath_introspection.isConstantExpression, + isInStrictMode: NodePath_introspection.isInStrictMode, + isDenylisted: NodePath_context.isDenylisted, + visit: NodePath_context.visit, + skip: NodePath_context.skip, + skipKey: NodePath_context.skipKey, + stop: NodePath_context.stop, + setContext: NodePath_context.setContext, + requeue: NodePath_context.requeue, + requeueComputedKeyAndDecorators: NodePath_context.requeueComputedKeyAndDecorators, + remove: NodePath_removal.remove, + insertBefore: NodePath_modification.insertBefore, + insertAfter: NodePath_modification.insertAfter, + unshiftContainer: NodePath_modification.unshiftContainer, + pushContainer: NodePath_modification.pushContainer, + getOpposite: NodePath_family.getOpposite, + getCompletionRecords: NodePath_family.getCompletionRecords, + getSibling: NodePath_family.getSibling, + getPrevSibling: NodePath_family.getPrevSibling, + getNextSibling: NodePath_family.getNextSibling, + getAllNextSiblings: NodePath_family.getAllNextSiblings, + getAllPrevSiblings: NodePath_family.getAllPrevSiblings, + get: NodePath_family.get, + getAssignmentIdentifiers: NodePath_family.getAssignmentIdentifiers, + getBindingIdentifiers: NodePath_family.getBindingIdentifiers, + getOuterBindingIdentifiers: NodePath_family.getOuterBindingIdentifiers, + getBindingIdentifierPaths: NodePath_family.getBindingIdentifierPaths, + getOuterBindingIdentifierPaths: NodePath_family.getOuterBindingIdentifierPaths, + shareCommentsWithSiblings: NodePath_comments.shareCommentsWithSiblings, + addComment: NodePath_comments.addComment, + addComments: NodePath_comments.addComments +}; +Object.assign(NodePath_Final.prototype, methods); +{ + NodePath_Final.prototype.arrowFunctionToShadowed = NodePath_conversion[String("arrowFunctionToShadowed")]; + Object.assign(NodePath_Final.prototype, { + has: NodePath_introspection[String("has")], + is: NodePath_introspection[String("is")], + isnt: NodePath_introspection[String("isnt")], + equals: NodePath_introspection[String("equals")], + hoist: NodePath_modification[String("hoist")], + updateSiblingKeys: NodePath_modification.updateSiblingKeys, + call: NodePath_context.call, + isBlacklisted: NodePath_context[String("isBlacklisted")], + setScope: NodePath_context.setScope, + resync: NodePath_context.resync, + popContext: NodePath_context.popContext, + pushContext: NodePath_context.pushContext, + setup: NodePath_context.setup, + setKey: NodePath_context.setKey + }); } -Object.assign(NodePath.prototype, NodePath_ancestry, NodePath_inference, NodePath_replacement, NodePath_evaluation, NodePath_conversion, NodePath_introspection, NodePath_context, NodePath_removal, NodePath_modification, NodePath_family, NodePath_comments); { - NodePath.prototype._guessExecutionStatusRelativeToDifferentFunctions = NodePath_introspection._guessExecutionStatusRelativeTo; + NodePath_Final.prototype._guessExecutionStatusRelativeToDifferentFunctions = NodePath_introspection._guessExecutionStatusRelativeTo; + NodePath_Final.prototype._guessExecutionStatusRelativeToDifferentFunctions = NodePath_introspection._guessExecutionStatusRelativeTo; + Object.assign(NodePath_Final.prototype, { + _getTypeAnnotation: NodePath_inference._getTypeAnnotation, + _replaceWith: NodePath_replacement._replaceWith, + _resolve: NodePath_introspection._resolve, + _call: NodePath_context._call, + _resyncParent: NodePath_context._resyncParent, + _resyncKey: NodePath_context._resyncKey, + _resyncList: NodePath_context._resyncList, + _resyncRemoved: NodePath_context._resyncRemoved, + _getQueueContexts: NodePath_context._getQueueContexts, + _removeFromScope: NodePath_removal._removeFromScope, + _callRemovalHooks: NodePath_removal._callRemovalHooks, + _remove: NodePath_removal._remove, + _markRemoved: NodePath_removal._markRemoved, + _assertUnremoved: NodePath_removal._assertUnremoved, + _containerInsert: NodePath_modification._containerInsert, + _containerInsertBefore: NodePath_modification._containerInsertBefore, + _containerInsertAfter: NodePath_modification._containerInsertAfter, + _verifyNodeList: NodePath_modification._verifyNodeList, + _getKey: NodePath_family._getKey, + _getPattern: NodePath_family._getPattern + }); } for (const type of t.TYPES) { const typeKey = `is${type}`; const fn = t[typeKey]; - NodePath.prototype[typeKey] = function (opts) { + NodePath_Final.prototype[typeKey] = function (opts) { return fn(this.node, opts); }; - NodePath.prototype[`assert${type}`] = function (opts) { + NodePath_Final.prototype[`assert${type}`] = function (opts) { if (!fn(this.node, opts)) { throw new TypeError(`Expected node path of type ${type}`); } }; } -Object.assign(NodePath.prototype, NodePath_virtual_types_validator); +Object.assign(NodePath_Final.prototype, NodePath_virtual_types_validator); for (const type of Object.keys(virtualTypes)) { if (type[0] === "_") continue; if (!t.TYPES.includes(type)) t.TYPES.push(type); } -var _default = NodePath; -exports["default"] = _default; //# sourceMappingURL=index.js.map @@ -40539,7 +40449,7 @@ function getTypeAnnotation() { if (type != null) { return type; } - type = this._getTypeAnnotation() || anyTypeAnnotation(); + type = _getTypeAnnotation.call(this) || anyTypeAnnotation(); if (isTypeAnnotation(type) || isTSTypeAnnotation(type)) { type = type.typeAnnotation; } @@ -40693,7 +40603,7 @@ function getTypeAnnotationBindingConstantViolations(binding, path, name) { const testType = getConditionalAnnotation(binding, path, name); if (testType) { const testConstantViolations = getConstantViolationsBefore(binding, testType.ifStatement); - constantViolations = constantViolations.filter(path => testConstantViolations.indexOf(path) < 0); + constantViolations = constantViolations.filter(path => !testConstantViolations.includes(path)); types.push(testType.typeAnnotation); } if (constantViolations.length) { @@ -40735,7 +40645,7 @@ function inferAnnotationFromBinaryExpression(name, path) { if (operator === "===") { return target.getTypeAnnotation(); } - if (BOOLEAN_NUMBER_BINARY_OPERATORS.indexOf(operator) >= 0) { + if (BOOLEAN_NUMBER_BINARY_OPERATORS.includes(operator)) { return numberTypeAnnotation(); } return; @@ -40774,7 +40684,7 @@ function getParentConditionalPath(binding, path, name) { return parentPath; } if (parentPath.isFunction()) { - if (parentPath.parentPath.scope.getBinding(name) !== binding) return; + if (name == null || parentPath.parentPath.scope.getBinding(name) !== binding) return; } path = parentPath; } @@ -40901,19 +40811,19 @@ function UnaryExpression(node) { const operator = node.operator; if (operator === "void") { return voidTypeAnnotation(); - } else if (NUMBER_UNARY_OPERATORS.indexOf(operator) >= 0) { + } else if (NUMBER_UNARY_OPERATORS.includes(operator)) { return numberTypeAnnotation(); - } else if (STRING_UNARY_OPERATORS.indexOf(operator) >= 0) { + } else if (STRING_UNARY_OPERATORS.includes(operator)) { return stringTypeAnnotation(); - } else if (BOOLEAN_UNARY_OPERATORS.indexOf(operator) >= 0) { + } else if (BOOLEAN_UNARY_OPERATORS.includes(operator)) { return booleanTypeAnnotation(); } } function BinaryExpression(node) { const operator = node.operator; - if (NUMBER_BINARY_OPERATORS.indexOf(operator) >= 0) { + if (NUMBER_BINARY_OPERATORS.includes(operator)) { return numberTypeAnnotation(); - } else if (BOOLEAN_BINARY_OPERATORS.indexOf(operator) >= 0) { + } else if (BOOLEAN_BINARY_OPERATORS.includes(operator)) { return booleanTypeAnnotation(); } else if (operator === "+") { const right = this.get("right"); @@ -41046,12 +40956,12 @@ const { } = _t; function createUnionType(types) { { - if (isFlowType(types[0])) { + if (types.every(v => isFlowType(v))) { if (createFlowUnionType) { return createFlowUnionType(types); } return createUnionTypeAnnotation(types); - } else { + } else if (types.every(v => isTSType(v))) { if (createTSUnionType) { return createTSUnionType(types); } @@ -41077,17 +40987,13 @@ exports._guessExecutionStatusRelativeTo = _guessExecutionStatusRelativeTo; exports._resolve = _resolve; exports.canHaveVariableDeclarationOrExpression = canHaveVariableDeclarationOrExpression; exports.canSwapBetweenExpressionAndStatement = canSwapBetweenExpressionAndStatement; -exports.equals = equals; exports.getSource = getSource; -exports.has = has; -exports.is = void 0; exports.isCompletionRecord = isCompletionRecord; exports.isConstantExpression = isConstantExpression; exports.isInStrictMode = isInStrictMode; exports.isNodeType = isNodeType; exports.isStatementOrBlock = isStatementOrBlock; exports.isStatic = isStatic; -exports.isnt = isnt; exports.matchesPattern = matchesPattern; exports.referencesImport = referencesImport; exports.resolve = resolve; @@ -41107,24 +41013,28 @@ const { function matchesPattern(pattern, allowPartial) { return _matchesPattern(this.node, pattern, allowPartial); } -function has(key) { - const val = this.node && this.node[key]; - if (val && Array.isArray(val)) { - return !!val.length; - } else { - return !!val; - } +{ + exports.has = function has(key) { + var _this$node; + const val = (_this$node = this.node) == null ? void 0 : _this$node[key]; + if (val && Array.isArray(val)) { + return !!val.length; + } else { + return !!val; + } + }; } function isStatic() { return this.scope.isStatic(this.node); } -const is = has; -exports.is = is; -function isnt(key) { - return !this.has(key); -} -function equals(key, value) { - return this.node[key] === value; +{ + exports.is = exports.has; + exports.isnt = function isnt(key) { + return !this.has(key); + }; + exports.equals = function equals(key, value) { + return this.node[key] === value; + }; } function isNodeType(type) { return isType(this.type, type); @@ -41268,8 +41178,8 @@ function _guessExecutionStatusRelativeToCached(base, target, cache) { target: target.getAncestry(), this: base.getAncestry() }; - if (paths.target.indexOf(base) >= 0) return "after"; - if (paths.this.indexOf(target) >= 0) return "before"; + if (paths.target.includes(base)) return "after"; + if (paths.this.includes(target)) return "before"; let commonPath; const commonIndex = { target: 0, @@ -41349,10 +41259,11 @@ function _guessExecutionStatusRelativeToDifferentFunctionsCached(base, target, c return result; } function resolve(dangerous, resolved) { - return this._resolve(dangerous, resolved) || this; + return _resolve.call(this, dangerous, resolved) || this; } function _resolve(dangerous, resolved) { - if (resolved && resolved.indexOf(this) >= 0) return; + var _resolved; + if ((_resolved = resolved) != null && _resolved.includes(this)) return; resolved = resolved || []; resolved.push(this); if (this.isVariableDeclarator()) { @@ -41423,6 +41334,18 @@ function isConstantExpression() { } = this.node; return operator !== "in" && operator !== "instanceof" && this.get("left").isConstantExpression() && this.get("right").isConstantExpression(); } + if (this.isMemberExpression()) { + return !this.node.computed && this.get("object").isIdentifier({ + name: "Symbol" + }) && !this.scope.hasBinding("Symbol", { + noGlobals: true + }); + } + if (this.isCallExpression()) { + return this.node.arguments.length === 1 && this.get("callee").matchesPattern("Symbol.for") && !this.scope.hasBinding("Symbol", { + noGlobals: true + }) && this.get("arguments")[0].isStringLiteral(); + } return false; } function isInStrictMode() { @@ -41448,6 +41371,7 @@ function isInStrictMode() { return true; } } + return false; }); return !!strictParent; } @@ -41539,7 +41463,7 @@ class PathHoister { } else { break; } - if (this.breakOnScopePaths.indexOf(scope.path) >= 0) { + if (this.breakOnScopePaths.includes(scope.path)) { break; } } while (scope = scope.parent); @@ -41601,6 +41525,7 @@ class PathHoister { return path; } } while (path = path.parentPath); + return path; } hasOwnParamBindings(scope) { for (const name of Object.keys(this.bindings)) { @@ -41626,7 +41551,7 @@ class PathHoister { uid = jsxExpressionContainer(uid); } this.path.replaceWith(cloneNode(uid)); - return attachTo.isVariableDeclarator() ? attached.get("init") : attached.get("declarations.0.init"); + return attached.isVariableDeclarator() ? attached.get("init") : attached.get("declarations.0.init"); } } exports["default"] = PathHoister; @@ -41646,7 +41571,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true })); exports.hooks = void 0; -const hooks = [function (self, parent) { +const hooks = exports.hooks = [function (self, parent) { const removeParent = self.key === "test" && (parent.isWhile() || parent.isSwitchCase()) || self.key === "declaration" && parent.isExportDeclaration() || self.key === "body" && parent.isLabeledStatement() || self.listKey === "declarations" && parent.isVariableDeclaration() && parent.node.declarations.length === 1 || self.key === "expression" && parent.isExpressionStatement(); if (removeParent) { parent.remove(); @@ -41670,12 +41595,12 @@ const hooks = [function (self, parent) { if (parent.isIfStatement() && self.key === "consequent" || self.key === "body" && (parent.isLoop() || parent.isArrowFunctionExpression())) { self.replaceWith({ type: "BlockStatement", + directives: [], body: [] }); return true; } }]; -exports.hooks = hooks; //# sourceMappingURL=removal-hooks.js.map @@ -41739,14 +41664,14 @@ function isReferencedIdentifier(opts) { node, parent } = this; - if (!isIdentifier(node, opts) && !isJSXMemberExpression(parent, opts)) { - if (isJSXIdentifier(node, opts)) { - if (isCompatTag(node.name)) return false; - } else { - return false; - } + if (isIdentifier(node, opts)) { + return nodeIsReferenced(node, parent, this.parentPath.parent); + } else if (isJSXIdentifier(node, opts)) { + if (!isJSXMemberExpression(parent) && isCompatTag(node.name)) return false; + return nodeIsReferenced(node, parent, this.parentPath.parent); + } else { + return false; } - return nodeIsReferenced(node, parent, this.parentPath.parent); } function isReferencedMemberExpression() { const { @@ -41802,7 +41727,8 @@ function isVar() { return nodeIsVar(this.node); } function isUser() { - return this.node && !!this.node.loc; + var _this$node; + return !!((_this$node = this.node) != null && _this$node.loc); } function isGenerated() { return !this.isUser(); @@ -41827,10 +41753,12 @@ function isFlow() { } } function isRestProperty() { - return nodeIsRestElement(this.node) && this.parentPath && this.parentPath.isObjectPattern(); + var _this$parentPath; + return nodeIsRestElement(this.node) && ((_this$parentPath = this.parentPath) == null ? void 0 : _this$parentPath.isObjectPattern()); } function isSpreadProperty() { - return nodeIsRestElement(this.node) && this.parentPath && this.parentPath.isObjectExpression(); + var _this$parentPath2; + return nodeIsRestElement(this.node) && ((_this$parentPath2 = this.parentPath) == null ? void 0 : _this$parentPath2.isObjectExpression()); } function isForAwaitStatement() { return isForOfStatement(this.node, { @@ -41861,42 +41789,24 @@ Object.defineProperty(exports, "__esModule", ({ value: true })); exports.Var = exports.User = exports.Statement = exports.SpreadProperty = exports.Scope = exports.RestProperty = exports.ReferencedMemberExpression = exports.ReferencedIdentifier = exports.Referenced = exports.Pure = exports.NumericLiteralTypeAnnotation = exports.Generated = exports.ForAwaitStatement = exports.Flow = exports.Expression = exports.ExistentialTypeParam = exports.BlockScoped = exports.BindingIdentifier = void 0; -const ReferencedIdentifier = ["Identifier", "JSXIdentifier"]; -exports.ReferencedIdentifier = ReferencedIdentifier; -const ReferencedMemberExpression = ["MemberExpression"]; -exports.ReferencedMemberExpression = ReferencedMemberExpression; -const BindingIdentifier = ["Identifier"]; -exports.BindingIdentifier = BindingIdentifier; -const Statement = ["Statement"]; -exports.Statement = Statement; -const Expression = ["Expression"]; -exports.Expression = Expression; -const Scope = ["Scopable", "Pattern"]; -exports.Scope = Scope; -const Referenced = null; -exports.Referenced = Referenced; -const BlockScoped = null; -exports.BlockScoped = BlockScoped; -const Var = ["VariableDeclaration"]; -exports.Var = Var; -const User = null; -exports.User = User; -const Generated = null; -exports.Generated = Generated; -const Pure = null; -exports.Pure = Pure; -const Flow = ["Flow", "ImportDeclaration", "ExportDeclaration", "ImportSpecifier"]; -exports.Flow = Flow; -const RestProperty = ["RestElement"]; -exports.RestProperty = RestProperty; -const SpreadProperty = ["RestElement"]; -exports.SpreadProperty = SpreadProperty; -const ExistentialTypeParam = ["ExistsTypeAnnotation"]; -exports.ExistentialTypeParam = ExistentialTypeParam; -const NumericLiteralTypeAnnotation = ["NumberLiteralTypeAnnotation"]; -exports.NumericLiteralTypeAnnotation = NumericLiteralTypeAnnotation; -const ForAwaitStatement = ["ForOfStatement"]; -exports.ForAwaitStatement = ForAwaitStatement; +const ReferencedIdentifier = exports.ReferencedIdentifier = ["Identifier", "JSXIdentifier"]; +const ReferencedMemberExpression = exports.ReferencedMemberExpression = ["MemberExpression"]; +const BindingIdentifier = exports.BindingIdentifier = ["Identifier"]; +const Statement = exports.Statement = ["Statement"]; +const Expression = exports.Expression = ["Expression"]; +const Scope = exports.Scope = ["Scopable", "Pattern"]; +const Referenced = exports.Referenced = null; +const BlockScoped = exports.BlockScoped = ["FunctionDeclaration", "ClassDeclaration", "VariableDeclaration"]; +const Var = exports.Var = ["VariableDeclaration"]; +const User = exports.User = null; +const Generated = exports.Generated = null; +const Pure = exports.Pure = null; +const Flow = exports.Flow = ["Flow", "ImportDeclaration", "ExportDeclaration", "ImportSpecifier"]; +const RestProperty = exports.RestProperty = ["RestElement"]; +const SpreadProperty = exports.SpreadProperty = ["RestElement"]; +const ExistentialTypeParam = exports.ExistentialTypeParam = ["ExistsTypeAnnotation"]; +const NumericLiteralTypeAnnotation = exports.NumericLiteralTypeAnnotation = ["NumberLiteralTypeAnnotation"]; +const ForAwaitStatement = exports.ForAwaitStatement = ["ForOfStatement"]; //# sourceMappingURL=virtual-types.js.map @@ -41916,16 +41826,17 @@ exports._containerInsert = _containerInsert; exports._containerInsertAfter = _containerInsertAfter; exports._containerInsertBefore = _containerInsertBefore; exports._verifyNodeList = _verifyNodeList; -exports.hoist = hoist; exports.insertAfter = insertAfter; exports.insertBefore = insertBefore; exports.pushContainer = pushContainer; exports.unshiftContainer = unshiftContainer; exports.updateSiblingKeys = updateSiblingKeys; var _cache = __nccwpck_require__(5069); -var _hoister = __nccwpck_require__(1225); var _index = __nccwpck_require__(8877); +var _context = __nccwpck_require__(4108); +var _removal = __nccwpck_require__(408); var _t = __nccwpck_require__(7912); +var _hoister = __nccwpck_require__(1225); const { arrowFunctionExpression, assertExpression, @@ -41944,8 +41855,8 @@ const { thisExpression } = _t; function insertBefore(nodes_) { - this._assertUnremoved(); - const nodes = this._verifyNodeList(nodes_); + _removal._assertUnremoved.call(this); + const nodes = _verifyNodeList.call(this, nodes_); const { parentPath, parent @@ -41956,18 +41867,18 @@ function insertBefore(nodes_) { if (this.node) nodes.push(this.node); return this.replaceExpressionWithStatements(nodes); } else if (Array.isArray(this.container)) { - return this._containerInsertBefore(nodes); + return _containerInsertBefore.call(this, nodes); } else if (this.isStatementOrBlock()) { const node = this.node; const shouldInsertCurrentNode = node && (!this.isExpressionStatement() || node.expression != null); - this.replaceWith(blockStatement(shouldInsertCurrentNode ? [node] : [])); - return this.unshiftContainer("body", nodes); + const [blockPath] = this.replaceWith(blockStatement(shouldInsertCurrentNode ? [node] : [])); + return blockPath.unshiftContainer("body", nodes); } else { throw new Error("We don't know what to do with this node type. " + "We were previously a Statement but we can't fit in here?"); } } function _containerInsert(from, nodes) { - this.updateSiblingKeys(from, nodes.length); + updateSiblingKeys.call(this, from, nodes.length); const paths = []; this.container.splice(from, 0, ...nodes); for (let i = 0; i < nodes.length; i++) { @@ -41976,12 +41887,12 @@ function _containerInsert(from, nodes) { const path = this.getSibling(to); paths.push(path); if ((_this$context = this.context) != null && _this$context.queue) { - path.pushContext(this.context); + _context.pushContext.call(path, this.context); } } - const contexts = this._getQueueContexts(); + const contexts = _context._getQueueContexts.call(this); for (const path of paths) { - path.setScope(); + _context.setScope.call(path); path.debug("Inserted."); for (const context of contexts) { context.maybeQueue(path, true); @@ -41990,10 +41901,10 @@ function _containerInsert(from, nodes) { return paths; } function _containerInsertBefore(nodes) { - return this._containerInsert(this.key, nodes); + return _containerInsert.call(this, this.key, nodes); } function _containerInsertAfter(nodes) { - return this._containerInsert(this.key + 1, nodes); + return _containerInsert.call(this, this.key + 1, nodes); } const last = arr => arr[arr.length - 1]; function isHiddenInSequenceExpression(path) { @@ -42007,11 +41918,11 @@ function isAlmostConstantAssignment(node, scope) { return blockScope.hasOwnBinding(node.left.name) && blockScope.getOwnBinding(node.left.name).constantViolations.length <= 1; } function insertAfter(nodes_) { - this._assertUnremoved(); + _removal._assertUnremoved.call(this); if (this.isSequenceExpression()) { return last(this.get("expressions")).insertAfter(nodes_); } - const nodes = this._verifyNodeList(nodes_); + const nodes = _verifyNodeList.call(this, nodes_); const { parentPath, parent @@ -42021,18 +41932,19 @@ function insertAfter(nodes_) { return isExpression(node) ? expressionStatement(node) : node; })); } else if (this.isNodeType("Expression") && !this.isJSXElement() && !parentPath.isJSXElement() || parentPath.isForStatement() && this.key === "init") { - if (this.node) { - const node = this.node; + const self = this; + if (self.node) { + const node = self.node; let { scope } = this; if (scope.path.isPattern()) { assertExpression(node); - this.replaceWith(callExpression(arrowFunctionExpression([], node), [])); - this.get("callee.body").insertAfter(nodes); - return [this]; + self.replaceWith(callExpression(arrowFunctionExpression([], node), [])); + self.get("callee.body").insertAfter(nodes); + return [self]; } - if (isHiddenInSequenceExpression(this)) { + if (isHiddenInSequenceExpression(self)) { nodes.unshift(node); } else if (isCallExpression(node) && isSuper(node.callee)) { nodes.unshift(node); @@ -42056,21 +41968,22 @@ function insertAfter(nodes_) { } return this.replaceExpressionWithStatements(nodes); } else if (Array.isArray(this.container)) { - return this._containerInsertAfter(nodes); + return _containerInsertAfter.call(this, nodes); } else if (this.isStatementOrBlock()) { const node = this.node; const shouldInsertCurrentNode = node && (!this.isExpressionStatement() || node.expression != null); - this.replaceWith(blockStatement(shouldInsertCurrentNode ? [node] : [])); - return this.pushContainer("body", nodes); + const [blockPath] = this.replaceWith(blockStatement(shouldInsertCurrentNode ? [node] : [])); + return blockPath.pushContainer("body", nodes); } else { throw new Error("We don't know what to do with this node type. " + "We were previously a Statement but we can't fit in here?"); } } function updateSiblingKeys(fromIndex, incrementBy) { if (!this.parent) return; - const paths = (0, _cache.getCachedPaths)(this.hub, this.parent) || []; + const paths = (0, _cache.getCachedPaths)(this); + if (!paths) return; for (const [, path] of paths) { - if (typeof path.key === "number" && path.key >= fromIndex) { + if (typeof path.key === "number" && path.container === this.container && path.key >= fromIndex) { path.key += incrementBy; } } @@ -42102,33 +42015,36 @@ function _verifyNodeList(nodes) { return nodes; } function unshiftContainer(listKey, nodes) { - this._assertUnremoved(); - nodes = this._verifyNodeList(nodes); + _removal._assertUnremoved.call(this); + const verifiedNodes = _verifyNodeList.call(this, nodes); + const container = this.node[listKey]; const path = _index.default.get({ parentPath: this, parent: this.node, - container: this.node[listKey], + container, listKey, key: 0 }).setContext(this.context); - return path._containerInsertBefore(nodes); + return _containerInsertBefore.call(path, verifiedNodes); } function pushContainer(listKey, nodes) { - this._assertUnremoved(); - const verifiedNodes = this._verifyNodeList(nodes); + _removal._assertUnremoved.call(this); + const verifiedNodes = _verifyNodeList.call(this, nodes); const container = this.node[listKey]; const path = _index.default.get({ parentPath: this, parent: this.node, - container: container, + container, listKey, key: container.length }).setContext(this.context); return path.replaceWithMultiple(verifiedNodes); } -function hoist(scope = this.scope) { - const hoister = new _hoister.default(this, scope); - return hoister.run(); +{ + exports.hoist = function hoist(scope = this.scope) { + const hoister = new _hoister.default(this, scope); + return hoister.run(); + }; } //# sourceMappingURL=modification.js.map @@ -42153,43 +42069,50 @@ exports._removeFromScope = _removeFromScope; exports.remove = remove; var _removalHooks = __nccwpck_require__(1587); var _cache = __nccwpck_require__(5069); +var _replacement = __nccwpck_require__(8805); var _index = __nccwpck_require__(8877); +var t = __nccwpck_require__(7912); +var _modification = __nccwpck_require__(7575); +var _context = __nccwpck_require__(4108); function remove() { var _this$opts; - this._assertUnremoved(); - this.resync(); - if (!((_this$opts = this.opts) != null && _this$opts.noScope)) { - this._removeFromScope(); - } - if (this._callRemovalHooks()) { - this._markRemoved(); + _assertUnremoved.call(this); + _context.resync.call(this); + if (_callRemovalHooks.call(this)) { + _markRemoved.call(this); return; } + if (!((_this$opts = this.opts) != null && _this$opts.noScope)) { + _removeFromScope.call(this); + } this.shareCommentsWithSiblings(); - this._remove(); - this._markRemoved(); + _remove.call(this); + _markRemoved.call(this); } function _removeFromScope() { - const bindings = this.getBindingIdentifiers(); + const bindings = t.getBindingIdentifiers(this.node, false, false, true); Object.keys(bindings).forEach(name => this.scope.removeBinding(name)); } function _callRemovalHooks() { - for (const fn of _removalHooks.hooks) { - if (fn(this, this.parentPath)) return true; + if (this.parentPath) { + for (const fn of _removalHooks.hooks) { + if (fn(this, this.parentPath)) return true; + } } } function _remove() { if (Array.isArray(this.container)) { this.container.splice(this.key, 1); - this.updateSiblingKeys(this.key, -1); + _modification.updateSiblingKeys.call(this, this.key, -1); } else { - this._replaceWith(null); + _replacement._replaceWith.call(this, null); } } function _markRemoved() { this._traverseFlags |= _index.SHOULD_SKIP | _index.REMOVED; if (this.parent) { - (0, _cache.getCachedPaths)(this.hub, this.parent).delete(this.node); + var _getCachedPaths; + (_getCachedPaths = (0, _cache.getCachedPaths)(this)) == null || _getCachedPaths.delete(this.node); } this.node = null; } @@ -42223,38 +42146,47 @@ var _codeFrame = __nccwpck_require__(1322); var _index = __nccwpck_require__(1380); var _index2 = __nccwpck_require__(8877); var _cache = __nccwpck_require__(5069); +var _modification = __nccwpck_require__(7575); var _parser = __nccwpck_require__(5026); var _t = __nccwpck_require__(7912); -var _helperHoistVariables = __nccwpck_require__(6934); +var _context = __nccwpck_require__(4108); const { FUNCTION_TYPES, arrowFunctionExpression, assignmentExpression, awaitExpression, blockStatement, + buildUndefinedNode, callExpression, cloneNode, + conditionalExpression, expressionStatement, + getBindingIdentifiers, identifier, inheritLeadingComments, inheritTrailingComments, inheritsComments, + isBlockStatement, + isEmptyStatement, isExpression, + isExpressionStatement, + isIfStatement, isProgram, isStatement, + isVariableDeclaration, removeComments, returnStatement, - toSequenceExpression, + sequenceExpression, validate, yieldExpression } = _t; function replaceWithMultiple(nodes) { var _getCachedPaths; - this.resync(); - nodes = this._verifyNodeList(nodes); - inheritLeadingComments(nodes[0], this.node); - inheritTrailingComments(nodes[nodes.length - 1], this.node); - (_getCachedPaths = (0, _cache.getCachedPaths)(this.hub, this.parent)) == null ? void 0 : _getCachedPaths.delete(this.node); + _context.resync.call(this); + const verifiedNodes = _modification._verifyNodeList.call(this, nodes); + inheritLeadingComments(verifiedNodes[0], this.node); + inheritTrailingComments(verifiedNodes[verifiedNodes.length - 1], this.node); + (_getCachedPaths = (0, _cache.getCachedPaths)(this)) == null || _getCachedPaths.delete(this.node); this.node = this.container[this.key] = null; const paths = this.insertAfter(nodes); if (this.node) { @@ -42265,7 +42197,7 @@ function replaceWithMultiple(nodes) { return paths; } function replaceWithSourceString(replacement) { - this.resync(); + _context.resync.call(this); let ast; try { replacement = `(${replacement})`; @@ -42288,7 +42220,7 @@ function replaceWithSourceString(replacement) { return this.replaceWith(expressionAST); } function replaceWith(replacementPath) { - this.resync(); + _context.resync.call(this); if (this.removed) { throw new Error("You can't replace this node, we've already removed it"); } @@ -42325,9 +42257,9 @@ function replaceWith(replacementPath) { inheritsComments(replacement, oldNode); removeComments(oldNode); } - this._replaceWith(replacement); + _replaceWith.call(this, replacement); this.type = replacement.type; - this.setScope(); + _context.setScope.call(this); this.requeue(); return [nodePath ? this.get(nodePath) : this]; } @@ -42342,27 +42274,30 @@ function _replaceWith(node) { validate(this.parent, this.key, node); } this.debug(`Replace with ${node == null ? void 0 : node.type}`); - (_getCachedPaths2 = (0, _cache.getCachedPaths)(this.hub, this.parent)) == null ? void 0 : _getCachedPaths2.set(node, this).delete(this.node); - this.node = this.container[this.key] = node; + (_getCachedPaths2 = (0, _cache.getCachedPaths)(this)) == null || _getCachedPaths2.set(node, this).delete(this.node); + this.node = node; + this.container[this.key] = node; } function replaceExpressionWithStatements(nodes) { - this.resync(); - const nodesAsSequenceExpression = toSequenceExpression(nodes, this.scope); - if (nodesAsSequenceExpression) { - return this.replaceWith(nodesAsSequenceExpression)[0].get("expressions"); + _context.resync.call(this); + const declars = []; + const nodesAsSingleExpression = gatherSequenceExpressions(nodes, declars); + if (nodesAsSingleExpression) { + for (const id of declars) this.scope.push({ + id + }); + return this.replaceWith(nodesAsSingleExpression)[0].get("expressions"); } const functionParent = this.getFunctionParent(); - const isParentAsync = functionParent == null ? void 0 : functionParent.is("async"); - const isParentGenerator = functionParent == null ? void 0 : functionParent.is("generator"); + const isParentAsync = functionParent == null ? void 0 : functionParent.node.async; + const isParentGenerator = functionParent == null ? void 0 : functionParent.node.generator; const container = arrowFunctionExpression([], blockStatement(nodes)); this.replaceWith(callExpression(container, [])); const callee = this.get("callee"); - (0, _helperHoistVariables.default)(callee.get("body"), id => { - this.scope.push({ - id - }); - }, "var"); - const completionRecords = this.get("callee").getCompletionRecords(); + callee.get("body").scope.hoistVariables(id => this.scope.push({ + id + })); + const completionRecords = callee.getCompletionRecords(); for (const path of completionRecords) { if (!path.isExpressionStatement()) continue; const loop = path.findParent(path => path.isLoop()); @@ -42396,12 +42331,59 @@ function replaceExpressionWithStatements(nodes) { } return newCallee.get("body.body"); } +function gatherSequenceExpressions(nodes, declars) { + const exprs = []; + let ensureLastUndefined = true; + for (const node of nodes) { + if (!isEmptyStatement(node)) { + ensureLastUndefined = false; + } + if (isExpression(node)) { + exprs.push(node); + } else if (isExpressionStatement(node)) { + exprs.push(node.expression); + } else if (isVariableDeclaration(node)) { + if (node.kind !== "var") return; + for (const declar of node.declarations) { + const bindings = getBindingIdentifiers(declar); + for (const key of Object.keys(bindings)) { + declars.push(cloneNode(bindings[key])); + } + if (declar.init) { + exprs.push(assignmentExpression("=", declar.id, declar.init)); + } + } + ensureLastUndefined = true; + } else if (isIfStatement(node)) { + const consequent = node.consequent ? gatherSequenceExpressions([node.consequent], declars) : buildUndefinedNode(); + const alternate = node.alternate ? gatherSequenceExpressions([node.alternate], declars) : buildUndefinedNode(); + if (!consequent || !alternate) return; + exprs.push(conditionalExpression(node.test, consequent, alternate)); + } else if (isBlockStatement(node)) { + const body = gatherSequenceExpressions(node.body, declars); + if (!body) return; + exprs.push(body); + } else if (isEmptyStatement(node)) { + if (nodes.indexOf(node) === 0) { + ensureLastUndefined = true; + } + } else { + return; + } + } + if (ensureLastUndefined) exprs.push(buildUndefinedNode()); + if (exprs.length === 1) { + return exprs[0]; + } else { + return sequenceExpression(exprs); + } +} function replaceInline(nodes) { - this.resync(); + _context.resync.call(this); if (Array.isArray(nodes)) { if (Array.isArray(this.container)) { - nodes = this._verifyNodeList(nodes); - const paths = this._containerInsertAfter(nodes); + nodes = _modification._verifyNodeList.call(this, nodes); + const paths = _modification._containerInsertAfter.call(this, nodes); this.remove(); return paths; } else { @@ -42447,7 +42429,7 @@ class Binding { this.scope = scope; this.path = path; this.kind = kind; - if ((kind === "var" || kind === "hoisted") && isDeclaredInLoop(path)) { + if ((kind === "var" || kind === "hoisted") && isInitInLoop(path)) { this.reassign(path); } this.clearValue(); @@ -42468,13 +42450,13 @@ class Binding { } reassign(path) { this.constant = false; - if (this.constantViolations.indexOf(path) !== -1) { + if (this.constantViolations.includes(path)) { return; } this.constantViolations.push(path); } reference(path) { - if (this.referencePaths.indexOf(path) !== -1) { + if (this.referencePaths.includes(path)) { return; } this.referenced = true; @@ -42487,16 +42469,17 @@ class Binding { } } exports["default"] = Binding; -function isDeclaredInLoop(path) { +function isInitInLoop(path) { + const isFunctionDeclarationOrHasInit = !path.isVariableDeclarator() || path.node.init; for (let { parentPath, key - } = path; parentPath; ({ + } = path; parentPath; { parentPath, key - } = parentPath)) { + } = parentPath) { if (parentPath.isFunctionParent()) return false; - if (parentPath.isWhile() || parentPath.isForXStatement() || parentPath.isForStatement() && key === "body") { + if (key === "left" && parentPath.isForXStatement() || isFunctionDeclarationOrHasInit && key === "body" && parentPath.isLoop()) { return true; } } @@ -42520,20 +42503,22 @@ Object.defineProperty(exports, "__esModule", ({ exports["default"] = void 0; var _renamer = __nccwpck_require__(3708); var _index = __nccwpck_require__(1380); +var _traverseForScope = __nccwpck_require__(4276); var _binding = __nccwpck_require__(1410); -var _globals = __nccwpck_require__(455); var _t = __nccwpck_require__(7912); var t = _t; var _cache = __nccwpck_require__(5069); -var _visitors = __nccwpck_require__(3494); +const globalsBuiltinLower = __nccwpck_require__(1097), + globalsBuiltinUpper = __nccwpck_require__(7198); const { - NOT_LOCAL_BINDING, + assignmentExpression, callExpression, cloneNode, getBindingIdentifiers, identifier, isArrayExpression, isBinary, + isCallExpression, isClass, isClassBody, isClassDeclaration, @@ -42544,6 +42529,7 @@ const { isIdentifier, isImportDeclaration, isLiteral, + isMemberExpression, isMethod, isModuleSpecifier, isNullLiteral, @@ -42557,6 +42543,7 @@ const { isThisExpression, isUnaryExpression, isVariableDeclaration, + expressionStatement, matchesPattern, memberExpression, numericLiteral, @@ -42570,7 +42557,8 @@ const { isMetaProperty, isPrivateName, isExportDeclaration, - buildUndefinedNode + buildUndefinedNode, + sequenceExpression } = _t; function gatherNodeParts(node, parts) { switch (node == null ? void 0 : node.type) { @@ -42630,6 +42618,7 @@ function gatherNodeParts(node, parts) { parts.push("super"); break; case "Import": + case "ImportExpression": parts.push("import"); break; case "DoExpression": @@ -42687,6 +42676,20 @@ function gatherNodeParts(node, parts) { break; } } +function resetScope(scope) { + { + scope.references = Object.create(null); + scope.uids = Object.create(null); + } + scope.bindings = Object.create(null); + scope.globals = Object.create(null); +} +function isAnonymousFunctionExpression(path) { + return path.isFunctionExpression() && !path.node.id || path.isArrowFunctionExpression(); +} +{ + var NOT_LOCAL_BINDING = Symbol.for("should not be considered a local binding"); +} const collectorVisitor = { ForStatement(path) { const declar = path.get("init"); @@ -42709,7 +42712,15 @@ const collectorVisitor = { const parent = path.scope.getBlockParent(); parent.registerDeclaration(path); }, + TSImportEqualsDeclaration(path) { + const parent = path.scope.getBlockParent(); + parent.registerDeclaration(path); + }, ReferencedIdentifier(path, state) { + if (t.isTSQualifiedName(path.parent) && path.parent.right === path.node) { + return; + } + if (path.parentPath.isTSImportEqualsDeclaration()) return; state.references.push(path); }, ForXStatement(path, state) { @@ -42736,12 +42747,12 @@ const collectorVisitor = { const id = declar.id; if (!id) return; const binding = scope.getBinding(id.name); - binding == null ? void 0 : binding.reference(path); + binding == null || binding.reference(path); } else if (isVariableDeclaration(declar)) { for (const decl of declar.declarations) { for (const name of Object.keys(getBindingIdentifiers(decl))) { const binding = scope.getBinding(name); - binding == null ? void 0 : binding.reference(path); + binding == null || binding.reference(path); } } } @@ -42780,28 +42791,32 @@ const collectorVisitor = { for (const param of params) { path.scope.registerBinding("param", param); } - if (path.isFunctionExpression() && path.has("id") && !path.get("id").node[NOT_LOCAL_BINDING]) { + if (path.isFunctionExpression() && path.node.id && !path.node.id[NOT_LOCAL_BINDING]) { path.scope.registerBinding("local", path.get("id"), path); } }, ClassExpression(path) { - if (path.has("id") && !path.get("id").node[NOT_LOCAL_BINDING]) { - path.scope.registerBinding("local", path); + if (path.node.id && !path.node.id[NOT_LOCAL_BINDING]) { + path.scope.registerBinding("local", path.get("id"), path); } + }, + TSTypeAnnotation(path) { + path.skip(); } }; +let scopeVisitor; let uid = 0; class Scope { constructor(path) { this.uid = void 0; this.path = void 0; this.block = void 0; - this.labels = void 0; this.inited = void 0; + this.labels = void 0; this.bindings = void 0; - this.references = void 0; + this.referencesSet = void 0; this.globals = void 0; - this.uids = void 0; + this.uidsSet = void 0; this.data = void 0; this.crawling = void 0; const { @@ -42817,27 +42832,41 @@ class Scope { this.path = path; this.labels = new Map(); this.inited = false; + { + Object.defineProperties(this, { + references: { + enumerable: true, + configurable: true, + writable: true, + value: Object.create(null) + }, + uids: { + enumerable: true, + configurable: true, + writable: true, + value: Object.create(null) + } + }); + } } get parent() { var _parent; let parent, path = this.path; do { + var _path; const shouldSkip = path.key === "key" || path.listKey === "decorators"; path = path.parentPath; if (shouldSkip && path.isMethod()) path = path.parentPath; - if (path && path.isScope()) parent = path; + if ((_path = path) != null && _path.isScope()) parent = path; } while (path && !parent); return (_parent = parent) == null ? void 0 : _parent.scope; } - get parentBlock() { - return this.path.parent; - } - get hub() { - return this.path.hub; + get references() { + throw new Error("Scope#references is not available in Babel 8. Use Scope#referencesSet instead."); } - traverse(node, opts, state) { - (0, _index.default)(node, opts, this, state, this.path); + get uids() { + throw new Error("Scope#uids is not available in Babel 8. Use Scope#uidsSet instead."); } generateDeclaredUidIdentifier(name) { const id = this.generateUidIdentifier(name); @@ -42850,23 +42879,21 @@ class Scope { return identifier(this.generateUid(name)); } generateUid(name = "temp") { - name = toIdentifier(name).replace(/^_+/, "").replace(/[0-9]+$/g, ""); + name = toIdentifier(name).replace(/^_+/, "").replace(/\d+$/g, ""); let uid; - let i = 1; + let i = 0; do { - uid = this._generateUid(name, i); + uid = `_${name}`; + if (i >= 11) uid += i - 1;else if (i >= 9) uid += i - 9;else if (i >= 1) uid += i + 1; i++; } while (this.hasLabel(uid) || this.hasBinding(uid) || this.hasGlobal(uid) || this.hasReference(uid)); const program = this.getProgramParent(); - program.references[uid] = true; - program.uids[uid] = true; + { + program.references[uid] = true; + program.uids[uid] = true; + } return uid; } - _generateUid(name, i) { - let id = name; - if (i > 1) id += i; - return `_${id}`; - } generateUidBasedOnNode(node, defaultName) { const parts = []; gatherNodeParts(node, parts); @@ -42910,7 +42937,7 @@ class Scope { if (local.kind === "local") return; const duplicate = kind === "let" || local.kind === "let" || local.kind === "const" || local.kind === "module" || local.kind === "param" && kind === "const"; if (duplicate) { - throw this.hub.buildError(id, `Duplicate declaration "${name}"`, TypeError); + throw this.path.hub.buildError(id, `Duplicate declaration "${name}"`, TypeError); } } rename(oldName, newName) { @@ -42923,12 +42950,6 @@ class Scope { } } } - _renameFromMap(map, oldName, newName, value) { - if (map[oldName]) { - map[newName] = value; - map[oldName] = null; - } - } dump() { const sep = "-".repeat(60); console.log(sep); @@ -42947,37 +42968,6 @@ class Scope { } while (scope = scope.parent); console.log(sep); } - toArray(node, i, arrayLikeIsIterable) { - if (isIdentifier(node)) { - const binding = this.getBinding(node.name); - if (binding != null && binding.constant && binding.path.isGenericType("Array")) { - return node; - } - } - if (isArrayExpression(node)) { - return node; - } - if (isIdentifier(node, { - name: "arguments" - })) { - return callExpression(memberExpression(memberExpression(memberExpression(identifier("Array"), identifier("prototype")), identifier("slice")), identifier("call")), [node]); - } - let helperName; - const args = [node]; - if (i === true) { - helperName = "toConsumableArray"; - } else if (typeof i === "number") { - args.push(numericLiteral(i)); - helperName = "slicedToArray"; - } else { - helperName = "toArray"; - } - if (arrayLikeIsIterable) { - args.unshift(this.hub.addHelper(helperName)); - helperName = "maybeArrayLike"; - } - return callExpression(this.hub.addHelper(helperName), args); - } hasLabel(name) { return !!this.getLabel(name); } @@ -43023,10 +43013,10 @@ class Scope { return buildUndefinedNode(); } registerConstantViolation(path) { - const ids = path.getBindingIdentifiers(); + const ids = path.getAssignmentIdentifiers(); for (const name of Object.keys(ids)) { var _this$getBinding; - (_this$getBinding = this.getBinding(name)) == null ? void 0 : _this$getBinding.reassign(path); + (_this$getBinding = this.getBinding(name)) == null || _this$getBinding.reassign(path); } } registerBinding(kind, path, bindingPath = path) { @@ -43041,7 +43031,9 @@ class Scope { const parent = this.getProgramParent(); const ids = path.getOuterBindingIdentifiers(true); for (const name of Object.keys(ids)) { - parent.references[name] = true; + { + parent.references[name] = true; + } for (const id of ids[name]) { const local = this.getOwnBinding(name); if (local) { @@ -43049,7 +43041,7 @@ class Scope { this.checkBlockScopedCollisions(local, kind, name, id); } if (local) { - this.registerConstantViolation(bindingPath); + local.reassign(bindingPath); } else { this.bindings[name] = new _binding.default({ identifier: id, @@ -43065,11 +43057,13 @@ class Scope { this.globals[node.name] = node; } hasUid(name) { - let scope = this; - do { - if (scope.uids[name]) return true; - } while (scope = scope.parent); - return false; + { + let scope = this; + do { + if (scope.uids[name]) return true; + } while (scope = scope.parent); + return false; + } } hasGlobal(name) { let scope = this; @@ -43079,7 +43073,9 @@ class Scope { return false; } hasReference(name) { - return !!this.getProgramParent().references[name]; + { + return !!this.getProgramParent().references[name]; + } } isPure(node, constantsOnly) { if (isIdentifier(node)) { @@ -43136,13 +43132,23 @@ class Scope { return true; } else if (isUnaryExpression(node)) { return this.isPure(node.argument, constantsOnly); - } else if (isTaggedTemplateExpression(node)) { - return matchesPattern(node.tag, "String.raw") && !this.hasBinding("String", true) && this.isPure(node.quasi, constantsOnly); } else if (isTemplateLiteral(node)) { for (const expression of node.expressions) { if (!this.isPure(expression, constantsOnly)) return false; } return true; + } else if (isTaggedTemplateExpression(node)) { + return matchesPattern(node.tag, "String.raw") && !this.hasBinding("String", { + noGlobals: true + }) && this.isPure(node.quasi, constantsOnly); + } else if (isMemberExpression(node)) { + return !node.computed && isIdentifier(node.object) && node.object.name === "Symbol" && isIdentifier(node.property) && node.property.name !== "for" && !this.hasBinding("Symbol", { + noGlobals: true + }); + } else if (isCallExpression(node)) { + return matchesPattern(node.callee, "Symbol.for") && !this.hasBinding("Symbol", { + noGlobals: true + }) && node.arguments.length === 1 && t.isStringLiteral(node.arguments[0]); } else { return isPureish(node); } @@ -43172,34 +43178,42 @@ class Scope { } crawl() { const path = this.path; - this.references = Object.create(null); - this.bindings = Object.create(null); - this.globals = Object.create(null); - this.uids = Object.create(null); + ; + resetScope(this); this.data = Object.create(null); - const programParent = this.getProgramParent(); - if (programParent.crawling) return; + let scope = this; + do { + if (scope.crawling) return; + if (scope.path.isProgram()) { + break; + } + } while (scope = scope.parent); + const programParent = scope; const state = { references: [], constantViolations: [], assignments: [] }; this.crawling = true; - if (path.type !== "Program" && (0, _visitors.isExplodedVisitor)(collectorVisitor)) { - for (const visit of collectorVisitor.enter) { - visit.call(state, path, state); + scopeVisitor || (scopeVisitor = _index.default.visitors.merge([{ + Scope(path) { + resetScope(path.scope); } - const typeVisitors = collectorVisitor[path.type]; + }, collectorVisitor])); + if (path.type !== "Program") { + const typeVisitors = scopeVisitor[path.type]; if (typeVisitors) { for (const visit of typeVisitors.enter) { visit.call(state, path, state); } } } - path.traverse(collectorVisitor, state); + { + path.traverse(scopeVisitor, state); + } this.crawling = false; for (const path of state.assignments) { - const ids = path.getBindingIdentifiers(); + const ids = path.getAssignmentIdentifiers(); for (const name of Object.keys(ids)) { if (path.scope.getBinding(name)) continue; programParent.addGlobal(ids[name]); @@ -43234,9 +43248,9 @@ class Scope { kind = "var", id } = opts; - if (!init && !unique && (kind === "var" || kind === "let") && path.isFunction() && !path.node.name && t.isCallExpression(path.parent, { + if (!init && !unique && (kind === "var" || kind === "let") && isAnonymousFunctionExpression(path) && isCallExpression(path.parent, { callee: path.node - }) && path.parent.arguments.length <= path.node.params.length && t.isIdentifier(id)) { + }) && path.parent.arguments.length <= path.node.params.length && isIdentifier(id)) { path.pushContainer("params", id); path.scope.registerBinding("param", path.get("params")[path.node.params.length - 1]); return; @@ -43307,20 +43321,6 @@ class Scope { } while (scope); return ids; } - getAllBindingsOfKind(...kinds) { - const ids = Object.create(null); - for (const kind of kinds) { - let scope = this; - do { - for (const name of Object.keys(scope.bindings)) { - const binding = scope.bindings[name]; - if (binding.kind === kind) ids[name] = binding; - } - scope = scope.parent; - } while (scope); - } - return ids; - } bindingIdentifierEquals(name, node) { return this.getBindingIdentifier(name) === node; } @@ -43355,18 +43355,29 @@ class Scope { return !!this.getOwnBinding(name); } hasBinding(name, opts) { - var _opts, _opts2, _opts3; if (!name) return false; - if (this.hasOwnBinding(name)) return true; - { - if (typeof opts === "boolean") opts = { - noGlobals: opts - }; + let noGlobals; + let noUids; + let upToScope; + if (typeof opts === "object") { + noGlobals = opts.noGlobals; + noUids = opts.noUids; + upToScope = opts.upToScope; + } else if (typeof opts === "boolean") { + noGlobals = opts; } - if (this.parentHasBinding(name, opts)) return true; - if (!((_opts = opts) != null && _opts.noUids) && this.hasUid(name)) return true; - if (!((_opts2 = opts) != null && _opts2.noGlobals) && Scope.globals.includes(name)) return true; - if (!((_opts3 = opts) != null && _opts3.noGlobals) && Scope.contextVariables.includes(name)) return true; + let scope = this; + do { + if (upToScope === scope) { + break; + } + if (scope.hasOwnBinding(name)) { + return true; + } + } while (scope = scope.parent); + if (!noUids && this.hasUid(name)) return true; + if (!noGlobals && Scope.globals.includes(name)) return true; + if (!noGlobals && Scope.contextVariables.includes(name)) return true; return false; } parentHasBinding(name, opts) { @@ -43386,18 +43397,145 @@ class Scope { } removeBinding(name) { var _this$getBinding3; - (_this$getBinding3 = this.getBinding(name)) == null ? void 0 : _this$getBinding3.scope.removeOwnBinding(name); - let scope = this; - do { - if (scope.uids[name]) { - scope.uids[name] = false; + (_this$getBinding3 = this.getBinding(name)) == null || _this$getBinding3.scope.removeOwnBinding(name); + { + let scope = this; + do { + if (scope.uids[name]) { + scope.uids[name] = false; + } + } while (scope = scope.parent); + } + } + hoistVariables(emit = id => this.push({ + id + })) { + this.crawl(); + const seen = new Set(); + for (const name of Object.keys(this.bindings)) { + const binding = this.bindings[name]; + if (!binding) continue; + const { + path + } = binding; + if (!path.isVariableDeclarator()) continue; + const { + parent, + parentPath + } = path; + if (parent.kind !== "var" || seen.has(parent)) continue; + seen.add(path.parent); + let firstId; + const init = []; + for (const decl of parent.declarations) { + firstId != null ? firstId : firstId = decl.id; + if (decl.init) { + init.push(assignmentExpression("=", decl.id, decl.init)); + } + const ids = Object.keys(getBindingIdentifiers(decl, false, true, true)); + for (const name of ids) { + emit(identifier(name), decl.init != null); + } + } + if (parentPath.parentPath.isForXStatement({ + left: parent + })) { + parentPath.replaceWith(firstId); + } else if (init.length === 0) { + parentPath.remove(); + } else { + const expr = init.length === 1 ? init[0] : sequenceExpression(init); + if (parentPath.parentPath.isForStatement({ + init: parent + })) { + parentPath.replaceWith(expr); + } else { + parentPath.replaceWith(expressionStatement(expr)); + } } - } while (scope = scope.parent); + } } } exports["default"] = Scope; -Scope.globals = Object.keys(_globals.builtin); +Scope.globals = [...globalsBuiltinLower, ...globalsBuiltinUpper]; Scope.contextVariables = ["arguments", "undefined", "Infinity", "NaN"]; +{ + Scope.prototype._renameFromMap = function _renameFromMap(map, oldName, newName, value) { + if (map[oldName]) { + map[newName] = value; + map[oldName] = null; + } + }; + Scope.prototype.traverse = function (node, opts, state) { + (0, _index.default)(node, opts, this, state, this.path); + }; + Scope.prototype._generateUid = function _generateUid(name, i) { + let id = name; + if (i > 1) id += i; + return `_${id}`; + }; + Scope.prototype.toArray = function toArray(node, i, arrayLikeIsIterable) { + if (isIdentifier(node)) { + const binding = this.getBinding(node.name); + if (binding != null && binding.constant && binding.path.isGenericType("Array")) { + return node; + } + } + if (isArrayExpression(node)) { + return node; + } + if (isIdentifier(node, { + name: "arguments" + })) { + return callExpression(memberExpression(memberExpression(memberExpression(identifier("Array"), identifier("prototype")), identifier("slice")), identifier("call")), [node]); + } + let helperName; + const args = [node]; + if (i === true) { + helperName = "toConsumableArray"; + } else if (typeof i === "number") { + args.push(numericLiteral(i)); + helperName = "slicedToArray"; + } else { + helperName = "toArray"; + } + if (arrayLikeIsIterable) { + args.unshift(this.path.hub.addHelper(helperName)); + helperName = "maybeArrayLike"; + } + return callExpression(this.path.hub.addHelper(helperName), args); + }; + Scope.prototype.getAllBindingsOfKind = function getAllBindingsOfKind(...kinds) { + const ids = Object.create(null); + for (const kind of kinds) { + let scope = this; + do { + for (const name of Object.keys(scope.bindings)) { + const binding = scope.bindings[name]; + if (binding.kind === kind) ids[name] = binding; + } + scope = scope.parent; + } while (scope); + } + return ids; + }; + Object.defineProperties(Scope.prototype, { + parentBlock: { + configurable: true, + enumerable: true, + get() { + return this.path.parent; + } + }, + hub: { + configurable: true, + enumerable: true, + get() { + return this.path.hub; + } + } + }); +} //# sourceMappingURL=index.js.map @@ -43414,11 +43552,14 @@ Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; -var _helperSplitExportDeclaration = __nccwpck_require__(5176); var t = __nccwpck_require__(7912); -var _helperEnvironmentVisitor = __nccwpck_require__(1097); +var _t = t; var _traverseNode = __nccwpck_require__(1250); var _visitors = __nccwpck_require__(3494); +var _context = __nccwpck_require__(4108); +const { + getAssignmentIdentifiers +} = _t; const renameVisitor = { ReferencedIdentifier({ node @@ -43431,7 +43572,11 @@ const renameVisitor = { if (!path.scope.bindingIdentifierEquals(state.oldName, state.binding.identifier)) { path.skip(); if (path.isMethod()) { - (0, _helperEnvironmentVisitor.requeueComputedKeyAndDecorators)(path); + if (!path.requeueComputedKeyAndDecorators) { + _context.requeueComputedKeyAndDecorators.call(path); + } else { + path.requeueComputedKeyAndDecorators(); + } } } }, @@ -43443,14 +43588,16 @@ const renameVisitor = { name } = node.key; if (node.shorthand && (name === state.oldName || name === state.newName) && scope.getBindingIdentifier(name) === state.binding.identifier) { - var _node$extra; node.shorthand = false; - if ((_node$extra = node.extra) != null && _node$extra.shorthand) node.extra.shorthand = false; + { + var _node$extra; + if ((_node$extra = node.extra) != null && _node$extra.shorthand) node.extra.shorthand = false; + } } }, "AssignmentExpression|Declaration|VariableDeclarator"(path, state) { if (path.isVariableDeclaration()) return; - const ids = path.getOuterBindingIdentifiers(); + const ids = path.isAssignmentExpression() ? getAssignmentIdentifiers(path.node) : path.getOuterBindingIdentifiers(); for (const name in ids) { if (name === state.oldName) ids[name].name = state.newName; } @@ -43478,7 +43625,7 @@ class Renamer { if (maybeExportDeclar.isExportAllDeclaration()) { return; } - (0, _helperSplitExportDeclaration.default)(maybeExportDeclar); + maybeExportDeclar.splitExportDeclaration(); } maybeConvertFromClassFunctionDeclaration(path) { return path; @@ -43504,9 +43651,18 @@ class Renamer { } } const blockToTraverse = arguments[0] || scope.block; - (0, _traverseNode.traverseNode)(blockToTraverse, (0, _visitors.explode)(renameVisitor), scope, this, scope.path, { + const skipKeys = { discriminant: true - }); + }; + if (t.isMethod(blockToTraverse)) { + if (blockToTraverse.computed) { + skipKeys.key = true; + } + if (!t.isObjectMethod(blockToTraverse)) { + skipKeys.decorators = true; + } + } + (0, _traverseNode.traverseNode)(blockToTraverse, (0, _visitors.explode)(renameVisitor), scope, this, scope.path, skipKeys); if (!arguments[0]) { scope.removeOwnBinding(oldName); scope.bindings[newName] = binding; @@ -43523,6 +43679,82 @@ exports["default"] = Renamer; //# sourceMappingURL=renamer.js.map +/***/ }), + +/***/ 4276: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = traverseForScope; +var _t = __nccwpck_require__(7912); +var _index = __nccwpck_require__(1380); +var _visitors = __nccwpck_require__(3494); +var _context = __nccwpck_require__(4108); +const { + VISITOR_KEYS +} = _t; +function traverseForScope(path, visitors, state) { + const exploded = (0, _visitors.explode)(visitors); + if (exploded.enter || exploded.exit) { + throw new Error("Should not be used with enter/exit visitors."); + } + _traverse(path.parentPath, path.parent, path.node, path.container, path.key, path.listKey, path.hub, path); + function _traverse(parentPath, parent, node, container, key, listKey, hub, inPath) { + if (!node) { + return; + } + const path = inPath || _index.NodePath.get({ + hub, + parentPath, + parent, + container, + listKey, + key + }); + _context.setScope.call(path); + const visitor = exploded[node.type]; + if (visitor) { + if (visitor.enter) { + for (const visit of visitor.enter) { + visit.call(state, path, state); + } + } + if (visitor.exit) { + for (const visit of visitor.exit) { + visit.call(state, path, state); + } + } + } + if (path.shouldSkip) { + return; + } + const keys = VISITOR_KEYS[node.type]; + if (!(keys != null && keys.length)) { + return; + } + for (const key of keys) { + const prop = node[key]; + if (!prop) continue; + if (Array.isArray(prop)) { + for (let i = 0; i < prop.length; i++) { + const value = prop[i]; + _traverse(path, node, value, prop, i, key); + } + } else { + _traverse(path, node, prop, node, key, null); + } + } + } +} + +//# sourceMappingURL=traverseForScope.js.map + + /***/ }), /***/ 1250: @@ -43536,11 +43768,120 @@ Object.defineProperty(exports, "__esModule", ({ })); exports.traverseNode = traverseNode; var _context = __nccwpck_require__(9089); +var _index = __nccwpck_require__(8877); var _t = __nccwpck_require__(7912); +var _context2 = __nccwpck_require__(4108); const { VISITOR_KEYS } = _t; +function _visitPaths(ctx, paths) { + ctx.queue = paths; + ctx.priorityQueue = []; + const visited = new Set(); + let stop = false; + let visitIndex = 0; + for (; visitIndex < paths.length;) { + const path = paths[visitIndex]; + visitIndex++; + _context2.resync.call(path); + if (path.contexts.length === 0 || path.contexts[path.contexts.length - 1] !== ctx) { + _context2.pushContext.call(path, ctx); + } + if (path.key === null) continue; + const { + node + } = path; + if (visited.has(node)) continue; + if (node) visited.add(node); + if (_visit(ctx, path)) { + stop = true; + break; + } + if (ctx.priorityQueue.length) { + stop = _visitPaths(ctx, ctx.priorityQueue); + ctx.priorityQueue = []; + ctx.queue = paths; + if (stop) break; + } + } + for (let i = 0; i < visitIndex; i++) { + _context2.popContext.call(paths[i]); + } + ctx.queue = null; + return stop; +} +function _visit(ctx, path) { + var _opts$denylist; + const node = path.node; + if (!node) { + return false; + } + const opts = ctx.opts; + const denylist = (_opts$denylist = opts.denylist) != null ? _opts$denylist : opts.blacklist; + if (denylist != null && denylist.includes(node.type)) { + return false; + } + if (opts.shouldSkip != null && opts.shouldSkip(path)) { + return false; + } + if (path.shouldSkip) return path.shouldStop; + if (_context2._call.call(path, opts.enter)) return path.shouldStop; + if (path.node) { + var _opts$node$type; + if (_context2._call.call(path, (_opts$node$type = opts[node.type]) == null ? void 0 : _opts$node$type.enter)) return path.shouldStop; + } + path.shouldStop = _traverse(path.node, opts, path.scope, ctx.state, path, path.skipKeys); + if (path.node) { + if (_context2._call.call(path, opts.exit)) return true; + } + if (path.node) { + var _opts$node$type2; + _context2._call.call(path, (_opts$node$type2 = opts[node.type]) == null ? void 0 : _opts$node$type2.exit); + } + return path.shouldStop; +} +function _traverse(node, opts, scope, state, path, skipKeys, visitSelf) { + const keys = VISITOR_KEYS[node.type]; + if (!(keys != null && keys.length)) return false; + const ctx = new _context.default(scope, opts, state, path); + if (visitSelf) { + if (skipKeys != null && skipKeys[path.parentKey]) return false; + return _visitPaths(ctx, [path]); + } + for (const key of keys) { + if (skipKeys != null && skipKeys[key]) continue; + const prop = node[key]; + if (!prop) continue; + if (Array.isArray(prop)) { + if (!prop.length) continue; + const paths = []; + for (let i = 0; i < prop.length; i++) { + const childPath = _index.default.get({ + parentPath: path, + parent: node, + container: prop, + key: i, + listKey: key + }); + paths.push(childPath); + } + if (_visitPaths(ctx, paths)) return true; + } else { + if (_visitPaths(ctx, [_index.default.get({ + parentPath: path, + parent: node, + container: node, + key, + listKey: null + })])) { + return true; + } + } + } + return false; +} function traverseNode(node, opts, scope, state, path, skipKeys, visitSelf) { + ; const keys = VISITOR_KEYS[node.type]; if (!keys) return false; const context = new _context.default(scope, opts, state, path); @@ -43571,12 +43912,15 @@ function traverseNode(node, opts, scope, state, path, skipKeys, visitSelf) { Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.explode = explode; +exports.environmentVisitor = environmentVisitor; +exports.explode = explode$1; exports.isExplodedVisitor = isExplodedVisitor; exports.merge = merge; -exports.verify = verify; +exports.verify = verify$1; var virtualTypes = __nccwpck_require__(4425); +var virtualTypesValidators = __nccwpck_require__(4859); var _t = __nccwpck_require__(7912); +var _context = __nccwpck_require__(4108); const { DEPRECATED_KEYS, DEPRECATED_ALIASES, @@ -43590,7 +43934,7 @@ function isVirtualType(type) { function isExplodedVisitor(visitor) { return visitor == null ? void 0 : visitor._exploded; } -function explode(visitor) { +function explode$1(visitor) { if (isExplodedVisitor(visitor)) return visitor; visitor._exploded = true; for (const nodeType of Object.keys(visitor)) { @@ -43603,7 +43947,7 @@ function explode(visitor) { visitor[part] = fns; } } - verify(visitor); + verify$1(visitor); delete visitor.__esModule; ensureEntranceObjects(visitor); ensureCallbackArrays(visitor); @@ -43618,11 +43962,9 @@ function explode(visitor) { const types = virtualTypes[nodeType]; if (types !== null) { for (const type of types) { - if (visitor[type]) { - mergePair(visitor[type], fns); - } else { - visitor[type] = fns; - } + var _visitor$type; + (_visitor$type = visitor[type]) != null ? _visitor$type : visitor[type] = {}; + mergePair(visitor[type], fns); } } else { mergePair(visitor, fns); @@ -43658,7 +44000,7 @@ function explode(visitor) { } return visitor; } -function verify(visitor) { +function verify$1(visitor) { if (visitor._verified) return; if (typeof visitor === "function") { throw new Error("You passed `traverse()` a function when it expected a visitor object, " + "are you sure you didn't mean `{ enter: Function }`?"); @@ -43668,8 +44010,8 @@ function verify(visitor) { validateVisitorMethods(nodeType, visitor[nodeType]); } if (shouldIgnoreKey(nodeType)) continue; - if (TYPES.indexOf(nodeType) < 0) { - throw new Error(`You gave us a visitor for the node type ${nodeType} but it's not a valid type`); + if (!TYPES.includes(nodeType)) { + throw new Error(`You gave us a visitor for the node type ${nodeType} but it's not a valid type in @babel/traverse ${"7.28.5"}`); } const visitors = visitor[nodeType]; if (typeof visitors === "object") { @@ -43693,9 +44035,20 @@ function validateVisitorMethods(path, val) { } } function merge(visitors, states = [], wrapper) { - const mergedVisitor = {}; + const mergedVisitor = { + _verified: true, + _exploded: true + }; + { + Object.defineProperty(mergedVisitor, "_exploded", { + enumerable: false + }); + Object.defineProperty(mergedVisitor, "_verified", { + enumerable: false + }); + } for (let i = 0; i < visitors.length; i++) { - const visitor = explode(visitors[i]); + const visitor = explode$1(visitors[i]); const state = states[i]; let topVisitor = visitor; if (state || wrapper) { @@ -43712,7 +44065,6 @@ function merge(visitors, states = [], wrapper) { mergePair(nodeVisitor, typeVisitor); } } - ; return mergedVisitor; } function wrapWithStateOrWrapper(oldVisitor, state, wrapper) { @@ -43755,8 +44107,10 @@ function ensureCallbackArrays(obj) { if (obj.exit && !Array.isArray(obj.exit)) obj.exit = [obj.exit]; } function wrapCheck(nodeType, fn) { + const fnKey = `is${nodeType}`; + const validator = virtualTypesValidators[fnKey]; const newFn = function (path) { - if (path[`is${nodeType}`]()) { + if (validator.call(path)) { return fn.apply(this, arguments); } }; @@ -43782,6 +44136,31 @@ function mergePair(dest, src) { dest[phase] = [].concat(dest[phase] || [], src[phase]); } } +const _environmentVisitor = { + FunctionParent(path) { + if (path.isArrowFunctionExpression()) return; + path.skip(); + if (path.isMethod()) { + if (!path.requeueComputedKeyAndDecorators) { + _context.requeueComputedKeyAndDecorators.call(path); + } else { + path.requeueComputedKeyAndDecorators(); + } + } + }, + Property(path) { + if (path.isObjectProperty()) return; + path.skip(); + if (!path.requeueComputedKeyAndDecorators) { + _context.requeueComputedKeyAndDecorators.call(path); + } else { + path.requeueComputedKeyAndDecorators(); + } + } +}; +function environmentVisitor(visitor) { + return merge([_environmentVisitor, visitor]); +} //# sourceMappingURL=visitors.js.map @@ -57813,11 +58192,19 @@ function validateChild(node, key, val) { /***/ }), -/***/ 8487: +/***/ 1097: +/***/ ((module) => { + +"use strict"; +module.exports = JSON.parse('["decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","eval","globalThis","isFinite","isNaN","parseFloat","parseInt","undefined","unescape"]'); + +/***/ }), + +/***/ 7198: /***/ ((module) => { "use strict"; -module.exports = JSON.parse('{"builtin":{"Array":false,"ArrayBuffer":false,"Atomics":false,"BigInt":false,"BigInt64Array":false,"BigUint64Array":false,"Boolean":false,"constructor":false,"DataView":false,"Date":false,"decodeURI":false,"decodeURIComponent":false,"encodeURI":false,"encodeURIComponent":false,"Error":false,"escape":false,"eval":false,"EvalError":false,"Float32Array":false,"Float64Array":false,"Function":false,"globalThis":false,"hasOwnProperty":false,"Infinity":false,"Int16Array":false,"Int32Array":false,"Int8Array":false,"isFinite":false,"isNaN":false,"isPrototypeOf":false,"JSON":false,"Map":false,"Math":false,"NaN":false,"Number":false,"Object":false,"parseFloat":false,"parseInt":false,"Promise":false,"propertyIsEnumerable":false,"Proxy":false,"RangeError":false,"ReferenceError":false,"Reflect":false,"RegExp":false,"Set":false,"SharedArrayBuffer":false,"String":false,"Symbol":false,"SyntaxError":false,"toLocaleString":false,"toString":false,"TypeError":false,"Uint16Array":false,"Uint32Array":false,"Uint8Array":false,"Uint8ClampedArray":false,"undefined":false,"unescape":false,"URIError":false,"valueOf":false,"WeakMap":false,"WeakSet":false},"es5":{"Array":false,"Boolean":false,"constructor":false,"Date":false,"decodeURI":false,"decodeURIComponent":false,"encodeURI":false,"encodeURIComponent":false,"Error":false,"escape":false,"eval":false,"EvalError":false,"Function":false,"hasOwnProperty":false,"Infinity":false,"isFinite":false,"isNaN":false,"isPrototypeOf":false,"JSON":false,"Math":false,"NaN":false,"Number":false,"Object":false,"parseFloat":false,"parseInt":false,"propertyIsEnumerable":false,"RangeError":false,"ReferenceError":false,"RegExp":false,"String":false,"SyntaxError":false,"toLocaleString":false,"toString":false,"TypeError":false,"undefined":false,"unescape":false,"URIError":false,"valueOf":false},"es2015":{"Array":false,"ArrayBuffer":false,"Boolean":false,"constructor":false,"DataView":false,"Date":false,"decodeURI":false,"decodeURIComponent":false,"encodeURI":false,"encodeURIComponent":false,"Error":false,"escape":false,"eval":false,"EvalError":false,"Float32Array":false,"Float64Array":false,"Function":false,"hasOwnProperty":false,"Infinity":false,"Int16Array":false,"Int32Array":false,"Int8Array":false,"isFinite":false,"isNaN":false,"isPrototypeOf":false,"JSON":false,"Map":false,"Math":false,"NaN":false,"Number":false,"Object":false,"parseFloat":false,"parseInt":false,"Promise":false,"propertyIsEnumerable":false,"Proxy":false,"RangeError":false,"ReferenceError":false,"Reflect":false,"RegExp":false,"Set":false,"String":false,"Symbol":false,"SyntaxError":false,"toLocaleString":false,"toString":false,"TypeError":false,"Uint16Array":false,"Uint32Array":false,"Uint8Array":false,"Uint8ClampedArray":false,"undefined":false,"unescape":false,"URIError":false,"valueOf":false,"WeakMap":false,"WeakSet":false},"es2017":{"Array":false,"ArrayBuffer":false,"Atomics":false,"Boolean":false,"constructor":false,"DataView":false,"Date":false,"decodeURI":false,"decodeURIComponent":false,"encodeURI":false,"encodeURIComponent":false,"Error":false,"escape":false,"eval":false,"EvalError":false,"Float32Array":false,"Float64Array":false,"Function":false,"hasOwnProperty":false,"Infinity":false,"Int16Array":false,"Int32Array":false,"Int8Array":false,"isFinite":false,"isNaN":false,"isPrototypeOf":false,"JSON":false,"Map":false,"Math":false,"NaN":false,"Number":false,"Object":false,"parseFloat":false,"parseInt":false,"Promise":false,"propertyIsEnumerable":false,"Proxy":false,"RangeError":false,"ReferenceError":false,"Reflect":false,"RegExp":false,"Set":false,"SharedArrayBuffer":false,"String":false,"Symbol":false,"SyntaxError":false,"toLocaleString":false,"toString":false,"TypeError":false,"Uint16Array":false,"Uint32Array":false,"Uint8Array":false,"Uint8ClampedArray":false,"undefined":false,"unescape":false,"URIError":false,"valueOf":false,"WeakMap":false,"WeakSet":false},"browser":{"AbortController":false,"AbortSignal":false,"addEventListener":false,"alert":false,"AnalyserNode":false,"Animation":false,"AnimationEffectReadOnly":false,"AnimationEffectTiming":false,"AnimationEffectTimingReadOnly":false,"AnimationEvent":false,"AnimationPlaybackEvent":false,"AnimationTimeline":false,"applicationCache":false,"ApplicationCache":false,"ApplicationCacheErrorEvent":false,"atob":false,"Attr":false,"Audio":false,"AudioBuffer":false,"AudioBufferSourceNode":false,"AudioContext":false,"AudioDestinationNode":false,"AudioListener":false,"AudioNode":false,"AudioParam":false,"AudioProcessingEvent":false,"AudioScheduledSourceNode":false,"AudioWorkletGlobalScope ":false,"AudioWorkletNode":false,"AudioWorkletProcessor":false,"BarProp":false,"BaseAudioContext":false,"BatteryManager":false,"BeforeUnloadEvent":false,"BiquadFilterNode":false,"Blob":false,"BlobEvent":false,"blur":false,"BroadcastChannel":false,"btoa":false,"BudgetService":false,"ByteLengthQueuingStrategy":false,"Cache":false,"caches":false,"CacheStorage":false,"cancelAnimationFrame":false,"cancelIdleCallback":false,"CanvasCaptureMediaStreamTrack":false,"CanvasGradient":false,"CanvasPattern":false,"CanvasRenderingContext2D":false,"ChannelMergerNode":false,"ChannelSplitterNode":false,"CharacterData":false,"clearInterval":false,"clearTimeout":false,"clientInformation":false,"ClipboardEvent":false,"close":false,"closed":false,"CloseEvent":false,"Comment":false,"CompositionEvent":false,"confirm":false,"console":false,"ConstantSourceNode":false,"ConvolverNode":false,"CountQueuingStrategy":false,"createImageBitmap":false,"Credential":false,"CredentialsContainer":false,"crypto":false,"Crypto":false,"CryptoKey":false,"CSS":false,"CSSConditionRule":false,"CSSFontFaceRule":false,"CSSGroupingRule":false,"CSSImportRule":false,"CSSKeyframeRule":false,"CSSKeyframesRule":false,"CSSMediaRule":false,"CSSNamespaceRule":false,"CSSPageRule":false,"CSSRule":false,"CSSRuleList":false,"CSSStyleDeclaration":false,"CSSStyleRule":false,"CSSStyleSheet":false,"CSSSupportsRule":false,"CustomElementRegistry":false,"customElements":false,"CustomEvent":false,"DataTransfer":false,"DataTransferItem":false,"DataTransferItemList":false,"defaultstatus":false,"defaultStatus":false,"DelayNode":false,"DeviceMotionEvent":false,"DeviceOrientationEvent":false,"devicePixelRatio":false,"dispatchEvent":false,"document":false,"Document":false,"DocumentFragment":false,"DocumentType":false,"DOMError":false,"DOMException":false,"DOMImplementation":false,"DOMMatrix":false,"DOMMatrixReadOnly":false,"DOMParser":false,"DOMPoint":false,"DOMPointReadOnly":false,"DOMQuad":false,"DOMRect":false,"DOMRectReadOnly":false,"DOMStringList":false,"DOMStringMap":false,"DOMTokenList":false,"DragEvent":false,"DynamicsCompressorNode":false,"Element":false,"ErrorEvent":false,"event":false,"Event":false,"EventSource":false,"EventTarget":false,"external":false,"fetch":false,"File":false,"FileList":false,"FileReader":false,"find":false,"focus":false,"FocusEvent":false,"FontFace":false,"FontFaceSetLoadEvent":false,"FormData":false,"frameElement":false,"frames":false,"GainNode":false,"Gamepad":false,"GamepadButton":false,"GamepadEvent":false,"getComputedStyle":false,"getSelection":false,"HashChangeEvent":false,"Headers":false,"history":false,"History":false,"HTMLAllCollection":false,"HTMLAnchorElement":false,"HTMLAreaElement":false,"HTMLAudioElement":false,"HTMLBaseElement":false,"HTMLBodyElement":false,"HTMLBRElement":false,"HTMLButtonElement":false,"HTMLCanvasElement":false,"HTMLCollection":false,"HTMLContentElement":false,"HTMLDataElement":false,"HTMLDataListElement":false,"HTMLDetailsElement":false,"HTMLDialogElement":false,"HTMLDirectoryElement":false,"HTMLDivElement":false,"HTMLDListElement":false,"HTMLDocument":false,"HTMLElement":false,"HTMLEmbedElement":false,"HTMLFieldSetElement":false,"HTMLFontElement":false,"HTMLFormControlsCollection":false,"HTMLFormElement":false,"HTMLFrameElement":false,"HTMLFrameSetElement":false,"HTMLHeadElement":false,"HTMLHeadingElement":false,"HTMLHRElement":false,"HTMLHtmlElement":false,"HTMLIFrameElement":false,"HTMLImageElement":false,"HTMLInputElement":false,"HTMLLabelElement":false,"HTMLLegendElement":false,"HTMLLIElement":false,"HTMLLinkElement":false,"HTMLMapElement":false,"HTMLMarqueeElement":false,"HTMLMediaElement":false,"HTMLMenuElement":false,"HTMLMetaElement":false,"HTMLMeterElement":false,"HTMLModElement":false,"HTMLObjectElement":false,"HTMLOListElement":false,"HTMLOptGroupElement":false,"HTMLOptionElement":false,"HTMLOptionsCollection":false,"HTMLOutputElement":false,"HTMLParagraphElement":false,"HTMLParamElement":false,"HTMLPictureElement":false,"HTMLPreElement":false,"HTMLProgressElement":false,"HTMLQuoteElement":false,"HTMLScriptElement":false,"HTMLSelectElement":false,"HTMLShadowElement":false,"HTMLSlotElement":false,"HTMLSourceElement":false,"HTMLSpanElement":false,"HTMLStyleElement":false,"HTMLTableCaptionElement":false,"HTMLTableCellElement":false,"HTMLTableColElement":false,"HTMLTableElement":false,"HTMLTableRowElement":false,"HTMLTableSectionElement":false,"HTMLTemplateElement":false,"HTMLTextAreaElement":false,"HTMLTimeElement":false,"HTMLTitleElement":false,"HTMLTrackElement":false,"HTMLUListElement":false,"HTMLUnknownElement":false,"HTMLVideoElement":false,"IDBCursor":false,"IDBCursorWithValue":false,"IDBDatabase":false,"IDBFactory":false,"IDBIndex":false,"IDBKeyRange":false,"IDBObjectStore":false,"IDBOpenDBRequest":false,"IDBRequest":false,"IDBTransaction":false,"IDBVersionChangeEvent":false,"IdleDeadline":false,"IIRFilterNode":false,"Image":false,"ImageBitmap":false,"ImageBitmapRenderingContext":false,"ImageCapture":false,"ImageData":false,"indexedDB":false,"innerHeight":false,"innerWidth":false,"InputEvent":false,"IntersectionObserver":false,"IntersectionObserverEntry":false,"Intl":false,"isSecureContext":false,"KeyboardEvent":false,"KeyframeEffect":false,"KeyframeEffectReadOnly":false,"length":false,"localStorage":false,"location":true,"Location":false,"locationbar":false,"matchMedia":false,"MediaDeviceInfo":false,"MediaDevices":false,"MediaElementAudioSourceNode":false,"MediaEncryptedEvent":false,"MediaError":false,"MediaKeyMessageEvent":false,"MediaKeySession":false,"MediaKeyStatusMap":false,"MediaKeySystemAccess":false,"MediaList":false,"MediaQueryList":false,"MediaQueryListEvent":false,"MediaRecorder":false,"MediaSettingsRange":false,"MediaSource":false,"MediaStream":false,"MediaStreamAudioDestinationNode":false,"MediaStreamAudioSourceNode":false,"MediaStreamEvent":false,"MediaStreamTrack":false,"MediaStreamTrackEvent":false,"menubar":false,"MessageChannel":false,"MessageEvent":false,"MessagePort":false,"MIDIAccess":false,"MIDIConnectionEvent":false,"MIDIInput":false,"MIDIInputMap":false,"MIDIMessageEvent":false,"MIDIOutput":false,"MIDIOutputMap":false,"MIDIPort":false,"MimeType":false,"MimeTypeArray":false,"MouseEvent":false,"moveBy":false,"moveTo":false,"MutationEvent":false,"MutationObserver":false,"MutationRecord":false,"name":false,"NamedNodeMap":false,"NavigationPreloadManager":false,"navigator":false,"Navigator":false,"NetworkInformation":false,"Node":false,"NodeFilter":false,"NodeIterator":false,"NodeList":false,"Notification":false,"OfflineAudioCompletionEvent":false,"OfflineAudioContext":false,"offscreenBuffering":false,"OffscreenCanvas":true,"onabort":true,"onafterprint":true,"onanimationend":true,"onanimationiteration":true,"onanimationstart":true,"onappinstalled":true,"onauxclick":true,"onbeforeinstallprompt":true,"onbeforeprint":true,"onbeforeunload":true,"onblur":true,"oncancel":true,"oncanplay":true,"oncanplaythrough":true,"onchange":true,"onclick":true,"onclose":true,"oncontextmenu":true,"oncuechange":true,"ondblclick":true,"ondevicemotion":true,"ondeviceorientation":true,"ondeviceorientationabsolute":true,"ondrag":true,"ondragend":true,"ondragenter":true,"ondragleave":true,"ondragover":true,"ondragstart":true,"ondrop":true,"ondurationchange":true,"onemptied":true,"onended":true,"onerror":true,"onfocus":true,"ongotpointercapture":true,"onhashchange":true,"oninput":true,"oninvalid":true,"onkeydown":true,"onkeypress":true,"onkeyup":true,"onlanguagechange":true,"onload":true,"onloadeddata":true,"onloadedmetadata":true,"onloadstart":true,"onlostpointercapture":true,"onmessage":true,"onmessageerror":true,"onmousedown":true,"onmouseenter":true,"onmouseleave":true,"onmousemove":true,"onmouseout":true,"onmouseover":true,"onmouseup":true,"onmousewheel":true,"onoffline":true,"ononline":true,"onpagehide":true,"onpageshow":true,"onpause":true,"onplay":true,"onplaying":true,"onpointercancel":true,"onpointerdown":true,"onpointerenter":true,"onpointerleave":true,"onpointermove":true,"onpointerout":true,"onpointerover":true,"onpointerup":true,"onpopstate":true,"onprogress":true,"onratechange":true,"onrejectionhandled":true,"onreset":true,"onresize":true,"onscroll":true,"onsearch":true,"onseeked":true,"onseeking":true,"onselect":true,"onstalled":true,"onstorage":true,"onsubmit":true,"onsuspend":true,"ontimeupdate":true,"ontoggle":true,"ontransitionend":true,"onunhandledrejection":true,"onunload":true,"onvolumechange":true,"onwaiting":true,"onwheel":true,"open":false,"openDatabase":false,"opener":false,"Option":false,"origin":false,"OscillatorNode":false,"outerHeight":false,"outerWidth":false,"PageTransitionEvent":false,"pageXOffset":false,"pageYOffset":false,"PannerNode":false,"parent":false,"Path2D":false,"PaymentAddress":false,"PaymentRequest":false,"PaymentRequestUpdateEvent":false,"PaymentResponse":false,"performance":false,"Performance":false,"PerformanceEntry":false,"PerformanceLongTaskTiming":false,"PerformanceMark":false,"PerformanceMeasure":false,"PerformanceNavigation":false,"PerformanceNavigationTiming":false,"PerformanceObserver":false,"PerformanceObserverEntryList":false,"PerformancePaintTiming":false,"PerformanceResourceTiming":false,"PerformanceTiming":false,"PeriodicWave":false,"Permissions":false,"PermissionStatus":false,"personalbar":false,"PhotoCapabilities":false,"Plugin":false,"PluginArray":false,"PointerEvent":false,"PopStateEvent":false,"postMessage":false,"Presentation":false,"PresentationAvailability":false,"PresentationConnection":false,"PresentationConnectionAvailableEvent":false,"PresentationConnectionCloseEvent":false,"PresentationConnectionList":false,"PresentationReceiver":false,"PresentationRequest":false,"print":false,"ProcessingInstruction":false,"ProgressEvent":false,"PromiseRejectionEvent":false,"prompt":false,"PushManager":false,"PushSubscription":false,"PushSubscriptionOptions":false,"queueMicrotask":false,"RadioNodeList":false,"Range":false,"ReadableStream":false,"registerProcessor":false,"RemotePlayback":false,"removeEventListener":false,"Request":false,"requestAnimationFrame":false,"requestIdleCallback":false,"resizeBy":false,"ResizeObserver":false,"ResizeObserverEntry":false,"resizeTo":false,"Response":false,"RTCCertificate":false,"RTCDataChannel":false,"RTCDataChannelEvent":false,"RTCDtlsTransport":false,"RTCIceCandidate":false,"RTCIceGatherer":false,"RTCIceTransport":false,"RTCPeerConnection":false,"RTCPeerConnectionIceEvent":false,"RTCRtpContributingSource":false,"RTCRtpReceiver":false,"RTCRtpSender":false,"RTCSctpTransport":false,"RTCSessionDescription":false,"RTCStatsReport":false,"RTCTrackEvent":false,"screen":false,"Screen":false,"screenLeft":false,"ScreenOrientation":false,"screenTop":false,"screenX":false,"screenY":false,"ScriptProcessorNode":false,"scroll":false,"scrollbars":false,"scrollBy":false,"scrollTo":false,"scrollX":false,"scrollY":false,"SecurityPolicyViolationEvent":false,"Selection":false,"self":false,"ServiceWorker":false,"ServiceWorkerContainer":false,"ServiceWorkerRegistration":false,"sessionStorage":false,"setInterval":false,"setTimeout":false,"ShadowRoot":false,"SharedWorker":false,"SourceBuffer":false,"SourceBufferList":false,"speechSynthesis":false,"SpeechSynthesisEvent":false,"SpeechSynthesisUtterance":false,"StaticRange":false,"status":false,"statusbar":false,"StereoPannerNode":false,"stop":false,"Storage":false,"StorageEvent":false,"StorageManager":false,"styleMedia":false,"StyleSheet":false,"StyleSheetList":false,"SubtleCrypto":false,"SVGAElement":false,"SVGAngle":false,"SVGAnimatedAngle":false,"SVGAnimatedBoolean":false,"SVGAnimatedEnumeration":false,"SVGAnimatedInteger":false,"SVGAnimatedLength":false,"SVGAnimatedLengthList":false,"SVGAnimatedNumber":false,"SVGAnimatedNumberList":false,"SVGAnimatedPreserveAspectRatio":false,"SVGAnimatedRect":false,"SVGAnimatedString":false,"SVGAnimatedTransformList":false,"SVGAnimateElement":false,"SVGAnimateMotionElement":false,"SVGAnimateTransformElement":false,"SVGAnimationElement":false,"SVGCircleElement":false,"SVGClipPathElement":false,"SVGComponentTransferFunctionElement":false,"SVGDefsElement":false,"SVGDescElement":false,"SVGDiscardElement":false,"SVGElement":false,"SVGEllipseElement":false,"SVGFEBlendElement":false,"SVGFEColorMatrixElement":false,"SVGFEComponentTransferElement":false,"SVGFECompositeElement":false,"SVGFEConvolveMatrixElement":false,"SVGFEDiffuseLightingElement":false,"SVGFEDisplacementMapElement":false,"SVGFEDistantLightElement":false,"SVGFEDropShadowElement":false,"SVGFEFloodElement":false,"SVGFEFuncAElement":false,"SVGFEFuncBElement":false,"SVGFEFuncGElement":false,"SVGFEFuncRElement":false,"SVGFEGaussianBlurElement":false,"SVGFEImageElement":false,"SVGFEMergeElement":false,"SVGFEMergeNodeElement":false,"SVGFEMorphologyElement":false,"SVGFEOffsetElement":false,"SVGFEPointLightElement":false,"SVGFESpecularLightingElement":false,"SVGFESpotLightElement":false,"SVGFETileElement":false,"SVGFETurbulenceElement":false,"SVGFilterElement":false,"SVGForeignObjectElement":false,"SVGGElement":false,"SVGGeometryElement":false,"SVGGradientElement":false,"SVGGraphicsElement":false,"SVGImageElement":false,"SVGLength":false,"SVGLengthList":false,"SVGLinearGradientElement":false,"SVGLineElement":false,"SVGMarkerElement":false,"SVGMaskElement":false,"SVGMatrix":false,"SVGMetadataElement":false,"SVGMPathElement":false,"SVGNumber":false,"SVGNumberList":false,"SVGPathElement":false,"SVGPatternElement":false,"SVGPoint":false,"SVGPointList":false,"SVGPolygonElement":false,"SVGPolylineElement":false,"SVGPreserveAspectRatio":false,"SVGRadialGradientElement":false,"SVGRect":false,"SVGRectElement":false,"SVGScriptElement":false,"SVGSetElement":false,"SVGStopElement":false,"SVGStringList":false,"SVGStyleElement":false,"SVGSVGElement":false,"SVGSwitchElement":false,"SVGSymbolElement":false,"SVGTextContentElement":false,"SVGTextElement":false,"SVGTextPathElement":false,"SVGTextPositioningElement":false,"SVGTitleElement":false,"SVGTransform":false,"SVGTransformList":false,"SVGTSpanElement":false,"SVGUnitTypes":false,"SVGUseElement":false,"SVGViewElement":false,"TaskAttributionTiming":false,"Text":false,"TextDecoder":false,"TextEncoder":false,"TextEvent":false,"TextMetrics":false,"TextTrack":false,"TextTrackCue":false,"TextTrackCueList":false,"TextTrackList":false,"TimeRanges":false,"toolbar":false,"top":false,"Touch":false,"TouchEvent":false,"TouchList":false,"TrackEvent":false,"TransitionEvent":false,"TreeWalker":false,"UIEvent":false,"URL":false,"URLSearchParams":false,"ValidityState":false,"visualViewport":false,"VisualViewport":false,"VTTCue":false,"WaveShaperNode":false,"WebAssembly":false,"WebGL2RenderingContext":false,"WebGLActiveInfo":false,"WebGLBuffer":false,"WebGLContextEvent":false,"WebGLFramebuffer":false,"WebGLProgram":false,"WebGLQuery":false,"WebGLRenderbuffer":false,"WebGLRenderingContext":false,"WebGLSampler":false,"WebGLShader":false,"WebGLShaderPrecisionFormat":false,"WebGLSync":false,"WebGLTexture":false,"WebGLTransformFeedback":false,"WebGLUniformLocation":false,"WebGLVertexArrayObject":false,"WebSocket":false,"WheelEvent":false,"window":false,"Window":false,"Worker":false,"WritableStream":false,"XMLDocument":false,"XMLHttpRequest":false,"XMLHttpRequestEventTarget":false,"XMLHttpRequestUpload":false,"XMLSerializer":false,"XPathEvaluator":false,"XPathExpression":false,"XPathResult":false,"XSLTProcessor":false},"worker":{"addEventListener":false,"applicationCache":false,"atob":false,"Blob":false,"BroadcastChannel":false,"btoa":false,"Cache":false,"caches":false,"clearInterval":false,"clearTimeout":false,"close":true,"console":false,"fetch":false,"FileReaderSync":false,"FormData":false,"Headers":false,"IDBCursor":false,"IDBCursorWithValue":false,"IDBDatabase":false,"IDBFactory":false,"IDBIndex":false,"IDBKeyRange":false,"IDBObjectStore":false,"IDBOpenDBRequest":false,"IDBRequest":false,"IDBTransaction":false,"IDBVersionChangeEvent":false,"ImageData":false,"importScripts":true,"indexedDB":false,"location":false,"MessageChannel":false,"MessagePort":false,"name":false,"navigator":false,"Notification":false,"onclose":true,"onconnect":true,"onerror":true,"onlanguagechange":true,"onmessage":true,"onoffline":true,"ononline":true,"onrejectionhandled":true,"onunhandledrejection":true,"performance":false,"Performance":false,"PerformanceEntry":false,"PerformanceMark":false,"PerformanceMeasure":false,"PerformanceNavigation":false,"PerformanceResourceTiming":false,"PerformanceTiming":false,"postMessage":true,"Promise":false,"queueMicrotask":false,"removeEventListener":false,"Request":false,"Response":false,"self":true,"ServiceWorkerRegistration":false,"setInterval":false,"setTimeout":false,"TextDecoder":false,"TextEncoder":false,"URL":false,"URLSearchParams":false,"WebSocket":false,"Worker":false,"WorkerGlobalScope":false,"XMLHttpRequest":false},"node":{"__dirname":false,"__filename":false,"Buffer":false,"clearImmediate":false,"clearInterval":false,"clearTimeout":false,"console":false,"exports":true,"global":false,"Intl":false,"module":false,"process":false,"queueMicrotask":false,"require":false,"setImmediate":false,"setInterval":false,"setTimeout":false,"TextDecoder":false,"TextEncoder":false,"URL":false,"URLSearchParams":false},"commonjs":{"exports":true,"global":false,"module":false,"require":false},"amd":{"define":false,"require":false},"mocha":{"after":false,"afterEach":false,"before":false,"beforeEach":false,"context":false,"describe":false,"it":false,"mocha":false,"run":false,"setup":false,"specify":false,"suite":false,"suiteSetup":false,"suiteTeardown":false,"teardown":false,"test":false,"xcontext":false,"xdescribe":false,"xit":false,"xspecify":false},"jasmine":{"afterAll":false,"afterEach":false,"beforeAll":false,"beforeEach":false,"describe":false,"expect":false,"fail":false,"fdescribe":false,"fit":false,"it":false,"jasmine":false,"pending":false,"runs":false,"spyOn":false,"spyOnProperty":false,"waits":false,"waitsFor":false,"xdescribe":false,"xit":false},"jest":{"afterAll":false,"afterEach":false,"beforeAll":false,"beforeEach":false,"describe":false,"expect":false,"fdescribe":false,"fit":false,"it":false,"jest":false,"pit":false,"require":false,"test":false,"xdescribe":false,"xit":false,"xtest":false},"qunit":{"asyncTest":false,"deepEqual":false,"equal":false,"expect":false,"module":false,"notDeepEqual":false,"notEqual":false,"notOk":false,"notPropEqual":false,"notStrictEqual":false,"ok":false,"propEqual":false,"QUnit":false,"raises":false,"start":false,"stop":false,"strictEqual":false,"test":false,"throws":false},"phantomjs":{"console":true,"exports":true,"phantom":true,"require":true,"WebPage":true},"couch":{"emit":false,"exports":false,"getRow":false,"log":false,"module":false,"provides":false,"require":false,"respond":false,"send":false,"start":false,"sum":false},"rhino":{"defineClass":false,"deserialize":false,"gc":false,"help":false,"importClass":false,"importPackage":false,"java":false,"load":false,"loadClass":false,"Packages":false,"print":false,"quit":false,"readFile":false,"readUrl":false,"runCommand":false,"seal":false,"serialize":false,"spawn":false,"sync":false,"toint32":false,"version":false},"nashorn":{"__DIR__":false,"__FILE__":false,"__LINE__":false,"com":false,"edu":false,"exit":false,"java":false,"Java":false,"javafx":false,"JavaImporter":false,"javax":false,"JSAdapter":false,"load":false,"loadWithNewGlobal":false,"org":false,"Packages":false,"print":false,"quit":false},"wsh":{"ActiveXObject":true,"Enumerator":true,"GetObject":true,"ScriptEngine":true,"ScriptEngineBuildVersion":true,"ScriptEngineMajorVersion":true,"ScriptEngineMinorVersion":true,"VBArray":true,"WScript":true,"WSH":true,"XDomainRequest":true},"jquery":{"$":false,"jQuery":false},"yui":{"YAHOO":false,"YAHOO_config":false,"YUI":false,"YUI_config":false},"shelljs":{"cat":false,"cd":false,"chmod":false,"config":false,"cp":false,"dirs":false,"echo":false,"env":false,"error":false,"exec":false,"exit":false,"find":false,"grep":false,"ln":false,"ls":false,"mkdir":false,"mv":false,"popd":false,"pushd":false,"pwd":false,"rm":false,"sed":false,"set":false,"target":false,"tempdir":false,"test":false,"touch":false,"which":false},"prototypejs":{"$":false,"$$":false,"$A":false,"$break":false,"$continue":false,"$F":false,"$H":false,"$R":false,"$w":false,"Abstract":false,"Ajax":false,"Autocompleter":false,"Builder":false,"Class":false,"Control":false,"Draggable":false,"Draggables":false,"Droppables":false,"Effect":false,"Element":false,"Enumerable":false,"Event":false,"Field":false,"Form":false,"Hash":false,"Insertion":false,"ObjectRange":false,"PeriodicalExecuter":false,"Position":false,"Prototype":false,"Scriptaculous":false,"Selector":false,"Sortable":false,"SortableObserver":false,"Sound":false,"Template":false,"Toggle":false,"Try":false},"meteor":{"_":false,"$":false,"Accounts":false,"AccountsClient":false,"AccountsCommon":false,"AccountsServer":false,"App":false,"Assets":false,"Blaze":false,"check":false,"Cordova":false,"DDP":false,"DDPRateLimiter":false,"DDPServer":false,"Deps":false,"EJSON":false,"Email":false,"HTTP":false,"Log":false,"Match":false,"Meteor":false,"Mongo":false,"MongoInternals":false,"Npm":false,"Package":false,"Plugin":false,"process":false,"Random":false,"ReactiveDict":false,"ReactiveVar":false,"Router":false,"ServiceConfiguration":false,"Session":false,"share":false,"Spacebars":false,"Template":false,"Tinytest":false,"Tracker":false,"UI":false,"Utils":false,"WebApp":false,"WebAppInternals":false},"mongo":{"_isWindows":false,"_rand":false,"BulkWriteResult":false,"cat":false,"cd":false,"connect":false,"db":false,"getHostName":false,"getMemInfo":false,"hostname":false,"ISODate":false,"listFiles":false,"load":false,"ls":false,"md5sumFile":false,"mkdir":false,"Mongo":false,"NumberInt":false,"NumberLong":false,"ObjectId":false,"PlanCache":false,"print":false,"printjson":false,"pwd":false,"quit":false,"removeFile":false,"rs":false,"sh":false,"UUID":false,"version":false,"WriteResult":false},"applescript":{"$":false,"Application":false,"Automation":false,"console":false,"delay":false,"Library":false,"ObjC":false,"ObjectSpecifier":false,"Path":false,"Progress":false,"Ref":false},"serviceworker":{"addEventListener":false,"applicationCache":false,"atob":false,"Blob":false,"BroadcastChannel":false,"btoa":false,"Cache":false,"caches":false,"CacheStorage":false,"clearInterval":false,"clearTimeout":false,"Client":false,"clients":false,"Clients":false,"close":true,"console":false,"ExtendableEvent":false,"ExtendableMessageEvent":false,"fetch":false,"FetchEvent":false,"FileReaderSync":false,"FormData":false,"Headers":false,"IDBCursor":false,"IDBCursorWithValue":false,"IDBDatabase":false,"IDBFactory":false,"IDBIndex":false,"IDBKeyRange":false,"IDBObjectStore":false,"IDBOpenDBRequest":false,"IDBRequest":false,"IDBTransaction":false,"IDBVersionChangeEvent":false,"ImageData":false,"importScripts":false,"indexedDB":false,"location":false,"MessageChannel":false,"MessagePort":false,"name":false,"navigator":false,"Notification":false,"onclose":true,"onconnect":true,"onerror":true,"onfetch":true,"oninstall":true,"onlanguagechange":true,"onmessage":true,"onmessageerror":true,"onnotificationclick":true,"onnotificationclose":true,"onoffline":true,"ononline":true,"onpush":true,"onpushsubscriptionchange":true,"onrejectionhandled":true,"onsync":true,"onunhandledrejection":true,"performance":false,"Performance":false,"PerformanceEntry":false,"PerformanceMark":false,"PerformanceMeasure":false,"PerformanceNavigation":false,"PerformanceResourceTiming":false,"PerformanceTiming":false,"postMessage":true,"Promise":false,"queueMicrotask":false,"registration":false,"removeEventListener":false,"Request":false,"Response":false,"self":false,"ServiceWorker":false,"ServiceWorkerContainer":false,"ServiceWorkerGlobalScope":false,"ServiceWorkerMessageEvent":false,"ServiceWorkerRegistration":false,"setInterval":false,"setTimeout":false,"skipWaiting":false,"TextDecoder":false,"TextEncoder":false,"URL":false,"URLSearchParams":false,"WebSocket":false,"WindowClient":false,"Worker":false,"WorkerGlobalScope":false,"XMLHttpRequest":false},"atomtest":{"advanceClock":false,"fakeClearInterval":false,"fakeClearTimeout":false,"fakeSetInterval":false,"fakeSetTimeout":false,"resetTimeouts":false,"waitsForPromise":false},"embertest":{"andThen":false,"click":false,"currentPath":false,"currentRouteName":false,"currentURL":false,"fillIn":false,"find":false,"findAll":false,"findWithAssert":false,"keyEvent":false,"pauseTest":false,"resumeTest":false,"triggerEvent":false,"visit":false,"wait":false},"protractor":{"$":false,"$$":false,"browser":false,"by":false,"By":false,"DartObject":false,"element":false,"protractor":false},"shared-node-browser":{"clearInterval":false,"clearTimeout":false,"console":false,"setInterval":false,"setTimeout":false,"URL":false,"URLSearchParams":false},"webextensions":{"browser":false,"chrome":false,"opr":false},"greasemonkey":{"cloneInto":false,"createObjectIn":false,"exportFunction":false,"GM":false,"GM_addStyle":false,"GM_deleteValue":false,"GM_getResourceText":false,"GM_getResourceURL":false,"GM_getValue":false,"GM_info":false,"GM_listValues":false,"GM_log":false,"GM_openInTab":false,"GM_registerMenuCommand":false,"GM_setClipboard":false,"GM_setValue":false,"GM_xmlhttpRequest":false,"unsafeWindow":false},"devtools":{"$":false,"$_":false,"$$":false,"$0":false,"$1":false,"$2":false,"$3":false,"$4":false,"$x":false,"chrome":false,"clear":false,"copy":false,"debug":false,"dir":false,"dirxml":false,"getEventListeners":false,"inspect":false,"keys":false,"monitor":false,"monitorEvents":false,"profile":false,"profileEnd":false,"queryObjects":false,"table":false,"undebug":false,"unmonitor":false,"unmonitorEvents":false,"values":false}}'); +module.exports = JSON.parse('["AggregateError","Array","ArrayBuffer","Atomics","BigInt","BigInt64Array","BigUint64Array","Boolean","DataView","Date","Error","EvalError","FinalizationRegistry","Float16Array","Float32Array","Float64Array","Function","Infinity","Int16Array","Int32Array","Int8Array","Intl","Iterator","JSON","Map","Math","NaN","Number","Object","Promise","Proxy","RangeError","ReferenceError","Reflect","RegExp","Set","SharedArrayBuffer","String","Symbol","SyntaxError","TypeError","Uint16Array","Uint32Array","Uint8Array","Uint8ClampedArray","URIError","WeakMap","WeakRef","WeakSet"]'); /***/ }), From 3a2be76029e3eeb65f65a922bd53d6a37ac88be7 Mon Sep 17 00:00:00 2001 From: rory Date: Fri, 26 Dec 2025 10:37:58 -0800 Subject: [PATCH 8/9] Downgrade @trivago/prettier-plugin-sort-imports to avoid jest compatibility issue --- package-lock.json | 52 +++++++++-------------------------------------- package.json | 2 +- 2 files changed, 11 insertions(+), 43 deletions(-) diff --git a/package-lock.json b/package-lock.json index d063fe476e63..910ff0577173 100644 --- a/package-lock.json +++ b/package-lock.json @@ -197,7 +197,7 @@ "@storybook/react-webpack5": "10.1.10", "@svgr/webpack": "^6.0.0", "@testing-library/react-native": "13.2.0", - "@trivago/prettier-plugin-sort-imports": "6.0.0", + "@trivago/prettier-plugin-sort-imports": "5.2.2", "@types/base-64": "^1.0.2", "@types/canvas-size": "^1.2.2", "@types/concurrently": "^7.0.0", @@ -16576,28 +16576,25 @@ } }, "node_modules/@trivago/prettier-plugin-sort-imports": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@trivago/prettier-plugin-sort-imports/-/prettier-plugin-sort-imports-6.0.0.tgz", - "integrity": "sha512-Xarx55ow0R8oC7ViL5fPmDsg1EBa1dVhyZFVbFXNtPPJyW2w9bJADIla8YFSaNG9N06XfcklA9O9vmw4noNxkQ==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/@trivago/prettier-plugin-sort-imports/-/prettier-plugin-sort-imports-5.2.2.tgz", + "integrity": "sha512-fYDQA9e6yTNmA13TLVSA+WMQRc5Bn/c0EUBditUHNfMMxN7M82c38b1kEggVE3pLpZ0FwkwJkUEKMiOi52JXFA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@babel/generator": "^7.28.0", - "@babel/parser": "^7.28.0", - "@babel/traverse": "^7.28.0", - "@babel/types": "^7.28.0", + "@babel/generator": "^7.26.5", + "@babel/parser": "^7.26.7", + "@babel/traverse": "^7.26.7", + "@babel/types": "^7.26.7", "javascript-natural-sort": "^0.7.1", - "lodash-es": "^4.17.21", - "minimatch": "^9.0.0", - "parse-imports-exports": "^0.2.4" + "lodash": "^4.17.21" }, "engines": { - "node": ">= 20" + "node": ">18.12" }, "peerDependencies": { "@vue/compiler-sfc": "3.x", "prettier": "2.x - 3.x", - "prettier-plugin-ember-template-tag": ">= 2.0.0", "prettier-plugin-svelte": "3.x", "svelte": "4.x || 5.x" }, @@ -16605,9 +16602,6 @@ "@vue/compiler-sfc": { "optional": true }, - "prettier-plugin-ember-template-tag": { - "optional": true - }, "prettier-plugin-svelte": { "optional": true }, @@ -16616,32 +16610,6 @@ } } }, - "node_modules/@trivago/prettier-plugin-sort-imports/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@trivago/prettier-plugin-sort-imports/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/@trysound/sax": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", diff --git a/package.json b/package.json index de5832180575..7c6d6736b69e 100644 --- a/package.json +++ b/package.json @@ -270,7 +270,7 @@ "@storybook/react-webpack5": "10.1.10", "@svgr/webpack": "^6.0.0", "@testing-library/react-native": "13.2.0", - "@trivago/prettier-plugin-sort-imports": "6.0.0", + "@trivago/prettier-plugin-sort-imports": "5.2.2", "@types/base-64": "^1.0.2", "@types/canvas-size": "^1.2.2", "@types/concurrently": "^7.0.0", From 62d51bf1a5b8b355da26205a2624ae4bbe016fa2 Mon Sep 17 00:00:00 2001 From: rory Date: Fri, 26 Dec 2025 10:46:33 -0800 Subject: [PATCH 9/9] Re-run prettier after trivago downgrade --- scripts/checkLazyLoading.ts | 1 - scripts/generateTranslations.ts | 1 - scripts/react-compiler-compliance-check.ts | 1 - scripts/release-profile.ts | 1 - scripts/symbolicate-profile.ts | 1 - 5 files changed, 5 deletions(-) diff --git a/scripts/checkLazyLoading.ts b/scripts/checkLazyLoading.ts index 7c8427e6dcd4..16e0138469fa 100644 --- a/scripts/checkLazyLoading.ts +++ b/scripts/checkLazyLoading.ts @@ -1,5 +1,4 @@ #!/usr/bin/env ts-node - /** * Script to check if icons and illustrations are using lazy loading * This script scans the codebase for direct imports from deprecated eager loading files diff --git a/scripts/generateTranslations.ts b/scripts/generateTranslations.ts index 231f23455c74..39214854aaaa 100755 --- a/scripts/generateTranslations.ts +++ b/scripts/generateTranslations.ts @@ -1,5 +1,4 @@ #!/usr/bin/env npx ts-node - /* * This script uses src/languages/en.ts as the source of truth, and leverages ChatGPT to generate translations for other languages. */ diff --git a/scripts/react-compiler-compliance-check.ts b/scripts/react-compiler-compliance-check.ts index 1776bc314195..6d73d23ac923 100644 --- a/scripts/react-compiler-compliance-check.ts +++ b/scripts/react-compiler-compliance-check.ts @@ -1,5 +1,4 @@ #!/usr/bin/env ts-node - /* eslint-disable max-classes-per-file */ /** * React Compiler Compliance Checker diff --git a/scripts/release-profile.ts b/scripts/release-profile.ts index 615f009d743d..9697ead8a1d6 100755 --- a/scripts/release-profile.ts +++ b/scripts/release-profile.ts @@ -1,5 +1,4 @@ #!/usr/bin/env ts-node - /* eslint-disable no-console */ import {execSync} from 'child_process'; import fs from 'fs'; diff --git a/scripts/symbolicate-profile.ts b/scripts/symbolicate-profile.ts index 5ea77b8a67ae..9215550e5a3f 100755 --- a/scripts/symbolicate-profile.ts +++ b/scripts/symbolicate-profile.ts @@ -1,5 +1,4 @@ #!/usr/bin/env ts-node - /* eslint-disable @typescript-eslint/naming-convention */ /** * This script helps to symbolicate a .cpuprofile file that was obtained from a specific (staging) app version (usually provided by a user using the app).