From 5d41faf47dcf569a38d6345f6c1466af5793cc45 Mon Sep 17 00:00:00 2001 From: lrhh123 Date: Sat, 9 Mar 2024 21:30:23 +0800 Subject: [PATCH] commit projects --- .editorconfig | 12 + .erb/configs/.eslintrc | 7 + .erb/configs/webpack.config.base.ts | 63 + .erb/configs/webpack.config.eslint.ts | 3 + .erb/configs/webpack.config.main.prod.ts | 83 + .erb/configs/webpack.config.preload.dev.ts | 71 + .../webpack.config.renderer.dev.dll.ts | 77 + .erb/configs/webpack.config.renderer.dev.ts | 213 + .erb/configs/webpack.config.renderer.prod.ts | 141 + .erb/configs/webpack.paths.ts | 38 + .erb/img/erb-banner.svg | 32 + .erb/img/erb-logo.png | Bin 0 -> 28783 bytes .erb/img/palette-sponsor-banner.svg | 6 + .erb/mocks/fileMock.js | 1 + .erb/scripts/.eslintrc | 8 + .erb/scripts/check-build-exists.ts | 24 + .erb/scripts/check-native-dep.js | 54 + .erb/scripts/check-node-env.js | 16 + .erb/scripts/check-port-in-use.js | 16 + .erb/scripts/clean.js | 13 + .erb/scripts/delete-source-maps.js | 15 + .erb/scripts/electron-rebuild.js | 20 + .erb/scripts/link-modules.ts | 9 + .erb/scripts/notarize.js | 32 + .eslintignore | 33 + .eslintrc.js | 47 + .gitattributes | 12 + .gitignore | 34 + BUILD.md | 49 + CHANGELOG.md | 7 + README.md | 8 +- assets/assets.d.ts | 40 + assets/base/default-platform-icon.png | Bin 0 -> 3510 bytes assets/fonts/庞门正道标题体.ttf | Bin 0 -> 2292 bytes assets/icon.ico | Bin 0 -> 190521 bytes assets/icon.png | Bin 0 -> 12313 bytes assets/icons/128x128.png | Bin 0 -> 16625 bytes assets/icons/48x48.png | Bin 0 -> 3550 bytes assets/icons/64x64.png | Bin 0 -> 5650 bytes assets/icons/96x96.png | Bin 0 -> 9318 bytes electron-builder.yml | 30 + package.json | 205 + pnpm-lock.yaml | 13849 ++++++++++++++++ src/__tests__/App.test.tsx | 9 + src/main/ipcHandlers.ts | 102 + src/main/main.ts | 133 + src/main/menu.ts | 289 + src/main/preload.ts | 73 + src/main/system/backend.ts | 130 + src/main/system/chrome.ts | 34 + src/main/system/cron.ts | 6 + src/main/util.ts | 13 + src/renderer/App.css | 54 + src/renderer/App.tsx | 86 + .../components/ErrorBoundary/index.tsx | 117 + src/renderer/components/Loader/index.tsx | 13 + src/renderer/components/Loader/loader.css | 11 + .../components/Markdown/index.module.scss | 421 + src/renderer/components/Markdown/index.tsx | 32 + src/renderer/components/MyModal/index.tsx | 92 + src/renderer/components/MyTextarea/index.tsx | 77 + src/renderer/components/MyTooltip/index.tsx | 35 + .../components/PageContainer/index.tsx | 52 + src/renderer/components/SystemCheck/index.tsx | 140 + src/renderer/components/Updater/index.tsx | 83 + src/renderer/components/layout/Footer.tsx | 25 + src/renderer/components/layout/Navbar.tsx | 86 + src/renderer/hooks/useToast.ts | 13 + src/renderer/hooks/useWebSocketContext.tsx | 94 + src/renderer/index.ejs | 14 + src/renderer/index.tsx | 14 + src/renderer/pages/About/index.tsx | 25 + src/renderer/pages/FullScreenLoader/index.tsx | 19 + src/renderer/pages/Home/DriverSettings.tsx | 111 + src/renderer/pages/Home/EditKeyword.tsx | 398 + src/renderer/pages/Home/LogBox.tsx | 78 + src/renderer/pages/Home/PlatformTabs.tsx | 119 + src/renderer/pages/Home/ReplyKeyword.tsx | 195 + src/renderer/pages/Home/index.tsx | 28 + src/renderer/pages/MsgList/SessionBox.tsx | 91 + src/renderer/pages/MsgList/index.tsx | 178 + src/renderer/pages/Platforms/index.tsx | 240 + .../Settings/CustomerServiceSettings.tsx | 236 + src/renderer/pages/Settings/GptSettings.tsx | 212 + .../pages/Settings/SettingsContext.tsx | 72 + src/renderer/pages/Settings/index.tsx | 105 + src/renderer/preload.d.ts | 10 + .../services/analytics/index_template.ts | 14 + src/renderer/services/common/api/request.ts | 153 + src/renderer/services/platform/constant.ts | 15 + src/renderer/services/platform/controller.ts | 123 + src/renderer/services/platform/platform.d.ts | 81 + src/renderer/services/system/controller.ts | 22 + src/renderer/stores/useGlobalStore.ts | 33 + src/renderer/stores/useSystemStore.ts | 66 + src/renderer/ui/styles/colors.ts | 164 + src/renderer/ui/styles/foundations/Table.ts | 56 + src/renderer/ui/styles/theme.ts | 85 + src/types/node-cron.d.ts | 1 + tsconfig.json | 18 + 100 files changed, 20462 insertions(+), 2 deletions(-) create mode 100644 .editorconfig create mode 100644 .erb/configs/.eslintrc create mode 100644 .erb/configs/webpack.config.base.ts create mode 100644 .erb/configs/webpack.config.eslint.ts create mode 100644 .erb/configs/webpack.config.main.prod.ts create mode 100644 .erb/configs/webpack.config.preload.dev.ts create mode 100644 .erb/configs/webpack.config.renderer.dev.dll.ts create mode 100644 .erb/configs/webpack.config.renderer.dev.ts create mode 100644 .erb/configs/webpack.config.renderer.prod.ts create mode 100644 .erb/configs/webpack.paths.ts create mode 100644 .erb/img/erb-banner.svg create mode 100644 .erb/img/erb-logo.png create mode 100644 .erb/img/palette-sponsor-banner.svg create mode 100644 .erb/mocks/fileMock.js create mode 100644 .erb/scripts/.eslintrc create mode 100644 .erb/scripts/check-build-exists.ts create mode 100644 .erb/scripts/check-native-dep.js create mode 100644 .erb/scripts/check-node-env.js create mode 100644 .erb/scripts/check-port-in-use.js create mode 100644 .erb/scripts/clean.js create mode 100644 .erb/scripts/delete-source-maps.js create mode 100644 .erb/scripts/electron-rebuild.js create mode 100644 .erb/scripts/link-modules.ts create mode 100644 .erb/scripts/notarize.js create mode 100644 .eslintignore create mode 100644 .eslintrc.js create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 BUILD.md create mode 100644 CHANGELOG.md create mode 100644 assets/assets.d.ts create mode 100644 assets/base/default-platform-icon.png create mode 100644 assets/fonts/庞门正道标题体.ttf create mode 100644 assets/icon.ico create mode 100644 assets/icon.png create mode 100644 assets/icons/128x128.png create mode 100644 assets/icons/48x48.png create mode 100644 assets/icons/64x64.png create mode 100644 assets/icons/96x96.png create mode 100644 electron-builder.yml create mode 100644 package.json create mode 100644 pnpm-lock.yaml create mode 100644 src/__tests__/App.test.tsx create mode 100644 src/main/ipcHandlers.ts create mode 100644 src/main/main.ts create mode 100644 src/main/menu.ts create mode 100644 src/main/preload.ts create mode 100644 src/main/system/backend.ts create mode 100644 src/main/system/chrome.ts create mode 100644 src/main/system/cron.ts create mode 100644 src/main/util.ts create mode 100644 src/renderer/App.css create mode 100644 src/renderer/App.tsx create mode 100644 src/renderer/components/ErrorBoundary/index.tsx create mode 100644 src/renderer/components/Loader/index.tsx create mode 100644 src/renderer/components/Loader/loader.css create mode 100644 src/renderer/components/Markdown/index.module.scss create mode 100644 src/renderer/components/Markdown/index.tsx create mode 100644 src/renderer/components/MyModal/index.tsx create mode 100644 src/renderer/components/MyTextarea/index.tsx create mode 100644 src/renderer/components/MyTooltip/index.tsx create mode 100644 src/renderer/components/PageContainer/index.tsx create mode 100644 src/renderer/components/SystemCheck/index.tsx create mode 100644 src/renderer/components/Updater/index.tsx create mode 100644 src/renderer/components/layout/Footer.tsx create mode 100644 src/renderer/components/layout/Navbar.tsx create mode 100644 src/renderer/hooks/useToast.ts create mode 100644 src/renderer/hooks/useWebSocketContext.tsx create mode 100644 src/renderer/index.ejs create mode 100644 src/renderer/index.tsx create mode 100644 src/renderer/pages/About/index.tsx create mode 100644 src/renderer/pages/FullScreenLoader/index.tsx create mode 100644 src/renderer/pages/Home/DriverSettings.tsx create mode 100644 src/renderer/pages/Home/EditKeyword.tsx create mode 100644 src/renderer/pages/Home/LogBox.tsx create mode 100644 src/renderer/pages/Home/PlatformTabs.tsx create mode 100644 src/renderer/pages/Home/ReplyKeyword.tsx create mode 100644 src/renderer/pages/Home/index.tsx create mode 100644 src/renderer/pages/MsgList/SessionBox.tsx create mode 100644 src/renderer/pages/MsgList/index.tsx create mode 100644 src/renderer/pages/Platforms/index.tsx create mode 100644 src/renderer/pages/Settings/CustomerServiceSettings.tsx create mode 100644 src/renderer/pages/Settings/GptSettings.tsx create mode 100644 src/renderer/pages/Settings/SettingsContext.tsx create mode 100644 src/renderer/pages/Settings/index.tsx create mode 100644 src/renderer/preload.d.ts create mode 100644 src/renderer/services/analytics/index_template.ts create mode 100644 src/renderer/services/common/api/request.ts create mode 100644 src/renderer/services/platform/constant.ts create mode 100644 src/renderer/services/platform/controller.ts create mode 100644 src/renderer/services/platform/platform.d.ts create mode 100644 src/renderer/services/system/controller.ts create mode 100644 src/renderer/stores/useGlobalStore.ts create mode 100644 src/renderer/stores/useSystemStore.ts create mode 100644 src/renderer/ui/styles/colors.ts create mode 100644 src/renderer/ui/styles/foundations/Table.ts create mode 100644 src/renderer/ui/styles/theme.ts create mode 100644 src/types/node-cron.d.ts create mode 100644 tsconfig.json diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..4a7ea30 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,12 @@ +root = true + +[*] +indent_style = space +indent_size = 2 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.md] +trim_trailing_whitespace = false diff --git a/.erb/configs/.eslintrc b/.erb/configs/.eslintrc new file mode 100644 index 0000000..89d242b --- /dev/null +++ b/.erb/configs/.eslintrc @@ -0,0 +1,7 @@ +{ + "rules": { + "no-console": "off", + "global-require": "off", + "import/no-dynamic-require": "off" + } +} diff --git a/.erb/configs/webpack.config.base.ts b/.erb/configs/webpack.config.base.ts new file mode 100644 index 0000000..e9aeb6b --- /dev/null +++ b/.erb/configs/webpack.config.base.ts @@ -0,0 +1,63 @@ +/** + * Base webpack config used across other specific configs + */ +import path from 'path'; +import webpack from 'webpack'; +import dotenv from 'dotenv'; // 导入dotenv-webpack插件 +import TsconfigPathsPlugins from 'tsconfig-paths-webpack-plugin'; +import webpackPaths from './webpack.paths'; +import { dependencies as externals } from '../../release/app/package.json'; + +const configuration: webpack.Configuration = { + externals: [...Object.keys(externals || {})], + + stats: 'errors-only', + + module: { + rules: [ + { + test: /\.[jt]sx?$/, + exclude: /node_modules/, + use: { + loader: 'ts-loader', + options: { + // Remove this line to enable type checking in webpack builds + transpileOnly: true, + compilerOptions: { + module: 'esnext', + }, + }, + }, + }, + ], + }, + + output: { + path: webpackPaths.srcPath, + // https://github.com/webpack/webpack/issues/1114 + library: { + type: 'commonjs2', + }, + }, + + /** + * Determine the array of extensions that should be used to resolve modules. + */ + resolve: { + extensions: ['.js', '.jsx', '.json', '.ts', '.tsx'], + modules: [webpackPaths.srcPath, 'node_modules'], + // There is no need to add aliases here, the paths in tsconfig get mirrored + plugins: [new TsconfigPathsPlugins()], + }, + + plugins: [ + new webpack.EnvironmentPlugin({ + NODE_ENV: 'production', + ...dotenv.config({ + path: path.join(webpackPaths.rootPath, '.env'), + }).parsed, + }), + ], +}; + +export default configuration; diff --git a/.erb/configs/webpack.config.eslint.ts b/.erb/configs/webpack.config.eslint.ts new file mode 100644 index 0000000..35a631b --- /dev/null +++ b/.erb/configs/webpack.config.eslint.ts @@ -0,0 +1,3 @@ +/* eslint import/no-unresolved: off, import/no-self-import: off */ + +module.exports = require('./webpack.config.renderer.dev').default; diff --git a/.erb/configs/webpack.config.main.prod.ts b/.erb/configs/webpack.config.main.prod.ts new file mode 100644 index 0000000..4727482 --- /dev/null +++ b/.erb/configs/webpack.config.main.prod.ts @@ -0,0 +1,83 @@ +/** + * Webpack config for production electron main process + */ + +import path from 'path'; +import webpack from 'webpack'; +import { merge } from 'webpack-merge'; +import TerserPlugin from 'terser-webpack-plugin'; +import { BundleAnalyzerPlugin } from 'webpack-bundle-analyzer'; +import baseConfig from './webpack.config.base'; +import webpackPaths from './webpack.paths'; +import checkNodeEnv from '../scripts/check-node-env'; +import deleteSourceMaps from '../scripts/delete-source-maps'; + +checkNodeEnv('production'); +deleteSourceMaps(); + +const configuration: webpack.Configuration = { + devtool: 'source-map', + + mode: 'production', + + target: 'electron-main', + + entry: { + main: path.join(webpackPaths.srcMainPath, 'main.ts'), + preload: path.join(webpackPaths.srcMainPath, 'preload.ts'), + }, + + output: { + path: webpackPaths.distMainPath, + filename: '[name].js', + library: { + type: 'umd', + }, + }, + + optimization: { + minimizer: [ + new TerserPlugin({ + parallel: true, + }), + ], + }, + + plugins: [ + new BundleAnalyzerPlugin({ + analyzerMode: process.env.ANALYZE === 'true' ? 'server' : 'disabled', + analyzerPort: 8888, + }), + + /** + * Create global constants which can be configured at compile time. + * + * Useful for allowing different behaviour between development builds and + * release builds + * + * NODE_ENV should be production so that modules do not perform certain + * development checks + */ + new webpack.EnvironmentPlugin({ + NODE_ENV: 'production', + DEBUG_PROD: false, + START_MINIMIZED: false, + }), + + new webpack.DefinePlugin({ + 'process.type': '"browser"', + }), + ], + + /** + * Disables webpack processing of __dirname and __filename. + * If you run the bundle in node.js it falls back to these values of node.js. + * https://github.com/webpack/webpack/issues/2010 + */ + node: { + __dirname: false, + __filename: false, + }, +}; + +export default merge(baseConfig, configuration); diff --git a/.erb/configs/webpack.config.preload.dev.ts b/.erb/configs/webpack.config.preload.dev.ts new file mode 100644 index 0000000..d6679e6 --- /dev/null +++ b/.erb/configs/webpack.config.preload.dev.ts @@ -0,0 +1,71 @@ +import path from 'path'; +import webpack from 'webpack'; +import { merge } from 'webpack-merge'; +import { BundleAnalyzerPlugin } from 'webpack-bundle-analyzer'; +import baseConfig from './webpack.config.base'; +import webpackPaths from './webpack.paths'; +import checkNodeEnv from '../scripts/check-node-env'; + +// When an ESLint server is running, we can't set the NODE_ENV so we'll check if it's +// at the dev webpack config is not accidentally run in a production environment +if (process.env.NODE_ENV === 'production') { + checkNodeEnv('development'); +} + +const configuration: webpack.Configuration = { + devtool: 'inline-source-map', + + mode: 'development', + + target: 'electron-preload', + + entry: path.join(webpackPaths.srcMainPath, 'preload.ts'), + + output: { + path: webpackPaths.dllPath, + filename: 'preload.js', + library: { + type: 'umd', + }, + }, + + plugins: [ + new BundleAnalyzerPlugin({ + analyzerMode: process.env.ANALYZE === 'true' ? 'server' : 'disabled', + }), + + /** + * Create global constants which can be configured at compile time. + * + * Useful for allowing different behaviour between development builds and + * release builds + * + * NODE_ENV should be production so that modules do not perform certain + * development checks + * + * By default, use 'development' as NODE_ENV. This can be overriden with + * 'staging', for example, by changing the ENV variables in the npm scripts + */ + new webpack.EnvironmentPlugin({ + NODE_ENV: 'development', + }), + + new webpack.LoaderOptionsPlugin({ + debug: true, + }), + ], + + /** + * Disables webpack processing of __dirname and __filename. + * If you run the bundle in node.js it falls back to these values of node.js. + * https://github.com/webpack/webpack/issues/2010 + */ + node: { + __dirname: false, + __filename: false, + }, + + watch: true, +}; + +export default merge(baseConfig, configuration); diff --git a/.erb/configs/webpack.config.renderer.dev.dll.ts b/.erb/configs/webpack.config.renderer.dev.dll.ts new file mode 100644 index 0000000..614b90f --- /dev/null +++ b/.erb/configs/webpack.config.renderer.dev.dll.ts @@ -0,0 +1,77 @@ +/** + * Builds the DLL for development electron renderer process + */ + +import webpack from 'webpack'; +import path from 'path'; +import { merge } from 'webpack-merge'; +import baseConfig from './webpack.config.base'; +import webpackPaths from './webpack.paths'; +import { dependencies } from '../../package.json'; +import checkNodeEnv from '../scripts/check-node-env'; + +checkNodeEnv('development'); + +const dist = webpackPaths.dllPath; + +const configuration: webpack.Configuration = { + context: webpackPaths.rootPath, + + devtool: 'eval', + + mode: 'development', + + target: 'electron-renderer', + + externals: ['fsevents', 'crypto-browserify'], + + /** + * Use `module` from `webpack.config.renderer.dev.js` + */ + module: require('./webpack.config.renderer.dev').default.module, + + entry: { + renderer: Object.keys(dependencies || {}), + }, + + output: { + path: dist, + filename: '[name].dev.dll.js', + library: { + name: 'renderer', + type: 'var', + }, + }, + + plugins: [ + new webpack.DllPlugin({ + path: path.join(dist, '[name].json'), + name: '[name]', + }), + + /** + * Create global constants which can be configured at compile time. + * + * Useful for allowing different behaviour between development builds and + * release builds + * + * NODE_ENV should be production so that modules do not perform certain + * development checks + */ + new webpack.EnvironmentPlugin({ + NODE_ENV: 'development', + }), + + new webpack.LoaderOptionsPlugin({ + debug: true, + options: { + context: webpackPaths.srcPath, + output: { + path: webpackPaths.dllPath, + }, + }, + }), + ], +}; + +export default merge(baseConfig, configuration); diff --git a/.erb/configs/webpack.config.renderer.dev.ts b/.erb/configs/webpack.config.renderer.dev.ts new file mode 100644 index 0000000..a6ca87e --- /dev/null +++ b/.erb/configs/webpack.config.renderer.dev.ts @@ -0,0 +1,213 @@ +import 'webpack-dev-server'; +import path from 'path'; +import fs from 'fs'; +import webpack from 'webpack'; +import HtmlWebpackPlugin from 'html-webpack-plugin'; +import chalk from 'chalk'; +import { merge } from 'webpack-merge'; +import { execSync, spawn } from 'child_process'; +import ReactRefreshWebpackPlugin from '@pmmmwh/react-refresh-webpack-plugin'; +import baseConfig from './webpack.config.base'; +import webpackPaths from './webpack.paths'; +import checkNodeEnv from '../scripts/check-node-env'; + +// When an ESLint server is running, we can't set the NODE_ENV so we'll check if it's +// at the dev webpack config is not accidentally run in a production environment +if (process.env.NODE_ENV === 'production') { + checkNodeEnv('development'); +} + +const port = process.env.PORT || 1212; +const manifest = path.resolve(webpackPaths.dllPath, 'renderer.json'); +const skipDLLs = + module.parent?.filename.includes('webpack.config.renderer.dev.dll') || + module.parent?.filename.includes('webpack.config.eslint'); + +/** + * Warn if the DLL is not built + */ +if ( + !skipDLLs && + !(fs.existsSync(webpackPaths.dllPath) && fs.existsSync(manifest)) +) { + console.log( + chalk.black.bgYellow.bold( + 'The DLL files are missing. Sit back while we build them for you with "npm run build-dll"', + ), + ); + execSync('npm run postinstall'); +} + +const configuration: webpack.Configuration = { + devtool: 'inline-source-map', + + mode: 'development', + + target: ['web', 'electron-renderer'], + + entry: [ + `webpack-dev-server/client?http://localhost:${port}/dist`, + 'webpack/hot/only-dev-server', + path.join(webpackPaths.srcRendererPath, 'index.tsx'), + ], + + output: { + path: webpackPaths.distRendererPath, + publicPath: '/', + filename: 'renderer.dev.js', + library: { + type: 'umd', + }, + }, + + module: { + rules: [ + { + test: /\.s?(c|a)ss$/, + use: [ + 'style-loader', + { + loader: 'css-loader', + options: { + modules: true, + sourceMap: true, + importLoaders: 1, + }, + }, + 'sass-loader', + ], + include: /\.module\.s?(c|a)ss$/, + }, + { + test: /\.s?css$/, + use: ['style-loader', 'css-loader', 'sass-loader'], + exclude: /\.module\.s?(c|a)ss$/, + }, + // Fonts + { + test: /\.(woff|woff2|eot|ttf|otf)$/i, + type: 'asset/resource', + }, + // Images + { + test: /\.(png|jpg|jpeg|gif)$/i, + type: 'asset/resource', + }, + // SVG + { + test: /\.svg$/, + use: [ + { + loader: '@svgr/webpack', + options: { + prettier: false, + svgo: false, + svgoConfig: { + plugins: [{ removeViewBox: false }], + }, + titleProp: true, + ref: true, + }, + }, + 'file-loader', + ], + }, + ], + }, + plugins: [ + ...(skipDLLs + ? [] + : [ + new webpack.DllReferencePlugin({ + context: webpackPaths.dllPath, + manifest: require(manifest), + sourceType: 'var', + }), + ]), + + new webpack.NoEmitOnErrorsPlugin(), + + /** + * Create global constants which can be configured at compile time. + * + * Useful for allowing different behaviour between development builds and + * release builds + * + * NODE_ENV should be production so that modules do not perform certain + * development checks + * + * By default, use 'development' as NODE_ENV. This can be overriden with + * 'staging', for example, by changing the ENV variables in the npm scripts + */ + new webpack.EnvironmentPlugin({ + NODE_ENV: 'development', + }), + + new webpack.LoaderOptionsPlugin({ + debug: true, + }), + + new ReactRefreshWebpackPlugin(), + + new HtmlWebpackPlugin({ + filename: path.join('index.html'), + template: path.join(webpackPaths.srcRendererPath, 'index.ejs'), + minify: { + collapseWhitespace: true, + removeAttributeQuotes: true, + removeComments: true, + }, + isBrowser: false, + env: process.env.NODE_ENV, + isDevelopment: process.env.NODE_ENV !== 'production', + nodeModules: webpackPaths.appNodeModulesPath, + }), + ], + + node: { + __dirname: false, + __filename: false, + }, + + devServer: { + port, + compress: true, + hot: true, + headers: { 'Access-Control-Allow-Origin': '*' }, + static: { + publicPath: '/', + }, + historyApiFallback: { + verbose: true, + }, + setupMiddlewares(middlewares) { + console.log('Starting preload.js builder...'); + const preloadProcess = spawn('npm', ['run', 'start:preload'], { + shell: true, + stdio: 'inherit', + }) + .on('close', (code: number) => process.exit(code!)) + .on('error', (spawnError) => console.error(spawnError)); + + console.log('Starting Main Process...'); + let args = ['run', 'start:main']; + if (process.env.MAIN_ARGS) { + args = args.concat( + ['--', ...process.env.MAIN_ARGS.matchAll(/"[^"]+"|[^\s"]+/g)].flat(), + ); + } + spawn('npm', args, { + shell: true, + stdio: 'inherit', + }) + .on('close', (code: number) => { + preloadProcess.kill(); + process.exit(code!); + }) + .on('error', (spawnError) => console.error(spawnError)); + return middlewares; + }, + }, +}; + +export default merge(baseConfig, configuration); diff --git a/.erb/configs/webpack.config.renderer.prod.ts b/.erb/configs/webpack.config.renderer.prod.ts new file mode 100644 index 0000000..3cebf30 --- /dev/null +++ b/.erb/configs/webpack.config.renderer.prod.ts @@ -0,0 +1,141 @@ +/** + * Build config for electron renderer process + */ + +import path from 'path'; +import webpack from 'webpack'; +import HtmlWebpackPlugin from 'html-webpack-plugin'; +import MiniCssExtractPlugin from 'mini-css-extract-plugin'; +import { BundleAnalyzerPlugin } from 'webpack-bundle-analyzer'; +import CssMinimizerPlugin from 'css-minimizer-webpack-plugin'; +import { merge } from 'webpack-merge'; +import TerserPlugin from 'terser-webpack-plugin'; +import baseConfig from './webpack.config.base'; +import webpackPaths from './webpack.paths'; +import checkNodeEnv from '../scripts/check-node-env'; +import deleteSourceMaps from '../scripts/delete-source-maps'; + +checkNodeEnv('production'); +deleteSourceMaps(); + +const configuration: webpack.Configuration = { + devtool: 'source-map', + + mode: 'production', + + target: ['web', 'electron-renderer'], + + entry: [path.join(webpackPaths.srcRendererPath, 'index.tsx')], + + output: { + path: webpackPaths.distRendererPath, + publicPath: './', + filename: 'renderer.js', + library: { + type: 'umd', + }, + }, + + module: { + rules: [ + { + test: /\.s?(a|c)ss$/, + use: [ + MiniCssExtractPlugin.loader, + { + loader: 'css-loader', + options: { + modules: true, + sourceMap: true, + importLoaders: 1, + }, + }, + 'sass-loader', + ], + include: /\.module\.s?(c|a)ss$/, + }, + { + test: /\.s?(a|c)ss$/, + use: [MiniCssExtractPlugin.loader, 'css-loader', 'sass-loader'], + exclude: /\.module\.s?(c|a)ss$/, + }, + // Fonts + { + test: /\.(woff|woff2|eot|ttf|otf)$/i, + type: 'asset/resource', + }, + // Images + { + test: /\.(png|jpg|jpeg|gif)$/i, + type: 'asset/resource', + }, + // SVG + { + test: /\.svg$/, + use: [ + { + loader: '@svgr/webpack', + options: { + prettier: false, + svgo: false, + svgoConfig: { + plugins: [{ removeViewBox: false }], + }, + titleProp: true, + ref: true, + }, + }, + 'file-loader', + ], + }, + ], + }, + + optimization: { + minimize: true, + minimizer: [new TerserPlugin(), new CssMinimizerPlugin()], + }, + + plugins: [ + /** + * Create global constants which can be configured at compile time. + * + * Useful for allowing different behaviour between development builds and + * release builds + * + * NODE_ENV should be production so that modules do not perform certain + * development checks + */ + new webpack.EnvironmentPlugin({ + NODE_ENV: 'production', + DEBUG_PROD: false, + }), + + new MiniCssExtractPlugin({ + filename: 'style.css', + }), + + new BundleAnalyzerPlugin({ + analyzerMode: process.env.ANALYZE === 'true' ? 'server' : 'disabled', + analyzerPort: 8889, + }), + + new HtmlWebpackPlugin({ + filename: 'index.html', + template: path.join(webpackPaths.srcRendererPath, 'index.ejs'), + minify: { + collapseWhitespace: true, + removeAttributeQuotes: true, + removeComments: true, + }, + isBrowser: false, + isDevelopment: false, + }), + + new webpack.DefinePlugin({ + 'process.type': '"renderer"', + }), + ], +}; + +export default merge(baseConfig, configuration); diff --git a/.erb/configs/webpack.paths.ts b/.erb/configs/webpack.paths.ts new file mode 100644 index 0000000..e5ba573 --- /dev/null +++ b/.erb/configs/webpack.paths.ts @@ -0,0 +1,38 @@ +const path = require('path'); + +const rootPath = path.join(__dirname, '../..'); + +const dllPath = path.join(__dirname, '../dll'); + +const srcPath = path.join(rootPath, 'src'); +const srcMainPath = path.join(srcPath, 'main'); +const srcRendererPath = path.join(srcPath, 'renderer'); + +const releasePath = path.join(rootPath, 'release'); +const appPath = path.join(releasePath, 'app'); +const appPackagePath = path.join(appPath, 'package.json'); +const appNodeModulesPath = path.join(appPath, 'node_modules'); +const srcNodeModulesPath = path.join(srcPath, 'node_modules'); + +const distPath = path.join(appPath, 'dist'); +const distMainPath = path.join(distPath, 'main'); +const distRendererPath = path.join(distPath, 'renderer'); + +const buildPath = path.join(releasePath, 'build'); + +export default { + rootPath, + dllPath, + srcPath, + srcMainPath, + srcRendererPath, + releasePath, + appPath, + appPackagePath, + appNodeModulesPath, + srcNodeModulesPath, + distPath, + distMainPath, + distRendererPath, + buildPath, +}; diff --git a/.erb/img/erb-banner.svg b/.erb/img/erb-banner.svg new file mode 100644 index 0000000..f7ce670 --- /dev/null +++ b/.erb/img/erb-banner.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.erb/img/erb-logo.png b/.erb/img/erb-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..97a5661aeb0b6f20fde68d9e6dd1e899d8fda63f GIT binary patch literal 28783 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 gKKK7D8}FFy{Cfhg7$ + + + + + diff --git a/.erb/mocks/fileMock.js b/.erb/mocks/fileMock.js new file mode 100644 index 0000000..602eb23 --- /dev/null +++ b/.erb/mocks/fileMock.js @@ -0,0 +1 @@ +export default 'test-file-stub'; diff --git a/.erb/scripts/.eslintrc b/.erb/scripts/.eslintrc new file mode 100644 index 0000000..35dc618 --- /dev/null +++ b/.erb/scripts/.eslintrc @@ -0,0 +1,8 @@ +{ + "rules": { + "no-console": "off", + "global-require": "off", + "import/no-dynamic-require": "off", + "import/no-extraneous-dependencies": "off" + } +} diff --git a/.erb/scripts/check-build-exists.ts b/.erb/scripts/check-build-exists.ts new file mode 100644 index 0000000..6499295 --- /dev/null +++ b/.erb/scripts/check-build-exists.ts @@ -0,0 +1,24 @@ +// Check if the renderer and main bundles are built +import path from 'path'; +import chalk from 'chalk'; +import fs from 'fs'; +import webpackPaths from '../configs/webpack.paths'; + +const mainPath = path.join(webpackPaths.distMainPath, 'main.js'); +const rendererPath = path.join(webpackPaths.distRendererPath, 'renderer.js'); + +if (!fs.existsSync(mainPath)) { + throw new Error( + chalk.whiteBright.bgRed.bold( + 'The main process is not built yet. Build it by running "npm run build:main"', + ), + ); +} + +if (!fs.existsSync(rendererPath)) { + throw new Error( + chalk.whiteBright.bgRed.bold( + 'The renderer process is not built yet. Build it by running "npm run build:renderer"', + ), + ); +} diff --git a/.erb/scripts/check-native-dep.js b/.erb/scripts/check-native-dep.js new file mode 100644 index 0000000..6286981 --- /dev/null +++ b/.erb/scripts/check-native-dep.js @@ -0,0 +1,54 @@ +import fs from 'fs'; +import chalk from 'chalk'; +import { execSync } from 'child_process'; +import { dependencies } from '../../package.json'; + +if (dependencies) { + const dependenciesKeys = Object.keys(dependencies); + const nativeDeps = fs + .readdirSync('node_modules') + .filter((folder) => fs.existsSync(`node_modules/${folder}/binding.gyp`)); + if (nativeDeps.length === 0) { + process.exit(0); + } + try { + // Find the reason for why the dependency is installed. If it is installed + // because of a devDependency then that is okay. Warn when it is installed + // because of a dependency + const { dependencies: dependenciesObject } = JSON.parse( + execSync(`npm ls ${nativeDeps.join(' ')} --json`).toString(), + ); + const rootDependencies = Object.keys(dependenciesObject); + const filteredRootDependencies = rootDependencies.filter((rootDependency) => + dependenciesKeys.includes(rootDependency), + ); + if (filteredRootDependencies.length > 0) { + const plural = filteredRootDependencies.length > 1; + console.log(` + ${chalk.whiteBright.bgYellow.bold( + 'Webpack does not work with native dependencies.', + )} +${chalk.bold(filteredRootDependencies.join(', '))} ${ + plural ? 'are native dependencies' : 'is a native dependency' + } and should be installed inside of the "./release/app" folder. + First, uninstall the packages from "./package.json": +${chalk.whiteBright.bgGreen.bold('npm uninstall your-package')} + ${chalk.bold( + 'Then, instead of installing the package to the root "./package.json":', + )} +${chalk.whiteBright.bgRed.bold('npm install your-package')} + ${chalk.bold('Install the package to "./release/app/package.json"')} +${chalk.whiteBright.bgGreen.bold( + 'cd ./release/app && npm install your-package', +)} + Read more about native dependencies at: +${chalk.bold( + 'https://electron-react-boilerplate.js.org/docs/adding-dependencies/#module-structure', +)} + `); + process.exit(1); + } + } catch (e) { + console.log('Native dependencies could not be checked'); + } +} diff --git a/.erb/scripts/check-node-env.js b/.erb/scripts/check-node-env.js new file mode 100644 index 0000000..6bf674b --- /dev/null +++ b/.erb/scripts/check-node-env.js @@ -0,0 +1,16 @@ +import chalk from 'chalk'; + +export default function checkNodeEnv(expectedEnv) { + if (!expectedEnv) { + throw new Error('"expectedEnv" not set'); + } + + if (process.env.NODE_ENV !== expectedEnv) { + console.log( + chalk.whiteBright.bgRed.bold( + `"process.env.NODE_ENV" must be "${expectedEnv}" to use this webpack config`, + ), + ); + process.exit(2); + } +} diff --git a/.erb/scripts/check-port-in-use.js b/.erb/scripts/check-port-in-use.js new file mode 100644 index 0000000..398cbc1 --- /dev/null +++ b/.erb/scripts/check-port-in-use.js @@ -0,0 +1,16 @@ +import chalk from 'chalk'; +import detectPort from 'detect-port'; + +const port = process.env.PORT || '1212'; + +detectPort(port, (_err, availablePort) => { + if (port !== String(availablePort)) { + throw new Error( + chalk.whiteBright.bgRed.bold( + `Port "${port}" on "localhost" is already in use. Please use another port. ex: PORT=4343 npm start`, + ), + ); + } else { + process.exit(0); + } +}); diff --git a/.erb/scripts/clean.js b/.erb/scripts/clean.js new file mode 100644 index 0000000..2c7b3ae --- /dev/null +++ b/.erb/scripts/clean.js @@ -0,0 +1,13 @@ +import { rimrafSync } from 'rimraf'; +import fs from 'fs'; +import webpackPaths from '../configs/webpack.paths'; + +const foldersToRemove = [ + webpackPaths.distPath, + webpackPaths.buildPath, + webpackPaths.dllPath, +]; + +foldersToRemove.forEach((folder) => { + if (fs.existsSync(folder)) rimrafSync(folder); +}); diff --git a/.erb/scripts/delete-source-maps.js b/.erb/scripts/delete-source-maps.js new file mode 100644 index 0000000..d14519c --- /dev/null +++ b/.erb/scripts/delete-source-maps.js @@ -0,0 +1,15 @@ +import fs from 'fs'; +import path from 'path'; +import { rimrafSync } from 'rimraf'; +import webpackPaths from '../configs/webpack.paths'; + +export default function deleteSourceMaps() { + if (fs.existsSync(webpackPaths.distMainPath)) + rimrafSync(path.join(webpackPaths.distMainPath, '*.js.map'), { + glob: true, + }); + if (fs.existsSync(webpackPaths.distRendererPath)) + rimrafSync(path.join(webpackPaths.distRendererPath, '*.js.map'), { + glob: true, + }); +} diff --git a/.erb/scripts/electron-rebuild.js b/.erb/scripts/electron-rebuild.js new file mode 100644 index 0000000..0bea327 --- /dev/null +++ b/.erb/scripts/electron-rebuild.js @@ -0,0 +1,20 @@ +import { execSync } from 'child_process'; +import fs from 'fs'; +import { dependencies } from '../../release/app/package.json'; +import webpackPaths from '../configs/webpack.paths'; + +if ( + Object.keys(dependencies || {}).length > 0 && + fs.existsSync(webpackPaths.appNodeModulesPath) +) { + const electronRebuildCmd = + '../../node_modules/.bin/electron-rebuild --force --types prod,dev,optional --module-dir .'; + const cmd = + process.platform === 'win32' + ? electronRebuildCmd.replace(/\//g, '\\') + : electronRebuildCmd; + execSync(cmd, { + cwd: webpackPaths.appPath, + stdio: 'inherit', + }); +} diff --git a/.erb/scripts/link-modules.ts b/.erb/scripts/link-modules.ts new file mode 100644 index 0000000..6cc31e6 --- /dev/null +++ b/.erb/scripts/link-modules.ts @@ -0,0 +1,9 @@ +import fs from 'fs'; +import webpackPaths from '../configs/webpack.paths'; + +const { srcNodeModulesPath } = webpackPaths; +const { appNodeModulesPath } = webpackPaths; + +if (!fs.existsSync(srcNodeModulesPath) && fs.existsSync(appNodeModulesPath)) { + fs.symlinkSync(appNodeModulesPath, srcNodeModulesPath, 'junction'); +} diff --git a/.erb/scripts/notarize.js b/.erb/scripts/notarize.js new file mode 100644 index 0000000..097ff35 --- /dev/null +++ b/.erb/scripts/notarize.js @@ -0,0 +1,32 @@ +const { notarize } = require('@electron/notarize'); +const { build } = require('../../package.json'); + +exports.default = async function notarizeMacos(context) { + const { electronPlatformName, appOutDir } = context; + if (electronPlatformName !== 'darwin') { + return; + } + + if (process.env.CI !== 'true') { + console.warn('Skipping notarizing step. Packaging is not running in CI'); + return; + } + + if ( + !('APPLE_ID' in process.env && 'APPLE_APP_SPECIFIC_PASSWORD' in process.env) + ) { + console.warn( + 'Skipping notarizing step. APPLE_ID and APPLE_APP_SPECIFIC_PASSWORD env variables must be set', + ); + return; + } + + const appName = context.packager.appInfo.productFilename; + + await notarize({ + appBundleId: build.appId, + appPath: `${appOutDir}/${appName}.app`, + appleId: process.env.APPLE_ID, + appleIdPassword: process.env.APPLE_APP_SPECIFIC_PASSWORD, + }); +}; diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..7cad535 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,33 @@ +# Logs +logs +*.log + +# Runtime data +pids +*.pid +*.seed + +# Coverage directory used by tools like istanbul +coverage +.eslintcache + +# Dependency directory +# https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git +node_modules + +# OSX +.DS_Store + +release/app/dist +release/build +.erb/dll + +.idea +npm-debug.log.* +*.css.d.ts +*.sass.d.ts +*.scss.d.ts + +# eslint ignores hidden directories by default: +# https://github.com/eslint/eslint/issues/8429 +!.erb diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..cf3212c --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,47 @@ +module.exports = { + extends: 'erb', + plugins: ['@typescript-eslint'], + rules: { + // A temporary hack related to IDE not resolving correct package.json + 'import/no-extraneous-dependencies': 'off', + 'react/react-in-jsx-scope': 'off', + 'react/jsx-filename-extension': 'off', + 'import/extensions': 'off', + 'import/no-unresolved': 'off', + 'import/no-import-module-exports': 'off', + 'no-shadow': 'off', + '@typescript-eslint/no-shadow': 'error', + 'no-unused-vars': 'off', + 'react/function-component-definition': 'off', + 'react/jsx-curly-brace-presence': 'off', + 'react/require-default-props': 'off', + 'react/jsx-props-no-spreading': 'off', + 'react/destructuring-assignment': 'off', + 'import/no-named-as-default': 'off', + 'prefer-promise-reject-errors': 'off', + 'react/jsx-no-useless-fragment': 'off', + 'no-promise-executor-return': 'off', + 'import/prefer-default-export': 'off', + 'promise/no-promise-in-callback': 'off', + 'react/no-array-index-key': 'off', + 'class-methods-use-this': 'off', + '@typescript-eslint/no-unused-vars': 'error', + }, + parserOptions: { + ecmaVersion: 2022, + sourceType: 'module', + }, + settings: { + 'import/resolver': { + // See https://github.com/benmosher/eslint-plugin-import/issues/1396#issuecomment-575727774 for line below + node: {}, + webpack: { + config: require.resolve('./.erb/configs/webpack.config.eslint.ts'), + }, + typescript: {}, + }, + 'import/parsers': { + '@typescript-eslint/parser': ['.ts', '.tsx'], + }, + }, +}; diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..20570f2 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,12 @@ +* text eol=lf +*.exe binary +*.png binary +*.jpg binary +*.jpeg binary +*.ico binary +*.icns binary +*.eot binary +*.otf binary +*.ttf binary +*.woff binary +*.woff2 binary diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b0e5a1b --- /dev/null +++ b/.gitignore @@ -0,0 +1,34 @@ +# Logs +logs +*.log + +# Runtime data +pids +*.pid +*.seed + +# Coverage directory used by tools like istanbul +coverage +.eslintcache + +# Dependency directory +# https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git +node_modules + +# OSX +.DS_Store + +release/app/dist +release/build +.erb/dll + +.idea +npm-debug.log.* +*.css.d.ts +*.sass.d.ts +*.scss.d.ts +assets/backend/* +src/renderer/services/analytics/index.ts + +.env +.vscode diff --git a/BUILD.md b/BUILD.md new file mode 100644 index 0000000..93a2cc0 --- /dev/null +++ b/BUILD.md @@ -0,0 +1,49 @@ + +## 本地调试说明 +首先下载 https://wwp.lanzouo.com/ipTev1qulx1i 里面的文件并解压到你的项目目录 assets/backend 目录下 + +确定本地 Nodejs 环境没有问题后 + +然后运行以下命令,安装依赖 + +```bash +npm i -g pnpm +pnpm i +``` + +就可以运行以下命令,启动项目 + +下面是我的 vscode 配置文件,可以参考一下 + +```JSON +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Electron: Main", + "type": "node", + "request": "launch", + "protocol": "inspector", + "runtimeExecutable": "npm", + "runtimeArgs": ["run", "start"], + "env": { + "MAIN_ARGS": "--inspect=5858 --remote-debugging-port=9223" + } + }, + { + "name": "Electron: Renderer", + "type": "chrome", + "request": "attach", + "port": 9223, + "webRoot": "${workspaceFolder}", + "timeout": 15000 + } + ], + "compounds": [ + { + "name": "Electron: All", + "configurations": ["Electron: Main", "Electron: Renderer"] + } + ] +} +``` \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..a3437bd --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,7 @@ +# 1.0.0 +- [x] 多平台支持:当前支持哔哩哔哩、抖音企业号、抖音、抖店、微博聊天、小红书专业号运营、小红书、知乎等平台,未来将不断扩展支持更多社交媒体平台。 +- [x] 预设回复内容:允许用户设置自定义回复,以应对常见问题,提高回复效率。 +- [x] 接入ChatGPT接口,根据客户的咨询内容智能生成回复,适用于处理复杂或者个性化的客户咨询。 +- [x] 发送图片和二进制文件:支持发送图片等二进制文件,满足多样化的客户服务需求。 +- [x] 知识库: 通过上传知识库文件自定义专属机器人,可作为数字分身、智能客服、私域助手使用,基于 [懒人百宝箱](https://chat.lazaytools.top/) 实现 +- [x] 各个平台独立的插件系统,支持插件访问操作系统和互联网等外部资源,支持基于自有知识库定制企业 AI 应用。 \ No newline at end of file diff --git a/README.md b/README.md index dd3019a..54c40c3 100644 --- a/README.md +++ b/README.md @@ -8,9 +8,12 @@ - [x] 接入ChatGPT接口,根据客户的咨询内容智能生成回复,适用于处理复杂或者个性化的客户咨询。 - [x] 发送图片和二进制文件:支持发送图片等二进制文件,满足多样化的客户服务需求。 - [x] 知识库: 通过上传知识库文件自定义专属机器人,可作为数字分身、智能客服、私域助手使用,基于 [懒人百宝箱](https://chat.lazaytools.top/) 实现 -- [X] 各个平台独立的插件系统,支持插件访问操作系统和互联网等外部资源,支持基于自有知识库定制企业 AI 应用。 +- [x] 各个平台独立的插件系统,支持插件访问操作系统和互联网等外部资源,支持基于自有知识库定制企业 AI 应用。 +## 演示视频 +[观看视频](https://www.bilibili.com/video/BV1qz421Q73S) + ## 开源社区 如果有问题需要反馈,或者对项目有什么特性希望支持的,可以添加小助手微信加入开源项目交流群: @@ -27,7 +30,8 @@ ## 下载地址 -[点击下载]() +点击下载 + ## 使用说明 第一次启动时可能会有点慢,因为它需要先下载驱动文件和初始化回复数据库,所以请耐心等待。 diff --git a/assets/assets.d.ts b/assets/assets.d.ts new file mode 100644 index 0000000..20b87cb --- /dev/null +++ b/assets/assets.d.ts @@ -0,0 +1,40 @@ +type Styles = Record; + +declare module '*.svg' { + import React = require('react'); + + export const ReactComponent: React.FC>; + + const content: string; + export default content; +} + +declare module '*.png' { + const content: string; + export default content; +} + +declare module '*.jpg' { + const content: string; + export default content; +} + +declare module '*.scss' { + const content: Styles; + export default content; +} + +declare module '*.sass' { + const content: Styles; + export default content; +} + +declare module '*.css' { + const content: Styles; + export default content; +} + +declare module '*.gif' { + const content: Styles; + export default content; +} diff --git a/assets/base/default-platform-icon.png b/assets/base/default-platform-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..dd0c496727c90419e2ef85cd7b7be114ddfb9b6a GIT binary patch literal 3510 zcmbVP`#;l<_kV3>o4GV=sEA=CBXjG$a_Kdr<`!?48Aj4be8|eRQbV~U%v>T}T$0S( zO^jk9w|dJxMWj#>?{p!eukRo5`Q`J&Ip=X6kLTlD9_Mi$&vTL;j~|mp?Lh$mAZ<;x zblSGv|1U`RwyvO8-rY8k^G?SsfXaWAK5c_Stu4teQQlwfc;*a~q!OOmupce@CS()& zunQVugx#;K-oj}HL)uD2Ro5E7ap79k`Sq9f8a28LDFcU z2mt-UhAC44HfV<1cJ{JiQ5d%PyB_J&_G%EopvUr5uBilozB>^*ipK!BOgp25o=gDv zuK=-q7re&Y+|O?;Z?x*wEkE&Vy<*=wwKdrg{O6)i|9mitjqHzsi|+N+at3z--zisY zVLdVLnHI~`9v3NCK_Dw_oWXR!XznP4c0frj)Wcde_^p8$I*ceUO_fZDUC(Mjd9 zKrTVTY)zTXK=!Mm-9B?XZ>GB;`nSx0reer~klSooIdmd6o0&MflTq`{9gfRm7zBM) zC1O_-j#hK5$P-*^BwMGiwsK*ExqroI@#>A=yH=!gg5TWrmv0{?uYVXVa#=1#_#Kvn z5^cuUW*g6t^WbQ<2>L#1Fs#51LcOlHP`PL!D$8rMP7cU=q!!pNW-oz-(m!RmOelYlkty-K5VAbU}Ir`Fk`tl30>>E))4 zD5Q(2C}NPO>?g!(D+%t>l74dsU503S=20h7BPEdxZBM-E$JC&keHysXvWd2gE{y|0 z%@Yvl&ECCA(TS5yj7k8aRQc|ei9^nZJ2x{L0eq)oR*401$*N9yHS=I@)R&W5a}Y9d ziJVH036pKfhvP+G^=yBWdg5WvDZcU?mjG&z(ppCj`wZ0%3MKjOWEmW;a}~{PhaD1S zRAuLuzcUa=`lg+EN0dz74RU(#D5t4#=r#~fD9kF+r$Y&^35ZaKx=9)AWVy(25I{^v z;UGU=>$-xD*^(p_9?Z9R7+hNcM-DcL^I|DfC{Hr^78|F907@{9gb)`9jCHKcd%DpM zs{OS)6hudYpA_*R;R|KzDG7`2*elJ8b#|S}7+~X;*hPu##p2ppn3XIk3Y4N;y9a{g zBToHf*<`?kh(#}ms2q7+b2ma@T@cjvR+01P^|Q1()mU4JFzHv#knN!ae?MBK(T2c$ z)Qt_H-QS0+R(?DJ9h=g4`QmyQ1XhDEaw9{%_*6a6#|&%4T+wW%%d$X6r$HTk1F^f$@U4wLNF zm!>UuwA|G~tSlk1KhP&XJgwEaho8da`>2+$bit~V%nj9~w_CU;%Od_G}|2+K12xIG0*lHL-xFpxaa6AoNFy+S6DhG{XAwF zBcA8?&0(k`RL*0)1)$yEFLP21W4hI7mQoY^#<{Hh&aiRQBW0tXxZS!x8TA0hcq>5o zt<+>`Bg2Gq)8e_=0kA^;qBKvOlk^qg$zjZX3-t#6N{JZ?g5W)V9GGsT1hFT7xdO@9 zf;#b!A}ICyK=i?sy$|bjs6b}^f|O?z=KB2X9>@%uW-O+Fe(jVMSgm$xqB1NUdzqcD zM#$_G$J@ad4rTXoMbz2)mozr%YPdRc|FME|ALjxcBzsMGJNiR%<{LA!ufBs~G~zo~ zY>(}~FNnB}_{_JIQb6}da#b!MR(Ueyd3H5d-%zYwSUgE-C?mOlf*ktc1>W&t(vP)EPb|(J&*xWm z%{03NTlo5T?N1i<$Y9HMko%W(a7_b?lfQ4d|5BqFT^Y1Wwn*c2GNCK8s>N~4Ex0!Zw|Sp~H2o3K)(>6M`faq|JcuXBqtUQV2idHn@Ki}#* zxgTghU>yjtBq%~ahVR$9Ar!m%{ir-xZ{QBV*uysL3PW9XfL|^8{unQ@=DnN_k^t_j z5dcNmJy6^;?2`v3dlqmLz+(w?r(AeMo2y|4sUaPPMahqUO@!h0u#n{+`Tb$)Z5 zEIdqC-eijdSQ2DJ@lJwUXQrb{T*D%M4@gnZ)fv4#IKn(A{joR8%Q3VnCufaIgmZt_n-K0TZDU4MgnTxiarb3J4`13qSr0s63`o*u;8{K@#7jjlc z=sOSbVBU`(0Lg_4^GUGzBK@RT;|#-WKuZkNhdnd*7%;%=D-b$WZ;95;!f}q~M@}1? z2fsP`XJ$w%RtnYY?Qub+kRJNBGY(JHX)Q|iY4SUi<5xJmP^=X%=+6kte5ov#=MtT_SZt^eFnx?M_$Rdp|ak52UDz>+!<s<`N4 zYB|6q$3?+>7}h>f6NNdQhixoaC#K4+MXM2bqUjP*3^^lf;t^24Pn(r!3~DJyZ%mZ! zIJ!?_axkOqiMak9zs0KGT9!EA!;e%nzA6&i3@w)M&A6p&)19%vr7F| z>x+^(&t`r)0UD^_d7l_V`rX#+3e82&#gV}?#}xH)-~1ZPN(sj_KIL{Gu1yyR(qhJJ zoz)LYA}4g6FASC&YEEi9FW}s`4&%CXE`j`O<1GWctZ6YM&s-)twQbe^De5{fP0Z^Q z?xV*q7a~gq@o=W^wU#jc0iA9Uw?L;PEaJ=FQg2UJ0>+KaEC_fKA*4McZEZBu?H;hI zG`lo#-JxFgs09f~3GVI3L|wztu6iNSk6J>kK*gj*1{&+`6$v(+UGFSCGhn;5UO znp;;+2&P|`pd_jCZ9@$f^+Bk&8Bry@wNr^Tdz$DLjr6YQXSb61a|()~) z{QR~r+Al-rR9#|hKY3`xH?t4fLF# z0OwR6!%*&-N1SfGYW5p1T=QiqWXSt1u?_%bS)U=hY<7G8Sp;jb$cH6<4*2Z^ zH&ieF>Z_6Re*}MYMb?sFht)|+dpW>Uk!Xus%OiYuAwvO6^2dO|bQq9yugSte4iA9X kt7)2>+waZ)3i$WP>c58AGfvK=?MDo-wmNQEY2g$1e;4#1Jpcdz literal 0 HcmV?d00001 diff --git a/assets/fonts/庞门正道标题体.ttf b/assets/fonts/庞门正道标题体.ttf new file mode 100644 index 0000000000000000000000000000000000000000..c770d3f1ec2c3db55ddac716d78f573d3e4a917d GIT binary patch literal 2292 zcmeHJ|8G-O6hHU9wy*orZm->I8QHqmJ?I;3l&x>Ck0=iIO_~KZ#^zw%-1h8BTh{fB zZi_?1R}=Qbq7oxX6O{xs1QBA?=nudTW(pF1AUZWBhD0<`&?OiXh(G9B&+8t*<-lL7&NLO298@LfIY17|CKcA?}P&XLHtIx&Ck!$Sb180T}bdXWbgNpnOckI=vM46bhl6P+Q)z>H_POYWki zX_+Ek4_UMz7NChfaE&g-&;1eZZ*PUoofl#@dLTCmFVll?6-=P(0l7uJfrQUJa=KOpYHvnb3|64P)Olgxl)4bJ#8g;VT1*BAO;`AeSgUV~J zPFYd}MPi(IpIX8yvcxf~ag7sXT$W_Ck_A~pvBU{D%Ph5olQ}66d;lau|Lrg>H>wjyT6 zLw=zL=uQoTdF2j zvA4dySG-=~sa~8bvd+xS&EX?30gE|3iZ!qvLePcx2ja!^VpiRpPqZ*HCK7Wix%7+* z9A1ybbvso{l>BuBQ4h=mff7{ke!7;Mlk{vmk)=d3T!+zg4|jA7xka{0WM)b|&hmmq z@0^$Xs%P@NW7y{S`Y*5FR^}>vzOvLzQ-qATrXBl69Cm($TvCJ4x`GnxG%HE$w6&zb zx2yiiwdGCXA7dI7c|}j?PN&Tq@q3r9yQ-W8ttN^#9iC8CYHuXD&F08nPA2s?uXh3p zVC9jMso|21_n?Ztt&6|;VnosDj~8FPff31KL>7?MJIwMxJELD^fCUGA^x>WYlX3es(0 z3wTJvzzhtM*_y~2e!H5AZHuPD@n|a6rfPg>dRIc#S~NaT-w+&{KQVv&vom9n`C~nC zWFU`LjZG)j^rMy@CF_f(ClgwVm;4QZhxY1CtE16zH9f{_yZLaat8+_#H_x{x zqmik!mP$nUR?T0>_r&ppAvFOt5P>zoW9U>!K@7G*6loaZc^ZQ@lxw&if@#7nY_4qUQqK%4W5QXvl?qg`F!EXG9^N+j}wm?60BhN!So-m5%pF$gbj|5^KS`qv4 z?*gB{)pC47=qsU@s!_eU{iyQaVb1?6pa@M&#LP^m5{>OG%{rA^ngcowHnc5MrM~SS Dq4b@p literal 0 HcmV?d00001 diff --git a/assets/icon.ico b/assets/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..33846d93b3b6f8ab486a5f1cc16d5321533f32f8 GIT binary patch literal 190521 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 aMWlWIESq=wMil7U2b?oBJ5^!e9Qi+8Bt{DW literal 0 HcmV?d00001 diff --git a/assets/icon.png b/assets/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..45aaa5d4d9989b716f8f6eff89fb5720e0fff41b GIT binary patch literal 12313 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 literal 0 HcmV?d00001 diff --git a/assets/icons/128x128.png b/assets/icons/128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..df425142edac7361dbcd309a04f6bc84043a68f5 GIT binary patch literal 16625 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 literal 0 HcmV?d00001 diff --git a/assets/icons/48x48.png b/assets/icons/48x48.png new file mode 100644 index 0000000000000000000000000000000000000000..34b54279d79b6b23d5a2cdac6cbbff3900fa7542 GIT binary patch literal 3550 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 literal 0 HcmV?d00001 diff --git a/assets/icons/64x64.png b/assets/icons/64x64.png new file mode 100644 index 0000000000000000000000000000000000000000..65900f9a8081b847fd9d09f0abfab53b7819dfe3 GIT binary patch literal 5650 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 literal 0 HcmV?d00001 diff --git a/assets/icons/96x96.png b/assets/icons/96x96.png new file mode 100644 index 0000000000000000000000000000000000000000..9ca6ba87c0e0b424d3c9961fcc5cc80fcbadb41a GIT binary patch literal 9318 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/.erb/mocks/fileMock.js", + "\\.(css|less|sass|scss)$": "identity-obj-proxy" + }, + "setupFiles": [ + "./.erb/scripts/check-build-exists.ts" + ], + "testEnvironment": "jsdom", + "testEnvironmentOptions": { + "url": "http://localhost/" + }, + "testPathIgnorePatterns": [ + "release/app/dist", + ".erb/dll" + ], + "transform": { + "\\.(ts|tsx|js|jsx)$": "ts-jest" + } + }, + "dependencies": { + "@agconnect/api": "^1.3.2", + "@agconnect/instance": "^1.3.2", + "@chakra-ui/anatomy": "^2.2.2", + "@chakra-ui/icons": "^2.1.1", + "@chakra-ui/react": "^2.8.2", + "@emotion/react": "^11.11.3", + "@emotion/styled": "^11.11.0", + "@hw-hmscore/analytics-web": "6.9.9-301", + "@tanstack/react-query": "4.36.1", + "axios": "^1.6.7", + "electron-debug": "^3.2.0", + "electron-log": "^4.4.8", + "electron-store": "^8.1.0", + "electron-updater": "^6.1.4", + "framer-motion": "^11.0.3", + "immer": "^10.0.3", + "net": "^1.0.2", + "node-cron": "^3.0.3", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-hook-form": "^7.50.1", + "react-icons": "^5.0.1", + "react-markdown": "^9.0.1", + "react-router-dom": "^6.16.0", + "react-spinners": "^0.13.8", + "react-use-websocket": "^4.8.1", + "remark-gfm": "^4.0.0", + "source-map-support": "^0.5.21", + "zustand": "^4.5.0" + }, + "devDependencies": { + "@electron/notarize": "^2.1.0", + "@electron/rebuild": "^3.3.0", + "@pmmmwh/react-refresh-webpack-plugin": "^0.5.11", + "@svgr/webpack": "^8.1.0", + "@teamsupercell/typings-for-css-modules-loader": "^2.5.2", + "@testing-library/jest-dom": "^6.1.3", + "@testing-library/react": "^14.0.0", + "@types/jest": "^29.5.5", + "@types/node": "20.6.2", + "@types/react": "^18.2.21", + "@types/react-dom": "^18.2.7", + "@types/react-test-renderer": "^18.0.1", + "@types/terser-webpack-plugin": "^5.0.4", + "@types/webpack-bundle-analyzer": "^4.6.0", + "@typescript-eslint/eslint-plugin": "^6.7.0", + "@typescript-eslint/parser": "^6.7.0", + "browserslist-config-erb": "^0.0.3", + "chalk": "^4.1.2", + "concurrently": "^8.2.1", + "core-js": "^3.32.2", + "cross-env": "^7.0.3", + "css-loader": "^6.8.1", + "css-minimizer-webpack-plugin": "^5.0.1", + "detect-port": "^1.5.1", + "dotenv": "^16.4.4", + "electron": "^26.2.1", + "electron-builder": "^24.6.4", + "electron-devtools-installer": "^3.2.0", + "electronmon": "^2.0.2", + "eslint": "^8.49.0", + "eslint-config-airbnb-base": "^15.0.0", + "eslint-config-erb": "^4.1.0-0", + "eslint-import-resolver-typescript": "^3.6.0", + "eslint-import-resolver-webpack": "^0.13.7", + "eslint-plugin-compat": "^4.2.0", + "eslint-plugin-import": "^2.28.1", + "eslint-plugin-jest": "^27.4.0", + "eslint-plugin-jsx-a11y": "^6.7.1", + "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-react": "^7.33.2", + "eslint-plugin-react-hooks": "^4.6.0", + "file-loader": "^6.2.0", + "html-webpack-plugin": "^5.5.3", + "identity-obj-proxy": "^3.0.0", + "jest": "^29.7.0", + "jest-environment-jsdom": "^29.7.0", + "mini-css-extract-plugin": "^2.7.6", + "prettier": "^3.0.3", + "prettier-eslint": "^16.3.0", + "react-refresh": "^0.14.0", + "react-test-renderer": "^18.2.0", + "rimraf": "^5.0.1", + "sass": "^1.67.0", + "sass-loader": "^13.3.2", + "style-loader": "^3.3.3", + "terser-webpack-plugin": "^5.3.9", + "ts-jest": "^29.1.1", + "ts-loader": "^9.4.4", + "ts-node": "^10.9.1", + "tsconfig-paths-webpack-plugin": "^4.1.0", + "typescript": "^5.2.2", + "url-loader": "^4.1.1", + "webpack": "^5.88.2", + "webpack-bundle-analyzer": "^4.10.1", + "webpack-cli": "^5.1.4", + "webpack-dev-server": "^4.15.1", + "webpack-merge": "^5.9.0" + }, + "devEngines": { + "node": ">=14.x", + "npm": ">=7.x" + }, + "electronmon": { + "patterns": [ + "!**/**", + "src/main/**" + ], + "logLevel": "quiet" + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..dd18410 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,13849 @@ +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +dependencies: + '@agconnect/api': + specifier: ^1.3.2 + version: 1.3.2 + '@agconnect/instance': + specifier: ^1.3.2 + version: 1.3.2 + '@chakra-ui/anatomy': + specifier: ^2.2.2 + version: 2.2.2 + '@chakra-ui/icons': + specifier: ^2.1.1 + version: 2.1.1(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/react': + specifier: ^2.8.2 + version: 2.8.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(@types/react@18.2.55)(framer-motion@11.0.3)(react-dom@18.2.0)(react@18.2.0) + '@emotion/react': + specifier: ^11.11.3 + version: 11.11.3(@types/react@18.2.55)(react@18.2.0) + '@emotion/styled': + specifier: ^11.11.0 + version: 11.11.0(@emotion/react@11.11.3)(@types/react@18.2.55)(react@18.2.0) + '@hw-hmscore/analytics-web': + specifier: 6.9.9-301 + version: 6.9.9-301 + '@tanstack/react-query': + specifier: 4.36.1 + version: 4.36.1(react-dom@18.2.0)(react@18.2.0) + axios: + specifier: ^1.6.7 + version: 1.6.7 + electron-debug: + specifier: ^3.2.0 + version: 3.2.0 + electron-log: + specifier: ^4.4.8 + version: 4.4.8 + electron-store: + specifier: ^8.1.0 + version: 8.1.0 + electron-updater: + specifier: ^6.1.4 + version: 6.1.7 + framer-motion: + specifier: ^11.0.3 + version: 11.0.3(react-dom@18.2.0)(react@18.2.0) + immer: + specifier: ^10.0.3 + version: 10.0.3 + net: + specifier: ^1.0.2 + version: 1.0.2 + node-cron: + specifier: ^3.0.3 + version: 3.0.3 + react: + specifier: ^18.2.0 + version: 18.2.0 + react-dom: + specifier: ^18.2.0 + version: 18.2.0(react@18.2.0) + react-hook-form: + specifier: ^7.50.1 + version: 7.50.1(react@18.2.0) + react-icons: + specifier: ^5.0.1 + version: 5.0.1(react@18.2.0) + react-markdown: + specifier: ^9.0.1 + version: 9.0.1(@types/react@18.2.55)(react@18.2.0) + react-router-dom: + specifier: ^6.16.0 + version: 6.22.0(react-dom@18.2.0)(react@18.2.0) + react-spinners: + specifier: ^0.13.8 + version: 0.13.8(react-dom@18.2.0)(react@18.2.0) + react-use-websocket: + specifier: ^4.8.1 + version: 4.8.1(react-dom@18.2.0)(react@18.2.0) + remark-gfm: + specifier: ^4.0.0 + version: 4.0.0 + source-map-support: + specifier: ^0.5.21 + version: 0.5.21 + zustand: + specifier: ^4.5.0 + version: 4.5.0(@types/react@18.2.55)(immer@10.0.3)(react@18.2.0) + +devDependencies: + '@electron/notarize': + specifier: ^2.1.0 + version: 2.2.1 + '@electron/rebuild': + specifier: ^3.3.0 + version: 3.6.0 + '@pmmmwh/react-refresh-webpack-plugin': + specifier: ^0.5.11 + version: 0.5.11(react-refresh@0.14.0)(webpack-dev-server@4.15.1)(webpack@5.90.1) + '@svgr/webpack': + specifier: ^8.1.0 + version: 8.1.0(typescript@5.3.3) + '@teamsupercell/typings-for-css-modules-loader': + specifier: ^2.5.2 + version: 2.5.2 + '@testing-library/jest-dom': + specifier: ^6.1.3 + version: 6.4.2(@types/jest@29.5.12)(jest@29.7.0) + '@testing-library/react': + specifier: ^14.0.0 + version: 14.2.1(react-dom@18.2.0)(react@18.2.0) + '@types/jest': + specifier: ^29.5.5 + version: 29.5.12 + '@types/node': + specifier: 20.6.2 + version: 20.6.2 + '@types/react': + specifier: ^18.2.21 + version: 18.2.55 + '@types/react-dom': + specifier: ^18.2.7 + version: 18.2.19 + '@types/react-test-renderer': + specifier: ^18.0.1 + version: 18.0.7 + '@types/terser-webpack-plugin': + specifier: ^5.0.4 + version: 5.2.0(webpack@5.90.1) + '@types/webpack-bundle-analyzer': + specifier: ^4.6.0 + version: 4.7.0(webpack-cli@5.1.4) + '@typescript-eslint/eslint-plugin': + specifier: ^6.7.0 + version: 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': + specifier: ^6.7.0 + version: 6.21.0(eslint@8.56.0)(typescript@5.3.3) + browserslist-config-erb: + specifier: ^0.0.3 + version: 0.0.3(electron@26.6.9) + chalk: + specifier: ^4.1.2 + version: 4.1.2 + concurrently: + specifier: ^8.2.1 + version: 8.2.2 + core-js: + specifier: ^3.32.2 + version: 3.35.1 + cross-env: + specifier: ^7.0.3 + version: 7.0.3 + css-loader: + specifier: ^6.8.1 + version: 6.10.0(webpack@5.90.1) + css-minimizer-webpack-plugin: + specifier: ^5.0.1 + version: 5.0.1(webpack@5.90.1) + detect-port: + specifier: ^1.5.1 + version: 1.5.1 + dotenv: + specifier: ^16.4.4 + version: 16.4.4 + electron: + specifier: ^26.2.1 + version: 26.6.9 + electron-builder: + specifier: ^24.6.4 + version: 24.9.1 + electron-devtools-installer: + specifier: ^3.2.0 + version: 3.2.0 + electronmon: + specifier: ^2.0.2 + version: 2.0.2 + eslint: + specifier: ^8.49.0 + version: 8.56.0 + eslint-config-airbnb-base: + specifier: ^15.0.0 + version: 15.0.0(eslint-plugin-import@2.29.1)(eslint@8.56.0) + eslint-config-erb: + specifier: ^4.1.0-0 + version: 4.1.0(eslint-import-resolver-typescript@3.6.1)(eslint-import-resolver-webpack@0.13.8)(eslint@8.56.0)(jest@29.7.0)(prettier@3.2.5)(react@18.2.0)(typescript@5.3.3) + eslint-import-resolver-typescript: + specifier: ^3.6.0 + version: 3.6.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-webpack@0.13.8)(eslint-plugin-import@2.29.1)(eslint@8.56.0) + eslint-import-resolver-webpack: + specifier: ^0.13.7 + version: 0.13.8(eslint-plugin-import@2.29.1)(webpack@5.90.1) + eslint-plugin-compat: + specifier: ^4.2.0 + version: 4.2.0(eslint@8.56.0) + eslint-plugin-import: + specifier: ^2.28.1 + version: 2.29.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-typescript@3.6.1)(eslint-import-resolver-webpack@0.13.8)(eslint@8.56.0) + eslint-plugin-jest: + specifier: ^27.4.0 + version: 27.6.3(@typescript-eslint/eslint-plugin@6.21.0)(eslint@8.56.0)(jest@29.7.0)(typescript@5.3.3) + eslint-plugin-jsx-a11y: + specifier: ^6.7.1 + version: 6.8.0(eslint@8.56.0) + eslint-plugin-promise: + specifier: ^6.1.1 + version: 6.1.1(eslint@8.56.0) + eslint-plugin-react: + specifier: ^7.33.2 + version: 7.33.2(eslint@8.56.0) + eslint-plugin-react-hooks: + specifier: ^4.6.0 + version: 4.6.0(eslint@8.56.0) + file-loader: + specifier: ^6.2.0 + version: 6.2.0(webpack@5.90.1) + html-webpack-plugin: + specifier: ^5.5.3 + version: 5.6.0(webpack@5.90.1) + identity-obj-proxy: + specifier: ^3.0.0 + version: 3.0.0 + jest: + specifier: ^29.7.0 + version: 29.7.0(@types/node@20.6.2)(ts-node@10.9.2) + jest-environment-jsdom: + specifier: ^29.7.0 + version: 29.7.0 + mini-css-extract-plugin: + specifier: ^2.7.6 + version: 2.8.0(webpack@5.90.1) + prettier: + specifier: ^3.0.3 + version: 3.2.5 + prettier-eslint: + specifier: ^16.3.0 + version: 16.3.0 + react-refresh: + specifier: ^0.14.0 + version: 0.14.0 + react-test-renderer: + specifier: ^18.2.0 + version: 18.2.0(react@18.2.0) + rimraf: + specifier: ^5.0.1 + version: 5.0.5 + sass: + specifier: ^1.67.0 + version: 1.70.0 + sass-loader: + specifier: ^13.3.2 + version: 13.3.3(sass@1.70.0)(webpack@5.90.1) + style-loader: + specifier: ^3.3.3 + version: 3.3.4(webpack@5.90.1) + terser-webpack-plugin: + specifier: ^5.3.9 + version: 5.3.10(webpack@5.90.1) + ts-jest: + specifier: ^29.1.1 + version: 29.1.2(@babel/core@7.23.9)(jest@29.7.0)(typescript@5.3.3) + ts-loader: + specifier: ^9.4.4 + version: 9.5.1(typescript@5.3.3)(webpack@5.90.1) + ts-node: + specifier: ^10.9.1 + version: 10.9.2(@types/node@20.6.2)(typescript@5.3.3) + tsconfig-paths-webpack-plugin: + specifier: ^4.1.0 + version: 4.1.0 + typescript: + specifier: ^5.2.2 + version: 5.3.3 + url-loader: + specifier: ^4.1.1 + version: 4.1.1(file-loader@6.2.0)(webpack@5.90.1) + webpack: + specifier: ^5.88.2 + version: 5.90.1(webpack-cli@5.1.4) + webpack-bundle-analyzer: + specifier: ^4.10.1 + version: 4.10.1 + webpack-cli: + specifier: ^5.1.4 + version: 5.1.4(webpack-bundle-analyzer@4.10.1)(webpack-dev-server@4.15.1)(webpack@5.90.1) + webpack-dev-server: + specifier: ^4.15.1 + version: 4.15.1(webpack-cli@5.1.4)(webpack@5.90.1) + webpack-merge: + specifier: ^5.9.0 + version: 5.10.0 + +packages: + + /7zip-bin@5.2.0: + resolution: {integrity: sha512-ukTPVhqG4jNzMro2qA9HSCSSVJN3aN7tlb+hfqYCt3ER0yWroeA2VR38MNrOHLQ/cVj+DaIMad0kFCtWWowh/A==} + dev: true + + /@aashutoshrathi/word-wrap@1.2.6: + resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} + engines: {node: '>=0.10.0'} + dev: true + + /@adobe/css-tools@4.3.3: + resolution: {integrity: sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ==} + dev: true + + /@agconnect/api-types@1.3.2: + resolution: {integrity: sha512-ON91lFZrolyAwlebx284lXQaDpYEUa5Krg+AfgZsLf+LQxm+/8gNxt90NPfPwvn1Y0Qt0WpCId09dofUrNB9FA==} + dev: false + + /@agconnect/api@1.3.2: + resolution: {integrity: sha512-9GR0yqvfvltL2yvNpo8thrmf8mG2C3yUjZSkLI/WYD/PIVmt0zW4JaMEZSwsmyvaln+a/wL2aTA3Lcf/hkyxnQ==} + dependencies: + '@agconnect/api-types': 1.3.2 + dev: false + + /@agconnect/core@1.3.2: + resolution: {integrity: sha512-7gRO/NpaltGc1UKqEmWSlmEsQ+E4QIlMVCAsz5pgN3LGT3uKPkbLTE4QFBFhU+ZtCnj4o93kUMjf/tQOdIWZ/g==} + dev: false + + /@agconnect/instance-types@1.3.2: + resolution: {integrity: sha512-7fwFO8LsPXoQSWhfFq9ZOczaOK/oWSrYui93MMT6YW089cXBrBxWHwzAwCoJ4dZ7bQKPSNzfdQFmSbheTGnd4w==} + dev: false + + /@agconnect/instance@1.3.2: + resolution: {integrity: sha512-AeNvv7sdQGKSNo5XPe+2QzS77Dv1oNIaQqgXIj/BKEUl01ZSGBjAcMCLLMNjdSTJgGLhN2hc5Sse8TJXbRqRuQ==} + dependencies: + '@agconnect/api': 1.3.2 + '@agconnect/api-types': 1.3.2 + '@agconnect/core': 1.3.2 + '@agconnect/instance-types': 1.3.2 + '@agconnect/log': 1.3.2 + dev: false + + /@agconnect/log@1.3.2: + resolution: {integrity: sha512-qOXNMr2AC+GivMbuI9dgYjmOVe02AEKyMimUmz17NAccmBDvO+WgOOxoigoDdyGhdnGYJcF2BRC1UXZ8LYIz/g==} + dependencies: + '@agconnect/api': 1.3.2 + '@agconnect/api-types': 1.3.2 + '@agconnect/instance-types': 1.3.2 + dev: false + + /@agconnect/network-types@1.3.2: + resolution: {integrity: sha512-r92hbxBWWHqVvAFf2AUlvkcnjbJP2flf/zb9f/ZOrir35I/RXoWVlPrCOZskcnsLwc5MFJCnvGqKoh6fXRUJZQ==} + dev: false + + /@agconnect/network@1.3.2: + resolution: {integrity: sha512-ftOLzrCgMsq/I9Qisi+5Um1papxUViLRZB8KLOQD3iolvh/RI+/JaMsgubvp/INX6Pf5A1qbdwHPFnVxUWKuHg==} + dependencies: + '@agconnect/api': 1.3.2 + '@agconnect/api-types': 1.3.2 + '@agconnect/instance': 1.3.2 + '@agconnect/instance-types': 1.3.2 + '@agconnect/log': 1.3.2 + '@agconnect/network-types': 1.3.2 + axios: 0.21.4 + ua-parser-js: 0.7.28 + transitivePeerDependencies: + - debug + dev: false + + /@agconnect/storage-types@1.3.2: + resolution: {integrity: sha512-HCugEBmMPAFa4ZeyOooOtyaY9GlPt00HGZDFWV4o0ckmslQrLSEVHRozIoOxhBdRBH5VllK20eY9Ip4vxMv18Q==} + dev: false + + /@agconnect/storage@1.3.2: + resolution: {integrity: sha512-COBUvtZR7MBItZ7Fc5lQBPQfe2rqMAbAB3hvfwcLDOUlvWm33QL3aa9Yfl9iiogLoV4GNmelS3M+Yb+IsX/7ow==} + dependencies: + '@agconnect/api': 1.3.2 + '@agconnect/api-types': 1.3.2 + '@agconnect/core': 1.3.2 + '@agconnect/instance': 1.3.2 + '@agconnect/instance-types': 1.3.2 + '@agconnect/log': 1.3.2 + '@agconnect/storage-types': 1.3.2 + dev: false + + /@agconnect/util@1.3.2: + resolution: {integrity: sha512-ud69EkUwDGrQ5fe/lp0hQWUWqxUjC0J+sDHtEBIKLYbWG0C1YSd/Uybc5TqJC7qN8rsGo9zOl0h71xeEGbdK4w==} + dependencies: + '@agconnect/api': 1.3.2 + '@agconnect/api-types': 1.3.2 + '@agconnect/core': 1.3.2 + '@agconnect/instance': 1.3.2 + '@agconnect/instance-types': 1.3.2 + '@agconnect/log': 1.3.2 + '@agconnect/storage': 1.3.2 + '@agconnect/storage-types': 1.3.2 + dev: false + + /@ampproject/remapping@2.2.1: + resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.22 + dev: true + + /@babel/code-frame@7.23.5: + resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.23.4 + chalk: 2.4.2 + + /@babel/compat-data@7.23.5: + resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/core@7.23.9: + resolution: {integrity: sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.1 + '@babel/code-frame': 7.23.5 + '@babel/generator': 7.23.6 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) + '@babel/helpers': 7.23.9 + '@babel/parser': 7.23.9 + '@babel/template': 7.23.9 + '@babel/traverse': 7.23.9 + '@babel/types': 7.23.9 + convert-source-map: 2.0.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/generator@7.23.6: + resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.9 + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.22 + jsesc: 2.5.2 + dev: true + + /@babel/helper-annotate-as-pure@7.22.5: + resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.9 + dev: true + + /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: + resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.9 + dev: true + + /@babel/helper-compilation-targets@7.23.6: + resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/compat-data': 7.23.5 + '@babel/helper-validator-option': 7.23.5 + browserslist: 4.22.3 + lru-cache: 5.1.1 + semver: 6.3.1 + dev: true + + /@babel/helper-create-class-features-plugin@7.23.10(@babel/core@7.23.9): + resolution: {integrity: sha512-2XpP2XhkXzgxecPNEEK8Vz8Asj9aRxt08oKOqtiZoqV2UGZ5T+EkyP9sXQ9nwMxBIG34a7jmasVqoMop7VdPUw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.9) + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + semver: 6.3.1 + dev: true + + /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.9): + resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-annotate-as-pure': 7.22.5 + regexpu-core: 5.3.2 + semver: 6.3.1 + dev: true + + /@babel/helper-define-polyfill-provider@0.5.0(@babel/core@7.23.9): + resolution: {integrity: sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + debug: 4.3.4 + lodash.debounce: 4.0.8 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-environment-visitor@7.22.20: + resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-function-name@7.23.0: + resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.23.9 + '@babel/types': 7.23.9 + dev: true + + /@babel/helper-hoist-variables@7.22.5: + resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.9 + dev: true + + /@babel/helper-member-expression-to-functions@7.23.0: + resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.9 + dev: true + + /@babel/helper-module-imports@7.22.15: + resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.9 + + /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.20 + dev: true + + /@babel/helper-optimise-call-expression@7.22.5: + resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.9 + dev: true + + /@babel/helper-plugin-utils@7.22.5: + resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.9): + resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-wrap-function': 7.22.20 + dev: true + + /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.9): + resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + dev: true + + /@babel/helper-simple-access@7.22.5: + resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.9 + dev: true + + /@babel/helper-skip-transparent-expression-wrappers@7.22.5: + resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.9 + dev: true + + /@babel/helper-split-export-declaration@7.22.6: + resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.9 + dev: true + + /@babel/helper-string-parser@7.23.4: + resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} + engines: {node: '>=6.9.0'} + + /@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + engines: {node: '>=6.9.0'} + + /@babel/helper-validator-option@7.23.5: + resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-wrap-function@7.22.20: + resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-function-name': 7.23.0 + '@babel/template': 7.23.9 + '@babel/types': 7.23.9 + dev: true + + /@babel/helpers@7.23.9: + resolution: {integrity: sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.23.9 + '@babel/traverse': 7.23.9 + '@babel/types': 7.23.9 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/highlight@7.23.4: + resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.22.20 + chalk: 2.4.2 + js-tokens: 4.0.0 + + /@babel/parser@7.23.9: + resolution: {integrity: sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.23.9 + dev: true + + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.13.0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.9) + dev: true + + /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.7(@babel/core@7.23.9): + resolution: {integrity: sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.9): + resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + dev: true + + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.9): + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.23.9): + resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.9): + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.9): + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.9): + resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.9): + resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.9): + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.9): + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.9): + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.9): + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.9): + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.9): + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.9): + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.9): + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.9): + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.9): + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.9): + resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-async-generator-functions@7.23.9(@babel/core@7.23.9): + resolution: {integrity: sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.9) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.9) + dev: true + + /@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.9) + dev: true + + /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.23.9): + resolution: {integrity: sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.23.9) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.23.9): + resolution: {integrity: sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.12.0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.23.9) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.9) + dev: true + + /@babel/plugin-transform-classes@7.23.8(@babel/core@7.23.9): + resolution: {integrity: sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.9) + '@babel/helper-split-export-declaration': 7.22.6 + globals: 11.12.0 + dev: true + + /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/template': 7.23.9 + dev: true + + /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.23.9): + resolution: {integrity: sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.9) + dev: true + + /@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.23.9): + resolution: {integrity: sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.9) + dev: true + + /@babel/plugin-transform-for-of@7.23.6(@babel/core@7.23.9): + resolution: {integrity: sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + dev: true + + /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.23.9): + resolution: {integrity: sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.9) + dev: true + + /@babel/plugin-transform-literals@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.23.9): + resolution: {integrity: sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.9) + dev: true + + /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-simple-access': 7.22.5 + dev: true + + /@babel/plugin-transform-modules-systemjs@7.23.9(@babel/core@7.23.9): + resolution: {integrity: sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-identifier': 7.22.20 + dev: true + + /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.9): + resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-new-target@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.23.9): + resolution: {integrity: sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.9) + dev: true + + /@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.23.9): + resolution: {integrity: sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.9) + dev: true + + /@babel/plugin-transform-object-rest-spread@7.23.4(@babel/core@7.23.9): + resolution: {integrity: sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.23.5 + '@babel/core': 7.23.9 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.9) + dev: true + + /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.9) + dev: true + + /@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.23.9): + resolution: {integrity: sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.9) + dev: true + + /@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.23.9): + resolution: {integrity: sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.9) + dev: true + + /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.23.9) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.23.9): + resolution: {integrity: sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.23.9) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.9) + dev: true + + /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-react-constant-elements@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-zP0QKq/p6O42OL94udMgSfKXyse4RyJ0JqbQ34zDAONWjyrEsghYEyTSK5FIpmXmCpB55SHokL1cRRKHv8L2Qw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-react-display-name@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-GnvhtVfA2OAtzdX58FJxU19rhoGeQzyVndw3GgtdECQvQFXPEZIOVULHVZGAYmOgmqjXpVpfocAbSjh99V/Fqw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.23.9): + resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.23.9) + dev: true + + /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.23.9): + resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.9) + '@babel/types': 7.23.9 + dev: true + + /@babel/plugin-transform-react-pure-annotations@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-qMFdSS+TUhB7Q/3HVPnEdYJDQIk57jkntAwSuz9xfSE4n+3I+vHYCli3HoHawN1Z3RfCz/y1zXA/JXjG6cVImQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + regenerator-transform: 0.15.2 + dev: true + + /@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-spread@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + dev: true + + /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-typescript@7.23.6(@babel/core@7.23.9): + resolution: {integrity: sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.23.9) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.9) + dev: true + + /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.9) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/preset-env@7.23.9(@babel/core@7.23.9): + resolution: {integrity: sha512-3kBGTNBBk9DQiPoXYS0g0BYlwTQYUTifqgKTjxUwEUkduRT2QOa0FPGBJ+NROQhGyYO5BuTJwGvBnqKDykac6A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.23.5 + '@babel/core': 7.23.9 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.7(@babel/core@7.23.9) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.9) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.9) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.9) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.9) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.9) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.9) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.9) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.9) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.9) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.9) + '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-async-generator-functions': 7.23.9(@babel/core@7.23.9) + '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-classes': 7.23.8(@babel/core@7.23.9) + '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-dynamic-import': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-for-of': 7.23.6(@babel/core@7.23.9) + '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-json-strings': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-logical-assignment-operators': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-modules-systemjs': 7.23.9(@babel/core@7.23.9) + '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.9) + '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-numeric-separator': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-object-rest-spread': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-optional-catch-binding': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.23.9) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.9) + babel-plugin-polyfill-corejs2: 0.4.8(@babel/core@7.23.9) + babel-plugin-polyfill-corejs3: 0.9.0(@babel/core@7.23.9) + babel-plugin-polyfill-regenerator: 0.5.5(@babel/core@7.23.9) + core-js-compat: 3.35.1 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.9): + resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} + peerDependencies: + '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/types': 7.23.9 + esutils: 2.0.3 + dev: true + + /@babel/preset-react@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-tbkHOS9axH6Ysf2OUEqoSZ6T3Fa2SrNH6WTWSPBboxKzdxNc9qOICeLXkNG0ZEwbQ1HY8liwOce4aN/Ceyuq6w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-transform-react-display-name': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.23.9) + '@babel/plugin-transform-react-jsx-development': 7.22.5(@babel/core@7.23.9) + '@babel/plugin-transform-react-pure-annotations': 7.23.3(@babel/core@7.23.9) + dev: true + + /@babel/preset-typescript@7.23.3(@babel/core@7.23.9): + resolution: {integrity: sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.23.9) + dev: true + + /@babel/regjsgen@0.8.0: + resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} + dev: true + + /@babel/runtime@7.23.9: + resolution: {integrity: sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.14.1 + + /@babel/template@7.23.9: + resolution: {integrity: sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.23.5 + '@babel/parser': 7.23.9 + '@babel/types': 7.23.9 + dev: true + + /@babel/traverse@7.23.9: + resolution: {integrity: sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.23.5 + '@babel/generator': 7.23.6 + '@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.9 + '@babel/types': 7.23.9 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/types@7.23.9: + resolution: {integrity: sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.23.4 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 + + /@bcoe/v8-coverage@0.2.3: + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + dev: true + + /@chakra-ui/accordion@2.3.1(@chakra-ui/system@2.6.2)(framer-motion@11.0.3)(react@18.2.0): + resolution: {integrity: sha512-FSXRm8iClFyU+gVaXisOSEw0/4Q+qZbFRiuhIAkVU6Boj0FxAMrlo9a8AV5TuF77rgaHytCdHk0Ng+cyUijrag==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + framer-motion: '>=4.0.0' + react: '>=18' + dependencies: + '@chakra-ui/descendant': 3.1.0(react@18.2.0) + '@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/react-context': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-controllable-state': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) + '@chakra-ui/transition': 2.1.0(framer-motion@11.0.3)(react@18.2.0) + framer-motion: 11.0.3(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/alert@2.2.2(@chakra-ui/system@2.6.2)(react@18.2.0): + resolution: {integrity: sha512-jHg4LYMRNOJH830ViLuicjb3F+v6iriE/2G5T+Sd0Hna04nukNJ1MxUmBPE+vI22me2dIflfelu2v9wdB6Pojw==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/react-context': 2.1.0(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/spinner': 2.1.0(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/anatomy@2.2.2: + resolution: {integrity: sha512-MV6D4VLRIHr4PkW4zMyqfrNS1mPlCTiCXwvYGtDFQYr+xHFfonhAuf9WjsSc0nyp2m0OdkSLnzmVKkZFLo25Tg==} + dev: false + + /@chakra-ui/avatar@2.3.0(@chakra-ui/system@2.6.2)(react@18.2.0): + resolution: {integrity: sha512-8gKSyLfygnaotbJbDMHDiJoF38OHXUYVme4gGxZ1fLnQEdPVEaIWfH+NndIjOM0z8S+YEFnT9KyGMUtvPrBk3g==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/image': 2.1.0(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/react-children-utils': 2.0.6(react@18.2.0) + '@chakra-ui/react-context': 2.1.0(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/breadcrumb@2.2.0(@chakra-ui/system@2.6.2)(react@18.2.0): + resolution: {integrity: sha512-4cWCG24flYBxjruRi4RJREWTGF74L/KzI2CognAW/d/zWR0CjiScuJhf37Am3LFbCySP6WSoyBOtTIoTA4yLEA==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/react-children-utils': 2.0.6(react@18.2.0) + '@chakra-ui/react-context': 2.1.0(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/breakpoint-utils@2.0.8: + resolution: {integrity: sha512-Pq32MlEX9fwb5j5xx8s18zJMARNHlQZH2VH1RZgfgRDpp7DcEgtRW5AInfN5CfqdHLO1dGxA7I3MqEuL5JnIsA==} + dependencies: + '@chakra-ui/shared-utils': 2.0.5 + dev: false + + /@chakra-ui/button@2.1.0(@chakra-ui/system@2.6.2)(react@18.2.0): + resolution: {integrity: sha512-95CplwlRKmmUXkdEp/21VkEWgnwcx2TOBG6NfYlsuLBDHSLlo5FKIiE2oSi4zXc4TLcopGcWPNcm/NDaSC5pvA==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/react-context': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/spinner': 2.1.0(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/card@2.2.0(@chakra-ui/system@2.6.2)(react@18.2.0): + resolution: {integrity: sha512-xUB/k5MURj4CtPAhdSoXZidUbm8j3hci9vnc+eZJVDqhDOShNlD6QeniQNRPRys4lWAQLCbFcrwL29C8naDi6g==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/checkbox@2.3.2(@chakra-ui/system@2.6.2)(react@18.2.0): + resolution: {integrity: sha512-85g38JIXMEv6M+AcyIGLh7igNtfpAN6KGQFYxY9tBj0eWvWk4NKQxvqqyVta0bSAyIl1rixNIIezNpNWk2iO4g==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/form-control': 2.2.0(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/react-context': 2.1.0(react@18.2.0) + '@chakra-ui/react-types': 2.0.7(react@18.2.0) + '@chakra-ui/react-use-callback-ref': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-controllable-state': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-safe-layout-effect': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-update-effect': 2.1.0(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) + '@chakra-ui/visually-hidden': 2.2.0(@chakra-ui/system@2.6.2)(react@18.2.0) + '@zag-js/focus-visible': 0.16.0 + react: 18.2.0 + dev: false + + /@chakra-ui/clickable@2.1.0(react@18.2.0): + resolution: {integrity: sha512-flRA/ClPUGPYabu+/GLREZVZr9j2uyyazCAUHAdrTUEdDYCr31SVGhgh7dgKdtq23bOvAQJpIJjw/0Bs0WvbXw==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + react: 18.2.0 + dev: false + + /@chakra-ui/close-button@2.1.1(@chakra-ui/system@2.6.2)(react@18.2.0): + resolution: {integrity: sha512-gnpENKOanKexswSVpVz7ojZEALl2x5qjLYNqSQGbxz+aP9sOXPfUS56ebyBrre7T7exuWGiFeRwnM0oVeGPaiw==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/color-mode@2.2.0(react@18.2.0): + resolution: {integrity: sha512-niTEA8PALtMWRI9wJ4LL0CSBDo8NBfLNp4GD6/0hstcm3IlbBHTVKxN6HwSaoNYfphDQLxCjT4yG+0BJA5tFpg==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-safe-layout-effect': 2.1.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/control-box@2.1.0(@chakra-ui/system@2.6.2)(react@18.2.0): + resolution: {integrity: sha512-gVrRDyXFdMd8E7rulL0SKeoljkLQiPITFnsyMO8EFHNZ+AHt5wK4LIguYVEq88APqAGZGfHFWXr79RYrNiE3Mg==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/counter@2.1.0(react@18.2.0): + resolution: {integrity: sha512-s6hZAEcWT5zzjNz2JIWUBzRubo9la/oof1W7EKZVVfPYHERnl5e16FmBC79Yfq8p09LQ+aqFKm/etYoJMMgghw==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/number-utils': 2.0.7 + '@chakra-ui/react-use-callback-ref': 2.1.0(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + react: 18.2.0 + dev: false + + /@chakra-ui/css-reset@2.3.0(@emotion/react@11.11.3)(react@18.2.0): + resolution: {integrity: sha512-cQwwBy5O0jzvl0K7PLTLgp8ijqLPKyuEMiDXwYzl95seD3AoeuoCLyzZcJtVqaUZ573PiBdAbY/IlZcwDOItWg==} + peerDependencies: + '@emotion/react': '>=10.0.35' + react: '>=18' + dependencies: + '@emotion/react': 11.11.3(@types/react@18.2.55)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/descendant@3.1.0(react@18.2.0): + resolution: {integrity: sha512-VxCIAir08g5w27klLyi7PVo8BxhW4tgU/lxQyujkmi4zx7hT9ZdrcQLAted/dAa+aSIZ14S1oV0Q9lGjsAdxUQ==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-context': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/dom-utils@2.1.0: + resolution: {integrity: sha512-ZmF2qRa1QZ0CMLU8M1zCfmw29DmPNtfjR9iTo74U5FPr3i1aoAh7fbJ4qAlZ197Xw9eAW28tvzQuoVWeL5C7fQ==} + dev: false + + /@chakra-ui/editable@3.1.0(@chakra-ui/system@2.6.2)(react@18.2.0): + resolution: {integrity: sha512-j2JLrUL9wgg4YA6jLlbU88370eCRyor7DZQD9lzpY95tSOXpTljeg3uF9eOmDnCs6fxp3zDWIfkgMm/ExhcGTg==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/react-context': 2.1.0(react@18.2.0) + '@chakra-ui/react-types': 2.0.7(react@18.2.0) + '@chakra-ui/react-use-callback-ref': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-controllable-state': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-focus-on-pointer-down': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-safe-layout-effect': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-update-effect': 2.1.0(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/event-utils@2.0.8: + resolution: {integrity: sha512-IGM/yGUHS+8TOQrZGpAKOJl/xGBrmRYJrmbHfUE7zrG3PpQyXvbLDP1M+RggkCFVgHlJi2wpYIf0QtQlU0XZfw==} + dev: false + + /@chakra-ui/focus-lock@2.1.0(@types/react@18.2.55)(react@18.2.0): + resolution: {integrity: sha512-EmGx4PhWGjm4dpjRqM4Aa+rCWBxP+Rq8Uc/nAVnD4YVqkEhBkrPTpui2lnjsuxqNaZ24fIAZ10cF1hlpemte/w==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/dom-utils': 2.1.0 + react: 18.2.0 + react-focus-lock: 2.9.7(@types/react@18.2.55)(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + dev: false + + /@chakra-ui/form-control@2.2.0(@chakra-ui/system@2.6.2)(react@18.2.0): + resolution: {integrity: sha512-wehLC1t4fafCVJ2RvJQT2jyqsAwX7KymmiGqBu7nQoQz8ApTkGABWpo/QwDh3F/dBLrouHDoOvGmYTqft3Mirw==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/react-context': 2.1.0(react@18.2.0) + '@chakra-ui/react-types': 2.0.7(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/hooks@2.2.1(react@18.2.0): + resolution: {integrity: sha512-RQbTnzl6b1tBjbDPf9zGRo9rf/pQMholsOudTxjy4i9GfTfz6kgp5ValGjQm2z7ng6Z31N1cnjZ1AlSzQ//ZfQ==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-utils': 2.0.12(react@18.2.0) + '@chakra-ui/utils': 2.0.15 + compute-scroll-into-view: 3.0.3 + copy-to-clipboard: 3.3.3 + react: 18.2.0 + dev: false + + /@chakra-ui/icon@3.2.0(@chakra-ui/system@2.6.2)(react@18.2.0): + resolution: {integrity: sha512-xxjGLvlX2Ys4H0iHrI16t74rG9EBcpFvJ3Y3B7KMQTrnW34Kf7Da/UC8J67Gtx85mTHW020ml85SVPKORWNNKQ==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/icons@2.1.1(@chakra-ui/system@2.6.2)(react@18.2.0): + resolution: {integrity: sha512-3p30hdo4LlRZTT5CwoAJq3G9fHI0wDc0pBaMHj4SUn0yomO+RcDRlzhdXqdr5cVnzax44sqXJVnf3oQG0eI+4g==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/image@2.1.0(@chakra-ui/system@2.6.2)(react@18.2.0): + resolution: {integrity: sha512-bskumBYKLiLMySIWDGcz0+D9Th0jPvmX6xnRMs4o92tT3Od/bW26lahmV2a2Op2ItXeCmRMY+XxJH5Gy1i46VA==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/react-use-safe-layout-effect': 2.1.0(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/input@2.1.2(@chakra-ui/system@2.6.2)(react@18.2.0): + resolution: {integrity: sha512-GiBbb3EqAA8Ph43yGa6Mc+kUPjh4Spmxp1Pkelr8qtudpc3p2PJOOebLpd90mcqw8UePPa+l6YhhPtp6o0irhw==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/form-control': 2.2.0(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/object-utils': 2.1.0 + '@chakra-ui/react-children-utils': 2.0.6(react@18.2.0) + '@chakra-ui/react-context': 2.1.0(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/layout@2.3.1(@chakra-ui/system@2.6.2)(react@18.2.0): + resolution: {integrity: sha512-nXuZ6WRbq0WdgnRgLw+QuxWAHuhDtVX8ElWqcTK+cSMFg/52eVP47czYBE5F35YhnoW2XBwfNoNgZ7+e8Z01Rg==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/breakpoint-utils': 2.0.8 + '@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/object-utils': 2.1.0 + '@chakra-ui/react-children-utils': 2.0.6(react@18.2.0) + '@chakra-ui/react-context': 2.1.0(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/lazy-utils@2.0.5: + resolution: {integrity: sha512-UULqw7FBvcckQk2n3iPO56TMJvDsNv0FKZI6PlUNJVaGsPbsYxK/8IQ60vZgaTVPtVcjY6BE+y6zg8u9HOqpyg==} + dev: false + + /@chakra-ui/live-region@2.1.0(react@18.2.0): + resolution: {integrity: sha512-ZOxFXwtaLIsXjqnszYYrVuswBhnIHHP+XIgK1vC6DePKtyK590Wg+0J0slDwThUAd4MSSIUa/nNX84x1GMphWw==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@chakra-ui/media-query@3.3.0(@chakra-ui/system@2.6.2)(react@18.2.0): + resolution: {integrity: sha512-IsTGgFLoICVoPRp9ykOgqmdMotJG0CnPsKvGQeSFOB/dZfIujdVb14TYxDU4+MURXry1MhJ7LzZhv+Ml7cr8/g==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/breakpoint-utils': 2.0.8 + '@chakra-ui/react-env': 3.1.0(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/menu@2.2.1(@chakra-ui/system@2.6.2)(framer-motion@11.0.3)(react@18.2.0): + resolution: {integrity: sha512-lJS7XEObzJxsOwWQh7yfG4H8FzFPRP5hVPN/CL+JzytEINCSBvsCDHrYPQGp7jzpCi8vnTqQQGQe0f8dwnXd2g==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + framer-motion: '>=4.0.0' + react: '>=18' + dependencies: + '@chakra-ui/clickable': 2.1.0(react@18.2.0) + '@chakra-ui/descendant': 3.1.0(react@18.2.0) + '@chakra-ui/lazy-utils': 2.0.5 + '@chakra-ui/popper': 3.1.0(react@18.2.0) + '@chakra-ui/react-children-utils': 2.0.6(react@18.2.0) + '@chakra-ui/react-context': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-animation-state': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-controllable-state': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-disclosure': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-focus-effect': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-outside-click': 2.2.0(react@18.2.0) + '@chakra-ui/react-use-update-effect': 2.1.0(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) + '@chakra-ui/transition': 2.1.0(framer-motion@11.0.3)(react@18.2.0) + framer-motion: 11.0.3(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/modal@2.3.1(@chakra-ui/system@2.6.2)(@types/react@18.2.55)(framer-motion@11.0.3)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-TQv1ZaiJMZN+rR9DK0snx/OPwmtaGH1HbZtlYt4W4s6CzyK541fxLRTjIXfEzIGpvNW+b6VFuFjbcR78p4DEoQ==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + framer-motion: '>=4.0.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@chakra-ui/close-button': 2.1.1(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/focus-lock': 2.1.0(@types/react@18.2.55)(react@18.2.0) + '@chakra-ui/portal': 2.1.0(react-dom@18.2.0)(react@18.2.0) + '@chakra-ui/react-context': 2.1.0(react@18.2.0) + '@chakra-ui/react-types': 2.0.7(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) + '@chakra-ui/transition': 2.1.0(framer-motion@11.0.3)(react@18.2.0) + aria-hidden: 1.2.3 + framer-motion: 11.0.3(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-remove-scroll: 2.5.7(@types/react@18.2.55)(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + dev: false + + /@chakra-ui/number-input@2.1.2(@chakra-ui/system@2.6.2)(react@18.2.0): + resolution: {integrity: sha512-pfOdX02sqUN0qC2ysuvgVDiws7xZ20XDIlcNhva55Jgm095xjm8eVdIBfNm3SFbSUNxyXvLTW/YQanX74tKmuA==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/counter': 2.1.0(react@18.2.0) + '@chakra-ui/form-control': 2.2.0(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/react-context': 2.1.0(react@18.2.0) + '@chakra-ui/react-types': 2.0.7(react@18.2.0) + '@chakra-ui/react-use-callback-ref': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-event-listener': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-interval': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-safe-layout-effect': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-update-effect': 2.1.0(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/number-utils@2.0.7: + resolution: {integrity: sha512-yOGxBjXNvLTBvQyhMDqGU0Oj26s91mbAlqKHiuw737AXHt0aPllOthVUqQMeaYLwLCjGMg0jtI7JReRzyi94Dg==} + dev: false + + /@chakra-ui/object-utils@2.1.0: + resolution: {integrity: sha512-tgIZOgLHaoti5PYGPTwK3t/cqtcycW0owaiOXoZOcpwwX/vlVb+H1jFsQyWiiwQVPt9RkoSLtxzXamx+aHH+bQ==} + dev: false + + /@chakra-ui/pin-input@2.1.0(@chakra-ui/system@2.6.2)(react@18.2.0): + resolution: {integrity: sha512-x4vBqLStDxJFMt+jdAHHS8jbh294O53CPQJoL4g228P513rHylV/uPscYUHrVJXRxsHfRztQO9k45jjTYaPRMw==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/descendant': 3.1.0(react@18.2.0) + '@chakra-ui/react-children-utils': 2.0.6(react@18.2.0) + '@chakra-ui/react-context': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-controllable-state': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/popover@2.2.1(@chakra-ui/system@2.6.2)(framer-motion@11.0.3)(react@18.2.0): + resolution: {integrity: sha512-K+2ai2dD0ljvJnlrzesCDT9mNzLifE3noGKZ3QwLqd/K34Ym1W/0aL1ERSynrcG78NKoXS54SdEzkhCZ4Gn/Zg==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + framer-motion: '>=4.0.0' + react: '>=18' + dependencies: + '@chakra-ui/close-button': 2.1.1(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/lazy-utils': 2.0.5 + '@chakra-ui/popper': 3.1.0(react@18.2.0) + '@chakra-ui/react-context': 2.1.0(react@18.2.0) + '@chakra-ui/react-types': 2.0.7(react@18.2.0) + '@chakra-ui/react-use-animation-state': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-disclosure': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-focus-effect': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-focus-on-pointer-down': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) + framer-motion: 11.0.3(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/popper@3.1.0(react@18.2.0): + resolution: {integrity: sha512-ciDdpdYbeFG7og6/6J8lkTFxsSvwTdMLFkpVylAF6VNC22jssiWfquj2eyD4rJnzkRFPvIWJq8hvbfhsm+AjSg==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-types': 2.0.7(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.2.0) + '@popperjs/core': 2.11.8 + react: 18.2.0 + dev: false + + /@chakra-ui/portal@2.1.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-9q9KWf6SArEcIq1gGofNcFPSWEyl+MfJjEUg/un1SMlQjaROOh3zYr+6JAwvcORiX7tyHosnmWC3d3wI2aPSQg==} + peerDependencies: + react: '>=18' + react-dom: '>=18' + dependencies: + '@chakra-ui/react-context': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-safe-layout-effect': 2.1.0(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@chakra-ui/progress@2.2.0(@chakra-ui/system@2.6.2)(react@18.2.0): + resolution: {integrity: sha512-qUXuKbuhN60EzDD9mHR7B67D7p/ZqNS2Aze4Pbl1qGGZfulPW0PY8Rof32qDtttDQBkzQIzFGE8d9QpAemToIQ==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/react-context': 2.1.0(react@18.2.0) + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/provider@2.4.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-w0Tef5ZCJK1mlJorcSjItCSbyvVuqpvyWdxZiVQmE6fvSJR83wZof42ux0+sfWD+I7rHSfj+f9nzhNaEWClysw==} + peerDependencies: + '@emotion/react': ^11.0.0 + '@emotion/styled': ^11.0.0 + react: '>=18' + react-dom: '>=18' + dependencies: + '@chakra-ui/css-reset': 2.3.0(@emotion/react@11.11.3)(react@18.2.0) + '@chakra-ui/portal': 2.1.0(react-dom@18.2.0)(react@18.2.0) + '@chakra-ui/react-env': 3.1.0(react@18.2.0) + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) + '@chakra-ui/utils': 2.0.15 + '@emotion/react': 11.11.3(@types/react@18.2.55)(react@18.2.0) + '@emotion/styled': 11.11.0(@emotion/react@11.11.3)(@types/react@18.2.55)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@chakra-ui/radio@2.1.2(@chakra-ui/system@2.6.2)(react@18.2.0): + resolution: {integrity: sha512-n10M46wJrMGbonaghvSRnZ9ToTv/q76Szz284gv4QUWvyljQACcGrXIONUnQ3BIwbOfkRqSk7Xl/JgZtVfll+w==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/form-control': 2.2.0(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/react-context': 2.1.0(react@18.2.0) + '@chakra-ui/react-types': 2.0.7(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) + '@zag-js/focus-visible': 0.16.0 + react: 18.2.0 + dev: false + + /@chakra-ui/react-children-utils@2.0.6(react@18.2.0): + resolution: {integrity: sha512-QVR2RC7QsOsbWwEnq9YduhpqSFnZGvjjGREV8ygKi8ADhXh93C8azLECCUVgRJF2Wc+So1fgxmjLcbZfY2VmBA==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@chakra-ui/react-context@2.1.0(react@18.2.0): + resolution: {integrity: sha512-iahyStvzQ4AOwKwdPReLGfDesGG+vWJfEsn0X/NoGph/SkN+HXtv2sCfYFFR9k7bb+Kvc6YfpLlSuLvKMHi2+w==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@chakra-ui/react-env@3.1.0(react@18.2.0): + resolution: {integrity: sha512-Vr96GV2LNBth3+IKzr/rq1IcnkXv+MLmwjQH6C8BRtn3sNskgDFD5vLkVXcEhagzZMCh8FR3V/bzZPojBOyNhw==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-safe-layout-effect': 2.1.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/react-types@2.0.7(react@18.2.0): + resolution: {integrity: sha512-12zv2qIZ8EHwiytggtGvo4iLT0APris7T0qaAWqzpUGS0cdUtR8W+V1BJ5Ocq+7tA6dzQ/7+w5hmXih61TuhWQ==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-animation-state@2.1.0(react@18.2.0): + resolution: {integrity: sha512-CFZkQU3gmDBwhqy0vC1ryf90BVHxVN8cTLpSyCpdmExUEtSEInSCGMydj2fvn7QXsz/za8JNdO2xxgJwxpLMtg==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/dom-utils': 2.1.0 + '@chakra-ui/react-use-event-listener': 2.1.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-callback-ref@2.1.0(react@18.2.0): + resolution: {integrity: sha512-efnJrBtGDa4YaxDzDE90EnKD3Vkh5a1t3w7PhnRQmsphLy3g2UieasoKTlT2Hn118TwDjIv5ZjHJW6HbzXA9wQ==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-controllable-state@2.1.0(react@18.2.0): + resolution: {integrity: sha512-QR/8fKNokxZUs4PfxjXuwl0fj/d71WPrmLJvEpCTkHjnzu7LnYvzoe2wB867IdooQJL0G1zBxl0Dq+6W1P3jpg==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-callback-ref': 2.1.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-disclosure@2.1.0(react@18.2.0): + resolution: {integrity: sha512-Ax4pmxA9LBGMyEZJhhUZobg9C0t3qFE4jVF1tGBsrLDcdBeLR9fwOogIPY9Hf0/wqSlAryAimICbr5hkpa5GSw==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-callback-ref': 2.1.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-event-listener@2.1.0(react@18.2.0): + resolution: {integrity: sha512-U5greryDLS8ISP69DKDsYcsXRtAdnTQT+jjIlRYZ49K/XhUR/AqVZCK5BkR1spTDmO9H8SPhgeNKI70ODuDU/Q==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-callback-ref': 2.1.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-focus-effect@2.1.0(react@18.2.0): + resolution: {integrity: sha512-xzVboNy7J64xveLcxTIJ3jv+lUJKDwRM7Szwn9tNzUIPD94O3qwjV7DDCUzN2490nSYDF4OBMt/wuDBtaR3kUQ==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/dom-utils': 2.1.0 + '@chakra-ui/react-use-event-listener': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-safe-layout-effect': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-update-effect': 2.1.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-focus-on-pointer-down@2.1.0(react@18.2.0): + resolution: {integrity: sha512-2jzrUZ+aiCG/cfanrolsnSMDykCAbv9EK/4iUyZno6BYb3vziucmvgKuoXbMPAzWNtwUwtuMhkby8rc61Ue+Lg==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-event-listener': 2.1.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-interval@2.1.0(react@18.2.0): + resolution: {integrity: sha512-8iWj+I/+A0J08pgEXP1J1flcvhLBHkk0ln7ZvGIyXiEyM6XagOTJpwNhiu+Bmk59t3HoV/VyvyJTa+44sEApuw==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-callback-ref': 2.1.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-latest-ref@2.1.0(react@18.2.0): + resolution: {integrity: sha512-m0kxuIYqoYB0va9Z2aW4xP/5b7BzlDeWwyXCH6QpT2PpW3/281L3hLCm1G0eOUcdVlayqrQqOeD6Mglq+5/xoQ==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-merge-refs@2.1.0(react@18.2.0): + resolution: {integrity: sha512-lERa6AWF1cjEtWSGjxWTaSMvneccnAVH4V4ozh8SYiN9fSPZLlSG3kNxfNzdFvMEhM7dnP60vynF7WjGdTgQbQ==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-outside-click@2.2.0(react@18.2.0): + resolution: {integrity: sha512-PNX+s/JEaMneijbgAM4iFL+f3m1ga9+6QK0E5Yh4s8KZJQ/bLwZzdhMz8J/+mL+XEXQ5J0N8ivZN28B82N1kNw==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-callback-ref': 2.1.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-pan-event@2.1.0(react@18.2.0): + resolution: {integrity: sha512-xmL2qOHiXqfcj0q7ZK5s9UjTh4Gz0/gL9jcWPA6GVf+A0Od5imEDa/Vz+533yQKWiNSm1QGrIj0eJAokc7O4fg==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/event-utils': 2.0.8 + '@chakra-ui/react-use-latest-ref': 2.1.0(react@18.2.0) + framesync: 6.1.2 + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-previous@2.1.0(react@18.2.0): + resolution: {integrity: sha512-pjxGwue1hX8AFcmjZ2XfrQtIJgqbTF3Qs1Dy3d1krC77dEsiCUbQ9GzOBfDc8pfd60DrB5N2tg5JyHbypqh0Sg==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-safe-layout-effect@2.1.0(react@18.2.0): + resolution: {integrity: sha512-Knbrrx/bcPwVS1TorFdzrK/zWA8yuU/eaXDkNj24IrKoRlQrSBFarcgAEzlCHtzuhufP3OULPkELTzz91b0tCw==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-size@2.1.0(react@18.2.0): + resolution: {integrity: sha512-tbLqrQhbnqOjzTaMlYytp7wY8BW1JpL78iG7Ru1DlV4EWGiAmXFGvtnEt9HftU0NJ0aJyjgymkxfVGI55/1Z4A==} + peerDependencies: + react: '>=18' + dependencies: + '@zag-js/element-size': 0.10.5 + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-timeout@2.1.0(react@18.2.0): + resolution: {integrity: sha512-cFN0sobKMM9hXUhyCofx3/Mjlzah6ADaEl/AXl5Y+GawB5rgedgAcu2ErAgarEkwvsKdP6c68CKjQ9dmTQlJxQ==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/react-use-callback-ref': 2.1.0(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/react-use-update-effect@2.1.0(react@18.2.0): + resolution: {integrity: sha512-ND4Q23tETaR2Qd3zwCKYOOS1dfssojPLJMLvUtUbW5M9uW1ejYWgGUobeAiOVfSplownG8QYMmHTP86p/v0lbA==} + peerDependencies: + react: '>=18' + dependencies: + react: 18.2.0 + dev: false + + /@chakra-ui/react-utils@2.0.12(react@18.2.0): + resolution: {integrity: sha512-GbSfVb283+YA3kA8w8xWmzbjNWk14uhNpntnipHCftBibl0lxtQ9YqMFQLwuFOO0U2gYVocszqqDWX+XNKq9hw==} + peerDependencies: + react: '>=18' + dependencies: + '@chakra-ui/utils': 2.0.15 + react: 18.2.0 + dev: false + + /@chakra-ui/react@2.8.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(@types/react@18.2.55)(framer-motion@11.0.3)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-Hn0moyxxyCDKuR9ywYpqgX8dvjqwu9ArwpIb9wHNYjnODETjLwazgNIliCVBRcJvysGRiV51U2/JtJVrpeCjUQ==} + peerDependencies: + '@emotion/react': ^11.0.0 + '@emotion/styled': ^11.0.0 + framer-motion: '>=4.0.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@chakra-ui/accordion': 2.3.1(@chakra-ui/system@2.6.2)(framer-motion@11.0.3)(react@18.2.0) + '@chakra-ui/alert': 2.2.2(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/avatar': 2.3.0(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/breadcrumb': 2.2.0(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/button': 2.1.0(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/card': 2.2.0(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/checkbox': 2.3.2(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/close-button': 2.1.1(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/control-box': 2.1.0(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/counter': 2.1.0(react@18.2.0) + '@chakra-ui/css-reset': 2.3.0(@emotion/react@11.11.3)(react@18.2.0) + '@chakra-ui/editable': 3.1.0(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/focus-lock': 2.1.0(@types/react@18.2.55)(react@18.2.0) + '@chakra-ui/form-control': 2.2.0(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/hooks': 2.2.1(react@18.2.0) + '@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/image': 2.1.0(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/input': 2.1.2(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/layout': 2.3.1(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/live-region': 2.1.0(react@18.2.0) + '@chakra-ui/media-query': 3.3.0(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/menu': 2.2.1(@chakra-ui/system@2.6.2)(framer-motion@11.0.3)(react@18.2.0) + '@chakra-ui/modal': 2.3.1(@chakra-ui/system@2.6.2)(@types/react@18.2.55)(framer-motion@11.0.3)(react-dom@18.2.0)(react@18.2.0) + '@chakra-ui/number-input': 2.1.2(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/pin-input': 2.1.0(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/popover': 2.2.1(@chakra-ui/system@2.6.2)(framer-motion@11.0.3)(react@18.2.0) + '@chakra-ui/popper': 3.1.0(react@18.2.0) + '@chakra-ui/portal': 2.1.0(react-dom@18.2.0)(react@18.2.0) + '@chakra-ui/progress': 2.2.0(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/provider': 2.4.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react-dom@18.2.0)(react@18.2.0) + '@chakra-ui/radio': 2.1.2(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/react-env': 3.1.0(react@18.2.0) + '@chakra-ui/select': 2.1.2(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/skeleton': 2.1.0(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/skip-nav': 2.1.0(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/slider': 2.1.0(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/spinner': 2.1.0(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/stat': 2.1.1(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/stepper': 2.3.1(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/styled-system': 2.9.2 + '@chakra-ui/switch': 2.1.2(@chakra-ui/system@2.6.2)(framer-motion@11.0.3)(react@18.2.0) + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) + '@chakra-ui/table': 2.1.0(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/tabs': 3.0.0(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/tag': 3.1.1(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/textarea': 2.1.2(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/theme': 3.3.1(@chakra-ui/styled-system@2.9.2) + '@chakra-ui/theme-utils': 2.0.21 + '@chakra-ui/toast': 7.0.2(@chakra-ui/system@2.6.2)(framer-motion@11.0.3)(react-dom@18.2.0)(react@18.2.0) + '@chakra-ui/tooltip': 2.3.1(@chakra-ui/system@2.6.2)(framer-motion@11.0.3)(react-dom@18.2.0)(react@18.2.0) + '@chakra-ui/transition': 2.1.0(framer-motion@11.0.3)(react@18.2.0) + '@chakra-ui/utils': 2.0.15 + '@chakra-ui/visually-hidden': 2.2.0(@chakra-ui/system@2.6.2)(react@18.2.0) + '@emotion/react': 11.11.3(@types/react@18.2.55)(react@18.2.0) + '@emotion/styled': 11.11.0(@emotion/react@11.11.3)(@types/react@18.2.55)(react@18.2.0) + framer-motion: 11.0.3(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + dev: false + + /@chakra-ui/select@2.1.2(@chakra-ui/system@2.6.2)(react@18.2.0): + resolution: {integrity: sha512-ZwCb7LqKCVLJhru3DXvKXpZ7Pbu1TDZ7N0PdQ0Zj1oyVLJyrpef1u9HR5u0amOpqcH++Ugt0f5JSmirjNlctjA==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/form-control': 2.2.0(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/shared-utils@2.0.5: + resolution: {integrity: sha512-4/Wur0FqDov7Y0nCXl7HbHzCg4aq86h+SXdoUeuCMD3dSj7dpsVnStLYhng1vxvlbUnLpdF4oz5Myt3i/a7N3Q==} + dev: false + + /@chakra-ui/skeleton@2.1.0(@chakra-ui/system@2.6.2)(react@18.2.0): + resolution: {integrity: sha512-JNRuMPpdZGd6zFVKjVQ0iusu3tXAdI29n4ZENYwAJEMf/fN0l12sVeirOxkJ7oEL0yOx2AgEYFSKdbcAgfUsAQ==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/media-query': 3.3.0(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/react-use-previous': 2.1.0(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/skip-nav@2.1.0(@chakra-ui/system@2.6.2)(react@18.2.0): + resolution: {integrity: sha512-Hk+FG+vadBSH0/7hwp9LJnLjkO0RPGnx7gBJWI4/SpoJf3e4tZlWYtwGj0toYY4aGKl93jVghuwGbDBEMoHDug==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/slider@2.1.0(@chakra-ui/system@2.6.2)(react@18.2.0): + resolution: {integrity: sha512-lUOBcLMCnFZiA/s2NONXhELJh6sY5WtbRykPtclGfynqqOo47lwWJx+VP7xaeuhDOPcWSSecWc9Y1BfPOCz9cQ==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/number-utils': 2.0.7 + '@chakra-ui/react-context': 2.1.0(react@18.2.0) + '@chakra-ui/react-types': 2.0.7(react@18.2.0) + '@chakra-ui/react-use-callback-ref': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-controllable-state': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-latest-ref': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-pan-event': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-size': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-update-effect': 2.1.0(react@18.2.0) + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/spinner@2.1.0(@chakra-ui/system@2.6.2)(react@18.2.0): + resolution: {integrity: sha512-hczbnoXt+MMv/d3gE+hjQhmkzLiKuoTo42YhUG7Bs9OSv2lg1fZHW1fGNRFP3wTi6OIbD044U1P9HK+AOgFH3g==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/stat@2.1.1(@chakra-ui/system@2.6.2)(react@18.2.0): + resolution: {integrity: sha512-LDn0d/LXQNbAn2KaR3F1zivsZCewY4Jsy1qShmfBMKwn6rI8yVlbvu6SiA3OpHS0FhxbsZxQI6HefEoIgtqY6Q==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/react-context': 2.1.0(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/stepper@2.3.1(@chakra-ui/system@2.6.2)(react@18.2.0): + resolution: {integrity: sha512-ky77lZbW60zYkSXhYz7kbItUpAQfEdycT0Q4bkHLxfqbuiGMf8OmgZOQkOB9uM4v0zPwy2HXhe0vq4Dd0xa55Q==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/react-context': 2.1.0(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/styled-system@2.9.2: + resolution: {integrity: sha512-To/Z92oHpIE+4nk11uVMWqo2GGRS86coeMmjxtpnErmWRdLcp1WVCVRAvn+ZwpLiNR+reWFr2FFqJRsREuZdAg==} + dependencies: + '@chakra-ui/shared-utils': 2.0.5 + csstype: 3.1.3 + lodash.mergewith: 4.6.2 + dev: false + + /@chakra-ui/switch@2.1.2(@chakra-ui/system@2.6.2)(framer-motion@11.0.3)(react@18.2.0): + resolution: {integrity: sha512-pgmi/CC+E1v31FcnQhsSGjJnOE2OcND4cKPyTE+0F+bmGm48Q/b5UmKD9Y+CmZsrt/7V3h8KNczowupfuBfIHA==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + framer-motion: '>=4.0.0' + react: '>=18' + dependencies: + '@chakra-ui/checkbox': 2.3.2(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) + framer-motion: 11.0.3(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/system@2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0): + resolution: {integrity: sha512-EGtpoEjLrUu4W1fHD+a62XR+hzC5YfsWm+6lO0Kybcga3yYEij9beegO0jZgug27V+Rf7vns95VPVP6mFd/DEQ==} + peerDependencies: + '@emotion/react': ^11.0.0 + '@emotion/styled': ^11.0.0 + react: '>=18' + dependencies: + '@chakra-ui/color-mode': 2.2.0(react@18.2.0) + '@chakra-ui/object-utils': 2.1.0 + '@chakra-ui/react-utils': 2.0.12(react@18.2.0) + '@chakra-ui/styled-system': 2.9.2 + '@chakra-ui/theme-utils': 2.0.21 + '@chakra-ui/utils': 2.0.15 + '@emotion/react': 11.11.3(@types/react@18.2.55)(react@18.2.0) + '@emotion/styled': 11.11.0(@emotion/react@11.11.3)(@types/react@18.2.55)(react@18.2.0) + react: 18.2.0 + react-fast-compare: 3.2.2 + dev: false + + /@chakra-ui/table@2.1.0(@chakra-ui/system@2.6.2)(react@18.2.0): + resolution: {integrity: sha512-o5OrjoHCh5uCLdiUb0Oc0vq9rIAeHSIRScc2ExTC9Qg/uVZl2ygLrjToCaKfaaKl1oQexIeAcZDKvPG8tVkHyQ==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/react-context': 2.1.0(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/tabs@3.0.0(@chakra-ui/system@2.6.2)(react@18.2.0): + resolution: {integrity: sha512-6Mlclp8L9lqXmsGWF5q5gmemZXOiOYuh0SGT/7PgJVNPz3LXREXlXg2an4MBUD8W5oTkduCX+3KTMCwRrVrDYw==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/clickable': 2.1.0(react@18.2.0) + '@chakra-ui/descendant': 3.1.0(react@18.2.0) + '@chakra-ui/lazy-utils': 2.0.5 + '@chakra-ui/react-children-utils': 2.0.6(react@18.2.0) + '@chakra-ui/react-context': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-controllable-state': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-safe-layout-effect': 2.1.0(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/tag@3.1.1(@chakra-ui/system@2.6.2)(react@18.2.0): + resolution: {integrity: sha512-Bdel79Dv86Hnge2PKOU+t8H28nm/7Y3cKd4Kfk9k3lOpUh4+nkSGe58dhRzht59lEqa4N9waCgQiBdkydjvBXQ==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/icon': 3.2.0(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/react-context': 2.1.0(react@18.2.0) + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/textarea@2.1.2(@chakra-ui/system@2.6.2)(react@18.2.0): + resolution: {integrity: sha512-ip7tvklVCZUb2fOHDb23qPy/Fr2mzDOGdkrpbNi50hDCiV4hFX02jdQJdi3ydHZUyVgZVBKPOJ+lT9i7sKA2wA==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/form-control': 2.2.0(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/theme-tools@2.1.2(@chakra-ui/styled-system@2.9.2): + resolution: {integrity: sha512-Qdj8ajF9kxY4gLrq7gA+Azp8CtFHGO9tWMN2wfF9aQNgG9AuMhPrUzMq9AMQ0MXiYcgNq/FD3eegB43nHVmXVA==} + peerDependencies: + '@chakra-ui/styled-system': '>=2.0.0' + dependencies: + '@chakra-ui/anatomy': 2.2.2 + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/styled-system': 2.9.2 + color2k: 2.0.3 + dev: false + + /@chakra-ui/theme-utils@2.0.21: + resolution: {integrity: sha512-FjH5LJbT794r0+VSCXB3lT4aubI24bLLRWB+CuRKHijRvsOg717bRdUN/N1fEmEpFnRVrbewttWh/OQs0EWpWw==} + dependencies: + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/styled-system': 2.9.2 + '@chakra-ui/theme': 3.3.1(@chakra-ui/styled-system@2.9.2) + lodash.mergewith: 4.6.2 + dev: false + + /@chakra-ui/theme@3.3.1(@chakra-ui/styled-system@2.9.2): + resolution: {integrity: sha512-Hft/VaT8GYnItGCBbgWd75ICrIrIFrR7lVOhV/dQnqtfGqsVDlrztbSErvMkoPKt0UgAkd9/o44jmZ6X4U2nZQ==} + peerDependencies: + '@chakra-ui/styled-system': '>=2.8.0' + dependencies: + '@chakra-ui/anatomy': 2.2.2 + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/styled-system': 2.9.2 + '@chakra-ui/theme-tools': 2.1.2(@chakra-ui/styled-system@2.9.2) + dev: false + + /@chakra-ui/toast@7.0.2(@chakra-ui/system@2.6.2)(framer-motion@11.0.3)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-yvRP8jFKRs/YnkuE41BVTq9nB2v/KDRmje9u6dgDmE5+1bFt3bwjdf9gVbif4u5Ve7F7BGk5E093ARRVtvLvXA==} + peerDependencies: + '@chakra-ui/system': 2.6.2 + framer-motion: '>=4.0.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@chakra-ui/alert': 2.2.2(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/close-button': 2.1.1(@chakra-ui/system@2.6.2)(react@18.2.0) + '@chakra-ui/portal': 2.1.0(react-dom@18.2.0)(react@18.2.0) + '@chakra-ui/react-context': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-timeout': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-update-effect': 2.1.0(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/styled-system': 2.9.2 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) + '@chakra-ui/theme': 3.3.1(@chakra-ui/styled-system@2.9.2) + framer-motion: 11.0.3(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@chakra-ui/tooltip@2.3.1(@chakra-ui/system@2.6.2)(framer-motion@11.0.3)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-Rh39GBn/bL4kZpuEMPPRwYNnccRCL+w9OqamWHIB3Qboxs6h8cOyXfIdGxjo72lvhu1QI/a4KFqkM3St+WfC0A==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + framer-motion: '>=4.0.0' + react: '>=18' + react-dom: '>=18' + dependencies: + '@chakra-ui/dom-utils': 2.1.0 + '@chakra-ui/popper': 3.1.0(react@18.2.0) + '@chakra-ui/portal': 2.1.0(react-dom@18.2.0)(react@18.2.0) + '@chakra-ui/react-types': 2.0.7(react@18.2.0) + '@chakra-ui/react-use-disclosure': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-event-listener': 2.1.0(react@18.2.0) + '@chakra-ui/react-use-merge-refs': 2.1.0(react@18.2.0) + '@chakra-ui/shared-utils': 2.0.5 + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) + framer-motion: 11.0.3(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@chakra-ui/transition@2.1.0(framer-motion@11.0.3)(react@18.2.0): + resolution: {integrity: sha512-orkT6T/Dt+/+kVwJNy7zwJ+U2xAZ3EU7M3XCs45RBvUnZDr/u9vdmaM/3D/rOpmQJWgQBwKPJleUXrYWUagEDQ==} + peerDependencies: + framer-motion: '>=4.0.0' + react: '>=18' + dependencies: + '@chakra-ui/shared-utils': 2.0.5 + framer-motion: 11.0.3(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@chakra-ui/utils@2.0.15: + resolution: {integrity: sha512-El4+jL0WSaYYs+rJbuYFDbjmfCcfGDmRY95GO4xwzit6YAPZBLcR65rOEwLps+XWluZTy1xdMrusg/hW0c1aAA==} + dependencies: + '@types/lodash.mergewith': 4.6.7 + css-box-model: 1.2.1 + framesync: 6.1.2 + lodash.mergewith: 4.6.2 + dev: false + + /@chakra-ui/visually-hidden@2.2.0(@chakra-ui/system@2.6.2)(react@18.2.0): + resolution: {integrity: sha512-KmKDg01SrQ7VbTD3+cPWf/UfpF5MSwm3v7MWi0n5t8HnnadT13MF0MJCDSXbBWnzLv1ZKJ6zlyAOeARWX+DpjQ==} + peerDependencies: + '@chakra-ui/system': '>=2.0.0' + react: '>=18' + dependencies: + '@chakra-ui/system': 2.6.2(@emotion/react@11.11.3)(@emotion/styled@11.11.0)(react@18.2.0) + react: 18.2.0 + dev: false + + /@cspotcode/source-map-support@0.8.1: + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/trace-mapping': 0.3.9 + dev: true + + /@develar/schema-utils@2.6.5: + resolution: {integrity: sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==} + engines: {node: '>= 8.9.0'} + dependencies: + ajv: 6.12.6 + ajv-keywords: 3.5.2(ajv@6.12.6) + dev: true + + /@discoveryjs/json-ext@0.5.7: + resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} + engines: {node: '>=10.0.0'} + dev: true + + /@electron/asar@3.2.8: + resolution: {integrity: sha512-cmskk5M06ewHMZAplSiF4AlME3IrnnZhKnWbtwKVLRkdJkKyUVjMLhDIiPIx/+6zQWVlKX/LtmK9xDme7540Sg==} + engines: {node: '>=10.12.0'} + hasBin: true + dependencies: + commander: 5.1.0 + glob: 7.2.3 + minimatch: 3.1.2 + dev: true + + /@electron/get@2.0.3: + resolution: {integrity: sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ==} + engines: {node: '>=12'} + dependencies: + debug: 4.3.4 + env-paths: 2.2.1 + fs-extra: 8.1.0 + got: 11.8.6 + progress: 2.0.3 + semver: 6.3.1 + sumchecker: 3.0.1 + optionalDependencies: + global-agent: 3.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@electron/notarize@2.1.0: + resolution: {integrity: sha512-Q02xem1D0sg4v437xHgmBLxI2iz/fc0D4K7fiVWHa/AnW8o7D751xyKNXgziA6HrTOme9ul1JfWN5ark8WH1xA==} + engines: {node: '>= 10.0.0'} + dependencies: + debug: 4.3.4 + fs-extra: 9.1.0 + promise-retry: 2.0.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@electron/notarize@2.2.1: + resolution: {integrity: sha512-aL+bFMIkpR0cmmj5Zgy0LMKEpgy43/hw5zadEArgmAMWWlKc5buwFvFT9G/o/YJkvXAJm5q3iuTuLaiaXW39sg==} + engines: {node: '>= 10.0.0'} + dependencies: + debug: 4.3.4 + fs-extra: 9.1.0 + promise-retry: 2.0.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@electron/osx-sign@1.0.5: + resolution: {integrity: sha512-k9ZzUQtamSoweGQDV2jILiRIHUu7lYlJ3c6IEmjv1hC17rclE+eb9U+f6UFlOOETo0JzY1HNlXy4YOlCvl+Lww==} + engines: {node: '>=12.0.0'} + hasBin: true + dependencies: + compare-version: 0.1.2 + debug: 4.3.4 + fs-extra: 10.1.0 + isbinaryfile: 4.0.10 + minimist: 1.2.8 + plist: 3.1.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@electron/rebuild@3.6.0: + resolution: {integrity: sha512-zF4x3QupRU3uNGaP5X1wjpmcjfw1H87kyqZ00Tc3HvriV+4gmOGuvQjGNkrJuXdsApssdNyVwLsy+TaeTGGcVw==} + engines: {node: '>=12.13.0'} + hasBin: true + dependencies: + '@malept/cross-spawn-promise': 2.0.0 + chalk: 4.1.2 + debug: 4.3.4 + detect-libc: 2.0.2 + fs-extra: 10.1.0 + got: 11.8.6 + node-abi: 3.54.0 + node-api-version: 0.2.0 + node-gyp: 9.4.1 + ora: 5.4.1 + read-binary-file-arch: 1.0.6 + semver: 7.6.0 + tar: 6.2.0 + yargs: 17.7.2 + transitivePeerDependencies: + - bluebird + - supports-color + dev: true + + /@electron/universal@1.4.1: + resolution: {integrity: sha512-lE/U3UNw1YHuowNbTmKNs9UlS3En3cPgwM5MI+agIgr/B1hSze9NdOP0qn7boZaI9Lph8IDv3/24g9IxnJP7aQ==} + engines: {node: '>=8.6'} + dependencies: + '@electron/asar': 3.2.8 + '@malept/cross-spawn-promise': 1.1.1 + debug: 4.3.4 + dir-compare: 3.3.0 + fs-extra: 9.1.0 + minimatch: 3.1.2 + plist: 3.1.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@emotion/babel-plugin@11.11.0: + resolution: {integrity: sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==} + dependencies: + '@babel/helper-module-imports': 7.22.15 + '@babel/runtime': 7.23.9 + '@emotion/hash': 0.9.1 + '@emotion/memoize': 0.8.1 + '@emotion/serialize': 1.1.3 + babel-plugin-macros: 3.1.0 + convert-source-map: 1.9.0 + escape-string-regexp: 4.0.0 + find-root: 1.1.0 + source-map: 0.5.7 + stylis: 4.2.0 + dev: false + + /@emotion/cache@11.11.0: + resolution: {integrity: sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==} + dependencies: + '@emotion/memoize': 0.8.1 + '@emotion/sheet': 1.2.2 + '@emotion/utils': 1.2.1 + '@emotion/weak-memoize': 0.3.1 + stylis: 4.2.0 + dev: false + + /@emotion/hash@0.9.1: + resolution: {integrity: sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==} + dev: false + + /@emotion/is-prop-valid@0.8.8: + resolution: {integrity: sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==} + requiresBuild: true + dependencies: + '@emotion/memoize': 0.7.4 + dev: false + optional: true + + /@emotion/is-prop-valid@1.2.1: + resolution: {integrity: sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw==} + dependencies: + '@emotion/memoize': 0.8.1 + dev: false + + /@emotion/memoize@0.7.4: + resolution: {integrity: sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==} + requiresBuild: true + dev: false + optional: true + + /@emotion/memoize@0.8.1: + resolution: {integrity: sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==} + dev: false + + /@emotion/react@11.11.3(@types/react@18.2.55)(react@18.2.0): + resolution: {integrity: sha512-Cnn0kuq4DoONOMcnoVsTOR8E+AdnKFf//6kUWc4LCdnxj31pZWn7rIULd6Y7/Js1PiPHzn7SKCM9vB/jBni8eA==} + peerDependencies: + '@types/react': '*' + react: '>=16.8.0' + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.23.9 + '@emotion/babel-plugin': 11.11.0 + '@emotion/cache': 11.11.0 + '@emotion/serialize': 1.1.3 + '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.2.0) + '@emotion/utils': 1.2.1 + '@emotion/weak-memoize': 0.3.1 + '@types/react': 18.2.55 + hoist-non-react-statics: 3.3.2 + react: 18.2.0 + dev: false + + /@emotion/serialize@1.1.3: + resolution: {integrity: sha512-iD4D6QVZFDhcbH0RAG1uVu1CwVLMWUkCvAqqlewO/rxf8+87yIBAlt4+AxMiiKPLs5hFc0owNk/sLLAOROw3cA==} + dependencies: + '@emotion/hash': 0.9.1 + '@emotion/memoize': 0.8.1 + '@emotion/unitless': 0.8.1 + '@emotion/utils': 1.2.1 + csstype: 3.1.3 + dev: false + + /@emotion/sheet@1.2.2: + resolution: {integrity: sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==} + dev: false + + /@emotion/styled@11.11.0(@emotion/react@11.11.3)(@types/react@18.2.55)(react@18.2.0): + resolution: {integrity: sha512-hM5Nnvu9P3midq5aaXj4I+lnSfNi7Pmd4EWk1fOZ3pxookaQTNew6bp4JaCBYM4HVFZF9g7UjJmsUmC2JlxOng==} + peerDependencies: + '@emotion/react': ^11.0.0-rc.0 + '@types/react': '*' + react: '>=16.8.0' + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.23.9 + '@emotion/babel-plugin': 11.11.0 + '@emotion/is-prop-valid': 1.2.1 + '@emotion/react': 11.11.3(@types/react@18.2.55)(react@18.2.0) + '@emotion/serialize': 1.1.3 + '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.2.0) + '@emotion/utils': 1.2.1 + '@types/react': 18.2.55 + react: 18.2.0 + dev: false + + /@emotion/unitless@0.8.1: + resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==} + dev: false + + /@emotion/use-insertion-effect-with-fallbacks@1.0.1(react@18.2.0): + resolution: {integrity: sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==} + peerDependencies: + react: '>=16.8.0' + dependencies: + react: 18.2.0 + dev: false + + /@emotion/utils@1.2.1: + resolution: {integrity: sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==} + dev: false + + /@emotion/weak-memoize@0.3.1: + resolution: {integrity: sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==} + dev: false + + /@eslint-community/eslint-utils@4.4.0(eslint@8.56.0): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 8.56.0 + eslint-visitor-keys: 3.4.3 + dev: true + + /@eslint-community/regexpp@4.10.0: + resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: true + + /@eslint/eslintrc@2.1.4: + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.6.1 + globals: 13.24.0 + ignore: 5.3.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@eslint/js@8.56.0: + resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@gar/promisify@1.1.3: + resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} + dev: true + + /@humanwhocodes/config-array@0.11.14: + resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': 2.0.2 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@humanwhocodes/module-importer@1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + dev: true + + /@humanwhocodes/object-schema@2.0.2: + resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} + dev: true + + /@hw-hmscore/analytics-web@6.9.9-301: + resolution: {integrity: sha512-37hZGpGxSXpGRMDmU1zFxK5+woDkKXjyHq0IFLWUGa2ChnQwHs1OUuYKSOt1JOrasa2dfyHGpAImETc4AR/JPA==} + dependencies: + '@agconnect/api': 1.3.2 + '@agconnect/core': 1.3.2 + '@agconnect/instance': 1.3.2 + '@agconnect/network': 1.3.2 + '@agconnect/storage': 1.3.2 + '@agconnect/util': 1.3.2 + transitivePeerDependencies: + - debug + dev: false + + /@isaacs/cliui@8.0.2: + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + dependencies: + string-width: 5.1.2 + string-width-cjs: /string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: /strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: /wrap-ansi@7.0.0 + dev: true + + /@istanbuljs/load-nyc-config@1.1.0: + resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} + engines: {node: '>=8'} + dependencies: + camelcase: 5.3.1 + find-up: 4.1.0 + get-package-type: 0.1.0 + js-yaml: 3.14.1 + resolve-from: 5.0.0 + dev: true + + /@istanbuljs/schema@0.1.3: + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + dev: true + + /@jest/console@29.7.0: + resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + '@types/node': 20.6.2 + chalk: 4.1.2 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + slash: 3.0.0 + dev: true + + /@jest/core@29.7.0(ts-node@10.9.2): + resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@jest/console': 29.7.0 + '@jest/reporters': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.6.2 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + ci-info: 3.9.0 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-changed-files: 29.7.0 + jest-config: 29.7.0(@types/node@20.6.2)(ts-node@10.9.2) + jest-haste-map: 29.7.0 + jest-message-util: 29.7.0 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-resolve-dependencies: 29.7.0 + jest-runner: 29.7.0 + jest-runtime: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + jest-watcher: 29.7.0 + micromatch: 4.0.5 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-ansi: 6.0.1 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + - ts-node + dev: true + + /@jest/environment@29.7.0: + resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/fake-timers': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.6.2 + jest-mock: 29.7.0 + dev: true + + /@jest/expect-utils@29.7.0: + resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + jest-get-type: 29.6.3 + dev: true + + /@jest/expect@29.7.0: + resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + expect: 29.7.0 + jest-snapshot: 29.7.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@jest/fake-timers@29.7.0: + resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + '@sinonjs/fake-timers': 10.3.0 + '@types/node': 20.6.2 + jest-message-util: 29.7.0 + jest-mock: 29.7.0 + jest-util: 29.7.0 + dev: true + + /@jest/globals@29.7.0: + resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/environment': 29.7.0 + '@jest/expect': 29.7.0 + '@jest/types': 29.6.3 + jest-mock: 29.7.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@jest/reporters@29.7.0: + resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@bcoe/v8-coverage': 0.2.3 + '@jest/console': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@jridgewell/trace-mapping': 0.3.22 + '@types/node': 20.6.2 + chalk: 4.1.2 + collect-v8-coverage: 1.0.2 + exit: 0.1.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-instrument: 6.0.1 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 4.0.1 + istanbul-reports: 3.1.6 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + jest-worker: 29.7.0 + slash: 3.0.0 + string-length: 4.0.2 + strip-ansi: 6.0.1 + v8-to-istanbul: 9.2.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@jest/schemas@29.6.3: + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@sinclair/typebox': 0.27.8 + dev: true + + /@jest/source-map@29.6.3: + resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jridgewell/trace-mapping': 0.3.22 + callsites: 3.1.0 + graceful-fs: 4.2.11 + dev: true + + /@jest/test-result@29.7.0: + resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/console': 29.7.0 + '@jest/types': 29.6.3 + '@types/istanbul-lib-coverage': 2.0.6 + collect-v8-coverage: 1.0.2 + dev: true + + /@jest/test-sequencer@29.7.0: + resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/test-result': 29.7.0 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + slash: 3.0.0 + dev: true + + /@jest/transform@29.7.0: + resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/core': 7.23.9 + '@jest/types': 29.6.3 + '@jridgewell/trace-mapping': 0.3.22 + babel-plugin-istanbul: 6.1.1 + chalk: 4.1.2 + convert-source-map: 2.0.0 + fast-json-stable-stringify: 2.1.0 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + jest-regex-util: 29.6.3 + jest-util: 29.7.0 + micromatch: 4.0.5 + pirates: 4.0.6 + slash: 3.0.0 + write-file-atomic: 4.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@jest/types@29.6.3: + resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': 29.6.3 + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 3.0.4 + '@types/node': 20.6.2 + '@types/yargs': 17.0.32 + chalk: 4.1.2 + dev: true + + /@jridgewell/gen-mapping@0.3.3: + resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.22 + dev: true + + /@jridgewell/resolve-uri@3.1.1: + resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/set-array@1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/source-map@0.3.5: + resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==} + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.22 + dev: true + + /@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + dev: true + + /@jridgewell/trace-mapping@0.3.22: + resolution: {integrity: sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==} + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /@jridgewell/trace-mapping@0.3.9: + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /@leichtgewicht/ip-codec@2.0.4: + resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==} + dev: true + + /@malept/cross-spawn-promise@1.1.1: + resolution: {integrity: sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==} + engines: {node: '>= 10'} + dependencies: + cross-spawn: 7.0.3 + dev: true + + /@malept/cross-spawn-promise@2.0.0: + resolution: {integrity: sha512-1DpKU0Z5ThltBwjNySMC14g0CkbyhCaz9FkhxqNsZI6uAPJXFS8cMXlBKo26FJ8ZuW6S9GCMcR9IO5k2X5/9Fg==} + engines: {node: '>= 12.13.0'} + dependencies: + cross-spawn: 7.0.3 + dev: true + + /@malept/flatpak-bundler@0.4.0: + resolution: {integrity: sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==} + engines: {node: '>= 10.0.0'} + dependencies: + debug: 4.3.4 + fs-extra: 9.1.0 + lodash: 4.17.21 + tmp-promise: 3.0.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@mdn/browser-compat-data@5.5.9: + resolution: {integrity: sha512-36jBin7kGrMn+RC/8k9IKeKvZyMweA0sDNIthUbzSGTQasfMIp2naJ1e+ISUtzu/7RrpDjRh4BkVTSO6f0XArA==} + dev: true + + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + dev: true + + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: true + + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.1 + dev: true + + /@npmcli/fs@2.1.2: + resolution: {integrity: sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + '@gar/promisify': 1.1.3 + semver: 7.6.0 + dev: true + + /@npmcli/move-file@2.0.1: + resolution: {integrity: sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + deprecated: This functionality has been moved to @npmcli/fs + dependencies: + mkdirp: 1.0.4 + rimraf: 3.0.2 + dev: true + + /@pkgjs/parseargs@0.11.0: + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + requiresBuild: true + dev: true + optional: true + + /@pkgr/core@0.1.1: + resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + dev: true + + /@pmmmwh/react-refresh-webpack-plugin@0.5.11(react-refresh@0.14.0)(webpack-dev-server@4.15.1)(webpack@5.90.1): + resolution: {integrity: sha512-7j/6vdTym0+qZ6u4XbSAxrWBGYSdCfTzySkj7WAFgDLmSyWlOrWvpyzxlFh5jtw9dn0oL/jtW+06XfFiisN3JQ==} + engines: {node: '>= 10.13'} + peerDependencies: + '@types/webpack': 4.x || 5.x + react-refresh: '>=0.10.0 <1.0.0' + sockjs-client: ^1.4.0 + type-fest: '>=0.17.0 <5.0.0' + webpack: '>=4.43.0 <6.0.0' + webpack-dev-server: 3.x || 4.x + webpack-hot-middleware: 2.x + webpack-plugin-serve: 0.x || 1.x + peerDependenciesMeta: + '@types/webpack': + optional: true + sockjs-client: + optional: true + type-fest: + optional: true + webpack-dev-server: + optional: true + webpack-hot-middleware: + optional: true + webpack-plugin-serve: + optional: true + dependencies: + ansi-html-community: 0.0.8 + common-path-prefix: 3.0.0 + core-js-pure: 3.35.1 + error-stack-parser: 2.1.4 + find-up: 5.0.0 + html-entities: 2.4.0 + loader-utils: 2.0.4 + react-refresh: 0.14.0 + schema-utils: 3.3.0 + source-map: 0.7.4 + webpack: 5.90.1(webpack-cli@5.1.4) + webpack-dev-server: 4.15.1(webpack-cli@5.1.4)(webpack@5.90.1) + dev: true + + /@polka/url@1.0.0-next.24: + resolution: {integrity: sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==} + dev: true + + /@popperjs/core@2.11.8: + resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} + dev: false + + /@remix-run/router@1.15.0: + resolution: {integrity: sha512-HOil5aFtme37dVQTB6M34G95kPM3MMuqSmIRVCC52eKV+Y/tGSqw9P3rWhlAx6A+mz+MoX+XxsGsNJbaI5qCgQ==} + engines: {node: '>=14.0.0'} + dev: false + + /@sinclair/typebox@0.27.8: + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + dev: true + + /@sindresorhus/is@4.6.0: + resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} + engines: {node: '>=10'} + dev: true + + /@sinonjs/commons@3.0.1: + resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} + dependencies: + type-detect: 4.0.8 + dev: true + + /@sinonjs/fake-timers@10.3.0: + resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} + dependencies: + '@sinonjs/commons': 3.0.1 + dev: true + + /@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.23.9): + resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + dev: true + + /@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.23.9): + resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + dev: true + + /@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.23.9): + resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + dev: true + + /@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.23.9): + resolution: {integrity: sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + dev: true + + /@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.23.9): + resolution: {integrity: sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + dev: true + + /@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.23.9): + resolution: {integrity: sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + dev: true + + /@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.23.9): + resolution: {integrity: sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + dev: true + + /@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.23.9): + resolution: {integrity: sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==} + engines: {node: '>=12'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + dev: true + + /@svgr/babel-preset@8.1.0(@babel/core@7.23.9): + resolution: {integrity: sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==} + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.9 + '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.23.9) + '@svgr/babel-plugin-remove-jsx-attribute': 8.0.0(@babel/core@7.23.9) + '@svgr/babel-plugin-remove-jsx-empty-expression': 8.0.0(@babel/core@7.23.9) + '@svgr/babel-plugin-replace-jsx-attribute-value': 8.0.0(@babel/core@7.23.9) + '@svgr/babel-plugin-svg-dynamic-title': 8.0.0(@babel/core@7.23.9) + '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.23.9) + '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.23.9) + '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.23.9) + dev: true + + /@svgr/core@8.1.0(typescript@5.3.3): + resolution: {integrity: sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==} + engines: {node: '>=14'} + dependencies: + '@babel/core': 7.23.9 + '@svgr/babel-preset': 8.1.0(@babel/core@7.23.9) + camelcase: 6.3.0 + cosmiconfig: 8.3.6(typescript@5.3.3) + snake-case: 3.0.4 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@svgr/hast-util-to-babel-ast@8.0.0: + resolution: {integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==} + engines: {node: '>=14'} + dependencies: + '@babel/types': 7.23.9 + entities: 4.5.0 + dev: true + + /@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0): + resolution: {integrity: sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==} + engines: {node: '>=14'} + peerDependencies: + '@svgr/core': '*' + dependencies: + '@babel/core': 7.23.9 + '@svgr/babel-preset': 8.1.0(@babel/core@7.23.9) + '@svgr/core': 8.1.0(typescript@5.3.3) + '@svgr/hast-util-to-babel-ast': 8.0.0 + svg-parser: 2.0.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0)(typescript@5.3.3): + resolution: {integrity: sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==} + engines: {node: '>=14'} + peerDependencies: + '@svgr/core': '*' + dependencies: + '@svgr/core': 8.1.0(typescript@5.3.3) + cosmiconfig: 8.3.6(typescript@5.3.3) + deepmerge: 4.3.1 + svgo: 3.2.0 + transitivePeerDependencies: + - typescript + dev: true + + /@svgr/webpack@8.1.0(typescript@5.3.3): + resolution: {integrity: sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==} + engines: {node: '>=14'} + dependencies: + '@babel/core': 7.23.9 + '@babel/plugin-transform-react-constant-elements': 7.23.3(@babel/core@7.23.9) + '@babel/preset-env': 7.23.9(@babel/core@7.23.9) + '@babel/preset-react': 7.23.3(@babel/core@7.23.9) + '@babel/preset-typescript': 7.23.3(@babel/core@7.23.9) + '@svgr/core': 8.1.0(typescript@5.3.3) + '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0) + '@svgr/plugin-svgo': 8.1.0(@svgr/core@8.1.0)(typescript@5.3.3) + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@szmarczak/http-timer@4.0.6: + resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} + engines: {node: '>=10'} + dependencies: + defer-to-connect: 2.0.1 + dev: true + + /@tanstack/query-core@4.36.1: + resolution: {integrity: sha512-DJSilV5+ytBP1FbFcEJovv4rnnm/CokuVvrBEtW/Va9DvuJ3HksbXUJEpI0aV1KtuL4ZoO9AVE6PyNLzF7tLeA==} + dev: false + + /@tanstack/react-query@4.36.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-y7ySVHFyyQblPl3J3eQBWpXZkliroki3ARnBKsdJchlgt7yJLRDUcf4B8soufgiYt3pEQIkBWBx1N9/ZPIeUWw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-native: '*' + peerDependenciesMeta: + react-dom: + optional: true + react-native: + optional: true + dependencies: + '@tanstack/query-core': 4.36.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + use-sync-external-store: 1.2.0(react@18.2.0) + dev: false + + /@teamsupercell/typings-for-css-modules-loader@2.5.2: + resolution: {integrity: sha512-3sqH2B4itcm5XgV1IHENt4NOaW7bOC1CwJr63vrdKWWyKVxNxtBM+ABVhJZYFCCVAwNy7ulA64z6HyQqw96m4A==} + dependencies: + camelcase: 5.3.1 + loader-utils: 1.4.2 + schema-utils: 2.7.1 + optionalDependencies: + prettier: 3.2.5 + dev: true + + /@testing-library/dom@9.3.4: + resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==} + engines: {node: '>=14'} + dependencies: + '@babel/code-frame': 7.23.5 + '@babel/runtime': 7.23.9 + '@types/aria-query': 5.0.4 + aria-query: 5.1.3 + chalk: 4.1.2 + dom-accessibility-api: 0.5.16 + lz-string: 1.5.0 + pretty-format: 27.5.1 + dev: true + + /@testing-library/jest-dom@6.4.2(@types/jest@29.5.12)(jest@29.7.0): + resolution: {integrity: sha512-CzqH0AFymEMG48CpzXFriYYkOjk6ZGPCLMhW9e9jg3KMCn5OfJecF8GtGW7yGfR/IgCe3SX8BSwjdzI6BBbZLw==} + engines: {node: '>=14', npm: '>=6', yarn: '>=1'} + peerDependencies: + '@jest/globals': '>= 28' + '@types/bun': latest + '@types/jest': '>= 28' + jest: '>= 28' + vitest: '>= 0.32' + peerDependenciesMeta: + '@jest/globals': + optional: true + '@types/bun': + optional: true + '@types/jest': + optional: true + jest: + optional: true + vitest: + optional: true + dependencies: + '@adobe/css-tools': 4.3.3 + '@babel/runtime': 7.23.9 + '@types/jest': 29.5.12 + aria-query: 5.3.0 + chalk: 3.0.0 + css.escape: 1.5.1 + dom-accessibility-api: 0.6.3 + jest: 29.7.0(@types/node@20.6.2)(ts-node@10.9.2) + lodash: 4.17.21 + redent: 3.0.0 + dev: true + + /@testing-library/react@14.2.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-sGdjws32ai5TLerhvzThYFbpnF9XtL65Cjf+gB0Dhr29BGqK+mAeN7SURSdu+eqgET4ANcWoC7FQpkaiGvBr+A==} + engines: {node: '>=14'} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + dependencies: + '@babel/runtime': 7.23.9 + '@testing-library/dom': 9.3.4 + '@types/react-dom': 18.2.19 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: true + + /@tootallnate/once@2.0.0: + resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} + engines: {node: '>= 10'} + dev: true + + /@trysound/sax@0.2.0: + resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} + engines: {node: '>=10.13.0'} + dev: true + + /@tsconfig/node10@1.0.9: + resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} + dev: true + + /@tsconfig/node12@1.0.11: + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + dev: true + + /@tsconfig/node14@1.0.3: + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + dev: true + + /@tsconfig/node16@1.0.4: + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + dev: true + + /@types/aria-query@5.0.4: + resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} + dev: true + + /@types/babel__core@7.20.5: + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + dependencies: + '@babel/parser': 7.23.9 + '@babel/types': 7.23.9 + '@types/babel__generator': 7.6.8 + '@types/babel__template': 7.4.4 + '@types/babel__traverse': 7.20.5 + dev: true + + /@types/babel__generator@7.6.8: + resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} + dependencies: + '@babel/types': 7.23.9 + dev: true + + /@types/babel__template@7.4.4: + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + dependencies: + '@babel/parser': 7.23.9 + '@babel/types': 7.23.9 + dev: true + + /@types/babel__traverse@7.20.5: + resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==} + dependencies: + '@babel/types': 7.23.9 + dev: true + + /@types/body-parser@1.19.5: + resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} + dependencies: + '@types/connect': 3.4.38 + '@types/node': 20.6.2 + dev: true + + /@types/bonjour@3.5.13: + resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==} + dependencies: + '@types/node': 20.6.2 + dev: true + + /@types/cacheable-request@6.0.3: + resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} + dependencies: + '@types/http-cache-semantics': 4.0.4 + '@types/keyv': 3.1.4 + '@types/node': 20.6.2 + '@types/responselike': 1.0.3 + dev: true + + /@types/connect-history-api-fallback@1.5.4: + resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} + dependencies: + '@types/express-serve-static-core': 4.17.43 + '@types/node': 20.6.2 + dev: true + + /@types/connect@3.4.38: + resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + dependencies: + '@types/node': 20.6.2 + dev: true + + /@types/debug@4.1.12: + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + dependencies: + '@types/ms': 0.7.34 + + /@types/eslint-scope@3.7.7: + resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} + dependencies: + '@types/eslint': 8.56.2 + '@types/estree': 1.0.5 + dev: true + + /@types/eslint@8.56.2: + resolution: {integrity: sha512-uQDwm1wFHmbBbCZCqAlq6Do9LYwByNZHWzXppSnay9SuwJ+VRbjkbLABer54kcPnMSlG6Fdiy2yaFXm/z9Z5gw==} + dependencies: + '@types/estree': 1.0.5 + '@types/json-schema': 7.0.15 + dev: true + + /@types/estree-jsx@1.0.5: + resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} + dependencies: + '@types/estree': 1.0.5 + dev: false + + /@types/estree@1.0.5: + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + + /@types/express-serve-static-core@4.17.43: + resolution: {integrity: sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==} + dependencies: + '@types/node': 20.6.2 + '@types/qs': 6.9.11 + '@types/range-parser': 1.2.7 + '@types/send': 0.17.4 + dev: true + + /@types/express@4.17.21: + resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} + dependencies: + '@types/body-parser': 1.19.5 + '@types/express-serve-static-core': 4.17.43 + '@types/qs': 6.9.11 + '@types/serve-static': 1.15.5 + dev: true + + /@types/fs-extra@9.0.13: + resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} + dependencies: + '@types/node': 20.6.2 + dev: true + + /@types/graceful-fs@4.1.9: + resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} + dependencies: + '@types/node': 20.6.2 + dev: true + + /@types/hast@3.0.4: + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + dependencies: + '@types/unist': 3.0.2 + dev: false + + /@types/html-minifier-terser@6.1.0: + resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==} + dev: true + + /@types/http-cache-semantics@4.0.4: + resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} + dev: true + + /@types/http-errors@2.0.4: + resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} + dev: true + + /@types/http-proxy@1.17.14: + resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==} + dependencies: + '@types/node': 20.6.2 + dev: true + + /@types/istanbul-lib-coverage@2.0.6: + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} + dev: true + + /@types/istanbul-lib-report@3.0.3: + resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} + dependencies: + '@types/istanbul-lib-coverage': 2.0.6 + dev: true + + /@types/istanbul-reports@3.0.4: + resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} + dependencies: + '@types/istanbul-lib-report': 3.0.3 + dev: true + + /@types/jest@29.5.12: + resolution: {integrity: sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==} + dependencies: + expect: 29.7.0 + pretty-format: 29.7.0 + dev: true + + /@types/jsdom@20.0.1: + resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} + dependencies: + '@types/node': 20.6.2 + '@types/tough-cookie': 4.0.5 + parse5: 7.1.2 + dev: true + + /@types/json-schema@7.0.15: + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + dev: true + + /@types/json5@0.0.29: + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + dev: true + + /@types/keyv@3.1.4: + resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} + dependencies: + '@types/node': 20.6.2 + dev: true + + /@types/lodash.mergewith@4.6.7: + resolution: {integrity: sha512-3m+lkO5CLRRYU0fhGRp7zbsGi6+BZj0uTVSwvcKU+nSlhjA9/QRNfuSGnD2mX6hQA7ZbmcCkzk5h4ZYGOtk14A==} + dependencies: + '@types/lodash': 4.14.202 + dev: false + + /@types/lodash@4.14.202: + resolution: {integrity: sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==} + dev: false + + /@types/mdast@4.0.3: + resolution: {integrity: sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==} + dependencies: + '@types/unist': 3.0.2 + dev: false + + /@types/mime@1.3.5: + resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} + dev: true + + /@types/mime@3.0.4: + resolution: {integrity: sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==} + dev: true + + /@types/ms@0.7.34: + resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} + + /@types/node-forge@1.3.11: + resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} + dependencies: + '@types/node': 20.6.2 + dev: true + + /@types/node@18.19.14: + resolution: {integrity: sha512-EnQ4Us2rmOS64nHDWr0XqAD8DsO6f3XR6lf9UIIrZQpUzPVdN/oPuEzfDWNHSyXLvoGgjuEm/sPwFGSSs35Wtg==} + dependencies: + undici-types: 5.26.5 + dev: true + + /@types/node@20.6.2: + resolution: {integrity: sha512-Y+/1vGBHV/cYk6OI1Na/LHzwnlNCAfU3ZNGrc1LdRe/LAIbdDPTTv/HU3M7yXN448aTVDq3eKRm2cg7iKLb8gw==} + dev: true + + /@types/parse-json@4.0.2: + resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} + dev: false + + /@types/plist@3.0.5: + resolution: {integrity: sha512-E6OCaRmAe4WDmWNsL/9RMqdkkzDCY1etutkflWk4c+AcjDU07Pcz1fQwTX0TQz+Pxqn9i4L1TU3UFpjnrcDgxA==} + requiresBuild: true + dependencies: + '@types/node': 20.6.2 + xmlbuilder: 15.1.1 + dev: true + optional: true + + /@types/prop-types@15.7.11: + resolution: {integrity: sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==} + + /@types/qs@6.9.11: + resolution: {integrity: sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==} + dev: true + + /@types/range-parser@1.2.7: + resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + dev: true + + /@types/react-dom@18.2.19: + resolution: {integrity: sha512-aZvQL6uUbIJpjZk4U8JZGbau9KDeAwMfmhyWorxgBkqDIEf6ROjRozcmPIicqsUwPUjbkDfHKgGee1Lq65APcA==} + dependencies: + '@types/react': 18.2.55 + dev: true + + /@types/react-test-renderer@18.0.7: + resolution: {integrity: sha512-1+ANPOWc6rB3IkSnElhjv6VLlKg2dSv/OWClUyZimbLsQyBn8Js9Vtdsi3UICJ2rIQ3k2la06dkB+C92QfhKmg==} + dependencies: + '@types/react': 18.2.55 + dev: true + + /@types/react@18.2.55: + resolution: {integrity: sha512-Y2Tz5P4yz23brwm2d7jNon39qoAtMMmalOQv6+fEFt1mT+FcM3D841wDpoUvFXhaYenuROCy3FZYqdTjM7qVyA==} + dependencies: + '@types/prop-types': 15.7.11 + '@types/scheduler': 0.16.8 + csstype: 3.1.3 + + /@types/responselike@1.0.3: + resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} + dependencies: + '@types/node': 20.6.2 + dev: true + + /@types/retry@0.12.0: + resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} + dev: true + + /@types/scheduler@0.16.8: + resolution: {integrity: sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==} + + /@types/semver@7.5.6: + resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} + dev: true + + /@types/send@0.17.4: + resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} + dependencies: + '@types/mime': 1.3.5 + '@types/node': 20.6.2 + dev: true + + /@types/serve-index@1.9.4: + resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==} + dependencies: + '@types/express': 4.17.21 + dev: true + + /@types/serve-static@1.15.5: + resolution: {integrity: sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==} + dependencies: + '@types/http-errors': 2.0.4 + '@types/mime': 3.0.4 + '@types/node': 20.6.2 + dev: true + + /@types/sockjs@0.3.36: + resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==} + dependencies: + '@types/node': 20.6.2 + dev: true + + /@types/stack-utils@2.0.3: + resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} + dev: true + + /@types/terser-webpack-plugin@5.2.0(webpack@5.90.1): + resolution: {integrity: sha512-iHDR2pRfFjGyDqCALX2tgUgFtGoQf2AJhKpC2XD1IMBQVJF2bny6WChGRDKj9eaZJl4F2RmvBhxJNtVPj7aTRw==} + deprecated: This is a stub types definition. terser-webpack-plugin provides its own type definitions, so you do not need this installed. + dependencies: + terser-webpack-plugin: 5.3.10(webpack@5.90.1) + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + - webpack + dev: true + + /@types/tough-cookie@4.0.5: + resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} + dev: true + + /@types/unist@2.0.10: + resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} + dev: false + + /@types/unist@3.0.2: + resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==} + dev: false + + /@types/verror@1.10.9: + resolution: {integrity: sha512-MLx9Z+9lGzwEuW16ubGeNkpBDE84RpB/NyGgg6z2BTpWzKkGU451cAY3UkUzZEp72RHF585oJ3V8JVNqIplcAQ==} + requiresBuild: true + dev: true + optional: true + + /@types/webpack-bundle-analyzer@4.7.0(webpack-cli@5.1.4): + resolution: {integrity: sha512-c5i2ThslSNSG8W891BRvOd/RoCjI2zwph8maD22b1adtSns20j+0azDDMCK06DiVrzTgnwiDl5Ntmu1YRJw8Sg==} + dependencies: + '@types/node': 20.6.2 + tapable: 2.2.1 + webpack: 5.90.1(webpack-cli@5.1.4) + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + - webpack-cli + dev: true + + /@types/ws@8.5.10: + resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} + dependencies: + '@types/node': 20.6.2 + dev: true + + /@types/yargs-parser@21.0.3: + resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} + dev: true + + /@types/yargs@17.0.32: + resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==} + dependencies: + '@types/yargs-parser': 21.0.3 + dev: true + + /@types/yauzl@2.10.3: + resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} + requiresBuild: true + dependencies: + '@types/node': 20.6.2 + dev: true + optional: true + + /@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@eslint-community/regexpp': 4.10.0 + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/type-utils': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.21.0 + debug: 4.3.4 + eslint: 8.56.0 + graphemer: 1.4.0 + ignore: 5.3.1 + natural-compare: 1.4.0 + semver: 7.6.0 + ts-api-utils: 1.2.1(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.21.0 + debug: 4.3.4 + eslint: 8.56.0 + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/scope-manager@5.62.0: + resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 + dev: true + + /@typescript-eslint/scope-manager@6.21.0: + resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 + dev: true + + /@typescript-eslint/type-utils@6.21.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) + '@typescript-eslint/utils': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + debug: 4.3.4 + eslint: 8.56.0 + ts-api-utils: 1.2.1(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/types@5.62.0: + resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@typescript-eslint/types@6.21.0: + resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} + engines: {node: ^16.0.0 || >=18.0.0} + dev: true + + /@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.3): + resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.6.0 + tsutils: 3.21.0(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/typescript-estree@6.21.0(typescript@5.3.3): + resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.3 + semver: 7.6.0 + ts-api-utils: 1.2.1(typescript@5.3.3) + typescript: 5.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/utils@5.62.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.6 + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.3) + eslint: 8.56.0 + eslint-scope: 5.1.1 + semver: 7.6.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/utils@6.21.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.6 + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) + eslint: 8.56.0 + semver: 7.6.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/visitor-keys@5.62.0: + resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.62.0 + eslint-visitor-keys: 3.4.3 + dev: true + + /@typescript-eslint/visitor-keys@6.21.0: + resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.21.0 + eslint-visitor-keys: 3.4.3 + dev: true + + /@ungap/structured-clone@1.2.0: + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + + /@webassemblyjs/ast@1.11.6: + resolution: {integrity: sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==} + dependencies: + '@webassemblyjs/helper-numbers': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + dev: true + + /@webassemblyjs/floating-point-hex-parser@1.11.6: + resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} + dev: true + + /@webassemblyjs/helper-api-error@1.11.6: + resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} + dev: true + + /@webassemblyjs/helper-buffer@1.11.6: + resolution: {integrity: sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==} + dev: true + + /@webassemblyjs/helper-numbers@1.11.6: + resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} + dependencies: + '@webassemblyjs/floating-point-hex-parser': 1.11.6 + '@webassemblyjs/helper-api-error': 1.11.6 + '@xtuc/long': 4.2.2 + dev: true + + /@webassemblyjs/helper-wasm-bytecode@1.11.6: + resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} + dev: true + + /@webassemblyjs/helper-wasm-section@1.11.6: + resolution: {integrity: sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==} + dependencies: + '@webassemblyjs/ast': 1.11.6 + '@webassemblyjs/helper-buffer': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/wasm-gen': 1.11.6 + dev: true + + /@webassemblyjs/ieee754@1.11.6: + resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} + dependencies: + '@xtuc/ieee754': 1.2.0 + dev: true + + /@webassemblyjs/leb128@1.11.6: + resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} + dependencies: + '@xtuc/long': 4.2.2 + dev: true + + /@webassemblyjs/utf8@1.11.6: + resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} + dev: true + + /@webassemblyjs/wasm-edit@1.11.6: + resolution: {integrity: sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==} + dependencies: + '@webassemblyjs/ast': 1.11.6 + '@webassemblyjs/helper-buffer': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/helper-wasm-section': 1.11.6 + '@webassemblyjs/wasm-gen': 1.11.6 + '@webassemblyjs/wasm-opt': 1.11.6 + '@webassemblyjs/wasm-parser': 1.11.6 + '@webassemblyjs/wast-printer': 1.11.6 + dev: true + + /@webassemblyjs/wasm-gen@1.11.6: + resolution: {integrity: sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==} + dependencies: + '@webassemblyjs/ast': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/ieee754': 1.11.6 + '@webassemblyjs/leb128': 1.11.6 + '@webassemblyjs/utf8': 1.11.6 + dev: true + + /@webassemblyjs/wasm-opt@1.11.6: + resolution: {integrity: sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==} + dependencies: + '@webassemblyjs/ast': 1.11.6 + '@webassemblyjs/helper-buffer': 1.11.6 + '@webassemblyjs/wasm-gen': 1.11.6 + '@webassemblyjs/wasm-parser': 1.11.6 + dev: true + + /@webassemblyjs/wasm-parser@1.11.6: + resolution: {integrity: sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==} + dependencies: + '@webassemblyjs/ast': 1.11.6 + '@webassemblyjs/helper-api-error': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/ieee754': 1.11.6 + '@webassemblyjs/leb128': 1.11.6 + '@webassemblyjs/utf8': 1.11.6 + dev: true + + /@webassemblyjs/wast-printer@1.11.6: + resolution: {integrity: sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==} + dependencies: + '@webassemblyjs/ast': 1.11.6 + '@xtuc/long': 4.2.2 + dev: true + + /@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.90.1): + resolution: {integrity: sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==} + engines: {node: '>=14.15.0'} + peerDependencies: + webpack: 5.x.x + webpack-cli: 5.x.x + dependencies: + webpack: 5.90.1(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.1)(webpack-dev-server@4.15.1)(webpack@5.90.1) + dev: true + + /@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.90.1): + resolution: {integrity: sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==} + engines: {node: '>=14.15.0'} + peerDependencies: + webpack: 5.x.x + webpack-cli: 5.x.x + dependencies: + webpack: 5.90.1(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.1)(webpack-dev-server@4.15.1)(webpack@5.90.1) + dev: true + + /@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack-dev-server@4.15.1)(webpack@5.90.1): + resolution: {integrity: sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==} + engines: {node: '>=14.15.0'} + peerDependencies: + webpack: 5.x.x + webpack-cli: 5.x.x + webpack-dev-server: '*' + peerDependenciesMeta: + webpack-dev-server: + optional: true + dependencies: + webpack: 5.90.1(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.1)(webpack-dev-server@4.15.1)(webpack@5.90.1) + webpack-dev-server: 4.15.1(webpack-cli@5.1.4)(webpack@5.90.1) + dev: true + + /@xmldom/xmldom@0.8.10: + resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==} + engines: {node: '>=10.0.0'} + requiresBuild: true + dev: true + + /@xtuc/ieee754@1.2.0: + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + dev: true + + /@xtuc/long@4.2.2: + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + dev: true + + /@zag-js/dom-query@0.16.0: + resolution: {integrity: sha512-Oqhd6+biWyKnhKwFFuZrrf6lxBz2tX2pRQe6grUnYwO6HJ8BcbqZomy2lpOdr+3itlaUqx+Ywj5E5ZZDr/LBfQ==} + dev: false + + /@zag-js/element-size@0.10.5: + resolution: {integrity: sha512-uQre5IidULANvVkNOBQ1tfgwTQcGl4hliPSe69Fct1VfYb2Fd0jdAcGzqQgPhfrXFpR62MxLPB7erxJ/ngtL8w==} + dev: false + + /@zag-js/focus-visible@0.16.0: + resolution: {integrity: sha512-a7U/HSopvQbrDU4GLerpqiMcHKEkQkNPeDZJWz38cw/6Upunh41GjHetq5TB84hxyCaDzJ6q2nEdNoBQfC0FKA==} + dependencies: + '@zag-js/dom-query': 0.16.0 + dev: false + + /abab@2.0.6: + resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} + deprecated: Use your platform's native atob() and btoa() methods instead + dev: true + + /abbrev@1.1.1: + resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} + dev: true + + /accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 + dev: true + + /acorn-globals@7.0.1: + resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} + dependencies: + acorn: 8.11.3 + acorn-walk: 8.3.2 + dev: true + + /acorn-import-assertions@1.9.0(acorn@8.11.3): + resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} + peerDependencies: + acorn: ^8 + dependencies: + acorn: 8.11.3 + dev: true + + /acorn-jsx@5.3.2(acorn@8.11.3): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.11.3 + dev: true + + /acorn-walk@8.3.2: + resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} + engines: {node: '>=0.4.0'} + dev: true + + /acorn@8.11.3: + resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + /address@1.2.2: + resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} + engines: {node: '>= 10.0.0'} + dev: true + + /agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + dependencies: + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /agentkeepalive@4.5.0: + resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} + engines: {node: '>= 8.0.0'} + dependencies: + humanize-ms: 1.2.1 + dev: true + + /aggregate-error@3.1.0: + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} + dependencies: + clean-stack: 2.2.0 + indent-string: 4.0.0 + dev: true + + /ajv-formats@2.1.1(ajv@8.12.0): + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + dependencies: + ajv: 8.12.0 + + /ajv-keywords@3.5.2(ajv@6.12.6): + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + peerDependencies: + ajv: ^6.9.1 + dependencies: + ajv: 6.12.6 + dev: true + + /ajv-keywords@5.1.0(ajv@8.12.0): + resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} + peerDependencies: + ajv: ^8.8.2 + dependencies: + ajv: 8.12.0 + fast-deep-equal: 3.1.3 + dev: true + + /ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + dev: true + + /ajv@8.12.0: + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + + /ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.21.3 + dev: true + + /ansi-html-community@0.0.8: + resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} + engines: {'0': node >= 0.8.0} + hasBin: true + dev: true + + /ansi-regex@2.1.1: + resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} + engines: {node: '>=0.10.0'} + dev: true + + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + dev: true + + /ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + dev: true + + /ansi-styles@2.2.1: + resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==} + engines: {node: '>=0.10.0'} + dev: true + + /ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + dev: true + + /ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + dev: true + + /ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + dev: true + + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + dev: true + + /app-builder-bin@4.0.0: + resolution: {integrity: sha512-xwdG0FJPQMe0M0UA4Tz0zEB8rBJTRA5a476ZawAqiBkMv16GRK5xpXThOjMaEOFnZ6zabejjG4J3da0SXG63KA==} + dev: true + + /app-builder-lib@24.9.1: + resolution: {integrity: sha512-Q1nYxZcio4r+W72cnIRVYofEAyjBd3mG47o+zms8HlD51zWtA/YxJb01Jei5F+jkWhge/PTQK+uldsPh6d0/4g==} + engines: {node: '>=14.0.0'} + dependencies: + 7zip-bin: 5.2.0 + '@develar/schema-utils': 2.6.5 + '@electron/notarize': 2.1.0 + '@electron/osx-sign': 1.0.5 + '@electron/universal': 1.4.1 + '@malept/flatpak-bundler': 0.4.0 + '@types/fs-extra': 9.0.13 + async-exit-hook: 2.0.1 + bluebird-lst: 1.0.9 + builder-util: 24.8.1 + builder-util-runtime: 9.2.3 + chromium-pickle-js: 0.2.0 + debug: 4.3.4 + ejs: 3.1.9 + electron-publish: 24.8.1 + form-data: 4.0.0 + fs-extra: 10.1.0 + hosted-git-info: 4.1.0 + is-ci: 3.0.1 + isbinaryfile: 5.0.0 + js-yaml: 4.1.0 + lazy-val: 1.0.5 + minimatch: 5.1.6 + read-config-file: 6.3.2 + sanitize-filename: 1.6.3 + semver: 7.6.0 + tar: 6.2.0 + temp-file: 3.4.0 + transitivePeerDependencies: + - supports-color + dev: true + + /aproba@2.0.0: + resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} + dev: true + + /are-we-there-yet@3.0.1: + resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + delegates: 1.0.0 + readable-stream: 3.6.2 + dev: true + + /arg@4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + dev: true + + /argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + dependencies: + sprintf-js: 1.0.3 + dev: true + + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + /aria-hidden@1.2.3: + resolution: {integrity: sha512-xcLxITLe2HYa1cnYnwCjkOO1PqUHQpozB8x9AR0OgWN2woOBi5kSDVxKfd0b7sb1hw5qFeJhXm9H1nu3xSfLeQ==} + engines: {node: '>=10'} + dependencies: + tslib: 2.6.2 + dev: false + + /aria-query@5.1.3: + resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} + dependencies: + deep-equal: 2.2.3 + dev: true + + /aria-query@5.3.0: + resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + dependencies: + dequal: 2.0.3 + dev: true + + /array-buffer-byte-length@1.0.1: + resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.6 + is-array-buffer: 3.0.4 + dev: true + + /array-flatten@1.1.1: + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + dev: true + + /array-includes@3.1.7: + resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.6 + define-properties: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.4 + is-string: 1.0.7 + dev: true + + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: true + + /array.prototype.filter@1.0.3: + resolution: {integrity: sha512-VizNcj/RGJiUyQBgzwxzE5oHdeuXY5hSbbmKMlphj1cy1Vl7Pn2asCGbSrru6hSQjmCzqTBPVWAF/whmEOVHbw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.6 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-array-method-boxes-properly: 1.0.0 + is-string: 1.0.7 + dev: true + + /array.prototype.find@2.2.2: + resolution: {integrity: sha512-DRumkfW97iZGOfn+lIXbkVrXL04sfYKX+EfOodo8XboR5sxPDVvOjZTF/rysusa9lmhmSOeD6Vp6RKQP+eP4Tg==} + dependencies: + call-bind: 1.0.6 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.2 + dev: true + + /array.prototype.findlastindex@1.2.4: + resolution: {integrity: sha512-hzvSHUshSpCflDR1QMUBLHGHP1VIEBegT4pix9H/Z92Xw3ySoy6c2qh7lJWTJnRJ8JCZ9bJNCgTyYaJGcJu6xQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.6 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-errors: 1.3.0 + es-shim-unscopables: 1.0.2 + dev: true + + /array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.6 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.2 + dev: true + + /array.prototype.flatmap@1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.6 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.2 + dev: true + + /array.prototype.tosorted@1.1.3: + resolution: {integrity: sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==} + dependencies: + call-bind: 1.0.6 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-errors: 1.3.0 + es-shim-unscopables: 1.0.2 + dev: true + + /arraybuffer.prototype.slice@1.0.3: + resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.1 + call-bind: 1.0.6 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + is-array-buffer: 3.0.4 + is-shared-array-buffer: 1.0.2 + dev: true + + /assert-plus@1.0.0: + resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} + engines: {node: '>=0.8'} + requiresBuild: true + dev: true + optional: true + + /ast-metadata-inferer@0.8.0: + resolution: {integrity: sha512-jOMKcHht9LxYIEQu+RVd22vtgrPaVCtDRQ/16IGmurdzxvYbDd5ynxjnyrzLnieG96eTcAyaoj/wN/4/1FyyeA==} + dependencies: + '@mdn/browser-compat-data': 5.5.9 + dev: true + + /ast-types-flow@0.0.7: + resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==} + dev: true + + /ast-types-flow@0.0.8: + resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} + dev: true + + /astral-regex@2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} + requiresBuild: true + dev: true + optional: true + + /async-exit-hook@2.0.1: + resolution: {integrity: sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==} + engines: {node: '>=0.12.0'} + dev: true + + /async@3.2.5: + resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} + dev: true + + /asynciterator.prototype@1.0.0: + resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==} + dependencies: + has-symbols: 1.0.3 + dev: true + + /asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + /at-least-node@1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} + dev: true + + /atomically@1.7.0: + resolution: {integrity: sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w==} + engines: {node: '>=10.12.0'} + dev: false + + /available-typed-arrays@1.0.6: + resolution: {integrity: sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg==} + engines: {node: '>= 0.4'} + dev: true + + /axe-core@4.7.0: + resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==} + engines: {node: '>=4'} + dev: true + + /axe-core@4.8.4: + resolution: {integrity: sha512-CZLSKisu/bhJ2awW4kJndluz2HLZYIHh5Uy1+ZwDRkJi69811xgIXXfdU9HSLX0Th+ILrHj8qfL/5wzamsFtQg==} + engines: {node: '>=4'} + dev: true + + /axios@0.21.4: + resolution: {integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==} + dependencies: + follow-redirects: 1.15.5 + transitivePeerDependencies: + - debug + dev: false + + /axios@1.6.7: + resolution: {integrity: sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==} + dependencies: + follow-redirects: 1.15.5 + form-data: 4.0.0 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + dev: false + + /axobject-query@3.2.1: + resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} + dependencies: + dequal: 2.0.3 + dev: true + + /babel-jest@29.7.0(@babel/core@7.23.9): + resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.8.0 + dependencies: + '@babel/core': 7.23.9 + '@jest/transform': 29.7.0 + '@types/babel__core': 7.20.5 + babel-plugin-istanbul: 6.1.1 + babel-preset-jest: 29.6.3(@babel/core@7.23.9) + chalk: 4.1.2 + graceful-fs: 4.2.11 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-istanbul@6.1.1: + resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} + engines: {node: '>=8'} + dependencies: + '@babel/helper-plugin-utils': 7.22.5 + '@istanbuljs/load-nyc-config': 1.1.0 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-instrument: 5.2.1 + test-exclude: 6.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-jest-hoist@29.6.3: + resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/template': 7.23.9 + '@babel/types': 7.23.9 + '@types/babel__core': 7.20.5 + '@types/babel__traverse': 7.20.5 + dev: true + + /babel-plugin-macros@3.1.0: + resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} + engines: {node: '>=10', npm: '>=6'} + dependencies: + '@babel/runtime': 7.23.9 + cosmiconfig: 7.1.0 + resolve: 1.22.8 + dev: false + + /babel-plugin-polyfill-corejs2@0.4.8(@babel/core@7.23.9): + resolution: {integrity: sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/compat-data': 7.23.5 + '@babel/core': 7.23.9 + '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.23.9) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-polyfill-corejs3@0.9.0(@babel/core@7.23.9): + resolution: {integrity: sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.23.9) + core-js-compat: 3.35.1 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-polyfill-regenerator@0.5.5(@babel/core@7.23.9): + resolution: {integrity: sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.23.9 + '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.23.9) + transitivePeerDependencies: + - supports-color + dev: true + + /babel-preset-current-node-syntax@1.0.1(@babel/core@7.23.9): + resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.9 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.9) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.9) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.9) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.9) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.9) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.9) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.9) + dev: true + + /babel-preset-jest@29.6.3(@babel/core@7.23.9): + resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.9 + babel-plugin-jest-hoist: 29.6.3 + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.9) + dev: true + + /bail@2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + dev: false + + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + dev: true + + /base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + dev: true + + /batch@0.6.1: + resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} + dev: true + + /big.js@5.2.2: + resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} + dev: true + + /binary-extensions@2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + dev: true + + /bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + dev: true + + /bluebird-lst@1.0.9: + resolution: {integrity: sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==} + dependencies: + bluebird: 3.7.2 + dev: true + + /bluebird@3.7.2: + resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} + dev: true + + /body-parser@1.20.1: + resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.11.0 + raw-body: 2.5.1 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /bonjour-service@1.2.1: + resolution: {integrity: sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==} + dependencies: + fast-deep-equal: 3.1.3 + multicast-dns: 7.2.5 + dev: true + + /boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + dev: true + + /boolean@3.2.0: + resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} + requiresBuild: true + dev: true + optional: true + + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + dev: true + + /brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + dependencies: + balanced-match: 1.0.2 + dev: true + + /braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + dev: true + + /browserslist-config-erb@0.0.3(electron@26.6.9): + resolution: {integrity: sha512-y47DryCY92lxkKyRVMlaZvXAolIY7U33q9e4CS0MdWeJkoAht7OzsrkfdZFCBOP3H5q1EVUxS0L7VVsKM6gZCQ==} + peerDependencies: + electron: '>=12.0.0' + dependencies: + electron: 26.6.9 + dev: true + + /browserslist@4.22.3: + resolution: {integrity: sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001585 + electron-to-chromium: 1.4.661 + node-releases: 2.0.14 + update-browserslist-db: 1.0.13(browserslist@4.22.3) + dev: true + + /bs-logger@0.2.6: + resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} + engines: {node: '>= 6'} + dependencies: + fast-json-stable-stringify: 2.1.0 + dev: true + + /bser@2.1.1: + resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} + dependencies: + node-int64: 0.4.0 + dev: true + + /buffer-crc32@0.2.13: + resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + dev: true + + /buffer-equal@1.0.1: + resolution: {integrity: sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==} + engines: {node: '>=0.4'} + dev: true + + /buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + /buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: true + + /builder-util-runtime@9.2.3: + resolution: {integrity: sha512-FGhkqXdFFZ5dNC4C+yuQB9ak311rpGAw+/ASz8ZdxwODCv1GGMWgLDeofRkdi0F3VCHQEWy/aXcJQozx2nOPiw==} + engines: {node: '>=12.0.0'} + dependencies: + debug: 4.3.4 + sax: 1.3.0 + transitivePeerDependencies: + - supports-color + + /builder-util@24.8.1: + resolution: {integrity: sha512-ibmQ4BnnqCnJTNrdmdNlnhF48kfqhNzSeqFMXHLIl+o9/yhn6QfOaVrloZ9YUu3m0k3rexvlT5wcki6LWpjTZw==} + dependencies: + 7zip-bin: 5.2.0 + '@types/debug': 4.1.12 + app-builder-bin: 4.0.0 + bluebird-lst: 1.0.9 + builder-util-runtime: 9.2.3 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + fs-extra: 10.1.0 + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + is-ci: 3.0.1 + js-yaml: 4.1.0 + source-map-support: 0.5.21 + stat-mode: 1.0.0 + temp-file: 3.4.0 + transitivePeerDependencies: + - supports-color + dev: true + + /bytes@3.0.0: + resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} + engines: {node: '>= 0.8'} + dev: true + + /bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + dev: true + + /cacache@16.1.3: + resolution: {integrity: sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + '@npmcli/fs': 2.1.2 + '@npmcli/move-file': 2.0.1 + chownr: 2.0.0 + fs-minipass: 2.1.0 + glob: 8.1.0 + infer-owner: 1.0.4 + lru-cache: 7.18.3 + minipass: 3.3.6 + minipass-collect: 1.0.2 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + mkdirp: 1.0.4 + p-map: 4.0.0 + promise-inflight: 1.0.1 + rimraf: 3.0.2 + ssri: 9.0.1 + tar: 6.2.0 + unique-filename: 2.0.1 + transitivePeerDependencies: + - bluebird + dev: true + + /cacheable-lookup@5.0.4: + resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} + engines: {node: '>=10.6.0'} + dev: true + + /cacheable-request@7.0.4: + resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==} + engines: {node: '>=8'} + dependencies: + clone-response: 1.0.3 + get-stream: 5.2.0 + http-cache-semantics: 4.1.1 + keyv: 4.5.4 + lowercase-keys: 2.0.0 + normalize-url: 6.1.0 + responselike: 2.0.1 + dev: true + + /call-bind@1.0.6: + resolution: {integrity: sha512-Mj50FLHtlsoVfRfnHaZvyrooHcrlceNZdL/QBvJJVd9Ta55qCQK0gs4ss2oZDeV9zFCs6ewzYgVE5yfVmfFpVg==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + set-function-length: 1.2.1 + dev: true + + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + /camel-case@4.1.2: + resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} + dependencies: + pascal-case: 3.1.2 + tslib: 2.6.2 + dev: true + + /camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + dev: true + + /camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + dev: true + + /caniuse-api@3.0.0: + resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} + dependencies: + browserslist: 4.22.3 + caniuse-lite: 1.0.30001585 + lodash.memoize: 4.1.2 + lodash.uniq: 4.5.0 + dev: true + + /caniuse-lite@1.0.30001585: + resolution: {integrity: sha512-yr2BWR1yLXQ8fMpdS/4ZZXpseBgE7o4g41x3a6AJOqZuOi+iE/WdJYAuZ6Y95i4Ohd2Y+9MzIWRR+uGABH4s3Q==} + dev: true + + /ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + dev: false + + /chalk@1.1.3: + resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-styles: 2.2.1 + escape-string-regexp: 1.0.5 + has-ansi: 2.0.0 + strip-ansi: 3.0.1 + supports-color: 2.0.0 + dev: true + + /chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + + /chalk@3.0.0: + resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} + engines: {node: '>=8'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + + /char-regex@1.0.2: + resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} + engines: {node: '>=10'} + dev: true + + /character-entities-html4@2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + dev: false + + /character-entities-legacy@3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + dev: false + + /character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + dev: false + + /character-reference-invalid@2.0.1: + resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} + dev: false + + /chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /chownr@2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} + dev: true + + /chrome-trace-event@1.0.3: + resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} + engines: {node: '>=6.0'} + dev: true + + /chromium-pickle-js@0.2.0: + resolution: {integrity: sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw==} + dev: true + + /ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + engines: {node: '>=8'} + dev: true + + /cjs-module-lexer@1.2.3: + resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==} + dev: true + + /clean-css@5.3.3: + resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==} + engines: {node: '>= 10.0'} + dependencies: + source-map: 0.6.1 + dev: true + + /clean-stack@2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} + dev: true + + /cli-cursor@3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} + dependencies: + restore-cursor: 3.1.0 + dev: true + + /cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} + dev: true + + /cli-truncate@2.1.0: + resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} + engines: {node: '>=8'} + requiresBuild: true + dependencies: + slice-ansi: 3.0.0 + string-width: 4.2.3 + dev: true + optional: true + + /cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: true + + /clone-deep@4.0.1: + resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} + engines: {node: '>=6'} + dependencies: + is-plain-object: 2.0.4 + kind-of: 6.0.3 + shallow-clone: 3.0.1 + dev: true + + /clone-response@1.0.3: + resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} + dependencies: + mimic-response: 1.0.1 + dev: true + + /clone@1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} + dev: true + + /co@4.6.0: + resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + dev: true + + /collect-v8-coverage@1.0.2: + resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} + dev: true + + /color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 + + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + dev: true + + /color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: true + + /color-support@1.1.3: + resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} + hasBin: true + dev: true + + /color2k@2.0.3: + resolution: {integrity: sha512-zW190nQTIoXcGCaU08DvVNFTmQhUpnJfVuAKfWqUQkflXKpaDdpaYoM0iluLS9lgJNHyBF58KKA2FBEwkD7wog==} + dev: false + + /colord@2.9.3: + resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} + dev: true + + /colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + dev: true + + /combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + dependencies: + delayed-stream: 1.0.0 + + /comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + dev: false + + /commander@10.0.1: + resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} + engines: {node: '>=14'} + dev: true + + /commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + dev: true + + /commander@5.1.0: + resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} + engines: {node: '>= 6'} + dev: true + + /commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} + dev: true + + /commander@8.3.0: + resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} + engines: {node: '>= 12'} + dev: true + + /common-path-prefix@3.0.0: + resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} + dev: true + + /common-tags@1.8.2: + resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==} + engines: {node: '>=4.0.0'} + dev: true + + /compare-version@0.1.2: + resolution: {integrity: sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A==} + engines: {node: '>=0.10.0'} + dev: true + + /compressible@2.0.18: + resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + dev: true + + /compression@1.7.4: + resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} + engines: {node: '>= 0.8.0'} + dependencies: + accepts: 1.3.8 + bytes: 3.0.0 + compressible: 2.0.18 + debug: 2.6.9 + on-headers: 1.0.2 + safe-buffer: 5.1.2 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /compute-scroll-into-view@3.0.3: + resolution: {integrity: sha512-nadqwNxghAGTamwIqQSG433W6OADZx2vCo3UXHNrzTRHK/htu+7+L0zhjEoaeaQVNAi3YgqWDv8+tzf0hRfR+A==} + dev: false + + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + dev: true + + /concurrently@8.2.2: + resolution: {integrity: sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==} + engines: {node: ^14.13.0 || >=16.0.0} + hasBin: true + dependencies: + chalk: 4.1.2 + date-fns: 2.30.0 + lodash: 4.17.21 + rxjs: 7.8.1 + shell-quote: 1.8.1 + spawn-command: 0.0.2 + supports-color: 8.1.1 + tree-kill: 1.2.2 + yargs: 17.7.2 + dev: true + + /conf@10.2.0: + resolution: {integrity: sha512-8fLl9F04EJqjSqH+QjITQfJF8BrOVaYr1jewVgSRAEWePfxT0sku4w2hrGQ60BC/TNLGQ2pgxNlTbWQmMPFvXg==} + engines: {node: '>=12'} + dependencies: + ajv: 8.12.0 + ajv-formats: 2.1.1(ajv@8.12.0) + atomically: 1.7.0 + debounce-fn: 4.0.0 + dot-prop: 6.0.1 + env-paths: 2.2.1 + json-schema-typed: 7.0.3 + onetime: 5.1.2 + pkg-up: 3.1.0 + semver: 7.6.0 + dev: false + + /config-file-ts@0.2.6: + resolution: {integrity: sha512-6boGVaglwblBgJqGyxm4+xCmEGcWgnWHSWHY5jad58awQhB6gftq0G8HbzU39YqCIYHMLAiL1yjwiZ36m/CL8w==} + dependencies: + glob: 10.3.10 + typescript: 5.3.3 + dev: true + + /confusing-browser-globals@1.0.11: + resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==} + dev: true + + /connect-history-api-fallback@2.0.0: + resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} + engines: {node: '>=0.8'} + dev: true + + /console-control-strings@1.1.0: + resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} + dev: true + + /content-disposition@0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + dev: true + + /convert-source-map@1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + dev: false + + /convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + dev: true + + /cookie-signature@1.0.6: + resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + dev: true + + /cookie@0.5.0: + resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} + engines: {node: '>= 0.6'} + dev: true + + /copy-to-clipboard@3.3.3: + resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} + dependencies: + toggle-selection: 1.0.6 + dev: false + + /core-js-compat@3.35.1: + resolution: {integrity: sha512-sftHa5qUJY3rs9Zht1WEnmkvXputCyDBczPnr7QDgL8n3qrF3CMXY4VPSYtOLLiOUJcah2WNXREd48iOl6mQIw==} + dependencies: + browserslist: 4.22.3 + dev: true + + /core-js-pure@3.35.1: + resolution: {integrity: sha512-zcIdi/CL3MWbBJYo5YCeVAAx+Sy9yJE9I3/u9LkFABwbeaPhTMRWraM8mYFp9jW5Z50hOy7FVzCc8dCrpZqtIQ==} + requiresBuild: true + dev: true + + /core-js@3.35.1: + resolution: {integrity: sha512-IgdsbxNyMskrTFxa9lWHyMwAJU5gXOPP+1yO+K59d50VLVAIDAbs7gIv705KzALModfK3ZrSZTPNpC0PQgIZuw==} + requiresBuild: true + dev: true + + /core-util-is@1.0.2: + resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} + requiresBuild: true + dev: true + optional: true + + /core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + dev: true + + /cosmiconfig@7.1.0: + resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} + engines: {node: '>=10'} + dependencies: + '@types/parse-json': 4.0.2 + import-fresh: 3.3.0 + parse-json: 5.2.0 + path-type: 4.0.0 + yaml: 1.10.2 + dev: false + + /cosmiconfig@8.3.6(typescript@5.3.3): + resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + import-fresh: 3.3.0 + js-yaml: 4.1.0 + parse-json: 5.2.0 + path-type: 4.0.0 + typescript: 5.3.3 + dev: true + + /crc@3.8.0: + resolution: {integrity: sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==} + requiresBuild: true + dependencies: + buffer: 5.7.1 + dev: true + optional: true + + /create-jest@29.7.0(@types/node@20.6.2)(ts-node@10.9.2): + resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + dependencies: + '@jest/types': 29.6.3 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-config: 29.7.0(@types/node@20.6.2)(ts-node@10.9.2) + jest-util: 29.7.0 + prompts: 2.4.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + dev: true + + /create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + dev: true + + /cross-env@7.0.3: + resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} + engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} + hasBin: true + dependencies: + cross-spawn: 7.0.3 + dev: true + + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: true + + /css-box-model@1.2.1: + resolution: {integrity: sha512-a7Vr4Q/kd/aw96bnJG332W9V9LkJO69JRcaCYDUqjp6/z0w6VcZjgAcTbgFxEPfBgdnAwlh3iwu+hLopa+flJw==} + dependencies: + tiny-invariant: 1.3.1 + dev: false + + /css-declaration-sorter@7.1.1(postcss@8.4.35): + resolution: {integrity: sha512-dZ3bVTEEc1vxr3Bek9vGwfB5Z6ESPULhcRvO472mfjVnj8jRcTnKO8/JTczlvxM10Myb+wBM++1MtdO76eWcaQ==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.0.9 + dependencies: + postcss: 8.4.35 + dev: true + + /css-loader@6.10.0(webpack@5.90.1): + resolution: {integrity: sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw==} + engines: {node: '>= 12.13.0'} + peerDependencies: + '@rspack/core': 0.x || 1.x + webpack: ^5.0.0 + peerDependenciesMeta: + '@rspack/core': + optional: true + webpack: + optional: true + dependencies: + icss-utils: 5.1.0(postcss@8.4.35) + postcss: 8.4.35 + postcss-modules-extract-imports: 3.0.0(postcss@8.4.35) + postcss-modules-local-by-default: 4.0.4(postcss@8.4.35) + postcss-modules-scope: 3.1.1(postcss@8.4.35) + postcss-modules-values: 4.0.0(postcss@8.4.35) + postcss-value-parser: 4.2.0 + semver: 7.6.0 + webpack: 5.90.1(webpack-cli@5.1.4) + dev: true + + /css-minimizer-webpack-plugin@5.0.1(webpack@5.90.1): + resolution: {integrity: sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg==} + engines: {node: '>= 14.15.0'} + peerDependencies: + '@parcel/css': '*' + '@swc/css': '*' + clean-css: '*' + csso: '*' + esbuild: '*' + lightningcss: '*' + webpack: ^5.0.0 + peerDependenciesMeta: + '@parcel/css': + optional: true + '@swc/css': + optional: true + clean-css: + optional: true + csso: + optional: true + esbuild: + optional: true + lightningcss: + optional: true + dependencies: + '@jridgewell/trace-mapping': 0.3.22 + cssnano: 6.0.3(postcss@8.4.35) + jest-worker: 29.7.0 + postcss: 8.4.35 + schema-utils: 4.2.0 + serialize-javascript: 6.0.2 + webpack: 5.90.1(webpack-cli@5.1.4) + dev: true + + /css-select@4.3.0: + resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 4.3.1 + domutils: 2.8.0 + nth-check: 2.1.1 + dev: true + + /css-select@5.1.0: + resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 5.0.3 + domutils: 3.1.0 + nth-check: 2.1.1 + dev: true + + /css-tree@2.2.1: + resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + dependencies: + mdn-data: 2.0.28 + source-map-js: 1.0.2 + dev: true + + /css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + dependencies: + mdn-data: 2.0.30 + source-map-js: 1.0.2 + dev: true + + /css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} + dev: true + + /css.escape@1.5.1: + resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} + dev: true + + /cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /cssnano-preset-default@6.0.3(postcss@8.4.35): + resolution: {integrity: sha512-4y3H370aZCkT9Ev8P4SO4bZbt+AExeKhh8wTbms/X7OLDo5E7AYUUy6YPxa/uF5Grf+AJwNcCnxKhZynJ6luBA==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + css-declaration-sorter: 7.1.1(postcss@8.4.35) + cssnano-utils: 4.0.1(postcss@8.4.35) + postcss: 8.4.35 + postcss-calc: 9.0.1(postcss@8.4.35) + postcss-colormin: 6.0.2(postcss@8.4.35) + postcss-convert-values: 6.0.2(postcss@8.4.35) + postcss-discard-comments: 6.0.1(postcss@8.4.35) + postcss-discard-duplicates: 6.0.1(postcss@8.4.35) + postcss-discard-empty: 6.0.1(postcss@8.4.35) + postcss-discard-overridden: 6.0.1(postcss@8.4.35) + postcss-merge-longhand: 6.0.2(postcss@8.4.35) + postcss-merge-rules: 6.0.3(postcss@8.4.35) + postcss-minify-font-values: 6.0.1(postcss@8.4.35) + postcss-minify-gradients: 6.0.1(postcss@8.4.35) + postcss-minify-params: 6.0.2(postcss@8.4.35) + postcss-minify-selectors: 6.0.2(postcss@8.4.35) + postcss-normalize-charset: 6.0.1(postcss@8.4.35) + postcss-normalize-display-values: 6.0.1(postcss@8.4.35) + postcss-normalize-positions: 6.0.1(postcss@8.4.35) + postcss-normalize-repeat-style: 6.0.1(postcss@8.4.35) + postcss-normalize-string: 6.0.1(postcss@8.4.35) + postcss-normalize-timing-functions: 6.0.1(postcss@8.4.35) + postcss-normalize-unicode: 6.0.2(postcss@8.4.35) + postcss-normalize-url: 6.0.1(postcss@8.4.35) + postcss-normalize-whitespace: 6.0.1(postcss@8.4.35) + postcss-ordered-values: 6.0.1(postcss@8.4.35) + postcss-reduce-initial: 6.0.2(postcss@8.4.35) + postcss-reduce-transforms: 6.0.1(postcss@8.4.35) + postcss-svgo: 6.0.2(postcss@8.4.35) + postcss-unique-selectors: 6.0.2(postcss@8.4.35) + dev: true + + /cssnano-utils@4.0.1(postcss@8.4.35): + resolution: {integrity: sha512-6qQuYDqsGoiXssZ3zct6dcMxiqfT6epy7x4R0TQJadd4LWO3sPR6JH6ZByOvVLoZ6EdwPGgd7+DR1EmX3tiXQQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.35 + dev: true + + /cssnano@6.0.3(postcss@8.4.35): + resolution: {integrity: sha512-MRq4CIj8pnyZpcI2qs6wswoYoDD1t0aL28n+41c1Ukcpm56m1h6mCexIHBGjfZfnTqtGSSCP4/fB1ovxgjBOiw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + cssnano-preset-default: 6.0.3(postcss@8.4.35) + lilconfig: 3.0.0 + postcss: 8.4.35 + dev: true + + /csso@5.0.5: + resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + dependencies: + css-tree: 2.2.1 + dev: true + + /cssom@0.3.8: + resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} + dev: true + + /cssom@0.5.0: + resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} + dev: true + + /cssstyle@2.3.0: + resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} + engines: {node: '>=8'} + dependencies: + cssom: 0.3.8 + dev: true + + /csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + + /damerau-levenshtein@1.0.8: + resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} + dev: true + + /data-urls@3.0.2: + resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} + engines: {node: '>=12'} + dependencies: + abab: 2.0.6 + whatwg-mimetype: 3.0.0 + whatwg-url: 11.0.0 + dev: true + + /date-fns@2.30.0: + resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} + engines: {node: '>=0.11'} + dependencies: + '@babel/runtime': 7.23.9 + dev: true + + /debounce-fn@4.0.0: + resolution: {integrity: sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ==} + engines: {node: '>=10'} + dependencies: + mimic-fn: 3.1.0 + dev: false + + /debounce@1.2.1: + resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} + dev: true + + /debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.0.0 + dev: true + + /debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.3 + dev: true + + /debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + + /decimal.js@10.4.3: + resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + dev: true + + /decode-named-character-reference@1.0.2: + resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} + dependencies: + character-entities: 2.0.2 + dev: false + + /decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} + dependencies: + mimic-response: 3.1.0 + dev: true + + /dedent@1.5.1: + resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==} + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + dev: true + + /deep-equal@2.2.3: + resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.1 + call-bind: 1.0.6 + es-get-iterator: 1.1.3 + get-intrinsic: 1.2.4 + is-arguments: 1.1.1 + is-array-buffer: 3.0.4 + is-date-object: 1.0.5 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + isarray: 2.0.5 + object-is: 1.1.5 + object-keys: 1.1.1 + object.assign: 4.1.5 + regexp.prototype.flags: 1.5.1 + side-channel: 1.0.5 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.1 + which-typed-array: 1.1.14 + dev: true + + /deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + dev: true + + /deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + dev: true + + /default-gateway@6.0.3: + resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} + engines: {node: '>= 10'} + dependencies: + execa: 5.1.1 + dev: true + + /defaults@1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + dependencies: + clone: 1.0.4 + dev: true + + /defer-to-connect@2.0.1: + resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} + engines: {node: '>=10'} + dev: true + + /define-data-property@1.1.2: + resolution: {integrity: sha512-SRtsSqsDbgpJBbW3pABMCOt6rQyeM8s8RiyeSN8jYG8sYmt/kGJejbydttUsnDs1tadr19tvhT4ShwMyoqAm4g==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.1 + dev: true + + /define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} + dev: true + + /define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.2 + has-property-descriptors: 1.0.1 + object-keys: 1.1.1 + dev: true + + /delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + /delegates@1.0.0: + resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} + dev: true + + /depd@1.1.2: + resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} + engines: {node: '>= 0.6'} + dev: true + + /depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + dev: true + + /dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + + /destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + dev: true + + /detect-libc@2.0.2: + resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==} + engines: {node: '>=8'} + dev: true + + /detect-newline@3.1.0: + resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} + engines: {node: '>=8'} + dev: true + + /detect-node-es@1.1.0: + resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} + dev: false + + /detect-node@2.1.0: + resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} + dev: true + + /detect-port@1.5.1: + resolution: {integrity: sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==} + hasBin: true + dependencies: + address: 1.2.2 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + dependencies: + dequal: 2.0.3 + dev: false + + /diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + + /diff@4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} + dev: true + + /dir-compare@3.3.0: + resolution: {integrity: sha512-J7/et3WlGUCxjdnD3HAAzQ6nsnc0WL6DD7WcwJb7c39iH1+AWfg+9OqzJNaI6PkBwBvm1mhZNL9iY/nRiZXlPg==} + dependencies: + buffer-equal: 1.0.1 + minimatch: 3.1.2 + dev: true + + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + dev: true + + /dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + dev: true + + /dmg-builder@24.9.1: + resolution: {integrity: sha512-huC+O6hvHd24Ubj3cy2GMiGLe2xGFKN3klqVMLAdcbB6SWMd1yPSdZvV8W1O01ICzCCRlZDHiv4VrNUgnPUfbQ==} + dependencies: + app-builder-lib: 24.9.1 + builder-util: 24.8.1 + builder-util-runtime: 9.2.3 + fs-extra: 10.1.0 + iconv-lite: 0.6.3 + js-yaml: 4.1.0 + optionalDependencies: + dmg-license: 1.0.11 + transitivePeerDependencies: + - supports-color + dev: true + + /dmg-license@1.0.11: + resolution: {integrity: sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q==} + engines: {node: '>=8'} + os: [darwin] + hasBin: true + requiresBuild: true + dependencies: + '@types/plist': 3.0.5 + '@types/verror': 1.10.9 + ajv: 6.12.6 + crc: 3.8.0 + iconv-corefoundation: 1.1.7 + plist: 3.1.0 + smart-buffer: 4.2.0 + verror: 1.10.1 + dev: true + optional: true + + /dns-packet@5.6.1: + resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} + engines: {node: '>=6'} + dependencies: + '@leichtgewicht/ip-codec': 2.0.4 + dev: true + + /doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /dom-accessibility-api@0.5.16: + resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} + dev: true + + /dom-accessibility-api@0.6.3: + resolution: {integrity: sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==} + dev: true + + /dom-converter@0.2.0: + resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==} + dependencies: + utila: 0.4.0 + dev: true + + /dom-serializer@1.4.1: + resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} + dependencies: + domelementtype: 2.3.0 + domhandler: 4.3.1 + entities: 2.2.0 + dev: true + + /dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 + dev: true + + /domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + dev: true + + /domexception@4.0.0: + resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} + engines: {node: '>=12'} + deprecated: Use your platform's native DOMException instead + dependencies: + webidl-conversions: 7.0.0 + dev: true + + /domhandler@4.3.1: + resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} + engines: {node: '>= 4'} + dependencies: + domelementtype: 2.3.0 + dev: true + + /domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + dependencies: + domelementtype: 2.3.0 + dev: true + + /domutils@2.8.0: + resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} + dependencies: + dom-serializer: 1.4.1 + domelementtype: 2.3.0 + domhandler: 4.3.1 + dev: true + + /domutils@3.1.0: + resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + dev: true + + /dot-case@3.0.4: + resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + dependencies: + no-case: 3.0.4 + tslib: 2.6.2 + dev: true + + /dot-prop@6.0.1: + resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==} + engines: {node: '>=10'} + dependencies: + is-obj: 2.0.0 + dev: false + + /dotenv-expand@5.1.0: + resolution: {integrity: sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==} + dev: true + + /dotenv@16.4.4: + resolution: {integrity: sha512-XvPXc8XAQThSjAbY6cQ/9PcBXmFoWuw1sQ3b8HqUCR6ziGXjkTi//kB9SWa2UwqlgdAIuRqAa/9hVljzPehbYg==} + engines: {node: '>=12'} + dev: true + + /dotenv@9.0.2: + resolution: {integrity: sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==} + engines: {node: '>=10'} + dev: true + + /duplexer@0.1.2: + resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} + dev: true + + /eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + dev: true + + /ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + dev: true + + /ejs@3.1.9: + resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==} + engines: {node: '>=0.10.0'} + hasBin: true + dependencies: + jake: 10.8.7 + dev: true + + /electron-builder@24.9.1: + resolution: {integrity: sha512-v7BuakDuY6sKMUYM8mfQGrwyjBpZ/ObaqnenU0H+igEL10nc6ht049rsCw2HghRBdEwJxGIBuzs3jbEhNaMDmg==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + app-builder-lib: 24.9.1 + builder-util: 24.8.1 + builder-util-runtime: 9.2.3 + chalk: 4.1.2 + dmg-builder: 24.9.1 + fs-extra: 10.1.0 + is-ci: 3.0.1 + lazy-val: 1.0.5 + read-config-file: 6.3.2 + simple-update-notifier: 2.0.0 + yargs: 17.7.2 + transitivePeerDependencies: + - supports-color + dev: true + + /electron-debug@3.2.0: + resolution: {integrity: sha512-7xZh+LfUvJ52M9rn6N+tPuDw6oRAjxUj9SoxAZfJ0hVCXhZCsdkrSt7TgXOiWiEOBgEV8qwUIO/ScxllsPS7ow==} + dependencies: + electron-is-dev: 1.2.0 + electron-localshortcut: 3.2.1 + transitivePeerDependencies: + - supports-color + dev: false + + /electron-devtools-installer@3.2.0: + resolution: {integrity: sha512-t3UczsYugm4OAbqvdImMCImIMVdFzJAHgbwHpkl5jmfu1izVgUcP/mnrPqJIpEeCK1uZGpt+yHgWEN+9EwoYhQ==} + dependencies: + rimraf: 3.0.2 + semver: 7.6.0 + tslib: 2.6.2 + unzip-crx-3: 0.2.0 + dev: true + + /electron-is-accelerator@0.1.2: + resolution: {integrity: sha512-fLGSAjXZtdn1sbtZxx52+krefmtNuVwnJCV2gNiVt735/ARUboMl8jnNC9fZEqQdlAv2ZrETfmBUsoQci5evJA==} + dev: false + + /electron-is-dev@1.2.0: + resolution: {integrity: sha512-R1oD5gMBPS7PVU8gJwH6CtT0e6VSoD0+SzSnYpNm+dBkcijgA+K7VAMHDfnRq/lkKPZArpzplTW6jfiMYosdzw==} + dev: false + + /electron-localshortcut@3.2.1: + resolution: {integrity: sha512-DWvhKv36GsdXKnaFFhEiK8kZZA+24/yFLgtTwJJHc7AFgDjNRIBJZ/jq62Y/dWv9E4ypYwrVWN2bVrCYw1uv7Q==} + dependencies: + debug: 4.3.4 + electron-is-accelerator: 0.1.2 + keyboardevent-from-electron-accelerator: 2.0.0 + keyboardevents-areequal: 0.2.2 + transitivePeerDependencies: + - supports-color + dev: false + + /electron-log@4.4.8: + resolution: {integrity: sha512-QQ4GvrXO+HkgqqEOYbi+DHL7hj5JM+nHi/j+qrN9zeeXVKy8ZABgbu4CnG+BBqDZ2+tbeq9tUC4DZfIWFU5AZA==} + dev: false + + /electron-publish@24.8.1: + resolution: {integrity: sha512-IFNXkdxMVzUdweoLJNXSupXkqnvgbrn3J4vognuOY06LaS/m0xvfFYIf+o1CM8if6DuWYWoQFKPcWZt/FUjZPw==} + dependencies: + '@types/fs-extra': 9.0.13 + builder-util: 24.8.1 + builder-util-runtime: 9.2.3 + chalk: 4.1.2 + fs-extra: 10.1.0 + lazy-val: 1.0.5 + mime: 2.6.0 + transitivePeerDependencies: + - supports-color + dev: true + + /electron-store@8.1.0: + resolution: {integrity: sha512-2clHg/juMjOH0GT9cQ6qtmIvK183B39ZXR0bUoPwKwYHJsEF3quqyDzMFUAu+0OP8ijmN2CbPRAelhNbWUbzwA==} + dependencies: + conf: 10.2.0 + type-fest: 2.19.0 + dev: false + + /electron-to-chromium@1.4.661: + resolution: {integrity: sha512-AFg4wDHSOk5F+zA8aR+SVIOabu7m0e7BiJnigCvPXzIGy731XENw/lmNxTySpVFtkFEy+eyt4oHhh5FF3NjQNw==} + dev: true + + /electron-updater@6.1.7: + resolution: {integrity: sha512-SNOhYizjkm4ET+Y8ilJyUzcVsFJDtINzVN1TyHnZeMidZEG3YoBebMyXc/J6WSiXdUaOjC7ngekN6rNp6ardHA==} + dependencies: + builder-util-runtime: 9.2.3 + fs-extra: 10.1.0 + js-yaml: 4.1.0 + lazy-val: 1.0.5 + lodash.escaperegexp: 4.1.2 + lodash.isequal: 4.5.0 + semver: 7.6.0 + tiny-typed-emitter: 2.1.0 + transitivePeerDependencies: + - supports-color + dev: false + + /electron@26.6.9: + resolution: {integrity: sha512-R4uWUzwUwlYwFPS+BY4Dg9KzbIpqdfiLepmcrYHHOUb0dYf2TeYtFPBGYo3kF2L0JmLy1lFtIExCRaMB+J6yow==} + engines: {node: '>= 12.20.55'} + hasBin: true + requiresBuild: true + dependencies: + '@electron/get': 2.0.3 + '@types/node': 18.19.14 + extract-zip: 2.0.1 + transitivePeerDependencies: + - supports-color + dev: true + + /electronmon@2.0.2: + resolution: {integrity: sha512-Yw1CXEp5HJT9P6Sns3UP3Krwm5eb2JKqTRAVczKdsUa+U/dMTgONwKIHkPbKSSmtyTV+5JwobxkhFPiRgegObA==} + engines: {node: '>=10.0.0'} + hasBin: true + dependencies: + chalk: 3.0.0 + import-from: 3.0.0 + runtime-required: 1.1.0 + watchboy: 0.4.3 + dev: true + + /emittery@0.13.1: + resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} + engines: {node: '>=12'} + dev: true + + /emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + dev: true + + /emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + dev: true + + /emojis-list@3.0.0: + resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} + engines: {node: '>= 4'} + dev: true + + /encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} + dev: true + + /encoding@0.1.13: + resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} + requiresBuild: true + dependencies: + iconv-lite: 0.6.3 + dev: true + optional: true + + /end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + dependencies: + once: 1.4.0 + dev: true + + /enhanced-resolve@0.9.1: + resolution: {integrity: sha512-kxpoMgrdtkXZ5h0SeraBS1iRntpTpQ3R8ussdb38+UAFnMGX5DDyJXePm+OCHOcoXvHDw7mc2erbJBpDnl7TPw==} + engines: {node: '>=0.6'} + dependencies: + graceful-fs: 4.2.11 + memory-fs: 0.2.0 + tapable: 0.1.10 + dev: true + + /enhanced-resolve@5.15.0: + resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} + engines: {node: '>=10.13.0'} + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + dev: true + + /entities@2.2.0: + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} + dev: true + + /entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + dev: true + + /env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + + /envinfo@7.11.1: + resolution: {integrity: sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /err-code@2.0.3: + resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} + dev: true + + /error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + dependencies: + is-arrayish: 0.2.1 + + /error-stack-parser@2.1.4: + resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} + dependencies: + stackframe: 1.3.4 + dev: true + + /es-abstract@1.22.3: + resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.1 + arraybuffer.prototype.slice: 1.0.3 + available-typed-arrays: 1.0.6 + call-bind: 1.0.6 + es-set-tostringtag: 2.0.2 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.4 + get-symbol-description: 1.0.2 + globalthis: 1.0.3 + gopd: 1.0.1 + has-property-descriptors: 1.0.1 + has-proto: 1.0.1 + has-symbols: 1.0.3 + hasown: 2.0.0 + internal-slot: 1.0.7 + is-array-buffer: 3.0.4 + is-callable: 1.2.7 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-typed-array: 1.1.13 + is-weakref: 1.0.2 + object-inspect: 1.13.1 + object-keys: 1.1.1 + object.assign: 4.1.5 + regexp.prototype.flags: 1.5.1 + safe-array-concat: 1.1.0 + safe-regex-test: 1.0.3 + string.prototype.trim: 1.2.8 + string.prototype.trimend: 1.0.7 + string.prototype.trimstart: 1.0.7 + typed-array-buffer: 1.0.1 + typed-array-byte-length: 1.0.0 + typed-array-byte-offset: 1.0.0 + typed-array-length: 1.0.4 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.14 + dev: true + + /es-array-method-boxes-properly@1.0.0: + resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==} + dev: true + + /es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + dev: true + + /es-get-iterator@1.1.3: + resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} + dependencies: + call-bind: 1.0.6 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + is-arguments: 1.1.1 + is-map: 2.0.2 + is-set: 2.0.2 + is-string: 1.0.7 + isarray: 2.0.5 + stop-iteration-iterator: 1.0.0 + dev: true + + /es-iterator-helpers@1.0.15: + resolution: {integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==} + dependencies: + asynciterator.prototype: 1.0.0 + call-bind: 1.0.6 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-set-tostringtag: 2.0.2 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + globalthis: 1.0.3 + has-property-descriptors: 1.0.1 + has-proto: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.7 + iterator.prototype: 1.1.2 + safe-array-concat: 1.1.0 + dev: true + + /es-module-lexer@1.4.1: + resolution: {integrity: sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==} + dev: true + + /es-set-tostringtag@2.0.2: + resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.4 + has-tostringtag: 1.0.2 + hasown: 2.0.0 + dev: true + + /es-shim-unscopables@1.0.2: + resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + dependencies: + hasown: 2.0.0 + dev: true + + /es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + dependencies: + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + dev: true + + /es6-error@4.1.1: + resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} + requiresBuild: true + dev: true + optional: true + + /escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + engines: {node: '>=6'} + dev: true + + /escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + dev: true + + /escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + /escape-string-regexp@2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} + dev: true + + /escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + /escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + dev: false + + /escodegen@2.1.0: + resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} + engines: {node: '>=6.0'} + hasBin: true + dependencies: + esprima: 4.0.1 + estraverse: 5.3.0 + esutils: 2.0.3 + optionalDependencies: + source-map: 0.6.1 + dev: true + + /eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.29.1)(eslint@8.56.0): + resolution: {integrity: sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==} + engines: {node: ^10.12.0 || >=12.0.0} + peerDependencies: + eslint: ^7.32.0 || ^8.2.0 + eslint-plugin-import: ^2.25.2 + dependencies: + confusing-browser-globals: 1.0.11 + eslint: 8.56.0 + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-typescript@3.6.1)(eslint-import-resolver-webpack@0.13.8)(eslint@8.56.0) + object.assign: 4.1.5 + object.entries: 1.1.7 + semver: 6.3.1 + dev: true + + /eslint-config-airbnb-typescript@17.1.0(@typescript-eslint/eslint-plugin@6.21.0)(@typescript-eslint/parser@6.21.0)(eslint-plugin-import@2.29.1)(eslint@8.56.0): + resolution: {integrity: sha512-GPxI5URre6dDpJ0CtcthSZVBAfI+Uw7un5OYNVxP2EYi3H81Jw701yFP7AU+/vCE7xBtFmjge7kfhhk4+RAiig==} + peerDependencies: + '@typescript-eslint/eslint-plugin': ^5.13.0 || ^6.0.0 + '@typescript-eslint/parser': ^5.0.0 || ^6.0.0 + eslint: ^7.32.0 || ^8.2.0 + eslint-plugin-import: ^2.25.3 + dependencies: + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + eslint: 8.56.0 + eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.29.1)(eslint@8.56.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-typescript@3.6.1)(eslint-import-resolver-webpack@0.13.8)(eslint@8.56.0) + dev: true + + /eslint-config-airbnb@19.0.4(eslint-plugin-import@2.29.1)(eslint-plugin-jsx-a11y@6.7.1)(eslint-plugin-react-hooks@4.6.0)(eslint-plugin-react@7.33.2)(eslint@8.56.0): + resolution: {integrity: sha512-T75QYQVQX57jiNgpF9r1KegMICE94VYwoFQyMGhrvc+lB8YF2E/M/PYDaQe1AJcWaEgqLE+ErXV1Og/+6Vyzew==} + engines: {node: ^10.12.0 || ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^7.32.0 || ^8.2.0 + eslint-plugin-import: ^2.25.3 + eslint-plugin-jsx-a11y: ^6.5.1 + eslint-plugin-react: ^7.28.0 + eslint-plugin-react-hooks: ^4.3.0 + dependencies: + eslint: 8.56.0 + eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.29.1)(eslint@8.56.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-typescript@3.6.1)(eslint-import-resolver-webpack@0.13.8)(eslint@8.56.0) + eslint-plugin-jsx-a11y: 6.7.1(eslint@8.56.0) + eslint-plugin-react: 7.33.2(eslint@8.56.0) + eslint-plugin-react-hooks: 4.6.0(eslint@8.56.0) + object.assign: 4.1.5 + object.entries: 1.1.7 + dev: true + + /eslint-config-erb@4.1.0(eslint-import-resolver-typescript@3.6.1)(eslint-import-resolver-webpack@0.13.8)(eslint@8.56.0)(jest@29.7.0)(prettier@3.2.5)(react@18.2.0)(typescript@5.3.3): + resolution: {integrity: sha512-30Ysy1JJmxu+VElnNcBZLOsDRWHJh1exfCLMIwe1lscnby8WeTAWJNS0j+WgS9GzYm+5JoNeas90O1wq2bLnJQ==} + engines: {node: '>=16.x.x'} + peerDependencies: + eslint: '>=7 || >=8' + jest: '>=27.0.0' + react: '>=17.0.0 || >=18.0.0' + dependencies: + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + eslint: 8.56.0 + eslint-config-airbnb: 19.0.4(eslint-plugin-import@2.29.1)(eslint-plugin-jsx-a11y@6.7.1)(eslint-plugin-react-hooks@4.6.0)(eslint-plugin-react@7.33.2)(eslint@8.56.0) + eslint-config-airbnb-typescript: 17.1.0(@typescript-eslint/eslint-plugin@6.21.0)(@typescript-eslint/parser@6.21.0)(eslint-plugin-import@2.29.1)(eslint@8.56.0) + eslint-config-prettier: 9.1.0(eslint@8.56.0) + eslint-plugin-compat: 4.2.0(eslint@8.56.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-typescript@3.6.1)(eslint-import-resolver-webpack@0.13.8)(eslint@8.56.0) + eslint-plugin-jest: 27.6.3(@typescript-eslint/eslint-plugin@6.21.0)(eslint@8.56.0)(jest@29.7.0)(typescript@5.3.3) + eslint-plugin-jsx-a11y: 6.7.1(eslint@8.56.0) + eslint-plugin-prettier: 5.1.3(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.2.5) + eslint-plugin-promise: 6.1.1(eslint@8.56.0) + eslint-plugin-react: 7.33.2(eslint@8.56.0) + eslint-plugin-react-hooks: 4.6.0(eslint@8.56.0) + jest: 29.7.0(@types/node@20.6.2)(ts-node@10.9.2) + react: 18.2.0 + transitivePeerDependencies: + - '@types/eslint' + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - prettier + - supports-color + - typescript + dev: true + + /eslint-config-prettier@9.1.0(eslint@8.56.0): + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + dependencies: + eslint: 8.56.0 + dev: true + + /eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + dependencies: + debug: 3.2.7 + is-core-module: 2.13.1 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-webpack@0.13.8)(eslint-plugin-import@2.29.1)(eslint@8.56.0): + resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' + dependencies: + debug: 4.3.4 + enhanced-resolve: 5.15.0 + eslint: 8.56.0 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint-import-resolver-webpack@0.13.8)(eslint@8.56.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-typescript@3.6.1)(eslint-import-resolver-webpack@0.13.8)(eslint@8.56.0) + fast-glob: 3.3.2 + get-tsconfig: 4.7.2 + is-core-module: 2.13.1 + is-glob: 4.0.3 + transitivePeerDependencies: + - '@typescript-eslint/parser' + - eslint-import-resolver-node + - eslint-import-resolver-webpack + - supports-color + dev: true + + /eslint-import-resolver-webpack@0.13.8(eslint-plugin-import@2.29.1)(webpack@5.90.1): + resolution: {integrity: sha512-Y7WIaXWV+Q21Rz/PJgUxiW/FTBOWmU8NTLdz+nz9mMoiz5vAev/fOaQxwD7qRzTfE3HSm1qsxZ5uRd7eX+VEtA==} + engines: {node: '>= 6'} + peerDependencies: + eslint-plugin-import: '>=1.4.0' + webpack: '>=1.11.0' + dependencies: + array.prototype.find: 2.2.2 + debug: 3.2.7 + enhanced-resolve: 0.9.1 + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-typescript@3.6.1)(eslint-import-resolver-webpack@0.13.8)(eslint@8.56.0) + find-root: 1.1.0 + hasown: 2.0.0 + interpret: 1.4.0 + is-core-module: 2.13.1 + is-regex: 1.1.4 + lodash: 4.17.21 + resolve: 2.0.0-next.5 + semver: 5.7.2 + webpack: 5.90.1(webpack-cli@5.1.4) + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint-import-resolver-webpack@0.13.8)(eslint@8.56.0): + resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + debug: 3.2.7 + eslint: 8.56.0 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-webpack@0.13.8)(eslint-plugin-import@2.29.1)(eslint@8.56.0) + eslint-import-resolver-webpack: 0.13.8(eslint-plugin-import@2.29.1)(webpack@5.90.1) + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-plugin-compat@4.2.0(eslint@8.56.0): + resolution: {integrity: sha512-RDKSYD0maWy5r7zb5cWQS+uSPc26mgOzdORJ8hxILmWM7S/Ncwky7BcAtXVY5iRbKjBdHsWU8Yg7hfoZjtkv7w==} + engines: {node: '>=14.x'} + peerDependencies: + eslint: ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@mdn/browser-compat-data': 5.5.9 + ast-metadata-inferer: 0.8.0 + browserslist: 4.22.3 + caniuse-lite: 1.0.30001585 + eslint: 8.56.0 + find-up: 5.0.0 + lodash.memoize: 4.1.2 + semver: 7.6.0 + dev: true + + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-typescript@3.6.1)(eslint-import-resolver-webpack@0.13.8)(eslint@8.56.0): + resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + dependencies: + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + array-includes: 3.1.7 + array.prototype.findlastindex: 1.2.4 + array.prototype.flat: 1.3.2 + array.prototype.flatmap: 1.3.2 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 8.56.0 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint-import-resolver-webpack@0.13.8)(eslint@8.56.0) + hasown: 2.0.0 + is-core-module: 2.13.1 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.fromentries: 2.0.7 + object.groupby: 1.0.2 + object.values: 1.1.7 + semver: 6.3.1 + tsconfig-paths: 3.15.0 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + dev: true + + /eslint-plugin-jest@27.6.3(@typescript-eslint/eslint-plugin@6.21.0)(eslint@8.56.0)(jest@29.7.0)(typescript@5.3.3): + resolution: {integrity: sha512-+YsJFVH6R+tOiO3gCJon5oqn4KWc+mDq2leudk8mrp8RFubLOo9CVyi3cib4L7XMpxExmkmBZQTPDYVBzgpgOA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@typescript-eslint/eslint-plugin': ^5.0.0 || ^6.0.0 + eslint: ^7.0.0 || ^8.0.0 + jest: '*' + peerDependenciesMeta: + '@typescript-eslint/eslint-plugin': + optional: true + jest: + optional: true + dependencies: + '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': 5.62.0(eslint@8.56.0)(typescript@5.3.3) + eslint: 8.56.0 + jest: 29.7.0(@types/node@20.6.2)(ts-node@10.9.2) + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /eslint-plugin-jsx-a11y@6.7.1(eslint@8.56.0): + resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==} + engines: {node: '>=4.0'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + '@babel/runtime': 7.23.9 + aria-query: 5.3.0 + array-includes: 3.1.7 + array.prototype.flatmap: 1.3.2 + ast-types-flow: 0.0.7 + axe-core: 4.8.4 + axobject-query: 3.2.1 + damerau-levenshtein: 1.0.8 + emoji-regex: 9.2.2 + eslint: 8.56.0 + has: 1.0.4 + jsx-ast-utils: 3.3.5 + language-tags: 1.0.5 + minimatch: 3.1.2 + object.entries: 1.1.7 + object.fromentries: 2.0.7 + semver: 6.3.1 + dev: true + + /eslint-plugin-jsx-a11y@6.8.0(eslint@8.56.0): + resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==} + engines: {node: '>=4.0'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + '@babel/runtime': 7.23.9 + aria-query: 5.3.0 + array-includes: 3.1.7 + array.prototype.flatmap: 1.3.2 + ast-types-flow: 0.0.8 + axe-core: 4.7.0 + axobject-query: 3.2.1 + damerau-levenshtein: 1.0.8 + emoji-regex: 9.2.2 + es-iterator-helpers: 1.0.15 + eslint: 8.56.0 + hasown: 2.0.0 + jsx-ast-utils: 3.3.5 + language-tags: 1.0.9 + minimatch: 3.1.2 + object.entries: 1.1.7 + object.fromentries: 2.0.7 + dev: true + + /eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.2.5): + resolution: {integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + '@types/eslint': '>=8.0.0' + eslint: '>=8.0.0' + eslint-config-prettier: '*' + prettier: '>=3.0.0' + peerDependenciesMeta: + '@types/eslint': + optional: true + eslint-config-prettier: + optional: true + dependencies: + eslint: 8.56.0 + eslint-config-prettier: 9.1.0(eslint@8.56.0) + prettier: 3.2.5 + prettier-linter-helpers: 1.0.0 + synckit: 0.8.8 + dev: true + + /eslint-plugin-promise@6.1.1(eslint@8.56.0): + resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + dependencies: + eslint: 8.56.0 + dev: true + + /eslint-plugin-react-hooks@4.6.0(eslint@8.56.0): + resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + dependencies: + eslint: 8.56.0 + dev: true + + /eslint-plugin-react@7.33.2(eslint@8.56.0): + resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + array-includes: 3.1.7 + array.prototype.flatmap: 1.3.2 + array.prototype.tosorted: 1.1.3 + doctrine: 2.1.0 + es-iterator-helpers: 1.0.15 + eslint: 8.56.0 + estraverse: 5.3.0 + jsx-ast-utils: 3.3.5 + minimatch: 3.1.2 + object.entries: 1.1.7 + object.fromentries: 2.0.7 + object.hasown: 1.1.3 + object.values: 1.1.7 + prop-types: 15.8.1 + resolve: 2.0.0-next.5 + semver: 6.3.1 + string.prototype.matchall: 4.0.10 + dev: true + + /eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + dev: true + + /eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + dev: true + + /eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /eslint@8.56.0: + resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/regexpp': 4.10.0 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.56.0 + '@humanwhocodes/config-array': 0.11.14 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.2.0 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.24.0 + graphemer: 1.4.0 + ignore: 5.3.1 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.3 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + dev: true + + /espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.11.3 + acorn-jsx: 5.3.2(acorn@8.11.3) + eslint-visitor-keys: 3.4.3 + dev: true + + /esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} + dependencies: + estraverse: 5.3.0 + dev: true + + /esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.3.0 + dev: true + + /estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + dev: true + + /estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + dev: true + + /estree-util-is-identifier-name@3.0.0: + resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} + dev: false + + /esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + dev: true + + /etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + dev: true + + /eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + dev: true + + /events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + dev: true + + /execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + dev: true + + /exit@0.1.2: + resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} + engines: {node: '>= 0.8.0'} + dev: true + + /expect@29.7.0: + resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/expect-utils': 29.7.0 + jest-get-type: 29.6.3 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + dev: true + + /exponential-backoff@3.1.1: + resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==} + dev: true + + /express@4.18.2: + resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==} + engines: {node: '>= 0.10.0'} + dependencies: + accepts: 1.3.8 + array-flatten: 1.1.1 + body-parser: 1.20.1 + content-disposition: 0.5.4 + content-type: 1.0.5 + cookie: 0.5.0 + cookie-signature: 1.0.6 + debug: 2.6.9 + depd: 2.0.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 1.2.0 + fresh: 0.5.2 + http-errors: 2.0.0 + merge-descriptors: 1.0.1 + methods: 1.1.2 + on-finished: 2.4.1 + parseurl: 1.3.3 + path-to-regexp: 0.1.7 + proxy-addr: 2.0.7 + qs: 6.11.0 + range-parser: 1.2.1 + safe-buffer: 5.2.1 + send: 0.18.0 + serve-static: 1.15.0 + setprototypeof: 1.2.0 + statuses: 2.0.1 + type-is: 1.6.18 + utils-merge: 1.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + dev: false + + /extract-zip@2.0.1: + resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} + engines: {node: '>= 10.17.0'} + hasBin: true + dependencies: + debug: 4.3.4 + get-stream: 5.2.0 + yauzl: 2.10.0 + optionalDependencies: + '@types/yauzl': 2.10.3 + transitivePeerDependencies: + - supports-color + dev: true + + /extsprintf@1.4.1: + resolution: {integrity: sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==} + engines: {'0': node >=0.6.0} + requiresBuild: true + dev: true + optional: true + + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + /fast-diff@1.3.0: + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} + dev: true + + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: true + + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: true + + /fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + dev: true + + /fastest-levenshtein@1.0.16: + resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} + engines: {node: '>= 4.9.1'} + dev: true + + /fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + dependencies: + reusify: 1.0.4 + dev: true + + /faye-websocket@0.11.4: + resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} + engines: {node: '>=0.8.0'} + dependencies: + websocket-driver: 0.7.4 + dev: true + + /fb-watchman@2.0.2: + resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} + dependencies: + bser: 2.1.1 + dev: true + + /fd-slicer@1.1.0: + resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} + dependencies: + pend: 1.2.0 + dev: true + + /file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: 3.2.0 + dev: true + + /file-loader@6.2.0(webpack@5.90.1): + resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==} + engines: {node: '>= 10.13.0'} + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 + dependencies: + loader-utils: 2.0.4 + schema-utils: 3.3.0 + webpack: 5.90.1(webpack-cli@5.1.4) + dev: true + + /filelist@1.0.4: + resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} + dependencies: + minimatch: 5.1.6 + dev: true + + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + dev: true + + /finalhandler@1.2.0: + resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} + engines: {node: '>= 0.8'} + dependencies: + debug: 2.6.9 + encodeurl: 1.0.2 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.1 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /find-root@1.1.0: + resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} + + /find-up@3.0.0: + resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} + engines: {node: '>=6'} + dependencies: + locate-path: 3.0.0 + dev: false + + /find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + dev: true + + /find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + dev: true + + /flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flatted: 3.2.9 + keyv: 4.5.4 + rimraf: 3.0.2 + dev: true + + /flat@5.0.2: + resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + hasBin: true + dev: true + + /flatted@3.2.9: + resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} + dev: true + + /focus-lock@1.0.0: + resolution: {integrity: sha512-a8Ge6cdKh9za/GZR/qtigTAk7SrGore56EFcoMshClsh7FLk1zwszc/ltuMfKhx56qeuyL/jWQ4J4axou0iJ9w==} + engines: {node: '>=10'} + dependencies: + tslib: 2.6.2 + dev: false + + /follow-redirects@1.15.5: + resolution: {integrity: sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + /for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + dependencies: + is-callable: 1.2.7 + dev: true + + /foreground-child@3.1.1: + resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} + engines: {node: '>=14'} + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 + dev: true + + /form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + + /forwarded@0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} + dev: true + + /framer-motion@11.0.3(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-6x2poQpIWBdbZwLd73w6cKZ1I9IEPIU94C6/Swp1Zt3LJ+sB5bPe1E2wC6EH5hSISXNkMJ4afH7AdwS7MrtkWw==} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + dependencies: + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + tslib: 2.6.2 + optionalDependencies: + '@emotion/is-prop-valid': 0.8.8 + dev: false + + /framesync@6.1.2: + resolution: {integrity: sha512-jBTqhX6KaQVDyus8muwZbBeGGP0XgujBRbQ7gM7BRdS3CadCZIHiawyzYLnafYcvZIh5j8WE7cxZKFn7dXhu9g==} + dependencies: + tslib: 2.4.0 + dev: false + + /fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} + dev: true + + /fs-extra@10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} + engines: {node: '>=12'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + + /fs-extra@8.1.0: + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + dev: true + + /fs-extra@9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} + dependencies: + at-least-node: 1.0.0 + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + dev: true + + /fs-minipass@2.1.0: + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 + dev: true + + /fs-monkey@1.0.5: + resolution: {integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==} + dev: true + + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + dev: true + + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + /function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.6 + define-properties: 1.2.1 + es-abstract: 1.22.3 + functions-have-names: 1.2.3 + dev: true + + /functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + dev: true + + /gauge@4.0.4: + resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + aproba: 2.0.0 + color-support: 1.1.3 + console-control-strings: 1.1.0 + has-unicode: 2.0.1 + signal-exit: 3.0.7 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wide-align: 1.1.5 + dev: true + + /gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + dev: true + + /get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + dev: true + + /get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.1 + has-symbols: 1.0.3 + hasown: 2.0.0 + dev: true + + /get-nonce@1.0.1: + resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} + engines: {node: '>=6'} + dev: false + + /get-package-type@0.1.0: + resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} + engines: {node: '>=8.0.0'} + dev: true + + /get-stream@5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} + dependencies: + pump: 3.0.0 + dev: true + + /get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + dev: true + + /get-symbol-description@1.0.2: + resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.6 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + dev: true + + /get-tsconfig@4.7.2: + resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} + dependencies: + resolve-pkg-maps: 1.0.0 + dev: true + + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + dev: true + + /glob@10.3.10: + resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + dependencies: + foreground-child: 3.1.1 + jackspeak: 2.3.6 + minimatch: 9.0.3 + minipass: 7.0.4 + path-scurry: 1.10.1 + dev: true + + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /glob@8.1.0: + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} + engines: {node: '>=12'} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 5.1.6 + once: 1.4.0 + dev: true + + /global-agent@3.0.0: + resolution: {integrity: sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==} + engines: {node: '>=10.0'} + requiresBuild: true + dependencies: + boolean: 3.2.0 + es6-error: 4.1.1 + matcher: 3.0.0 + roarr: 2.15.4 + semver: 7.6.0 + serialize-error: 7.0.1 + dev: true + optional: true + + /globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + dev: true + + /globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + dev: true + + /globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} + dependencies: + define-properties: 1.2.1 + dev: true + + /globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.1 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.4 + dev: true + + /got@11.8.6: + resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==} + engines: {node: '>=10.19.0'} + dependencies: + '@sindresorhus/is': 4.6.0 + '@szmarczak/http-timer': 4.0.6 + '@types/cacheable-request': 6.0.3 + '@types/responselike': 1.0.3 + cacheable-lookup: 5.0.4 + cacheable-request: 7.0.4 + decompress-response: 6.0.0 + http2-wrapper: 1.0.3 + lowercase-keys: 2.0.0 + p-cancelable: 2.1.1 + responselike: 2.0.1 + dev: true + + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + /graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + dev: true + + /gzip-size@6.0.0: + resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} + engines: {node: '>=10'} + dependencies: + duplexer: 0.1.2 + dev: true + + /handle-thing@2.0.1: + resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} + dev: true + + /harmony-reflect@1.6.2: + resolution: {integrity: sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==} + dev: true + + /has-ansi@2.0.0: + resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-regex: 2.1.1 + dev: true + + /has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + dev: true + + /has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + dev: true + + /has-property-descriptors@1.0.1: + resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} + dependencies: + get-intrinsic: 1.2.4 + dev: true + + /has-proto@1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + engines: {node: '>= 0.4'} + dev: true + + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + dev: true + + /has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /has-unicode@2.0.1: + resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} + dev: true + + /has@1.0.4: + resolution: {integrity: sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==} + engines: {node: '>= 0.4.0'} + dev: true + + /hasown@2.0.0: + resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + + /hast-util-to-jsx-runtime@2.3.0: + resolution: {integrity: sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==} + dependencies: + '@types/estree': 1.0.5 + '@types/hast': 3.0.4 + '@types/unist': 3.0.2 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + hast-util-whitespace: 3.0.0 + mdast-util-mdx-expression: 2.0.0 + mdast-util-mdx-jsx: 3.1.0 + mdast-util-mdxjs-esm: 2.0.1 + property-information: 6.4.1 + space-separated-tokens: 2.0.2 + style-to-object: 1.0.5 + unist-util-position: 5.0.0 + vfile-message: 4.0.2 + transitivePeerDependencies: + - supports-color + dev: false + + /hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + dependencies: + '@types/hast': 3.0.4 + dev: false + + /he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + dev: true + + /hoist-non-react-statics@3.3.2: + resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + dependencies: + react-is: 16.13.1 + dev: false + + /hosted-git-info@4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} + engines: {node: '>=10'} + dependencies: + lru-cache: 6.0.0 + dev: true + + /hpack.js@2.1.6: + resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} + dependencies: + inherits: 2.0.4 + obuf: 1.1.2 + readable-stream: 2.3.8 + wbuf: 1.7.3 + dev: true + + /html-encoding-sniffer@3.0.0: + resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} + engines: {node: '>=12'} + dependencies: + whatwg-encoding: 2.0.0 + dev: true + + /html-entities@2.4.0: + resolution: {integrity: sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==} + dev: true + + /html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + dev: true + + /html-minifier-terser@6.1.0: + resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==} + engines: {node: '>=12'} + hasBin: true + dependencies: + camel-case: 4.1.2 + clean-css: 5.3.3 + commander: 8.3.0 + he: 1.2.0 + param-case: 3.0.4 + relateurl: 0.2.7 + terser: 5.27.0 + dev: true + + /html-url-attributes@3.0.0: + resolution: {integrity: sha512-/sXbVCWayk6GDVg3ctOX6nxaVj7So40FcFAnWlWGNAB1LpYKcV5Cd10APjPjW80O7zYW2MsjBV4zZ7IZO5fVow==} + dev: false + + /html-webpack-plugin@5.6.0(webpack@5.90.1): + resolution: {integrity: sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==} + engines: {node: '>=10.13.0'} + peerDependencies: + '@rspack/core': 0.x || 1.x + webpack: ^5.20.0 + peerDependenciesMeta: + '@rspack/core': + optional: true + webpack: + optional: true + dependencies: + '@types/html-minifier-terser': 6.1.0 + html-minifier-terser: 6.1.0 + lodash: 4.17.21 + pretty-error: 4.0.0 + tapable: 2.2.1 + webpack: 5.90.1(webpack-cli@5.1.4) + dev: true + + /htmlparser2@6.1.0: + resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} + dependencies: + domelementtype: 2.3.0 + domhandler: 4.3.1 + domutils: 2.8.0 + entities: 2.2.0 + dev: true + + /http-cache-semantics@4.1.1: + resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + dev: true + + /http-deceiver@1.2.7: + resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} + dev: true + + /http-errors@1.6.3: + resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} + engines: {node: '>= 0.6'} + dependencies: + depd: 1.1.2 + inherits: 2.0.3 + setprototypeof: 1.1.0 + statuses: 1.5.0 + dev: true + + /http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + dev: true + + /http-parser-js@0.5.8: + resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} + dev: true + + /http-proxy-agent@5.0.0: + resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} + engines: {node: '>= 6'} + dependencies: + '@tootallnate/once': 2.0.0 + agent-base: 6.0.2 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /http-proxy-middleware@2.0.6(@types/express@4.17.21): + resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@types/express': ^4.17.13 + peerDependenciesMeta: + '@types/express': + optional: true + dependencies: + '@types/express': 4.17.21 + '@types/http-proxy': 1.17.14 + http-proxy: 1.18.1 + is-glob: 4.0.3 + is-plain-obj: 3.0.0 + micromatch: 4.0.5 + transitivePeerDependencies: + - debug + dev: true + + /http-proxy@1.18.1: + resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} + engines: {node: '>=8.0.0'} + dependencies: + eventemitter3: 4.0.7 + follow-redirects: 1.15.5 + requires-port: 1.0.0 + transitivePeerDependencies: + - debug + dev: true + + /http2-wrapper@1.0.3: + resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} + engines: {node: '>=10.19.0'} + dependencies: + quick-lru: 5.1.1 + resolve-alpn: 1.2.1 + dev: true + + /https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + dependencies: + agent-base: 6.0.2 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + dev: true + + /humanize-ms@1.2.1: + resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} + dependencies: + ms: 2.1.3 + dev: true + + /iconv-corefoundation@1.1.7: + resolution: {integrity: sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ==} + engines: {node: ^8.11.2 || >=10} + os: [darwin] + requiresBuild: true + dependencies: + cli-truncate: 2.1.0 + node-addon-api: 1.7.2 + dev: true + optional: true + + /iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: true + + /iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: true + + /icss-utils@5.1.0(postcss@8.4.35): + resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: 8.4.35 + dev: true + + /identity-obj-proxy@3.0.0: + resolution: {integrity: sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==} + engines: {node: '>=4'} + dependencies: + harmony-reflect: 1.6.2 + dev: true + + /ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + dev: true + + /ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + engines: {node: '>= 4'} + dev: true + + /immediate@3.0.6: + resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} + dev: true + + /immer@10.0.3: + resolution: {integrity: sha512-pwupu3eWfouuaowscykeckFmVTpqbzW+rXFCX8rQLkZzM9ftBmU/++Ra+o+L27mz03zJTlyV4UUr+fdKNffo4A==} + dev: false + + /immutable@4.3.5: + resolution: {integrity: sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==} + dev: true + + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + /import-from@3.0.0: + resolution: {integrity: sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==} + engines: {node: '>=8'} + dependencies: + resolve-from: 5.0.0 + dev: true + + /import-local@3.1.0: + resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} + engines: {node: '>=8'} + hasBin: true + dependencies: + pkg-dir: 4.2.0 + resolve-cwd: 3.0.0 + dev: true + + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + dev: true + + /indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + dev: true + + /infer-owner@1.0.4: + resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} + dev: true + + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: true + + /inherits@2.0.3: + resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} + dev: true + + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: true + + /inline-style-parser@0.2.2: + resolution: {integrity: sha512-EcKzdTHVe8wFVOGEYXiW9WmJXPjqi1T+234YpJr98RiFYKHV3cdy1+3mkTE+KHTHxFFLH51SfaGOoUdW+v7ViQ==} + dev: false + + /internal-slot@1.0.7: + resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + hasown: 2.0.0 + side-channel: 1.0.5 + dev: true + + /interpret@1.4.0: + resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} + engines: {node: '>= 0.10'} + dev: true + + /interpret@3.1.1: + resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==} + engines: {node: '>=10.13.0'} + dev: true + + /invariant@2.2.4: + resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + dependencies: + loose-envify: 1.4.0 + dev: false + + /ip@2.0.0: + resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==} + dev: true + + /ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} + dev: true + + /ipaddr.js@2.1.0: + resolution: {integrity: sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==} + engines: {node: '>= 10'} + dev: true + + /is-alphabetical@2.0.1: + resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} + dev: false + + /is-alphanumerical@2.0.1: + resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} + dependencies: + is-alphabetical: 2.0.1 + is-decimal: 2.0.1 + dev: false + + /is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.6 + has-tostringtag: 1.0.2 + dev: true + + /is-array-buffer@3.0.4: + resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.6 + get-intrinsic: 1.2.4 + dev: true + + /is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + + /is-async-function@2.0.0: + resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.2 + dev: true + + /is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + dependencies: + has-bigints: 1.0.2 + dev: true + + /is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 + dev: true + + /is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.6 + has-tostringtag: 1.0.2 + dev: true + + /is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + dev: true + + /is-ci@3.0.1: + resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} + hasBin: true + dependencies: + ci-info: 3.9.0 + dev: true + + /is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + dependencies: + hasown: 2.0.0 + + /is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.2 + dev: true + + /is-decimal@2.0.1: + resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} + dev: false + + /is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + dev: true + + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + dev: true + + /is-finalizationregistry@1.0.2: + resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} + dependencies: + call-bind: 1.0.6 + dev: true + + /is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + dev: true + + /is-generator-fn@2.1.0: + resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} + engines: {node: '>=6'} + dev: true + + /is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.2 + dev: true + + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + dev: true + + /is-hexadecimal@2.0.1: + resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} + dev: false + + /is-interactive@1.0.0: + resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} + engines: {node: '>=8'} + dev: true + + /is-lambda@1.0.1: + resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} + dev: true + + /is-map@2.0.2: + resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} + dev: true + + /is-negative-zero@2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + engines: {node: '>= 0.4'} + dev: true + + /is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.2 + dev: true + + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: true + + /is-obj@2.0.0: + resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} + engines: {node: '>=8'} + dev: false + + /is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + dev: true + + /is-plain-obj@3.0.0: + resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} + engines: {node: '>=10'} + dev: true + + /is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} + dev: false + + /is-plain-object@2.0.4: + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + dev: true + + /is-plain-object@5.0.0: + resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} + engines: {node: '>=0.10.0'} + dev: true + + /is-potential-custom-element-name@1.0.1: + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + dev: true + + /is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.6 + has-tostringtag: 1.0.2 + dev: true + + /is-set@2.0.2: + resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} + dev: true + + /is-shared-array-buffer@1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + dependencies: + call-bind: 1.0.6 + dev: true + + /is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + dev: true + + /is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.2 + dev: true + + /is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /is-typed-array@1.1.13: + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} + engines: {node: '>= 0.4'} + dependencies: + which-typed-array: 1.1.14 + dev: true + + /is-unicode-supported@0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} + dev: true + + /is-weakmap@2.0.1: + resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} + dev: true + + /is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + dependencies: + call-bind: 1.0.6 + dev: true + + /is-weakset@2.0.2: + resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} + dependencies: + call-bind: 1.0.6 + get-intrinsic: 1.2.4 + dev: true + + /is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + dependencies: + is-docker: 2.2.1 + dev: true + + /isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + dev: true + + /isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: true + + /isbinaryfile@4.0.10: + resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==} + engines: {node: '>= 8.0.0'} + dev: true + + /isbinaryfile@5.0.0: + resolution: {integrity: sha512-UDdnyGvMajJUWCkib7Cei/dvyJrrvo4FIrsvSFWdPpXSUorzXrDJ0S+X5Q4ZlasfPjca4yqCNNsjbCeiy8FFeg==} + engines: {node: '>= 14.0.0'} + dev: true + + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + dev: true + + /isobject@3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + engines: {node: '>=0.10.0'} + dev: true + + /istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + engines: {node: '>=8'} + dev: true + + /istanbul-lib-instrument@5.2.1: + resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} + engines: {node: '>=8'} + dependencies: + '@babel/core': 7.23.9 + '@babel/parser': 7.23.9 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.2 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /istanbul-lib-instrument@6.0.1: + resolution: {integrity: sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==} + engines: {node: '>=10'} + dependencies: + '@babel/core': 7.23.9 + '@babel/parser': 7.23.9 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.2 + semver: 7.6.0 + transitivePeerDependencies: + - supports-color + dev: true + + /istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} + dependencies: + istanbul-lib-coverage: 3.2.2 + make-dir: 4.0.0 + supports-color: 7.2.0 + dev: true + + /istanbul-lib-source-maps@4.0.1: + resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} + engines: {node: '>=10'} + dependencies: + debug: 4.3.4 + istanbul-lib-coverage: 3.2.2 + source-map: 0.6.1 + transitivePeerDependencies: + - supports-color + dev: true + + /istanbul-reports@3.1.6: + resolution: {integrity: sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==} + engines: {node: '>=8'} + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.1 + dev: true + + /iterator.prototype@1.1.2: + resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} + dependencies: + define-properties: 1.2.1 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + reflect.getprototypeof: 1.0.5 + set-function-name: 2.0.1 + dev: true + + /jackspeak@2.3.6: + resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} + engines: {node: '>=14'} + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + dev: true + + /jake@10.8.7: + resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==} + engines: {node: '>=10'} + hasBin: true + dependencies: + async: 3.2.5 + chalk: 4.1.2 + filelist: 1.0.4 + minimatch: 3.1.2 + dev: true + + /jest-changed-files@29.7.0: + resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + execa: 5.1.1 + jest-util: 29.7.0 + p-limit: 3.1.0 + dev: true + + /jest-circus@29.7.0: + resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/environment': 29.7.0 + '@jest/expect': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.6.2 + chalk: 4.1.2 + co: 4.6.0 + dedent: 1.5.1 + is-generator-fn: 2.1.0 + jest-each: 29.7.0 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-runtime: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + p-limit: 3.1.0 + pretty-format: 29.7.0 + pure-rand: 6.0.4 + slash: 3.0.0 + stack-utils: 2.0.6 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + dev: true + + /jest-cli@29.7.0(@types/node@20.6.2)(ts-node@10.9.2): + resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@jest/core': 29.7.0(ts-node@10.9.2) + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + chalk: 4.1.2 + create-jest: 29.7.0(@types/node@20.6.2)(ts-node@10.9.2) + exit: 0.1.2 + import-local: 3.1.0 + jest-config: 29.7.0(@types/node@20.6.2)(ts-node@10.9.2) + jest-util: 29.7.0 + jest-validate: 29.7.0 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + dev: true + + /jest-config@29.7.0(@types/node@20.6.2)(ts-node@10.9.2): + resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@types/node': '*' + ts-node: '>=9.0.0' + peerDependenciesMeta: + '@types/node': + optional: true + ts-node: + optional: true + dependencies: + '@babel/core': 7.23.9 + '@jest/test-sequencer': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.6.2 + babel-jest: 29.7.0(@babel/core@7.23.9) + chalk: 4.1.2 + ci-info: 3.9.0 + deepmerge: 4.3.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-circus: 29.7.0 + jest-environment-node: 29.7.0 + jest-get-type: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-runner: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + micromatch: 4.0.5 + parse-json: 5.2.0 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + ts-node: 10.9.2(@types/node@20.6.2)(typescript@5.3.3) + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + dev: true + + /jest-diff@29.7.0: + resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: 4.1.2 + diff-sequences: 29.6.3 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + dev: true + + /jest-docblock@29.7.0: + resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + detect-newline: 3.1.0 + dev: true + + /jest-each@29.7.0: + resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + chalk: 4.1.2 + jest-get-type: 29.6.3 + jest-util: 29.7.0 + pretty-format: 29.7.0 + dev: true + + /jest-environment-jsdom@29.7.0: + resolution: {integrity: sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + dependencies: + '@jest/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 + '@jest/types': 29.6.3 + '@types/jsdom': 20.0.1 + '@types/node': 20.6.2 + jest-mock: 29.7.0 + jest-util: 29.7.0 + jsdom: 20.0.3 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + + /jest-environment-node@29.7.0: + resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.6.2 + jest-mock: 29.7.0 + jest-util: 29.7.0 + dev: true + + /jest-get-type@29.6.3: + resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + + /jest-haste-map@29.7.0: + resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + '@types/graceful-fs': 4.1.9 + '@types/node': 20.6.2 + anymatch: 3.1.3 + fb-watchman: 2.0.2 + graceful-fs: 4.2.11 + jest-regex-util: 29.6.3 + jest-util: 29.7.0 + jest-worker: 29.7.0 + micromatch: 4.0.5 + walker: 1.0.8 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /jest-leak-detector@29.7.0: + resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + dev: true + + /jest-matcher-utils@29.7.0: + resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: 4.1.2 + jest-diff: 29.7.0 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + dev: true + + /jest-message-util@29.7.0: + resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/code-frame': 7.23.5 + '@jest/types': 29.6.3 + '@types/stack-utils': 2.0.3 + chalk: 4.1.2 + graceful-fs: 4.2.11 + micromatch: 4.0.5 + pretty-format: 29.7.0 + slash: 3.0.0 + stack-utils: 2.0.6 + dev: true + + /jest-mock@29.7.0: + resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + '@types/node': 20.6.2 + jest-util: 29.7.0 + dev: true + + /jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): + resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} + engines: {node: '>=6'} + peerDependencies: + jest-resolve: '*' + peerDependenciesMeta: + jest-resolve: + optional: true + dependencies: + jest-resolve: 29.7.0 + dev: true + + /jest-regex-util@29.6.3: + resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + + /jest-resolve-dependencies@29.7.0: + resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + jest-regex-util: 29.6.3 + jest-snapshot: 29.7.0 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-resolve@29.7.0: + resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: 4.1.2 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0) + jest-util: 29.7.0 + jest-validate: 29.7.0 + resolve: 1.22.8 + resolve.exports: 2.0.2 + slash: 3.0.0 + dev: true + + /jest-runner@29.7.0: + resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/console': 29.7.0 + '@jest/environment': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.6.2 + chalk: 4.1.2 + emittery: 0.13.1 + graceful-fs: 4.2.11 + jest-docblock: 29.7.0 + jest-environment-node: 29.7.0 + jest-haste-map: 29.7.0 + jest-leak-detector: 29.7.0 + jest-message-util: 29.7.0 + jest-resolve: 29.7.0 + jest-runtime: 29.7.0 + jest-util: 29.7.0 + jest-watcher: 29.7.0 + jest-worker: 29.7.0 + p-limit: 3.1.0 + source-map-support: 0.5.13 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-runtime@29.7.0: + resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 + '@jest/globals': 29.7.0 + '@jest/source-map': 29.6.3 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.6.2 + chalk: 4.1.2 + cjs-module-lexer: 1.2.3 + collect-v8-coverage: 1.0.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + jest-message-util: 29.7.0 + jest-mock: 29.7.0 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + slash: 3.0.0 + strip-bom: 4.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-snapshot@29.7.0: + resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/core': 7.23.9 + '@babel/generator': 7.23.6 + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.9) + '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.9) + '@babel/types': 7.23.9 + '@jest/expect-utils': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.9) + chalk: 4.1.2 + expect: 29.7.0 + graceful-fs: 4.2.11 + jest-diff: 29.7.0 + jest-get-type: 29.6.3 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + natural-compare: 1.4.0 + pretty-format: 29.7.0 + semver: 7.6.0 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-util@29.7.0: + resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + '@types/node': 20.6.2 + chalk: 4.1.2 + ci-info: 3.9.0 + graceful-fs: 4.2.11 + picomatch: 2.3.1 + dev: true + + /jest-validate@29.7.0: + resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + camelcase: 6.3.0 + chalk: 4.1.2 + jest-get-type: 29.6.3 + leven: 3.1.0 + pretty-format: 29.7.0 + dev: true + + /jest-watcher@29.7.0: + resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.6.2 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + emittery: 0.13.1 + jest-util: 29.7.0 + string-length: 4.0.2 + dev: true + + /jest-worker@27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + engines: {node: '>= 10.13.0'} + dependencies: + '@types/node': 20.6.2 + merge-stream: 2.0.0 + supports-color: 8.1.1 + dev: true + + /jest-worker@29.7.0: + resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@types/node': 20.6.2 + jest-util: 29.7.0 + merge-stream: 2.0.0 + supports-color: 8.1.1 + dev: true + + /jest@29.7.0(@types/node@20.6.2)(ts-node@10.9.2): + resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@jest/core': 29.7.0(ts-node@10.9.2) + '@jest/types': 29.6.3 + import-local: 3.1.0 + jest-cli: 29.7.0(@types/node@20.6.2)(ts-node@10.9.2) + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + dev: true + + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + /js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + dev: true + + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + + /jsdom@20.0.3: + resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==} + engines: {node: '>=14'} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + dependencies: + abab: 2.0.6 + acorn: 8.11.3 + acorn-globals: 7.0.1 + cssom: 0.5.0 + cssstyle: 2.3.0 + data-urls: 3.0.2 + decimal.js: 10.4.3 + domexception: 4.0.0 + escodegen: 2.1.0 + form-data: 4.0.0 + html-encoding-sniffer: 3.0.0 + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + is-potential-custom-element-name: 1.0.1 + nwsapi: 2.2.7 + parse5: 7.1.2 + saxes: 6.0.0 + symbol-tree: 3.2.4 + tough-cookie: 4.1.3 + w3c-xmlserializer: 4.0.0 + webidl-conversions: 7.0.0 + whatwg-encoding: 2.0.0 + whatwg-mimetype: 3.0.0 + whatwg-url: 11.0.0 + ws: 8.16.0 + xml-name-validator: 4.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + + /jsesc@0.5.0: + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} + hasBin: true + dev: true + + /jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + dev: true + + /json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + dev: true + + /json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + /json-schema-typed@7.0.3: + resolution: {integrity: sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A==} + dev: false + + /json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + dev: true + + /json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + requiresBuild: true + dev: true + optional: true + + /json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + dependencies: + minimist: 1.2.8 + dev: true + + /json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + dev: true + + /jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + optionalDependencies: + graceful-fs: 4.2.11 + dev: true + + /jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + + /jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} + dependencies: + array-includes: 3.1.7 + array.prototype.flat: 1.3.2 + object.assign: 4.1.5 + object.values: 1.1.7 + dev: true + + /jszip@3.10.1: + resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} + dependencies: + lie: 3.3.0 + pako: 1.0.11 + readable-stream: 2.3.8 + setimmediate: 1.0.5 + dev: true + + /keyboardevent-from-electron-accelerator@2.0.0: + resolution: {integrity: sha512-iQcmNA0M4ETMNi0kG/q0h/43wZk7rMeKYrXP7sqKIJbHkTU8Koowgzv+ieR/vWJbOwxx5nDC3UnudZ0aLSu4VA==} + dev: false + + /keyboardevents-areequal@0.2.2: + resolution: {integrity: sha512-Nv+Kr33T0mEjxR500q+I6IWisOQ0lK1GGOncV0kWE6n4KFmpcu7RUX5/2B0EUtX51Cb0HjZ9VJsSY3u4cBa0kw==} + dev: false + + /keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + dependencies: + json-buffer: 3.0.1 + dev: true + + /kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + dev: true + + /kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + dev: true + + /language-subtag-registry@0.3.22: + resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} + dev: true + + /language-tags@1.0.5: + resolution: {integrity: sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==} + dependencies: + language-subtag-registry: 0.3.22 + dev: true + + /language-tags@1.0.9: + resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} + engines: {node: '>=0.10'} + dependencies: + language-subtag-registry: 0.3.22 + dev: true + + /launch-editor@2.6.1: + resolution: {integrity: sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==} + dependencies: + picocolors: 1.0.0 + shell-quote: 1.8.1 + dev: true + + /lazy-val@1.0.5: + resolution: {integrity: sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==} + + /leven@3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + engines: {node: '>=6'} + dev: true + + /levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + + /lie@3.3.0: + resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} + dependencies: + immediate: 3.0.6 + dev: true + + /lilconfig@3.0.0: + resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==} + engines: {node: '>=14'} + dev: true + + /lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + /loader-runner@4.3.0: + resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} + engines: {node: '>=6.11.5'} + dev: true + + /loader-utils@1.4.2: + resolution: {integrity: sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==} + engines: {node: '>=4.0.0'} + dependencies: + big.js: 5.2.2 + emojis-list: 3.0.0 + json5: 1.0.2 + dev: true + + /loader-utils@2.0.4: + resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} + engines: {node: '>=8.9.0'} + dependencies: + big.js: 5.2.2 + emojis-list: 3.0.0 + json5: 2.2.3 + dev: true + + /locate-path@3.0.0: + resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} + engines: {node: '>=6'} + dependencies: + p-locate: 3.0.0 + path-exists: 3.0.0 + dev: false + + /locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + dependencies: + p-locate: 4.1.0 + dev: true + + /locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + dev: true + + /lodash.debounce@4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + dev: true + + /lodash.difference@4.5.0: + resolution: {integrity: sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==} + dev: true + + /lodash.escaperegexp@4.1.2: + resolution: {integrity: sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==} + dev: false + + /lodash.isequal@4.5.0: + resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} + dev: false + + /lodash.memoize@4.1.2: + resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + dev: true + + /lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + dev: true + + /lodash.mergewith@4.6.2: + resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} + dev: false + + /lodash.uniq@4.5.0: + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + dev: true + + /lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + dev: true + + /log-symbols@4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} + dependencies: + chalk: 4.1.2 + is-unicode-supported: 0.1.0 + dev: true + + /loglevel-colored-level-prefix@1.0.0: + resolution: {integrity: sha512-u45Wcxxc+SdAlh4yeF/uKlC1SPUPCy0gullSNKXod5I4bmifzk+Q4lSLExNEVn19tGaJipbZ4V4jbFn79/6mVA==} + dependencies: + chalk: 1.1.3 + loglevel: 1.9.1 + dev: true + + /loglevel@1.9.1: + resolution: {integrity: sha512-hP3I3kCrDIMuRwAwHltphhDM1r8i55H33GgqjXbrisuJhF4kRhW1dNuxsRklp4bXl8DSdLaNLuiL4A/LWRfxvg==} + engines: {node: '>= 0.6.0'} + dev: true + + /longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + dev: false + + /loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + dependencies: + js-tokens: 4.0.0 + + /lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + dependencies: + tslib: 2.6.2 + dev: true + + /lowercase-keys@2.0.0: + resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} + engines: {node: '>=8'} + dev: true + + /lru-cache@10.2.0: + resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} + engines: {node: 14 || >=16.14} + dev: true + + /lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + dependencies: + yallist: 3.1.1 + dev: true + + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + + /lru-cache@7.18.3: + resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} + engines: {node: '>=12'} + dev: true + + /lz-string@1.5.0: + resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} + hasBin: true + dev: true + + /make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} + dependencies: + semver: 7.6.0 + dev: true + + /make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + dev: true + + /make-fetch-happen@10.2.1: + resolution: {integrity: sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + agentkeepalive: 4.5.0 + cacache: 16.1.3 + http-cache-semantics: 4.1.1 + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + is-lambda: 1.0.1 + lru-cache: 7.18.3 + minipass: 3.3.6 + minipass-collect: 1.0.2 + minipass-fetch: 2.1.2 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + negotiator: 0.6.3 + promise-retry: 2.0.1 + socks-proxy-agent: 7.0.0 + ssri: 9.0.1 + transitivePeerDependencies: + - bluebird + - supports-color + dev: true + + /makeerror@1.0.12: + resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} + dependencies: + tmpl: 1.0.5 + dev: true + + /markdown-table@3.0.3: + resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} + dev: false + + /matcher@3.0.0: + resolution: {integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==} + engines: {node: '>=10'} + requiresBuild: true + dependencies: + escape-string-regexp: 4.0.0 + dev: true + optional: true + + /mdast-util-find-and-replace@3.0.1: + resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} + dependencies: + '@types/mdast': 4.0.3 + escape-string-regexp: 5.0.0 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + dev: false + + /mdast-util-from-markdown@2.0.0: + resolution: {integrity: sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==} + dependencies: + '@types/mdast': 4.0.3 + '@types/unist': 3.0.2 + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + mdast-util-to-string: 4.0.0 + micromark: 4.0.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-decode-string: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + unist-util-stringify-position: 4.0.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-gfm-autolink-literal@2.0.0: + resolution: {integrity: sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==} + dependencies: + '@types/mdast': 4.0.3 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-find-and-replace: 3.0.1 + micromark-util-character: 2.1.0 + dev: false + + /mdast-util-gfm-footnote@2.0.0: + resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==} + dependencies: + '@types/mdast': 4.0.3 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.0 + mdast-util-to-markdown: 2.1.0 + micromark-util-normalize-identifier: 2.0.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} + dependencies: + '@types/mdast': 4.0.3 + mdast-util-from-markdown: 2.0.0 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-gfm-table@2.0.0: + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} + dependencies: + '@types/mdast': 4.0.3 + devlop: 1.1.0 + markdown-table: 3.0.3 + mdast-util-from-markdown: 2.0.0 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-gfm-task-list-item@2.0.0: + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + dependencies: + '@types/mdast': 4.0.3 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.0 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-gfm@3.0.0: + resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} + dependencies: + mdast-util-from-markdown: 2.0.0 + mdast-util-gfm-autolink-literal: 2.0.0 + mdast-util-gfm-footnote: 2.0.0 + mdast-util-gfm-strikethrough: 2.0.0 + mdast-util-gfm-table: 2.0.0 + mdast-util-gfm-task-list-item: 2.0.0 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-mdx-expression@2.0.0: + resolution: {integrity: sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==} + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.3 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.0 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-mdx-jsx@3.1.0: + resolution: {integrity: sha512-A8AJHlR7/wPQ3+Jre1+1rq040fX9A4Q1jG8JxmSNp/PLPHg80A6475wxTp3KzHpApFH6yWxFotHrJQA3dXP6/w==} + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.3 + '@types/unist': 3.0.2 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.0 + mdast-util-to-markdown: 2.1.0 + parse-entities: 4.0.1 + stringify-entities: 4.0.3 + unist-util-remove-position: 5.0.0 + unist-util-stringify-position: 4.0.0 + vfile-message: 4.0.2 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-mdxjs-esm@2.0.1: + resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.3 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.0 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + dependencies: + '@types/mdast': 4.0.3 + unist-util-is: 6.0.0 + dev: false + + /mdast-util-to-hast@13.1.0: + resolution: {integrity: sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==} + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.3 + '@ungap/structured-clone': 1.2.0 + devlop: 1.1.0 + micromark-util-sanitize-uri: 2.0.0 + trim-lines: 3.0.1 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.1 + dev: false + + /mdast-util-to-markdown@2.1.0: + resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==} + dependencies: + '@types/mdast': 4.0.3 + '@types/unist': 3.0.2 + longest-streak: 3.1.0 + mdast-util-phrasing: 4.1.0 + mdast-util-to-string: 4.0.0 + micromark-util-decode-string: 2.0.0 + unist-util-visit: 5.0.0 + zwitch: 2.0.4 + dev: false + + /mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + dependencies: + '@types/mdast': 4.0.3 + dev: false + + /mdn-data@2.0.28: + resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} + dev: true + + /mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + dev: true + + /media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + dev: true + + /memfs@3.5.3: + resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} + engines: {node: '>= 4.0.0'} + dependencies: + fs-monkey: 1.0.5 + dev: true + + /memory-fs@0.2.0: + resolution: {integrity: sha512-+y4mDxU4rvXXu5UDSGCGNiesFmwCHuefGMoPCO1WYucNYj7DsLqrFaa2fXVI0H+NNiPTwwzKwspn9yTZqUGqng==} + dev: true + + /merge-descriptors@1.0.1: + resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} + dev: true + + /merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + dev: true + + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: true + + /methods@1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} + dev: true + + /micromark-core-commonmark@2.0.0: + resolution: {integrity: sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==} + dependencies: + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + micromark-factory-destination: 2.0.0 + micromark-factory-label: 2.0.0 + micromark-factory-space: 2.0.0 + micromark-factory-title: 2.0.0 + micromark-factory-whitespace: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-classify-character: 2.0.0 + micromark-util-html-tag-name: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-subtokenize: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-extension-gfm-autolink-literal@2.0.0: + resolution: {integrity: sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==} + dependencies: + micromark-util-character: 2.1.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-extension-gfm-footnote@2.0.0: + resolution: {integrity: sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg==} + dependencies: + devlop: 1.1.0 + micromark-core-commonmark: 2.0.0 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-extension-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw==} + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-classify-character: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-extension-gfm-table@2.0.0: + resolution: {integrity: sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw==} + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-extension-gfm-tagfilter@2.0.0: + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + dependencies: + micromark-util-types: 2.0.0 + dev: false + + /micromark-extension-gfm-task-list-item@2.0.1: + resolution: {integrity: sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw==} + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-extension-gfm@3.0.0: + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + dependencies: + micromark-extension-gfm-autolink-literal: 2.0.0 + micromark-extension-gfm-footnote: 2.0.0 + micromark-extension-gfm-strikethrough: 2.0.0 + micromark-extension-gfm-table: 2.0.0 + micromark-extension-gfm-tagfilter: 2.0.0 + micromark-extension-gfm-task-list-item: 2.0.1 + micromark-util-combine-extensions: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-factory-destination@2.0.0: + resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==} + dependencies: + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-factory-label@2.0.0: + resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==} + dependencies: + devlop: 1.1.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-factory-space@2.0.0: + resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==} + dependencies: + micromark-util-character: 2.1.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-factory-title@2.0.0: + resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==} + dependencies: + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-factory-whitespace@2.0.0: + resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==} + dependencies: + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-util-character@2.1.0: + resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==} + dependencies: + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-util-chunked@2.0.0: + resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==} + dependencies: + micromark-util-symbol: 2.0.0 + dev: false + + /micromark-util-classify-character@2.0.0: + resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==} + dependencies: + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-util-combine-extensions@2.0.0: + resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==} + dependencies: + micromark-util-chunked: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-util-decode-numeric-character-reference@2.0.1: + resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==} + dependencies: + micromark-util-symbol: 2.0.0 + dev: false + + /micromark-util-decode-string@2.0.0: + resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==} + dependencies: + decode-named-character-reference: 1.0.2 + micromark-util-character: 2.1.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-symbol: 2.0.0 + dev: false + + /micromark-util-encode@2.0.0: + resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} + dev: false + + /micromark-util-html-tag-name@2.0.0: + resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==} + dev: false + + /micromark-util-normalize-identifier@2.0.0: + resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==} + dependencies: + micromark-util-symbol: 2.0.0 + dev: false + + /micromark-util-resolve-all@2.0.0: + resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==} + dependencies: + micromark-util-types: 2.0.0 + dev: false + + /micromark-util-sanitize-uri@2.0.0: + resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} + dependencies: + micromark-util-character: 2.1.0 + micromark-util-encode: 2.0.0 + micromark-util-symbol: 2.0.0 + dev: false + + /micromark-util-subtokenize@2.0.0: + resolution: {integrity: sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==} + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-util-symbol@2.0.0: + resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} + dev: false + + /micromark-util-types@2.0.0: + resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} + dev: false + + /micromark@4.0.0: + resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} + dependencies: + '@types/debug': 4.1.12 + debug: 4.3.4 + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.0 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-combine-extensions: 2.0.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-encode: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-subtokenize: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + transitivePeerDependencies: + - supports-color + dev: false + + /micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + dev: true + + /mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + /mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + + /mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /mime@2.6.0: + resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} + engines: {node: '>=4.0.0'} + hasBin: true + dev: true + + /mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + /mimic-fn@3.1.0: + resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==} + engines: {node: '>=8'} + dev: false + + /mimic-response@1.0.1: + resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} + engines: {node: '>=4'} + dev: true + + /mimic-response@3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + dev: true + + /min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + dev: true + + /mini-css-extract-plugin@2.8.0(webpack@5.90.1): + resolution: {integrity: sha512-CxmUYPFcTgET1zImteG/LZOy/4T5rTojesQXkSNBiquhydn78tfbCE9sjIjnJ/UcjNjOC1bphTCCW5rrS7cXAg==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^5.0.0 + dependencies: + schema-utils: 4.2.0 + tapable: 2.2.1 + webpack: 5.90.1(webpack-cli@5.1.4) + dev: true + + /minimalistic-assert@1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + dev: true + + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + dev: true + + /minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + dev: true + + /minipass-collect@1.0.2: + resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} + engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 + dev: true + + /minipass-fetch@2.1.2: + resolution: {integrity: sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + minipass: 3.3.6 + minipass-sized: 1.0.3 + minizlib: 2.1.2 + optionalDependencies: + encoding: 0.1.13 + dev: true + + /minipass-flush@1.0.5: + resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} + engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 + dev: true + + /minipass-pipeline@1.2.4: + resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} + engines: {node: '>=8'} + dependencies: + minipass: 3.3.6 + dev: true + + /minipass-sized@1.0.3: + resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} + engines: {node: '>=8'} + dependencies: + minipass: 3.3.6 + dev: true + + /minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} + dependencies: + yallist: 4.0.0 + dev: true + + /minipass@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} + engines: {node: '>=8'} + dev: true + + /minipass@7.0.4: + resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} + engines: {node: '>=16 || 14 >=14.17'} + dev: true + + /minizlib@2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 + yallist: 4.0.0 + dev: true + + /mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + dependencies: + minimist: 1.2.8 + dev: true + + /mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + dev: true + + /mrmime@2.0.0: + resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} + engines: {node: '>=10'} + dev: true + + /ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + dev: true + + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + /ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + dev: true + + /multicast-dns@7.2.5: + resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} + hasBin: true + dependencies: + dns-packet: 5.6.1 + thunky: 1.1.0 + dev: true + + /nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: true + + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + dev: true + + /negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + dev: true + + /neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + dev: true + + /net@1.0.2: + resolution: {integrity: sha512-kbhcj2SVVR4caaVnGLJKmlk2+f+oLkjqdKeQlmUtz6nGzOpbcobwVIeSURNgraV/v3tlmGIX82OcPCl0K6RbHQ==} + dev: false + + /no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + dependencies: + lower-case: 2.0.2 + tslib: 2.6.2 + dev: true + + /node-abi@3.54.0: + resolution: {integrity: sha512-p7eGEiQil0YUV3ItH4/tBb781L5impVmmx2E9FRKF7d18XXzp4PGT2tdYMFY6wQqgxD0IwNZOiSJ0/K0fSi/OA==} + engines: {node: '>=10'} + dependencies: + semver: 7.6.0 + dev: true + + /node-addon-api@1.7.2: + resolution: {integrity: sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==} + requiresBuild: true + dev: true + optional: true + + /node-api-version@0.2.0: + resolution: {integrity: sha512-fthTTsi8CxaBXMaBAD7ST2uylwvsnYxh2PfaScwpMhos6KlSFajXQPcM4ogNE1q2s3Lbz9GCGqeIHC+C6OZnKg==} + dependencies: + semver: 7.6.0 + dev: true + + /node-cron@3.0.3: + resolution: {integrity: sha512-dOal67//nohNgYWb+nWmg5dkFdIwDm8EpeGYMekPMrngV3637lqnX0lbUcCtgibHTz6SEz7DAIjKvKDFYCnO1A==} + engines: {node: '>=6.0.0'} + dependencies: + uuid: 8.3.2 + dev: false + + /node-forge@1.3.1: + resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} + engines: {node: '>= 6.13.0'} + dev: true + + /node-gyp@9.4.1: + resolution: {integrity: sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==} + engines: {node: ^12.13 || ^14.13 || >=16} + hasBin: true + dependencies: + env-paths: 2.2.1 + exponential-backoff: 3.1.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + make-fetch-happen: 10.2.1 + nopt: 6.0.0 + npmlog: 6.0.2 + rimraf: 3.0.2 + semver: 7.6.0 + tar: 6.2.0 + which: 2.0.2 + transitivePeerDependencies: + - bluebird + - supports-color + dev: true + + /node-int64@0.4.0: + resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} + dev: true + + /node-releases@2.0.14: + resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + dev: true + + /nopt@6.0.0: + resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + hasBin: true + dependencies: + abbrev: 1.1.1 + dev: true + + /normalize-path@2.1.1: + resolution: {integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==} + engines: {node: '>=0.10.0'} + dependencies: + remove-trailing-separator: 1.1.0 + dev: true + + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: true + + /normalize-url@6.1.0: + resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} + engines: {node: '>=10'} + dev: true + + /npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + dependencies: + path-key: 3.1.1 + dev: true + + /npmlog@6.0.2: + resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + are-we-there-yet: 3.0.1 + console-control-strings: 1.1.0 + gauge: 4.0.4 + set-blocking: 2.0.0 + dev: true + + /nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + dependencies: + boolbase: 1.0.0 + dev: true + + /nwsapi@2.2.7: + resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} + dev: true + + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + /object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + dev: true + + /object-is@1.1.5: + resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.6 + define-properties: 1.2.1 + dev: true + + /object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + dev: true + + /object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.6 + define-properties: 1.2.1 + has-symbols: 1.0.3 + object-keys: 1.1.1 + dev: true + + /object.entries@1.1.7: + resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.6 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /object.fromentries@2.0.7: + resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.6 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /object.groupby@1.0.2: + resolution: {integrity: sha512-bzBq58S+x+uo0VjurFT0UktpKHOZmv4/xePiOA1nbB9pMqpGK7rUPNgf+1YC+7mE+0HzhTMqNUuCqvKhj6FnBw==} + dependencies: + array.prototype.filter: 1.0.3 + call-bind: 1.0.6 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-errors: 1.3.0 + dev: true + + /object.hasown@1.1.3: + resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==} + dependencies: + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /object.values@1.1.7: + resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.6 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /obuf@1.1.2: + resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} + dev: true + + /on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + dependencies: + ee-first: 1.1.1 + dev: true + + /on-headers@1.0.2: + resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} + engines: {node: '>= 0.8'} + dev: true + + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + dev: true + + /onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + dependencies: + mimic-fn: 2.1.0 + + /open@8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} + dependencies: + define-lazy-prop: 2.0.0 + is-docker: 2.2.1 + is-wsl: 2.2.0 + dev: true + + /opener@1.5.2: + resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} + hasBin: true + dev: true + + /optionator@0.9.3: + resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} + engines: {node: '>= 0.8.0'} + dependencies: + '@aashutoshrathi/word-wrap': 1.2.6 + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + + /ora@5.4.1: + resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} + engines: {node: '>=10'} + dependencies: + bl: 4.1.0 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-spinners: 2.9.2 + is-interactive: 1.0.0 + is-unicode-supported: 0.1.0 + log-symbols: 4.1.0 + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + dev: true + + /p-cancelable@2.1.1: + resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} + engines: {node: '>=8'} + dev: true + + /p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + dependencies: + p-try: 2.2.0 + + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + dev: true + + /p-locate@3.0.0: + resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} + engines: {node: '>=6'} + dependencies: + p-limit: 2.3.0 + dev: false + + /p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + dependencies: + p-limit: 2.3.0 + dev: true + + /p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + dev: true + + /p-map@4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} + dependencies: + aggregate-error: 3.1.0 + dev: true + + /p-retry@4.6.2: + resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} + engines: {node: '>=8'} + dependencies: + '@types/retry': 0.12.0 + retry: 0.13.1 + dev: true + + /p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + /pako@1.0.11: + resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} + dev: true + + /param-case@3.0.4: + resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} + dependencies: + dot-case: 3.0.4 + tslib: 2.6.2 + dev: true + + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + + /parse-entities@4.0.1: + resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} + dependencies: + '@types/unist': 2.0.10 + character-entities: 2.0.2 + character-entities-legacy: 3.0.0 + character-reference-invalid: 2.0.1 + decode-named-character-reference: 1.0.2 + is-alphanumerical: 2.0.1 + is-decimal: 2.0.1 + is-hexadecimal: 2.0.1 + dev: false + + /parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': 7.23.5 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + + /parse5@7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + dependencies: + entities: 4.5.0 + dev: true + + /parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + dev: true + + /pascal-case@3.1.2: + resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + dependencies: + no-case: 3.0.4 + tslib: 2.6.2 + dev: true + + /path-exists@3.0.0: + resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} + engines: {node: '>=4'} + dev: false + + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: true + + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + dev: true + + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + dev: true + + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + /path-scurry@1.10.1: + resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + lru-cache: 10.2.0 + minipass: 7.0.4 + dev: true + + /path-to-regexp@0.1.7: + resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} + dev: true + + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + /pend@1.2.0: + resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} + dev: true + + /picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + dev: true + + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: true + + /pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + dev: true + + /pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + dev: true + + /pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + dev: true + + /pkg-up@3.1.0: + resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} + engines: {node: '>=8'} + dependencies: + find-up: 3.0.0 + dev: false + + /plist@3.1.0: + resolution: {integrity: sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==} + engines: {node: '>=10.4.0'} + dependencies: + '@xmldom/xmldom': 0.8.10 + base64-js: 1.5.1 + xmlbuilder: 15.1.1 + dev: true + + /postcss-calc@9.0.1(postcss@8.4.35): + resolution: {integrity: sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.2 + dependencies: + postcss: 8.4.35 + postcss-selector-parser: 6.0.15 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-colormin@6.0.2(postcss@8.4.35): + resolution: {integrity: sha512-TXKOxs9LWcdYo5cgmcSHPkyrLAh86hX1ijmyy6J8SbOhyv6ua053M3ZAM/0j44UsnQNIWdl8gb5L7xX2htKeLw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + browserslist: 4.22.3 + caniuse-api: 3.0.0 + colord: 2.9.3 + postcss: 8.4.35 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-convert-values@6.0.2(postcss@8.4.35): + resolution: {integrity: sha512-aeBmaTnGQ+NUSVQT8aY0sKyAD/BaLJenEKZ03YK0JnDE1w1Rr8XShoxdal2V2H26xTJKr3v5haByOhJuyT4UYw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + browserslist: 4.22.3 + postcss: 8.4.35 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-discard-comments@6.0.1(postcss@8.4.35): + resolution: {integrity: sha512-f1KYNPtqYLUeZGCHQPKzzFtsHaRuECe6jLakf/RjSRqvF5XHLZnM2+fXLhb8Qh/HBFHs3M4cSLb1k3B899RYIg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.35 + dev: true + + /postcss-discard-duplicates@6.0.1(postcss@8.4.35): + resolution: {integrity: sha512-1hvUs76HLYR8zkScbwyJ8oJEugfPV+WchpnA+26fpJ7Smzs51CzGBHC32RS03psuX/2l0l0UKh2StzNxOrKCYg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.35 + dev: true + + /postcss-discard-empty@6.0.1(postcss@8.4.35): + resolution: {integrity: sha512-yitcmKwmVWtNsrrRqGJ7/C0YRy53i0mjexBDQ9zYxDwTWVBgbU4+C9jIZLmQlTDT9zhml+u0OMFJh8+31krmOg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.35 + dev: true + + /postcss-discard-overridden@6.0.1(postcss@8.4.35): + resolution: {integrity: sha512-qs0ehZMMZpSESbRkw1+inkf51kak6OOzNRaoLd/U7Fatp0aN2HQ1rxGOrJvYcRAN9VpX8kUF13R2ofn8OlvFVA==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.35 + dev: true + + /postcss-merge-longhand@6.0.2(postcss@8.4.35): + resolution: {integrity: sha512-+yfVB7gEM8SrCo9w2lCApKIEzrTKl5yS1F4yGhV3kSim6JzbfLGJyhR1B6X+6vOT0U33Mgx7iv4X9MVWuaSAfw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.35 + postcss-value-parser: 4.2.0 + stylehacks: 6.0.2(postcss@8.4.35) + dev: true + + /postcss-merge-rules@6.0.3(postcss@8.4.35): + resolution: {integrity: sha512-yfkDqSHGohy8sGYIJwBmIGDv4K4/WrJPX355XrxQb/CSsT4Kc/RxDi6akqn5s9bap85AWgv21ArcUWwWdGNSHA==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + browserslist: 4.22.3 + caniuse-api: 3.0.0 + cssnano-utils: 4.0.1(postcss@8.4.35) + postcss: 8.4.35 + postcss-selector-parser: 6.0.15 + dev: true + + /postcss-minify-font-values@6.0.1(postcss@8.4.35): + resolution: {integrity: sha512-tIwmF1zUPoN6xOtA/2FgVk1ZKrLcCvE0dpZLtzyyte0j9zUeB8RTbCqrHZGjJlxOvNWKMYtunLrrl7HPOiR46w==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.35 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-minify-gradients@6.0.1(postcss@8.4.35): + resolution: {integrity: sha512-M1RJWVjd6IOLPl1hYiOd5HQHgpp6cvJVLrieQYS9y07Yo8itAr6jaekzJphaJFR0tcg4kRewCk3kna9uHBxn/w==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + colord: 2.9.3 + cssnano-utils: 4.0.1(postcss@8.4.35) + postcss: 8.4.35 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-minify-params@6.0.2(postcss@8.4.35): + resolution: {integrity: sha512-zwQtbrPEBDj+ApELZ6QylLf2/c5zmASoOuA4DzolyVGdV38iR2I5QRMsZcHkcdkZzxpN8RS4cN7LPskOkTwTZw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + browserslist: 4.22.3 + cssnano-utils: 4.0.1(postcss@8.4.35) + postcss: 8.4.35 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-minify-selectors@6.0.2(postcss@8.4.35): + resolution: {integrity: sha512-0b+m+w7OAvZejPQdN2GjsXLv5o0jqYHX3aoV0e7RBKPCsB7TYG5KKWBFhGnB/iP3213Ts8c5H4wLPLMm7z28Sg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.35 + postcss-selector-parser: 6.0.15 + dev: true + + /postcss-modules-extract-imports@3.0.0(postcss@8.4.35): + resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: 8.4.35 + dev: true + + /postcss-modules-local-by-default@4.0.4(postcss@8.4.35): + resolution: {integrity: sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + icss-utils: 5.1.0(postcss@8.4.35) + postcss: 8.4.35 + postcss-selector-parser: 6.0.15 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-modules-scope@3.1.1(postcss@8.4.35): + resolution: {integrity: sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: 8.4.35 + postcss-selector-parser: 6.0.15 + dev: true + + /postcss-modules-values@4.0.0(postcss@8.4.35): + resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + icss-utils: 5.1.0(postcss@8.4.35) + postcss: 8.4.35 + dev: true + + /postcss-normalize-charset@6.0.1(postcss@8.4.35): + resolution: {integrity: sha512-aW5LbMNRZ+oDV57PF9K+WI1Z8MPnF+A8qbajg/T8PP126YrGX1f9IQx21GI2OlGz7XFJi/fNi0GTbY948XJtXg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.35 + dev: true + + /postcss-normalize-display-values@6.0.1(postcss@8.4.35): + resolution: {integrity: sha512-mc3vxp2bEuCb4LgCcmG1y6lKJu1Co8T+rKHrcbShJwUmKJiEl761qb/QQCfFwlrvSeET3jksolCR/RZuMURudw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.35 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-positions@6.0.1(postcss@8.4.35): + resolution: {integrity: sha512-HRsq8u/0unKNvm0cvwxcOUEcakFXqZ41fv3FOdPn916XFUrympjr+03oaLkuZENz3HE9RrQE9yU0Xv43ThWjQg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.35 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-repeat-style@6.0.1(postcss@8.4.35): + resolution: {integrity: sha512-Gbb2nmCy6tTiA7Sh2MBs3fj9W8swonk6lw+dFFeQT68B0Pzwp1kvisJQkdV6rbbMSd9brMlS8I8ts52tAGWmGQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.35 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-string@6.0.1(postcss@8.4.35): + resolution: {integrity: sha512-5Fhx/+xzALJD9EI26Aq23hXwmv97Zfy2VFrt5PLT8lAhnBIZvmaT5pQk+NuJ/GWj/QWaKSKbnoKDGLbV6qnhXg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.35 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-timing-functions@6.0.1(postcss@8.4.35): + resolution: {integrity: sha512-4zcczzHqmCU7L5dqTB9rzeqPWRMc0K2HoR+Bfl+FSMbqGBUcP5LRfgcH4BdRtLuzVQK1/FHdFoGT3F7rkEnY+g==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.35 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-unicode@6.0.2(postcss@8.4.35): + resolution: {integrity: sha512-Ff2VdAYCTGyMUwpevTZPZ4w0+mPjbZzLLyoLh/RMpqUqeQKZ+xMm31hkxBavDcGKcxm6ACzGk0nBfZ8LZkStKA==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + browserslist: 4.22.3 + postcss: 8.4.35 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-url@6.0.1(postcss@8.4.35): + resolution: {integrity: sha512-jEXL15tXSvbjm0yzUV7FBiEXwhIa9H88JOXDGQzmcWoB4mSjZIsmtto066s2iW9FYuIrIF4k04HA2BKAOpbsaQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.35 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-whitespace@6.0.1(postcss@8.4.35): + resolution: {integrity: sha512-76i3NpWf6bB8UHlVuLRxG4zW2YykF9CTEcq/9LGAiz2qBuX5cBStadkk0jSkg9a9TCIXbMQz7yzrygKoCW9JuA==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.35 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-ordered-values@6.0.1(postcss@8.4.35): + resolution: {integrity: sha512-XXbb1O/MW9HdEhnBxitZpPFbIvDgbo9NK4c/5bOfiKpnIGZDoL2xd7/e6jW5DYLsWxBbs+1nZEnVgnjnlFViaA==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + cssnano-utils: 4.0.1(postcss@8.4.35) + postcss: 8.4.35 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-reduce-initial@6.0.2(postcss@8.4.35): + resolution: {integrity: sha512-YGKalhNlCLcjcLvjU5nF8FyeCTkCO5UtvJEt0hrPZVCTtRLSOH4z00T1UntQPj4dUmIYZgMj8qK77JbSX95hSw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + browserslist: 4.22.3 + caniuse-api: 3.0.0 + postcss: 8.4.35 + dev: true + + /postcss-reduce-transforms@6.0.1(postcss@8.4.35): + resolution: {integrity: sha512-fUbV81OkUe75JM+VYO1gr/IoA2b/dRiH6HvMwhrIBSUrxq3jNZQZitSnugcTLDi1KkQh1eR/zi+iyxviUNBkcQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.35 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-selector-parser@6.0.15: + resolution: {integrity: sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==} + engines: {node: '>=4'} + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + dev: true + + /postcss-svgo@6.0.2(postcss@8.4.35): + resolution: {integrity: sha512-IH5R9SjkTkh0kfFOQDImyy1+mTCb+E830+9SV1O+AaDcoHTvfsvt6WwJeo7KwcHbFnevZVCsXhDmjFiGVuwqFQ==} + engines: {node: ^14 || ^16 || >= 18} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.35 + postcss-value-parser: 4.2.0 + svgo: 3.2.0 + dev: true + + /postcss-unique-selectors@6.0.2(postcss@8.4.35): + resolution: {integrity: sha512-8IZGQ94nechdG7Y9Sh9FlIY2b4uS8/k8kdKRX040XHsS3B6d1HrJAkXrBSsSu4SuARruSsUjW3nlSw8BHkaAYQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: 8.4.35 + postcss-selector-parser: 6.0.15 + dev: true + + /postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + dev: true + + /postcss@8.4.35: + resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + + /prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + dev: true + + /prettier-eslint@16.3.0: + resolution: {integrity: sha512-Lh102TIFCr11PJKUMQ2kwNmxGhTsv/KzUg9QYF2Gkw259g/kPgndZDWavk7/ycbRvj2oz4BPZ1gCU8bhfZH/Xg==} + engines: {node: '>=16.10.0'} + peerDependencies: + prettier-plugin-svelte: ^3.0.0 + svelte-eslint-parser: '*' + peerDependenciesMeta: + prettier-plugin-svelte: + optional: true + svelte-eslint-parser: + optional: true + dependencies: + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + common-tags: 1.8.2 + dlv: 1.1.3 + eslint: 8.56.0 + indent-string: 4.0.0 + lodash.merge: 4.6.2 + loglevel-colored-level-prefix: 1.0.0 + prettier: 3.2.5 + pretty-format: 29.7.0 + require-relative: 0.8.7 + typescript: 5.3.3 + vue-eslint-parser: 9.4.2(eslint@8.56.0) + transitivePeerDependencies: + - supports-color + dev: true + + /prettier-linter-helpers@1.0.0: + resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} + engines: {node: '>=6.0.0'} + dependencies: + fast-diff: 1.3.0 + dev: true + + /prettier@3.2.5: + resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} + engines: {node: '>=14'} + hasBin: true + dev: true + + /pretty-error@4.0.0: + resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==} + dependencies: + lodash: 4.17.21 + renderkid: 3.0.0 + dev: true + + /pretty-format@27.5.1: + resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + ansi-regex: 5.0.1 + ansi-styles: 5.2.0 + react-is: 17.0.2 + dev: true + + /pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': 29.6.3 + ansi-styles: 5.2.0 + react-is: 18.2.0 + dev: true + + /process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + dev: true + + /progress@2.0.3: + resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} + engines: {node: '>=0.4.0'} + dev: true + + /promise-inflight@1.0.1: + resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} + peerDependencies: + bluebird: '*' + peerDependenciesMeta: + bluebird: + optional: true + dev: true + + /promise-retry@2.0.1: + resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} + engines: {node: '>=10'} + dependencies: + err-code: 2.0.3 + retry: 0.12.0 + dev: true + + /prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} + dependencies: + kleur: 3.0.3 + sisteransi: 1.0.5 + dev: true + + /prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + + /property-information@6.4.1: + resolution: {integrity: sha512-OHYtXfu5aI2sS2LWFSN5rgJjrQ4pCy8i1jubJLe2QvMF8JJ++HXTUIVWFLfXJoaOfvYYjk2SN8J2wFUWIGXT4w==} + dev: false + + /proxy-addr@2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} + dependencies: + forwarded: 0.2.0 + ipaddr.js: 1.9.1 + dev: true + + /proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + dev: false + + /psl@1.9.0: + resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + dev: true + + /pump@3.0.0: + resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + dev: true + + /punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + /pure-rand@6.0.4: + resolution: {integrity: sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==} + dev: true + + /qs@6.11.0: + resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} + engines: {node: '>=0.6'} + dependencies: + side-channel: 1.0.5 + dev: true + + /querystringify@2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + dev: true + + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: true + + /quick-lru@5.1.1: + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} + dev: true + + /randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + dev: true + + /raw-body@2.5.1: + resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==} + engines: {node: '>= 0.8'} + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + dev: true + + /react-clientside-effect@1.2.6(react@18.2.0): + resolution: {integrity: sha512-XGGGRQAKY+q25Lz9a/4EPqom7WRjz3z9R2k4jhVKA/puQFH/5Nt27vFZYql4m4NVNdUvX8PS3O7r/Zzm7cjUlg==} + peerDependencies: + react: ^15.3.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@babel/runtime': 7.23.9 + react: 18.2.0 + dev: false + + /react-dom@18.2.0(react@18.2.0): + resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} + peerDependencies: + react: ^18.2.0 + dependencies: + loose-envify: 1.4.0 + react: 18.2.0 + scheduler: 0.23.0 + + /react-fast-compare@3.2.2: + resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} + dev: false + + /react-focus-lock@2.9.7(@types/react@18.2.55)(react@18.2.0): + resolution: {integrity: sha512-EfhX040SELLqnQ9JftqsmQCG49iByg8F5X5m19Er+n371OaETZ35dlNPZrLOOTlnnwD4c2Zv0KDgabDTc7dPHw==} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.23.9 + '@types/react': 18.2.55 + focus-lock: 1.0.0 + prop-types: 15.8.1 + react: 18.2.0 + react-clientside-effect: 1.2.6(react@18.2.0) + use-callback-ref: 1.3.1(@types/react@18.2.55)(react@18.2.0) + use-sidecar: 1.1.2(@types/react@18.2.55)(react@18.2.0) + dev: false + + /react-hook-form@7.50.1(react@18.2.0): + resolution: {integrity: sha512-3PCY82oE0WgeOgUtIr3nYNNtNvqtJ7BZjsbxh6TnYNbXButaD5WpjOmTjdxZfheuHKR68qfeFnEDVYoSSFPMTQ==} + engines: {node: '>=12.22.0'} + peerDependencies: + react: ^16.8.0 || ^17 || ^18 + dependencies: + react: 18.2.0 + dev: false + + /react-icons@5.0.1(react@18.2.0): + resolution: {integrity: sha512-WqLZJ4bLzlhmsvme6iFdgO8gfZP17rfjYEJ2m9RsZjZ+cc4k1hTzknEz63YS1MeT50kVzoa1Nz36f4BEx+Wigw==} + peerDependencies: + react: '*' + dependencies: + react: 18.2.0 + dev: false + + /react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + + /react-is@17.0.2: + resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} + dev: true + + /react-is@18.2.0: + resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} + dev: true + + /react-markdown@9.0.1(@types/react@18.2.55)(react@18.2.0): + resolution: {integrity: sha512-186Gw/vF1uRkydbsOIkcGXw7aHq0sZOCRFFjGrr7b9+nVZg4UfA4enXCaxm4fUzecU38sWfrNDitGhshuU7rdg==} + peerDependencies: + '@types/react': '>=18' + react: '>=18' + dependencies: + '@types/hast': 3.0.4 + '@types/react': 18.2.55 + devlop: 1.1.0 + hast-util-to-jsx-runtime: 2.3.0 + html-url-attributes: 3.0.0 + mdast-util-to-hast: 13.1.0 + react: 18.2.0 + remark-parse: 11.0.0 + remark-rehype: 11.1.0 + unified: 11.0.4 + unist-util-visit: 5.0.0 + vfile: 6.0.1 + transitivePeerDependencies: + - supports-color + dev: false + + /react-refresh@0.14.0: + resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} + engines: {node: '>=0.10.0'} + dev: true + + /react-remove-scroll-bar@2.3.4(@types/react@18.2.55)(react@18.2.0): + resolution: {integrity: sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.2.55 + react: 18.2.0 + react-style-singleton: 2.2.1(@types/react@18.2.55)(react@18.2.0) + tslib: 2.6.2 + dev: false + + /react-remove-scroll@2.5.7(@types/react@18.2.55)(react@18.2.0): + resolution: {integrity: sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.2.55 + react: 18.2.0 + react-remove-scroll-bar: 2.3.4(@types/react@18.2.55)(react@18.2.0) + react-style-singleton: 2.2.1(@types/react@18.2.55)(react@18.2.0) + tslib: 2.6.2 + use-callback-ref: 1.3.1(@types/react@18.2.55)(react@18.2.0) + use-sidecar: 1.1.2(@types/react@18.2.55)(react@18.2.0) + dev: false + + /react-router-dom@6.22.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-z2w+M4tH5wlcLmH3BMMOMdrtrJ9T3oJJNsAlBJbwk+8Syxd5WFJ7J5dxMEW0/GEXD1BBis4uXRrNIz3mORr0ag==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + dependencies: + '@remix-run/router': 1.15.0 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-router: 6.22.0(react@18.2.0) + dev: false + + /react-router@6.22.0(react@18.2.0): + resolution: {integrity: sha512-q2yemJeg6gw/YixRlRnVx6IRJWZD6fonnfZhN1JIOhV2iJCPeRNSH3V1ISwHf+JWcESzLC3BOLD1T07tmO5dmg==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: '>=16.8' + dependencies: + '@remix-run/router': 1.15.0 + react: 18.2.0 + dev: false + + /react-shallow-renderer@16.15.0(react@18.2.0): + resolution: {integrity: sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==} + peerDependencies: + react: ^16.0.0 || ^17.0.0 || ^18.0.0 + dependencies: + object-assign: 4.1.1 + react: 18.2.0 + react-is: 18.2.0 + dev: true + + /react-spinners@0.13.8(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-3e+k56lUkPj0vb5NDXPVFAOkPC//XyhKPJjvcGjyMNPWsBKpplfeyialP74G7H7+It7KzhtET+MvGqbKgAqpZA==} + peerDependencies: + react: ^16.0.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 + dependencies: + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /react-style-singleton@2.2.1(@types/react@18.2.55)(react@18.2.0): + resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.2.55 + get-nonce: 1.0.1 + invariant: 2.2.4 + react: 18.2.0 + tslib: 2.6.2 + dev: false + + /react-test-renderer@18.2.0(react@18.2.0): + resolution: {integrity: sha512-JWD+aQ0lh2gvh4NM3bBM42Kx+XybOxCpgYK7F8ugAlpaTSnWsX+39Z4XkOykGZAHrjwwTZT3x3KxswVWxHPUqA==} + peerDependencies: + react: ^18.2.0 + dependencies: + react: 18.2.0 + react-is: 18.2.0 + react-shallow-renderer: 16.15.0(react@18.2.0) + scheduler: 0.23.0 + dev: true + + /react-use-websocket@4.8.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-FTXuG5O+LFozmu1BRfrzl7UIQngECvGJmL7BHsK4TYXuVt+mCizVA8lT0hGSIF0Z0TedF7bOo1nRzOUdginhDw==} + peerDependencies: + react: '>= 18.0.0' + react-dom: '>= 18.0.0' + dependencies: + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /react@18.2.0: + resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} + engines: {node: '>=0.10.0'} + dependencies: + loose-envify: 1.4.0 + + /read-binary-file-arch@1.0.6: + resolution: {integrity: sha512-BNg9EN3DD3GsDXX7Aa8O4p92sryjkmzYYgmgTAc6CA4uGLEDzFfxOxugu21akOxpcXHiEgsYkC6nPsQvLLLmEg==} + hasBin: true + dependencies: + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /read-config-file@6.3.2: + resolution: {integrity: sha512-M80lpCjnE6Wt6zb98DoW8WHR09nzMSpu8XHtPkiTHrJ5Az9CybfeQhTJ8D7saeBHpGhLPIVyA8lcL6ZmdKwY6Q==} + engines: {node: '>=12.0.0'} + dependencies: + config-file-ts: 0.2.6 + dotenv: 9.0.2 + dotenv-expand: 5.1.0 + js-yaml: 4.1.0 + json5: 2.2.3 + lazy-val: 1.0.5 + dev: true + + /readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + dev: true + + /readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + dev: true + + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.1 + dev: true + + /rechoir@0.8.0: + resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} + engines: {node: '>= 10.13.0'} + dependencies: + resolve: 1.22.8 + dev: true + + /redent@3.0.0: + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + engines: {node: '>=8'} + dependencies: + indent-string: 4.0.0 + strip-indent: 3.0.0 + dev: true + + /reflect.getprototypeof@1.0.5: + resolution: {integrity: sha512-62wgfC8dJWrmxv44CA36pLDnP6KKl3Vhxb7PL+8+qrrFMMoJij4vgiMP8zV4O8+CBMXY1mHxI5fITGHXFHVmQQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.6 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + globalthis: 1.0.3 + which-builtin-type: 1.1.3 + dev: true + + /regenerate-unicode-properties@10.1.1: + resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} + engines: {node: '>=4'} + dependencies: + regenerate: 1.4.2 + dev: true + + /regenerate@1.4.2: + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + dev: true + + /regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + + /regenerator-transform@0.15.2: + resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} + dependencies: + '@babel/runtime': 7.23.9 + dev: true + + /regexp.prototype.flags@1.5.1: + resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.6 + define-properties: 1.2.1 + set-function-name: 2.0.1 + dev: true + + /regexpu-core@5.3.2: + resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} + engines: {node: '>=4'} + dependencies: + '@babel/regjsgen': 0.8.0 + regenerate: 1.4.2 + regenerate-unicode-properties: 10.1.1 + regjsparser: 0.9.1 + unicode-match-property-ecmascript: 2.0.0 + unicode-match-property-value-ecmascript: 2.1.0 + dev: true + + /regjsparser@0.9.1: + resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} + hasBin: true + dependencies: + jsesc: 0.5.0 + dev: true + + /relateurl@0.2.7: + resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} + engines: {node: '>= 0.10'} + dev: true + + /remark-gfm@4.0.0: + resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==} + dependencies: + '@types/mdast': 4.0.3 + mdast-util-gfm: 3.0.0 + micromark-extension-gfm: 3.0.0 + remark-parse: 11.0.0 + remark-stringify: 11.0.0 + unified: 11.0.4 + transitivePeerDependencies: + - supports-color + dev: false + + /remark-parse@11.0.0: + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} + dependencies: + '@types/mdast': 4.0.3 + mdast-util-from-markdown: 2.0.0 + micromark-util-types: 2.0.0 + unified: 11.0.4 + transitivePeerDependencies: + - supports-color + dev: false + + /remark-rehype@11.1.0: + resolution: {integrity: sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==} + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.3 + mdast-util-to-hast: 13.1.0 + unified: 11.0.4 + vfile: 6.0.1 + dev: false + + /remark-stringify@11.0.0: + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + dependencies: + '@types/mdast': 4.0.3 + mdast-util-to-markdown: 2.1.0 + unified: 11.0.4 + dev: false + + /remove-trailing-separator@1.1.0: + resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} + dev: true + + /renderkid@3.0.0: + resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==} + dependencies: + css-select: 4.3.0 + dom-converter: 0.2.0 + htmlparser2: 6.1.0 + lodash: 4.17.21 + strip-ansi: 6.0.1 + dev: true + + /require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + dev: true + + /require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + /require-relative@0.8.7: + resolution: {integrity: sha512-AKGr4qvHiryxRb19m3PsLRGuKVAbJLUD7E6eOaHkfKhwc+vSgVOCY5xNvm9EkolBKTOf0GrQAZKLimOCz81Khg==} + dev: true + + /requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + dev: true + + /resolve-alpn@1.2.1: + resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} + dev: true + + /resolve-cwd@3.0.0: + resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} + engines: {node: '>=8'} + dependencies: + resolve-from: 5.0.0 + dev: true + + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + /resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + dev: true + + /resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + dev: true + + /resolve.exports@2.0.2: + resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} + engines: {node: '>=10'} + dev: true + + /resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + dependencies: + is-core-module: 2.13.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + /resolve@2.0.0-next.5: + resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} + hasBin: true + dependencies: + is-core-module: 2.13.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /responselike@2.0.1: + resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} + dependencies: + lowercase-keys: 2.0.0 + dev: true + + /restore-cursor@3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + dev: true + + /retry@0.12.0: + resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} + engines: {node: '>= 4'} + dev: true + + /retry@0.13.1: + resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} + engines: {node: '>= 4'} + dev: true + + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true + + /rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + dependencies: + glob: 7.2.3 + dev: true + + /rimraf@5.0.5: + resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} + engines: {node: '>=14'} + hasBin: true + dependencies: + glob: 10.3.10 + dev: true + + /roarr@2.15.4: + resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==} + engines: {node: '>=8.0'} + requiresBuild: true + dependencies: + boolean: 3.2.0 + detect-node: 2.1.0 + globalthis: 1.0.3 + json-stringify-safe: 5.0.1 + semver-compare: 1.0.0 + sprintf-js: 1.1.3 + dev: true + optional: true + + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + dev: true + + /runtime-required@1.1.0: + resolution: {integrity: sha512-yX97f5E0WfNpcQnfVjap6vzQcvErkYYCx6eTK4siqGEdC8lglwypUFgZVTX7ShvIlgfkC4XGFl9O1KTYcff0pw==} + engines: {node: '>=4.0.0'} + dev: true + + /rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + dependencies: + tslib: 2.6.2 + dev: true + + /safe-array-concat@1.1.0: + resolution: {integrity: sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==} + engines: {node: '>=0.4'} + dependencies: + call-bind: 1.0.6 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + isarray: 2.0.5 + dev: true + + /safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + dev: true + + /safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + dev: true + + /safe-regex-test@1.0.3: + resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.6 + es-errors: 1.3.0 + is-regex: 1.1.4 + dev: true + + /safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + dev: true + + /sanitize-filename@1.6.3: + resolution: {integrity: sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==} + dependencies: + truncate-utf8-bytes: 1.0.2 + dev: true + + /sass-loader@13.3.3(sass@1.70.0)(webpack@5.90.1): + resolution: {integrity: sha512-mt5YN2F1MOZr3d/wBRcZxeFgwgkH44wVc2zohO2YF6JiOMkiXe4BYRZpSu2sO1g71mo/j16txzUhsKZlqjVGzA==} + engines: {node: '>= 14.15.0'} + peerDependencies: + fibers: '>= 3.1.0' + node-sass: ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 + sass: ^1.3.0 + sass-embedded: '*' + webpack: ^5.0.0 + peerDependenciesMeta: + fibers: + optional: true + node-sass: + optional: true + sass: + optional: true + sass-embedded: + optional: true + dependencies: + neo-async: 2.6.2 + sass: 1.70.0 + webpack: 5.90.1(webpack-cli@5.1.4) + dev: true + + /sass@1.70.0: + resolution: {integrity: sha512-uUxNQ3zAHeAx5nRFskBnrWzDUJrrvpCPD5FNAoRvTi0WwremlheES3tg+56PaVtCs5QDRX5CBLxxKMDJMEa1WQ==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + chokidar: 3.6.0 + immutable: 4.3.5 + source-map-js: 1.0.2 + dev: true + + /sax@1.3.0: + resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} + + /saxes@6.0.0: + resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} + engines: {node: '>=v12.22.7'} + dependencies: + xmlchars: 2.2.0 + dev: true + + /scheduler@0.23.0: + resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} + dependencies: + loose-envify: 1.4.0 + + /schema-utils@2.7.1: + resolution: {integrity: sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==} + engines: {node: '>= 8.9.0'} + dependencies: + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + ajv-keywords: 3.5.2(ajv@6.12.6) + dev: true + + /schema-utils@3.3.0: + resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} + engines: {node: '>= 10.13.0'} + dependencies: + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + ajv-keywords: 3.5.2(ajv@6.12.6) + dev: true + + /schema-utils@4.2.0: + resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==} + engines: {node: '>= 12.13.0'} + dependencies: + '@types/json-schema': 7.0.15 + ajv: 8.12.0 + ajv-formats: 2.1.1(ajv@8.12.0) + ajv-keywords: 5.1.0(ajv@8.12.0) + dev: true + + /select-hose@2.0.0: + resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} + dev: true + + /selfsigned@2.4.1: + resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} + engines: {node: '>=10'} + dependencies: + '@types/node-forge': 1.3.11 + node-forge: 1.3.1 + dev: true + + /semver-compare@1.0.0: + resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} + requiresBuild: true + dev: true + optional: true + + /semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + dev: true + + /semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + dev: true + + /semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + + /send@0.18.0: + resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} + engines: {node: '>= 0.8.0'} + dependencies: + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 0.5.2 + http-errors: 2.0.0 + mime: 1.6.0 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.1 + transitivePeerDependencies: + - supports-color + dev: true + + /serialize-error@7.0.1: + resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==} + engines: {node: '>=10'} + requiresBuild: true + dependencies: + type-fest: 0.13.1 + dev: true + optional: true + + /serialize-javascript@6.0.2: + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + dependencies: + randombytes: 2.1.0 + dev: true + + /serve-index@1.9.1: + resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==} + engines: {node: '>= 0.8.0'} + dependencies: + accepts: 1.3.8 + batch: 0.6.1 + debug: 2.6.9 + escape-html: 1.0.3 + http-errors: 1.6.3 + mime-types: 2.1.35 + parseurl: 1.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + /serve-static@1.15.0: + resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} + engines: {node: '>= 0.8.0'} + dependencies: + encodeurl: 1.0.2 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 0.18.0 + transitivePeerDependencies: + - supports-color + dev: true + + /set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + dev: true + + /set-function-length@1.2.1: + resolution: {integrity: sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.2 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.1 + dev: true + + /set-function-name@2.0.1: + resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.2 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.1 + dev: true + + /setimmediate@1.0.5: + resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} + dev: true + + /setprototypeof@1.1.0: + resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} + dev: true + + /setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + dev: true + + /shallow-clone@3.0.1: + resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} + engines: {node: '>=8'} + dependencies: + kind-of: 6.0.3 + dev: true + + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + dev: true + + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + dev: true + + /shell-quote@1.8.1: + resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} + dev: true + + /side-channel@1.0.5: + resolution: {integrity: sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.6 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + object-inspect: 1.13.1 + dev: true + + /signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + dev: true + + /signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + dev: true + + /simple-update-notifier@2.0.0: + resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==} + engines: {node: '>=10'} + dependencies: + semver: 7.6.0 + dev: true + + /sirv@2.0.4: + resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} + engines: {node: '>= 10'} + dependencies: + '@polka/url': 1.0.0-next.24 + mrmime: 2.0.0 + totalist: 3.0.1 + dev: true + + /sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + dev: true + + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: true + + /slice-ansi@3.0.0: + resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} + engines: {node: '>=8'} + requiresBuild: true + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + dev: true + optional: true + + /smart-buffer@4.2.0: + resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} + engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + dev: true + + /snake-case@3.0.4: + resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} + dependencies: + dot-case: 3.0.4 + tslib: 2.6.2 + dev: true + + /sockjs@0.3.24: + resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} + dependencies: + faye-websocket: 0.11.4 + uuid: 8.3.2 + websocket-driver: 0.7.4 + dev: true + + /socks-proxy-agent@7.0.0: + resolution: {integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==} + engines: {node: '>= 10'} + dependencies: + agent-base: 6.0.2 + debug: 4.3.4 + socks: 2.7.1 + transitivePeerDependencies: + - supports-color + dev: true + + /socks@2.7.1: + resolution: {integrity: sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==} + engines: {node: '>= 10.13.0', npm: '>= 3.0.0'} + dependencies: + ip: 2.0.0 + smart-buffer: 4.2.0 + dev: true + + /source-map-js@1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} + dev: true + + /source-map-support@0.5.13: + resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + dev: true + + /source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + /source-map@0.5.7: + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} + engines: {node: '>=0.10.0'} + dev: false + + /source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + /source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + dev: true + + /space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + dev: false + + /spawn-command@0.0.2: + resolution: {integrity: sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==} + dev: true + + /spdy-transport@3.0.0: + resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} + dependencies: + debug: 4.3.4 + detect-node: 2.1.0 + hpack.js: 2.1.6 + obuf: 1.1.2 + readable-stream: 3.6.2 + wbuf: 1.7.3 + transitivePeerDependencies: + - supports-color + dev: true + + /spdy@4.0.2: + resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} + engines: {node: '>=6.0.0'} + dependencies: + debug: 4.3.4 + handle-thing: 2.0.1 + http-deceiver: 1.2.7 + select-hose: 2.0.0 + spdy-transport: 3.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + dev: true + + /sprintf-js@1.1.3: + resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + requiresBuild: true + dev: true + optional: true + + /ssri@9.0.1: + resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + minipass: 3.3.6 + dev: true + + /stack-utils@2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} + dependencies: + escape-string-regexp: 2.0.0 + dev: true + + /stackframe@1.3.4: + resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} + dev: true + + /stat-mode@1.0.0: + resolution: {integrity: sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==} + engines: {node: '>= 6'} + dev: true + + /statuses@1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} + dev: true + + /statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + dev: true + + /stop-iteration-iterator@1.0.0: + resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} + engines: {node: '>= 0.4'} + dependencies: + internal-slot: 1.0.7 + dev: true + + /string-length@4.0.2: + resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} + engines: {node: '>=10'} + dependencies: + char-regex: 1.0.2 + strip-ansi: 6.0.1 + dev: true + + /string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + dev: true + + /string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + dev: true + + /string.prototype.matchall@4.0.10: + resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==} + dependencies: + call-bind: 1.0.6 + define-properties: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + internal-slot: 1.0.7 + regexp.prototype.flags: 1.5.1 + set-function-name: 2.0.1 + side-channel: 1.0.5 + dev: true + + /string.prototype.trim@1.2.8: + resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.6 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /string.prototype.trimend@1.0.7: + resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} + dependencies: + call-bind: 1.0.6 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /string.prototype.trimstart@1.0.7: + resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} + dependencies: + call-bind: 1.0.6 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + dependencies: + safe-buffer: 5.1.2 + dev: true + + /string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /stringify-entities@4.0.3: + resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==} + dependencies: + character-entities-html4: 2.1.0 + character-entities-legacy: 3.0.0 + dev: false + + /strip-ansi@3.0.1: + resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-regex: 2.1.1 + dev: true + + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + dev: true + + /strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + dependencies: + ansi-regex: 6.0.1 + dev: true + + /strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + dev: true + + /strip-bom@4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} + dev: true + + /strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + dev: true + + /strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + dependencies: + min-indent: 1.0.1 + dev: true + + /strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + dev: true + + /style-loader@3.3.4(webpack@5.90.1): + resolution: {integrity: sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^5.0.0 + dependencies: + webpack: 5.90.1(webpack-cli@5.1.4) + dev: true + + /style-to-object@1.0.5: + resolution: {integrity: sha512-rDRwHtoDD3UMMrmZ6BzOW0naTjMsVZLIjsGleSKS/0Oz+cgCfAPRspaqJuE8rDzpKha/nEvnM0IF4seEAZUTKQ==} + dependencies: + inline-style-parser: 0.2.2 + dev: false + + /stylehacks@6.0.2(postcss@8.4.35): + resolution: {integrity: sha512-00zvJGnCu64EpMjX8b5iCZ3us2Ptyw8+toEkb92VdmkEaRaSGBNKAoK6aWZckhXxmQP8zWiTaFaiMGIU8Ve8sg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + browserslist: 4.22.3 + postcss: 8.4.35 + postcss-selector-parser: 6.0.15 + dev: true + + /stylis@4.2.0: + resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} + dev: false + + /sumchecker@3.0.1: + resolution: {integrity: sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==} + engines: {node: '>= 8.0'} + dependencies: + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /supports-color@2.0.0: + resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} + engines: {node: '>=0.8.0'} + dev: true + + /supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + dev: true + + /supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + dependencies: + has-flag: 4.0.0 + dev: true + + /supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + /svg-parser@2.0.4: + resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==} + dev: true + + /svgo@3.2.0: + resolution: {integrity: sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + '@trysound/sax': 0.2.0 + commander: 7.2.0 + css-select: 5.1.0 + css-tree: 2.3.1 + css-what: 6.1.0 + csso: 5.0.5 + picocolors: 1.0.0 + dev: true + + /symbol-tree@3.2.4: + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + dev: true + + /synckit@0.8.8: + resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==} + engines: {node: ^14.18.0 || >=16.0.0} + dependencies: + '@pkgr/core': 0.1.1 + tslib: 2.6.2 + dev: true + + /tapable@0.1.10: + resolution: {integrity: sha512-jX8Et4hHg57mug1/079yitEKWGB3LCwoxByLsNim89LABq8NqgiX+6iYVOsq0vX8uJHkU+DZ5fnq95f800bEsQ==} + engines: {node: '>=0.6'} + dev: true + + /tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + dev: true + + /tar@6.2.0: + resolution: {integrity: sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==} + engines: {node: '>=10'} + dependencies: + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 5.0.0 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 + dev: true + + /temp-file@3.4.0: + resolution: {integrity: sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg==} + dependencies: + async-exit-hook: 2.0.1 + fs-extra: 10.1.0 + dev: true + + /terser-webpack-plugin@5.3.10(webpack@5.90.1): + resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + dependencies: + '@jridgewell/trace-mapping': 0.3.22 + jest-worker: 27.5.1 + schema-utils: 3.3.0 + serialize-javascript: 6.0.2 + terser: 5.27.0 + webpack: 5.90.1(webpack-cli@5.1.4) + dev: true + + /terser@5.27.0: + resolution: {integrity: sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==} + engines: {node: '>=10'} + hasBin: true + dependencies: + '@jridgewell/source-map': 0.3.5 + acorn: 8.11.3 + commander: 2.20.3 + source-map-support: 0.5.21 + dev: true + + /test-exclude@6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} + dependencies: + '@istanbuljs/schema': 0.1.3 + glob: 7.2.3 + minimatch: 3.1.2 + dev: true + + /text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + dev: true + + /thunky@1.1.0: + resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} + dev: true + + /tiny-invariant@1.3.1: + resolution: {integrity: sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==} + dev: false + + /tiny-typed-emitter@2.1.0: + resolution: {integrity: sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA==} + dev: false + + /tmp-promise@3.0.3: + resolution: {integrity: sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==} + dependencies: + tmp: 0.2.1 + dev: true + + /tmp@0.2.1: + resolution: {integrity: sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==} + engines: {node: '>=8.17.0'} + dependencies: + rimraf: 3.0.2 + dev: true + + /tmpl@1.0.5: + resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} + dev: true + + /to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + dev: true + + /toggle-selection@1.0.6: + resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} + dev: false + + /toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + dev: true + + /totalist@3.0.1: + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} + engines: {node: '>=6'} + dev: true + + /tough-cookie@4.1.3: + resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==} + engines: {node: '>=6'} + dependencies: + psl: 1.9.0 + punycode: 2.3.1 + universalify: 0.2.0 + url-parse: 1.5.10 + dev: true + + /tr46@3.0.0: + resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} + engines: {node: '>=12'} + dependencies: + punycode: 2.3.1 + dev: true + + /tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + dev: true + + /trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + dev: false + + /trough@2.2.0: + resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + dev: false + + /truncate-utf8-bytes@1.0.2: + resolution: {integrity: sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==} + dependencies: + utf8-byte-length: 1.0.4 + dev: true + + /ts-api-utils@1.2.1(typescript@5.3.3): + resolution: {integrity: sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + dependencies: + typescript: 5.3.3 + dev: true + + /ts-jest@29.1.2(@babel/core@7.23.9)(jest@29.7.0)(typescript@5.3.3): + resolution: {integrity: sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==} + engines: {node: ^16.10.0 || ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@babel/core': '>=7.0.0-beta.0 <8' + '@jest/types': ^29.0.0 + babel-jest: ^29.0.0 + esbuild: '*' + jest: ^29.0.0 + typescript: '>=4.3 <6' + peerDependenciesMeta: + '@babel/core': + optional: true + '@jest/types': + optional: true + babel-jest: + optional: true + esbuild: + optional: true + dependencies: + '@babel/core': 7.23.9 + bs-logger: 0.2.6 + fast-json-stable-stringify: 2.1.0 + jest: 29.7.0(@types/node@20.6.2)(ts-node@10.9.2) + jest-util: 29.7.0 + json5: 2.2.3 + lodash.memoize: 4.1.2 + make-error: 1.3.6 + semver: 7.6.0 + typescript: 5.3.3 + yargs-parser: 21.1.1 + dev: true + + /ts-loader@9.5.1(typescript@5.3.3)(webpack@5.90.1): + resolution: {integrity: sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==} + engines: {node: '>=12.0.0'} + peerDependencies: + typescript: '*' + webpack: ^5.0.0 + dependencies: + chalk: 4.1.2 + enhanced-resolve: 5.15.0 + micromatch: 4.0.5 + semver: 7.6.0 + source-map: 0.7.4 + typescript: 5.3.3 + webpack: 5.90.1(webpack-cli@5.1.4) + dev: true + + /ts-node@10.9.2(@types/node@20.6.2)(typescript@5.3.3): + resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.9 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 20.6.2 + acorn: 8.11.3 + acorn-walk: 8.3.2 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.3.3 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + dev: true + + /tsconfig-paths-webpack-plugin@4.1.0: + resolution: {integrity: sha512-xWFISjviPydmtmgeUAuXp4N1fky+VCtfhOkDUFIv5ea7p4wuTomI4QTrXvFBX2S4jZsmyTSrStQl+E+4w+RzxA==} + engines: {node: '>=10.13.0'} + dependencies: + chalk: 4.1.2 + enhanced-resolve: 5.15.0 + tsconfig-paths: 4.2.0 + dev: true + + /tsconfig-paths@3.15.0: + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.2 + minimist: 1.2.8 + strip-bom: 3.0.0 + dev: true + + /tsconfig-paths@4.2.0: + resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} + engines: {node: '>=6'} + dependencies: + json5: 2.2.3 + minimist: 1.2.8 + strip-bom: 3.0.0 + dev: true + + /tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + dev: true + + /tslib@2.4.0: + resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} + dev: false + + /tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + + /tsutils@3.21.0(typescript@5.3.3): + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + dependencies: + tslib: 1.14.1 + typescript: 5.3.3 + dev: true + + /type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + dev: true + + /type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + dev: true + + /type-fest@0.13.1: + resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} + engines: {node: '>=10'} + requiresBuild: true + dev: true + optional: true + + /type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + dev: true + + /type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + dev: true + + /type-fest@2.19.0: + resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} + engines: {node: '>=12.20'} + dev: false + + /type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} + dependencies: + media-typer: 0.3.0 + mime-types: 2.1.35 + dev: true + + /typed-array-buffer@1.0.1: + resolution: {integrity: sha512-RSqu1UEuSlrBhHTWC8O9FnPjOduNs4M7rJ4pRKoEjtx1zUNOPN2sSXHLDX+Y2WPbHIxbvg4JFo2DNAEfPIKWoQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.6 + es-errors: 1.3.0 + is-typed-array: 1.1.13 + dev: true + + /typed-array-byte-length@1.0.0: + resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.6 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.13 + dev: true + + /typed-array-byte-offset@1.0.0: + resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.6 + call-bind: 1.0.6 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.13 + dev: true + + /typed-array-length@1.0.4: + resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + dependencies: + call-bind: 1.0.6 + for-each: 0.3.3 + is-typed-array: 1.1.13 + dev: true + + /typescript@5.3.3: + resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} + engines: {node: '>=14.17'} + hasBin: true + dev: true + + /ua-parser-js@0.7.28: + resolution: {integrity: sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g==} + dev: false + + /unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + dependencies: + call-bind: 1.0.6 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + dev: true + + /undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + dev: true + + /unicode-canonical-property-names-ecmascript@2.0.0: + resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} + engines: {node: '>=4'} + dev: true + + /unicode-match-property-ecmascript@2.0.0: + resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} + engines: {node: '>=4'} + dependencies: + unicode-canonical-property-names-ecmascript: 2.0.0 + unicode-property-aliases-ecmascript: 2.1.0 + dev: true + + /unicode-match-property-value-ecmascript@2.1.0: + resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} + engines: {node: '>=4'} + dev: true + + /unicode-property-aliases-ecmascript@2.1.0: + resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} + engines: {node: '>=4'} + dev: true + + /unified@11.0.4: + resolution: {integrity: sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==} + dependencies: + '@types/unist': 3.0.2 + bail: 2.0.2 + devlop: 1.1.0 + extend: 3.0.2 + is-plain-obj: 4.1.0 + trough: 2.2.0 + vfile: 6.0.1 + dev: false + + /unique-filename@2.0.1: + resolution: {integrity: sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + unique-slug: 3.0.0 + dev: true + + /unique-slug@3.0.0: + resolution: {integrity: sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + imurmurhash: 0.1.4 + dev: true + + /unist-util-is@6.0.0: + resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + dependencies: + '@types/unist': 3.0.2 + dev: false + + /unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + dependencies: + '@types/unist': 3.0.2 + dev: false + + /unist-util-remove-position@5.0.0: + resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} + dependencies: + '@types/unist': 3.0.2 + unist-util-visit: 5.0.0 + dev: false + + /unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + dependencies: + '@types/unist': 3.0.2 + dev: false + + /unist-util-visit-parents@6.0.1: + resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + dependencies: + '@types/unist': 3.0.2 + unist-util-is: 6.0.0 + dev: false + + /unist-util-visit@5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + dependencies: + '@types/unist': 3.0.2 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + dev: false + + /universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + dev: true + + /universalify@0.2.0: + resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} + engines: {node: '>= 4.0.0'} + dev: true + + /universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + + /unixify@1.0.0: + resolution: {integrity: sha512-6bc58dPYhCMHHuwxldQxO3RRNZ4eCogZ/st++0+fcC1nr0jiGUtAdBJ2qzmLQWSxbtz42pWt4QQMiZ9HvZf5cg==} + engines: {node: '>=0.10.0'} + dependencies: + normalize-path: 2.1.1 + dev: true + + /unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + dev: true + + /unzip-crx-3@0.2.0: + resolution: {integrity: sha512-0+JiUq/z7faJ6oifVB5nSwt589v1KCduqIJupNVDoWSXZtWDmjDGO3RAEOvwJ07w90aoXoP4enKsR7ecMrJtWQ==} + dependencies: + jszip: 3.10.1 + mkdirp: 0.5.6 + yaku: 0.16.7 + dev: true + + /update-browserslist-db@1.0.13(browserslist@4.22.3): + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.22.3 + escalade: 3.1.2 + picocolors: 1.0.0 + dev: true + + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.3.1 + + /url-loader@4.1.1(file-loader@6.2.0)(webpack@5.90.1): + resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==} + engines: {node: '>= 10.13.0'} + peerDependencies: + file-loader: '*' + webpack: ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + file-loader: + optional: true + dependencies: + file-loader: 6.2.0(webpack@5.90.1) + loader-utils: 2.0.4 + mime-types: 2.1.35 + schema-utils: 3.3.0 + webpack: 5.90.1(webpack-cli@5.1.4) + dev: true + + /url-parse@1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + dependencies: + querystringify: 2.2.0 + requires-port: 1.0.0 + dev: true + + /use-callback-ref@1.3.1(@types/react@18.2.55)(react@18.2.0): + resolution: {integrity: sha512-Lg4Vx1XZQauB42Hw3kK7JM6yjVjgFmFC5/Ab797s79aARomD2nEErc4mCgM8EZrARLmmbWpi5DGCadmK50DcAQ==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.2.55 + react: 18.2.0 + tslib: 2.6.2 + dev: false + + /use-sidecar@1.1.2(@types/react@18.2.55)(react@18.2.0): + resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.2.55 + detect-node-es: 1.1.0 + react: 18.2.0 + tslib: 2.6.2 + dev: false + + /use-sync-external-store@1.2.0(react@18.2.0): + resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + react: 18.2.0 + dev: false + + /utf8-byte-length@1.0.4: + resolution: {integrity: sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA==} + dev: true + + /util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + dev: true + + /utila@0.4.0: + resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==} + dev: true + + /utils-merge@1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} + dev: true + + /uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + + /v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + dev: true + + /v8-to-istanbul@9.2.0: + resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} + engines: {node: '>=10.12.0'} + dependencies: + '@jridgewell/trace-mapping': 0.3.22 + '@types/istanbul-lib-coverage': 2.0.6 + convert-source-map: 2.0.0 + dev: true + + /vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + dev: true + + /verror@1.10.1: + resolution: {integrity: sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==} + engines: {node: '>=0.6.0'} + requiresBuild: true + dependencies: + assert-plus: 1.0.0 + core-util-is: 1.0.2 + extsprintf: 1.4.1 + dev: true + optional: true + + /vfile-message@4.0.2: + resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} + dependencies: + '@types/unist': 3.0.2 + unist-util-stringify-position: 4.0.0 + dev: false + + /vfile@6.0.1: + resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==} + dependencies: + '@types/unist': 3.0.2 + unist-util-stringify-position: 4.0.0 + vfile-message: 4.0.2 + dev: false + + /vue-eslint-parser@9.4.2(eslint@8.56.0): + resolution: {integrity: sha512-Ry9oiGmCAK91HrKMtCrKFWmSFWvYkpGglCeFAIqDdr9zdXmMMpJOmUJS7WWsW7fX81h6mwHmUZCQQ1E0PkSwYQ==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + dependencies: + debug: 4.3.4 + eslint: 8.56.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.5.0 + lodash: 4.17.21 + semver: 7.6.0 + transitivePeerDependencies: + - supports-color + dev: true + + /w3c-xmlserializer@4.0.0: + resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} + engines: {node: '>=14'} + dependencies: + xml-name-validator: 4.0.0 + dev: true + + /walker@1.0.8: + resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} + dependencies: + makeerror: 1.0.12 + dev: true + + /watchboy@0.4.3: + resolution: {integrity: sha512-GHs1HxwvxSMBsqd/WfTOZhj5gBdMqf5HQpfgtKxDfZRxrlYPDdVLRB61LCeRzJaWANmvSIMlfmRVDwVmJFgAKA==} + engines: {node: '>=8.0.0'} + dependencies: + lodash.difference: 4.5.0 + micromatch: 4.0.5 + pify: 4.0.1 + unixify: 1.0.0 + dev: true + + /watchpack@2.4.0: + resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} + engines: {node: '>=10.13.0'} + dependencies: + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + dev: true + + /wbuf@1.7.3: + resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} + dependencies: + minimalistic-assert: 1.0.1 + dev: true + + /wcwidth@1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + dependencies: + defaults: 1.0.4 + dev: true + + /webidl-conversions@7.0.0: + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} + engines: {node: '>=12'} + dev: true + + /webpack-bundle-analyzer@4.10.1: + resolution: {integrity: sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==} + engines: {node: '>= 10.13.0'} + hasBin: true + dependencies: + '@discoveryjs/json-ext': 0.5.7 + acorn: 8.11.3 + acorn-walk: 8.3.2 + commander: 7.2.0 + debounce: 1.2.1 + escape-string-regexp: 4.0.0 + gzip-size: 6.0.0 + html-escaper: 2.0.2 + is-plain-object: 5.0.0 + opener: 1.5.2 + picocolors: 1.0.0 + sirv: 2.0.4 + ws: 7.5.9 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: true + + /webpack-cli@5.1.4(webpack-bundle-analyzer@4.10.1)(webpack-dev-server@4.15.1)(webpack@5.90.1): + resolution: {integrity: sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==} + engines: {node: '>=14.15.0'} + hasBin: true + peerDependencies: + '@webpack-cli/generators': '*' + webpack: 5.x.x + webpack-bundle-analyzer: '*' + webpack-dev-server: '*' + peerDependenciesMeta: + '@webpack-cli/generators': + optional: true + webpack-bundle-analyzer: + optional: true + webpack-dev-server: + optional: true + dependencies: + '@discoveryjs/json-ext': 0.5.7 + '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.90.1) + '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4)(webpack@5.90.1) + '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4)(webpack-dev-server@4.15.1)(webpack@5.90.1) + colorette: 2.0.20 + commander: 10.0.1 + cross-spawn: 7.0.3 + envinfo: 7.11.1 + fastest-levenshtein: 1.0.16 + import-local: 3.1.0 + interpret: 3.1.1 + rechoir: 0.8.0 + webpack: 5.90.1(webpack-cli@5.1.4) + webpack-bundle-analyzer: 4.10.1 + webpack-dev-server: 4.15.1(webpack-cli@5.1.4)(webpack@5.90.1) + webpack-merge: 5.10.0 + dev: true + + /webpack-dev-middleware@5.3.3(webpack@5.90.1): + resolution: {integrity: sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 + dependencies: + colorette: 2.0.20 + memfs: 3.5.3 + mime-types: 2.1.35 + range-parser: 1.2.1 + schema-utils: 4.2.0 + webpack: 5.90.1(webpack-cli@5.1.4) + dev: true + + /webpack-dev-server@4.15.1(webpack-cli@5.1.4)(webpack@5.90.1): + resolution: {integrity: sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==} + engines: {node: '>= 12.13.0'} + hasBin: true + peerDependencies: + webpack: ^4.37.0 || ^5.0.0 + webpack-cli: '*' + peerDependenciesMeta: + webpack: + optional: true + webpack-cli: + optional: true + dependencies: + '@types/bonjour': 3.5.13 + '@types/connect-history-api-fallback': 1.5.4 + '@types/express': 4.17.21 + '@types/serve-index': 1.9.4 + '@types/serve-static': 1.15.5 + '@types/sockjs': 0.3.36 + '@types/ws': 8.5.10 + ansi-html-community: 0.0.8 + bonjour-service: 1.2.1 + chokidar: 3.6.0 + colorette: 2.0.20 + compression: 1.7.4 + connect-history-api-fallback: 2.0.0 + default-gateway: 6.0.3 + express: 4.18.2 + graceful-fs: 4.2.11 + html-entities: 2.4.0 + http-proxy-middleware: 2.0.6(@types/express@4.17.21) + ipaddr.js: 2.1.0 + launch-editor: 2.6.1 + open: 8.4.2 + p-retry: 4.6.2 + rimraf: 3.0.2 + schema-utils: 4.2.0 + selfsigned: 2.4.1 + serve-index: 1.9.1 + sockjs: 0.3.24 + spdy: 4.0.2 + webpack: 5.90.1(webpack-cli@5.1.4) + webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.1)(webpack-dev-server@4.15.1)(webpack@5.90.1) + webpack-dev-middleware: 5.3.3(webpack@5.90.1) + ws: 8.16.0 + transitivePeerDependencies: + - bufferutil + - debug + - supports-color + - utf-8-validate + dev: true + + /webpack-merge@5.10.0: + resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==} + engines: {node: '>=10.0.0'} + dependencies: + clone-deep: 4.0.1 + flat: 5.0.2 + wildcard: 2.0.1 + dev: true + + /webpack-sources@3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} + dev: true + + /webpack@5.90.1(webpack-cli@5.1.4): + resolution: {integrity: sha512-SstPdlAC5IvgFnhiRok8hqJo/+ArAbNv7rhU4fnWGHNVfN59HSQFaxZDSAL3IFG2YmqxuRs+IU33milSxbPlog==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + dependencies: + '@types/eslint-scope': 3.7.7 + '@types/estree': 1.0.5 + '@webassemblyjs/ast': 1.11.6 + '@webassemblyjs/wasm-edit': 1.11.6 + '@webassemblyjs/wasm-parser': 1.11.6 + acorn: 8.11.3 + acorn-import-assertions: 1.9.0(acorn@8.11.3) + browserslist: 4.22.3 + chrome-trace-event: 1.0.3 + enhanced-resolve: 5.15.0 + es-module-lexer: 1.4.1 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 3.3.0 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.10(webpack@5.90.1) + watchpack: 2.4.0 + webpack-cli: 5.1.4(webpack-bundle-analyzer@4.10.1)(webpack-dev-server@4.15.1)(webpack@5.90.1) + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + dev: true + + /websocket-driver@0.7.4: + resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} + engines: {node: '>=0.8.0'} + dependencies: + http-parser-js: 0.5.8 + safe-buffer: 5.2.1 + websocket-extensions: 0.1.4 + dev: true + + /websocket-extensions@0.1.4: + resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} + engines: {node: '>=0.8.0'} + dev: true + + /whatwg-encoding@2.0.0: + resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} + engines: {node: '>=12'} + dependencies: + iconv-lite: 0.6.3 + dev: true + + /whatwg-mimetype@3.0.0: + resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} + engines: {node: '>=12'} + dev: true + + /whatwg-url@11.0.0: + resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} + engines: {node: '>=12'} + dependencies: + tr46: 3.0.0 + webidl-conversions: 7.0.0 + dev: true + + /which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 + dev: true + + /which-builtin-type@1.1.3: + resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} + engines: {node: '>= 0.4'} + dependencies: + function.prototype.name: 1.1.6 + has-tostringtag: 1.0.2 + is-async-function: 2.0.0 + is-date-object: 1.0.5 + is-finalizationregistry: 1.0.2 + is-generator-function: 1.0.10 + is-regex: 1.1.4 + is-weakref: 1.0.2 + isarray: 2.0.5 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.1 + which-typed-array: 1.1.14 + dev: true + + /which-collection@1.0.1: + resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} + dependencies: + is-map: 2.0.2 + is-set: 2.0.2 + is-weakmap: 2.0.1 + is-weakset: 2.0.2 + dev: true + + /which-typed-array@1.1.14: + resolution: {integrity: sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.6 + call-bind: 1.0.6 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.2 + dev: true + + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /wide-align@1.1.5: + resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} + dependencies: + string-width: 4.2.3 + dev: true + + /wildcard@2.0.1: + resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} + dev: true + + /wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + dev: true + + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + dev: true + + /write-file-atomic@4.0.2: + resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + imurmurhash: 0.1.4 + signal-exit: 3.0.7 + dev: true + + /ws@7.5.9: + resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: true + + /ws@8.16.0: + resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: true + + /xml-name-validator@4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} + dev: true + + /xmlbuilder@15.1.1: + resolution: {integrity: sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==} + engines: {node: '>=8.0'} + requiresBuild: true + dev: true + + /xmlchars@2.2.0: + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + dev: true + + /y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + dev: true + + /yaku@0.16.7: + resolution: {integrity: sha512-Syu3IB3rZvKvYk7yTiyl1bo/jiEFaaStrgv1V2TIJTqYPStSMQVO8EQjg/z+DRzLq/4LIIharNT3iH1hylEIRw==} + dev: true + + /yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + dev: true + + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + /yaml@1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + dev: false + + /yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + dev: true + + /yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + dependencies: + cliui: 8.0.1 + escalade: 3.1.2 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + dev: true + + /yauzl@2.10.0: + resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} + dependencies: + buffer-crc32: 0.2.13 + fd-slicer: 1.1.0 + dev: true + + /yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + dev: true + + /yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + dev: true + + /zustand@4.5.0(@types/react@18.2.55)(immer@10.0.3)(react@18.2.0): + resolution: {integrity: sha512-zlVFqS5TQ21nwijjhJlx4f9iGrXSL0o/+Dpy4txAP22miJ8Ti6c1Ol1RLNN98BMib83lmDH/2KmLwaNXpjrO1A==} + engines: {node: '>=12.7.0'} + peerDependencies: + '@types/react': '>=16.8' + immer: '>=9.0.6' + react: '>=16.8' + peerDependenciesMeta: + '@types/react': + optional: true + immer: + optional: true + react: + optional: true + dependencies: + '@types/react': 18.2.55 + immer: 10.0.3 + react: 18.2.0 + use-sync-external-store: 1.2.0(react@18.2.0) + dev: false + + /zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + dev: false diff --git a/src/__tests__/App.test.tsx b/src/__tests__/App.test.tsx new file mode 100644 index 0000000..6a1de2a --- /dev/null +++ b/src/__tests__/App.test.tsx @@ -0,0 +1,9 @@ +import '@testing-library/jest-dom'; +import { render } from '@testing-library/react'; +import App from '../renderer/App'; + +describe('App', () => { + it('should render', () => { + expect(render()).toBeTruthy(); + }); +}); diff --git a/src/main/ipcHandlers.ts b/src/main/ipcHandlers.ts new file mode 100644 index 0000000..d4f9209 --- /dev/null +++ b/src/main/ipcHandlers.ts @@ -0,0 +1,102 @@ +import { + ipcMain, + dialog, + shell, + BrowserWindow, + app, + Notification, +} from 'electron'; +import Store from 'electron-store'; +import { setCron } from './system/cron'; +import type BackendServiceManager from './system/backend'; +import { getBrowserVersionFromOS } from './system/chrome'; + +const store = new Store(); + +const setupIpcHandlers = ( + mainWindow: BrowserWindow, + bsm: BackendServiceManager, +) => { + ipcMain.on('get-env', async (event, key) => { + event.returnValue = process.env[key]; + }); + + ipcMain.on('get-port', async (event) => { + event.returnValue = bsm.getPort(); + }); + + ipcMain.on('ipc-example', async (event) => { + const msgTemplate = (pingPong: string) => `IPC test: ${pingPong}`; + event.reply('ipc-example', msgTemplate('pong')); + }); + + ipcMain.on('select-directory', async (event) => { + const result = await dialog.showOpenDialog({ + properties: ['openDirectory'], + }); + event.reply('selected-directory', result.filePaths); + }); + + ipcMain.on('select-file', async (event) => { + const result = await dialog.showOpenDialog({ + properties: ['openFile'], + }); + event.reply('selected-file', result.filePaths); + }); + + ipcMain.on('open-directory', async (event, args) => { + shell.openPath(args); + }); + + ipcMain.on('electron-store-get', async (event, val) => { + event.returnValue = store.get(val); + }); + + ipcMain.on('electron-store-set', async (event, key, val) => { + store.set(key, val); + }); + + ipcMain.on('electron-store-remove', async (event, key) => { + store.delete(key); + }); + + ipcMain.on('get-version', async (event) => { + event.returnValue = app.getVersion(); + }); + + ipcMain.on('open-url', async (event, url) => { + shell.openExternal(url); + }); + + ipcMain.on('get-browser-version', async (event) => { + const version = await getBrowserVersionFromOS(); + event.returnValue = version; + }); + + ipcMain.on('notification', async (event, title, message) => { + const notification = { + title, + body: message, + }; + new Notification(notification).show(); + }); + + // 每隔 5 秒执行一次 + setCron('*/5 * * * * *', () => { + mainWindow.webContents.send('refresh-config'); + }); + + // 每隔 5 秒执行一次检查后端服务是否健康 + setCron('*/5 * * * * *', async () => { + if (!bsm) { + console.error('BackendServiceManager not found'); + return; + } + + console.log('Checking health...'); + const isHealthy = await bsm.check_health(); + mainWindow.webContents.send('check-health', isHealthy); + }); +}; + +export default setupIpcHandlers; diff --git a/src/main/main.ts b/src/main/main.ts new file mode 100644 index 0000000..d0182da --- /dev/null +++ b/src/main/main.ts @@ -0,0 +1,133 @@ +/* eslint global-require: off, no-console: off, promise/always-return: off */ + +/** + * This module executes inside of electron's main process. You can start + * electron renderer process from here and communicate with the other processes + * through IPC. + * + * When running `npm run build` or `npm run build:main`, this file is compiled to + * `./src/main.js` using webpack. This gives us some performance wins. + */ +import path from 'path'; +import { app, BrowserWindow, shell } from 'electron'; +import MenuBuilder from './menu'; +import { resolveHtmlPath } from './util'; +import setupIpcHandlers from './ipcHandlers'; +import BackendServiceManager from './system/backend'; + +let mainWindow: BrowserWindow | null = null; +let backendServiceManager: BackendServiceManager | null = null; + +if (process.env.NODE_ENV === 'production') { + const sourceMapSupport = require('source-map-support'); + sourceMapSupport.install(); +} + +const isDebug = + process.env.NODE_ENV === 'development' || process.env.DEBUG_PROD === 'true'; + +if (isDebug) { + require('electron-debug')(); +} + +const installExtensions = async () => { + const installer = require('electron-devtools-installer'); + const forceDownload = !!process.env.UPGRADE_EXTENSIONS; + const extensions = ['REACT_DEVELOPER_TOOLS']; + + return installer + .default( + extensions.map((name) => installer[name]), + forceDownload, + ) + .catch(console.log); +}; + +const createWindow = async () => { + if (isDebug) { + await installExtensions(); + } + + const RESOURCES_PATH = app.isPackaged + ? path.join(process.resourcesPath, 'assets') + : path.join(__dirname, '../../assets'); + + backendServiceManager = new BackendServiceManager( + path.join( + RESOURCES_PATH, + process.env.BKEXE_PATH || './backend/__main__.exe', + ), + ); + await backendServiceManager.start(); + + const getAssetPath = (...paths: string[]): string => { + return path.join(RESOURCES_PATH, ...paths); + }; + + mainWindow = new BrowserWindow({ + show: false, + width: 528, + height: 1024, + resizable: false, // 防止用户调整窗口大小 + icon: getAssetPath('icon.png'), + webPreferences: { + preload: app.isPackaged + ? path.join(__dirname, 'preload.js') + : path.join(__dirname, '../../.erb/dll/preload.js'), + }, + }); + + setupIpcHandlers(mainWindow, backendServiceManager); + + mainWindow.loadURL(resolveHtmlPath('index.html')); + + mainWindow.on('ready-to-show', () => { + if (!mainWindow) { + throw new Error('"mainWindow" is not defined'); + } + if (process.env.START_MINIMIZED) { + mainWindow.minimize(); + } else { + mainWindow.show(); + } + }); + + mainWindow.on('closed', () => { + mainWindow = null; + }); + + const menuBuilder = new MenuBuilder(mainWindow); + menuBuilder.buildMenu(); + + // Open urls in the user's browser + mainWindow.webContents.setWindowOpenHandler((edata) => { + shell.openExternal(edata.url); + return { action: 'deny' }; + }); +}; + +/** + * Add event listeners... + */ + +app.on('window-all-closed', async () => { + // Respect the OSX convention of having the application in memory even + // after all windows have been closed + console.log('window-all-closed'); + await backendServiceManager?.stop(); + if (process.platform !== 'darwin') { + app.quit(); + } +}); + +app + .whenReady() + .then(() => { + createWindow(); + app.on('activate', () => { + // On macOS it's common to re-create a window in the app when the + // dock icon is clicked and there are no other windows open. + if (mainWindow === null) createWindow(); + }); + }) + .catch(console.log); diff --git a/src/main/menu.ts b/src/main/menu.ts new file mode 100644 index 0000000..be0c728 --- /dev/null +++ b/src/main/menu.ts @@ -0,0 +1,289 @@ +import { + app, + Menu, + shell, + BrowserWindow, + MenuItemConstructorOptions, +} from 'electron'; + +interface DarwinMenuItemConstructorOptions extends MenuItemConstructorOptions { + selector?: string; + submenu?: DarwinMenuItemConstructorOptions[] | Menu; +} + +export default class MenuBuilder { + mainWindow: BrowserWindow; + + constructor(mainWindow: BrowserWindow) { + this.mainWindow = mainWindow; + } + + buildMenu() { + if ( + process.env.NODE_ENV === 'development' || + process.env.DEBUG_PROD === 'true' + ) { + this.setupDevelopmentEnvironment(); + const template = + process.platform === 'darwin' + ? this.buildDarwinTemplate() + : this.buildDefaultTemplate(); + const menu = Menu.buildFromTemplate(template); + Menu.setApplicationMenu(menu); + } else { + Menu.setApplicationMenu(null); + this.mainWindow.setMenu(null); + } + } + + setupDevelopmentEnvironment(): void { + this.mainWindow.webContents.on('context-menu', (_, props) => { + const { x, y } = props; + + Menu.buildFromTemplate([ + { + label: 'Inspect element', + click: () => { + this.mainWindow.webContents.inspectElement(x, y); + }, + }, + ]).popup({ window: this.mainWindow }); + }); + } + + buildDarwinTemplate(): MenuItemConstructorOptions[] { + const subMenuAbout: DarwinMenuItemConstructorOptions = { + label: 'Electron', + submenu: [ + { + label: 'About ElectronReact', + selector: 'orderFrontStandardAboutPanel:', + }, + { type: 'separator' }, + { label: 'Services', submenu: [] }, + { type: 'separator' }, + { + label: 'Hide ElectronReact', + accelerator: 'Command+H', + selector: 'hide:', + }, + { + label: 'Hide Others', + accelerator: 'Command+Shift+H', + selector: 'hideOtherApplications:', + }, + { label: 'Show All', selector: 'unhideAllApplications:' }, + { type: 'separator' }, + { + label: 'Quit', + accelerator: 'Command+Q', + click: () => { + app.quit(); + }, + }, + ], + }; + const subMenuEdit: DarwinMenuItemConstructorOptions = { + label: 'Edit', + submenu: [ + { label: 'Undo', accelerator: 'Command+Z', selector: 'undo:' }, + { label: 'Redo', accelerator: 'Shift+Command+Z', selector: 'redo:' }, + { type: 'separator' }, + { label: 'Cut', accelerator: 'Command+X', selector: 'cut:' }, + { label: 'Copy', accelerator: 'Command+C', selector: 'copy:' }, + { label: 'Paste', accelerator: 'Command+V', selector: 'paste:' }, + { + label: 'Select All', + accelerator: 'Command+A', + selector: 'selectAll:', + }, + ], + }; + const subMenuViewDev: MenuItemConstructorOptions = { + label: 'View', + submenu: [ + { + label: 'Reload', + accelerator: 'Command+R', + click: () => { + this.mainWindow.webContents.reload(); + }, + }, + { + label: 'Toggle Full Screen', + accelerator: 'Ctrl+Command+F', + click: () => { + this.mainWindow.setFullScreen(!this.mainWindow.isFullScreen()); + }, + }, + { + label: 'Toggle Developer Tools', + accelerator: 'Alt+Command+I', + click: () => { + this.mainWindow.webContents.toggleDevTools(); + }, + }, + ], + }; + const subMenuViewProd: MenuItemConstructorOptions = { + label: 'View', + submenu: [ + { + label: 'Toggle Full Screen', + accelerator: 'Ctrl+Command+F', + click: () => { + this.mainWindow.setFullScreen(!this.mainWindow.isFullScreen()); + }, + }, + ], + }; + const subMenuWindow: DarwinMenuItemConstructorOptions = { + label: 'Window', + submenu: [ + { + label: 'Minimize', + accelerator: 'Command+M', + selector: 'performMiniaturize:', + }, + { label: 'Close', accelerator: 'Command+W', selector: 'performClose:' }, + { type: 'separator' }, + { label: 'Bring All to Front', selector: 'arrangeInFront:' }, + ], + }; + const subMenuHelp: MenuItemConstructorOptions = { + label: 'Help', + submenu: [ + { + label: 'Learn More', + click() { + shell.openExternal('https://electronjs.org'); + }, + }, + { + label: 'Documentation', + click() { + shell.openExternal( + 'https://github.com/electron/electron/tree/main/docs#readme', + ); + }, + }, + { + label: 'Community Discussions', + click() { + shell.openExternal('https://www.electronjs.org/community'); + }, + }, + { + label: 'Search Issues', + click() { + shell.openExternal('https://github.com/electron/electron/issues'); + }, + }, + ], + }; + + const subMenuView = + process.env.NODE_ENV === 'development' || + process.env.DEBUG_PROD === 'true' + ? subMenuViewDev + : subMenuViewProd; + + return [subMenuAbout, subMenuEdit, subMenuView, subMenuWindow, subMenuHelp]; + } + + buildDefaultTemplate() { + const templateDefault = [ + { + label: '&File', + submenu: [ + { + label: '&Open', + accelerator: 'Ctrl+O', + }, + { + label: '&Close', + accelerator: 'Ctrl+W', + click: () => { + this.mainWindow.close(); + }, + }, + ], + }, + { + label: '&View', + submenu: + process.env.NODE_ENV === 'development' || + process.env.DEBUG_PROD === 'true' + ? [ + { + label: '&Reload', + accelerator: 'Ctrl+R', + click: () => { + this.mainWindow.webContents.reload(); + }, + }, + { + label: 'Toggle &Full Screen', + accelerator: 'F11', + click: () => { + this.mainWindow.setFullScreen( + !this.mainWindow.isFullScreen(), + ); + }, + }, + { + label: 'Toggle &Developer Tools', + accelerator: 'Alt+Ctrl+I', + click: () => { + this.mainWindow.webContents.toggleDevTools(); + }, + }, + ] + : [ + { + label: 'Toggle &Full Screen', + accelerator: 'F11', + click: () => { + this.mainWindow.setFullScreen( + !this.mainWindow.isFullScreen(), + ); + }, + }, + ], + }, + { + label: 'Help', + submenu: [ + { + label: 'Learn More', + click() { + shell.openExternal('https://electronjs.org'); + }, + }, + { + label: 'Documentation', + click() { + shell.openExternal( + 'https://github.com/electron/electron/tree/main/docs#readme', + ); + }, + }, + { + label: 'Community Discussions', + click() { + shell.openExternal('https://www.electronjs.org/community'); + }, + }, + { + label: 'Search Issues', + click() { + shell.openExternal('https://github.com/electron/electron/issues'); + }, + }, + ], + }, + ]; + + return templateDefault; + } +} diff --git a/src/main/preload.ts b/src/main/preload.ts new file mode 100644 index 0000000..6b9c5b0 --- /dev/null +++ b/src/main/preload.ts @@ -0,0 +1,73 @@ +// Disable no-unused-vars, broken for spread args +/* eslint no-unused-vars: off */ +import { contextBridge, ipcRenderer, IpcRendererEvent } from 'electron'; + +export type Channels = + | 'ipc-example' + | 'get-env' + | 'get-port' + | 'check-health' + | 'electron-store-get' + | 'electron-store-set' + | 'electron-store-remove' + | 'refresh-config' + | 'open-directory' + | 'select-file' + | 'selected-file' + | 'select-directory' + | 'selected-directory' + | 'open-url' + | 'notification' + | 'get-browser-version' + | 'get-version'; + +const electronHandler = { + ipcRenderer: { + sendMessage(channel: Channels, ...args: unknown[]) { + ipcRenderer.send(channel, ...args); + }, + get(channel: Channels) { + return ipcRenderer.sendSync(channel); + }, + on(channel: Channels, func: (...args: unknown[]) => void) { + const subscription = (_event: IpcRendererEvent, ...args: unknown[]) => + func(...args); + ipcRenderer.on(channel, subscription); + + return () => { + ipcRenderer.removeListener(channel, subscription); + }; + }, + // 这个once方法是特别的,因为它确保了事件处理函数只会被调用一次,然后自动移除。 + once(channel: Channels, func: (...args: unknown[]) => void) { + ipcRenderer.once(channel, (_event, ...args) => func(...args)); + }, + remove(channel: Channels) { + ipcRenderer.removeAllListeners(channel); + }, + }, + store: { + get(key: string) { + return ipcRenderer.sendSync('electron-store-get', key); + }, + set(key: string, value: string) { + ipcRenderer.send('electron-store-set', key, value); + }, + remove(key: string) { + ipcRenderer.send('electron-store-remove', key); + }, + }, + getEnv: (key: string) => { + const v = ipcRenderer.sendSync('get-env', key); + return v; + }, + getPort: () => { + const v = ipcRenderer.sendSync('get-port'); + return v; + }, +}; + +export type ElectronHandler = typeof electronHandler; + +// 把功能暴露给渲染进程 +contextBridge.exposeInMainWorld('electron', electronHandler); diff --git a/src/main/system/backend.ts b/src/main/system/backend.ts new file mode 100644 index 0000000..82e29af --- /dev/null +++ b/src/main/system/backend.ts @@ -0,0 +1,130 @@ +import { spawn, exec } from 'child_process'; +import { createServer } from 'net'; +import axios from 'axios'; +import fs from 'fs'; +import os from 'os'; +import path from 'path'; + +class BackendServiceManager { + private executablePath: string; + + private process: ReturnType | null; + + private port: number; + + private autoRestart: boolean; // 新增自动重启标志 + + constructor(executablePath: string, autoRestart: boolean = true) { + this.executablePath = executablePath; + this.process = null; + this.port = 0; + this.autoRestart = autoRestart; // 是否自动重启 + } + + async start() { + if (process.env.NODE_ENV === 'development') { + this.port = 9999; + return; + } + + const port = await this.getAvailablePort(); + this.port = port; + + this.launchProcess(port); + + // 监听退出事件并可能重启 + this.process?.on('close', (code) => { + console.log(`child process exited with code ${code}`); + if (this.autoRestart) { + console.log('Attempting to restart...'); + this.start().catch((err) => console.error('Failed to restart:', err)); + } + }); + } + + private launchProcess(port: number) { + // 获取系统的临时文件夹路径 + const tempDir = os.tmpdir(); + // 在临时文件夹中创建一个名为 chatgpt-on-cs 的目录用于存放日志 + const logDir = path.join(tempDir, 'chatgpt-on-cs'); + // 如果目录不存在,则创建它 + if (!fs.existsSync(logDir)) { + fs.mkdirSync(logDir); + } + // 定义日志文件的路径 + const logFilePath = path.join(logDir, 'process.log'); + // 创建一个写入流 + const logStream = fs.createWriteStream(logFilePath, { flags: 'a' }); + + this.process = spawn(this.executablePath, ['--port', port.toString()]); + + this.process.stdout?.on('data', (data) => { + console.log(`stdout: ${data}`); // 可选:依然在控制台输出 + logStream.write(`stdout: ${data}`); // 写入文件 + }); + + this.process.stderr?.on('data', (data) => { + console.error(`stderr: ${data}`); // 可选:依然在控制台输出 + logStream.write(`stderr: ${data}`); // 写入文件 + }); + + // 监听进程关闭事件,关闭写入流 + this.process.on('close', () => { + logStream.close(); + }); + } + + async getAvailablePort(): Promise { + return new Promise((resolve, reject) => { + const server = createServer(); + server.unref(); + server.on('error', reject); + server.listen(0, () => { + const { port } = server.address() as { port: number }; + server.close(() => { + resolve(port); + }); + }); + }); + } + + async check_health() { + // 发送 HTTP 请求检查服务是否健康 + try { + const { + data: { data }, + } = await axios.get(`http://127.0.0.1:${this.port}/api/v1/base/health`); + return data.init_db; + } catch (error) { + return false; + } + } + + stop() { + // 修改停止方法以标记不自动重启 + return new Promise((resolve, reject) => { + this.autoRestart = false; // 停止时禁用自动重启 + if (this.process) { + console.log('Killing process...'); + const { pid } = this.process; + // eslint-disable-next-line @typescript-eslint/no-unused-vars + exec(`taskkill /pid ${pid} /T /F`, (error, stdout, stderr) => { + this.process = null; + if (error) { + reject(error); + return; + } + resolve({}); + }); + } else { + resolve({}); + } + }); + } + + getPort() { + return this.port; + } +} + +export default BackendServiceManager; diff --git a/src/main/system/chrome.ts b/src/main/system/chrome.ts new file mode 100644 index 0000000..bcd2cf4 --- /dev/null +++ b/src/main/system/chrome.ts @@ -0,0 +1,34 @@ +import { exec } from 'child_process'; +import { promisify } from 'util'; + +const execAsync = promisify(exec); + +async function readVersionFromCmd(cmd: string, pattern: RegExp) { + try { + const { stdout } = await execAsync(cmd, { shell: 'powershell.exe' }); + const match = stdout.match(pattern); + return match ? match[0] : null; + } catch (error) { + // 如果命令执行失败,这里会捕获到异常,但我们选择忽略它,因为可能是因为浏览器不存在 + return null; + } +} + +export async function getBrowserVersionFromOS(): Promise { + const commands = [ + `(Get-Item -Path "$env:PROGRAMFILES\\Google\\Chrome\\Application\\chrome.exe").VersionInfo.FileVersion`, + `(Get-Item -Path "'$env:PROGRAMFILES (x86)'\\Google\\Chrome\\Application\\chrome.exe").VersionInfo.FileVersion`, + `(Get-Item -Path "$env:LOCALAPPDATA\\Google\\Chrome\\Application\\chrome.exe").VersionInfo.FileVersion`, + `(Get-ItemProperty -Path Registry::"HKCU\\SOFTWARE\\Google\\Chrome\\BLBeacon").version`, + `(Get-ItemProperty -Path Registry::"HKLM\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Google Chrome").version`, + ]; + const pattern = /\d+\.\d+\.\d+/; + + const firstHitTemplate = `$tmp = {expression}; if ($tmp) {echo $tmp; Exit;};`; + const script = `$ErrorActionPreference='silentlycontinue'; ${commands + .map((e) => firstHitTemplate.replace('{expression}', e)) + .join(' ')}`; + + const version = await readVersionFromCmd(`${script}`, pattern); + return version; // 如果所有命令都失败了,返回 null +} diff --git a/src/main/system/cron.ts b/src/main/system/cron.ts new file mode 100644 index 0000000..7b5e325 --- /dev/null +++ b/src/main/system/cron.ts @@ -0,0 +1,6 @@ +import nodeCron from 'node-cron'; + +export const setCron = (time: string, cb: () => void) => { + // second minute hour day month week + return nodeCron.schedule(time, cb); +}; diff --git a/src/main/util.ts b/src/main/util.ts new file mode 100644 index 0000000..7775eda --- /dev/null +++ b/src/main/util.ts @@ -0,0 +1,13 @@ +/* eslint import/prefer-default-export: off */ +import { URL } from 'url'; +import path from 'path'; + +export function resolveHtmlPath(htmlFileName: string) { + if (process.env.NODE_ENV === 'development') { + const port = process.env.PORT || 1212; + const url = new URL(`http://localhost:${port}`); + url.pathname = htmlFileName; + return url.href; + } + return `file://${path.resolve(__dirname, '../renderer/', htmlFileName)}`; +} diff --git a/src/renderer/App.css b/src/renderer/App.css new file mode 100644 index 0000000..7f19689 --- /dev/null +++ b/src/renderer/App.css @@ -0,0 +1,54 @@ +/* + * @NOTE: Prepend a `~` to css file paths that are in your node_modules + * See https://github.com/webpack-contrib/sass-loader#imports + */ +html, +body { + height: 100%; + overflow: auto; /* 或者使用 'scroll' 来强制显示滚动条 */ +} + +body { + height: 100vh; +} + +@font-face { + font-family: 'zhFont'; + src: url('../../assets/fonts/庞门正道标题体.ttf') format('truetype'); + font-weight: normal; + font-style: normal; +} + +.font-zh { + font-family: 'zhFont'; +} + +.table-tiny th, +.table-tiny td { + padding-left: 4px; + padding-right: 4px; +} + +.table-tiny th:first-child, +.table-tiny td:first-child { + max-width: 60px; +} + +* { + scrollbar-width: thin; + scrollbar-color: var(--chakra-colors-gray-300) transparent; +} + +*::-webkit-scrollbar { + width: 5px; +} + +*::-webkit-scrollbar-track { + background: transparent; +} + +*::-webkit-scrollbar-thumb { + background-color: var(--chakra-colors-gray-300); + border-radius: 10px; + border: none; +} diff --git a/src/renderer/App.tsx b/src/renderer/App.tsx new file mode 100644 index 0000000..0e372b2 --- /dev/null +++ b/src/renderer/App.tsx @@ -0,0 +1,86 @@ +import React, { useState, useEffect } from 'react'; +import { MemoryRouter as Router, Routes, Route } from 'react-router-dom'; +import { ChakraProvider, Box, Flex } from '@chakra-ui/react'; +import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; +import Navbar from './components/layout/Navbar'; +import Footer from './components/layout/Footer'; +import ErrorBoundary from './components/ErrorBoundary'; +import HomePage from './pages/Home'; +import SettingsPage from './pages/Settings'; +import AboutPage from './pages/About'; +import MsgList from './pages/MsgList'; +import FullScreenLoader from './pages/FullScreenLoader'; +import PlatformSettings from './pages/Platforms'; +import { SettingsProvider } from './pages/Settings/SettingsContext'; +import Updater from './components/Updater'; +import SystemCheck from './components/SystemCheck'; +import { WebSocketProvider } from './hooks/useWebSocketContext'; +import './App.css'; +import theme from './ui/styles/theme'; + +// Create a client +const queryClient = new QueryClient({ + defaultOptions: { + queries: { + keepPreviousData: true, + refetchOnWindowFocus: false, + retry: false, + cacheTime: 10, + }, + }, +}); + +function App() { + const [isLoaded, setIsLoaded] = useState(false); + useEffect(() => { + window.electron.ipcRenderer.on('check-health', (health) => { + const h = health as boolean; + setIsLoaded(h); + }); + + return () => { + window.electron.ipcRenderer.remove('check-health'); + }; + }); + + return ( + + + + + + {isLoaded ? ( + + + + + } /> + } /> + } /> + + + + } + /> + } /> + + +