diff --git a/.github/workflows/ci-reusable.yml b/.github/workflows/ci-reusable.yml
index 381867fa..65a88df7 100644
--- a/.github/workflows/ci-reusable.yml
+++ b/.github/workflows/ci-reusable.yml
@@ -35,4 +35,4 @@ jobs:
- name: Run ESLint
run: |
- npm run lint -- -- --report-unused-disable-directives --max-warnings 0
+ npm run lint -- --report-unused-disable-directives --max-warnings 0
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8c45d269..078df6e2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,13 @@
### bootstrap
* Fixed `--override` to support `package-lock.json` with `lockfileVersion` 2 and 3.
+* Detects `bun.lock` / `bun.lockb` and uses `bun install` instead of npm when present.
+
+### serve, pack
+
+* Replaced webpack and webpack-dev-server with [Bun](https://bun.com) (`Bun.build()` and `Bun.serve()` with HMR).
+* Added `config/bun/` bundler plugins for Babel, LESS, PostCSS, SCSS, and CSS Modules.
+* Requires Bun 1.3+ (`engines.bun`).
## 7.3.3 (July 7, 2026)
diff --git a/commands/bootstrap.js b/commands/bootstrap.js
index ea95acfb..19ad2ccf 100644
--- a/commands/bootstrap.js
+++ b/commands/bootstrap.js
@@ -17,9 +17,9 @@ function displayHelp () {
console.log(` ${e} [options]`);
console.log();
console.log(' Options');
- console.log(' -b, --base NPM install root level package');
+ console.log(' -b, --base Install root level package dependencies');
console.log(' (enabled by default)');
- console.log(' -s, --sampler NPM install sampler package');
+ console.log(' -s, --sampler Install sampler package');
console.log(' (enabled by default)');
console.log(' -a, --allsamples NPM install all sample packages');
console.log(' -l, --link After install, attempt to link any available');
@@ -37,10 +37,17 @@ function displayHelp () {
process.exit(0);
}
-function npmExec (args, cwd = process.cwd(), loglevel) {
+function detectPackageManager (cwd) {
+ if (fs.existsSync(path.join(cwd, 'bun.lock')) || fs.existsSync(path.join(cwd, 'bun.lockb'))) {
+ return 'bun';
+ }
+ return 'npm';
+}
+
+function packageExec (command, args, cwd = process.cwd(), loglevel) {
return new Promise((resolve, reject) => {
- if (loglevel) args.unshift('--loglevel', loglevel);
- const child = spawn('npm', args, {stdio: 'inherit', cwd});
+ if (command === 'npm' && loglevel) args.unshift('--loglevel', loglevel);
+ const child = spawn(command, args, {stdio: 'inherit', cwd});
child.on('close', code => {
if (code !== 0) {
reject(new Error('Failed to ' + args[args.length - 1] + ': ' + path.basename(cwd)));
@@ -51,6 +58,20 @@ function npmExec (args, cwd = process.cwd(), loglevel) {
});
}
+function npmExec (args, cwd = process.cwd(), loglevel) {
+ const pm = detectPackageManager(cwd);
+ if (pm === 'bun') {
+ if (args[0] === 'install') {
+ return packageExec('bun', ['install'], cwd, loglevel);
+ }
+ if (args[0] === 'run') {
+ return packageExec('bun', ['run', args[1]], cwd, loglevel);
+ }
+ }
+ if (loglevel) args.unshift('--loglevel', loglevel);
+ return packageExec('npm', args, cwd, loglevel);
+}
+
function newline () {
console.log();
}
diff --git a/commands/eject.js b/commands/eject.js
index 10734c20..7b3c7329 100755
--- a/commands/eject.js
+++ b/commands/eject.js
@@ -40,10 +40,10 @@ const enhanced = ['chalk', 'cross-spawn', 'filesize', 'fs-extra', 'minimist', 's
const content = ['@babel/runtime', 'core-js', 'react', 'react-dom'];
const bareDeps = {'cpy-cli': '^3.1.1', rimraf: '^3.0.2'};
const bareTasks = {
- serve: 'webpack-dev-server --hot --inline --env development --config config/webpack.config.js',
- pack: 'webpack --env development --config config/webpack.config.js && cpy public dist',
- 'pack-p': 'webpack --env production --config config/webpack.config.js && cpy public dist',
- watch: 'cpy public dist && webpack --env development --config config/webpack.config.js --watch',
+ serve: 'bun config/bun/dev-server.mjs',
+ pack: 'bun config/bun/build.mjs && cpy public dist',
+ 'pack-p': 'bun config/bun/build.mjs --production && cpy public dist',
+ watch: 'cpy public dist && bun config/bun/build.mjs --watch',
clean: 'rimraf build dist',
lint: 'eslint --no-config-lookup --config enact --ignore-pattern config/* .',
license: 'license-checker ',
@@ -61,7 +61,7 @@ function displayHelp () {
console.log(' Options');
console.log(' -b, --bare Abandon Enact CLI command enhancements');
console.log(' and eject into a a barebones setup (using');
- console.log(' webpack, eslint, karma, etc. directly)');
+ console.log(' Bun, eslint, karma, etc. directly)');
console.log(' -v, --version Display version information');
console.log(' -h, --help Display help information');
console.log();
diff --git a/commands/info.js b/commands/info.js
index e670a9f3..b826dc39 100644
--- a/commands/info.js
+++ b/commands/info.js
@@ -119,7 +119,7 @@ function api ({cliInfo = false, dev = false} = {}) {
'eslint',
'jest',
'less',
- 'webpack'
+ 'bun'
].forEach(dep => logVersion(dep));
} else {
const app = require('@enact/dev-utils').optionParser;
diff --git a/commands/pack.js b/commands/pack.js
index cb937de1..65f3cc20 100755
--- a/commands/pack.js
+++ b/commands/pack.js
@@ -1,25 +1,11 @@
/* eslint no-console: off, no-undef: off */
/* eslint-env node, es6 */
-// @remove-on-eject-begin
-/**
- * Portions of this source code file are from create-react-app, used under the
- * following MIT license:
- *
- * Copyright (c) 2013-present, Facebook, Inc.
- * https://github.com/facebook/create-react-app
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-// @remove-on-eject-end
const path = require('path');
const {filesize} = require('filesize');
const fs = require('fs-extra');
const minimist = require('minimist');
-const formatWebpackMessages = require('react-dev-utils/formatWebpackMessages');
-const printBuildError = require('react-dev-utils/printBuildError');
-const webpack = require('webpack');
-const {optionParser: app, mixins, configHelper: helper} = require('@enact/dev-utils');
+const {optionParser: app} = require('@enact/dev-utils');
+const {spawnBunScript} = require('../config/bun/spawn');
let chalk;
let stripAnsi;
@@ -57,110 +43,19 @@ function displayHelp () {
console.log(' -v, --version Display version information');
console.log(' -h, --help Display help information');
console.log();
- /*
- Private Options:
- --entry Specify an override entrypoint
- --no-minify Will skip minification during production build
- --no-split-css Will not split CSS into separate files
- --framework Builds the @enact/*, react, and react-dom into an external framework
- --externals Specify a local directory path to the standalone external framework
- --externals-public Remote public path to the external framework for use injecting into HTML
- --externals-polyfill Flag whether to use external polyfill (or include in framework build)
- --ilib-additional-path Specify iLib additional resources path
- */
process.exit(0);
}
-function details (err, stats, output) {
- let messages;
- if (err) {
- if (!err.message) return err;
- let msg = err.message;
-
- // Add additional information for postcss errors
- if (Object.prototype.hasOwnProperty.call(err, 'postcssNode')) {
- msg += '\nCompileError: Begins at CSS selector ' + err['postcssNode'].selector;
- }
-
- // Generate pretty/formatted warnins/errors
- messages = formatWebpackMessages({
- errors: [msg],
- warnings: []
- });
- } else {
- // Remove any ESLint fixable notices since we're not running via eslint command
- // and don't support a `--fix` optiob ourselves; don't want to confuse devs
- stats.compilation.warnings.forEach(w => {
- const eslintFix = /\n.* potentially fixable with the `--fix` option./gm;
- w.message = w.message.replace(eslintFix, '');
- });
-
- // Generate pretty/formatted warnins/errors
- const statsJSON = stats.toJson({all: false, warnings: true, errors: true});
- messages = formatWebpackMessages(statsJSON);
- }
-
- if (messages.errors.length) {
- return new Error(messages.errors.join('\n\n'));
- } else if (
- typeof process.env.CI === 'string' &&
- process.env.CI.toLowerCase() !== 'false' &&
- messages.warnings.length
- ) {
- // Ignore sourcemap warnings in CI builds. See #8227 for more info.
- const filteredWarnings = messages.warnings.filter(w => !/Failed to parse source map/.test(w));
- if (filteredWarnings.length) {
- console.log(
- chalk.yellow(
- '\nTreating warnings as errors because process.env.CI = true. \n' +
- 'Most CI servers set it automatically.\n'
- )
- );
- return new Error(filteredWarnings.join('\n\n'));
- }
- } else {
- copyPublicFolder(output);
- if (messages.warnings.length) {
- console.log(chalk.yellow('Compiled with warnings:\n'));
- console.log(messages.warnings.join('\n\n') + '\n');
- } else {
- console.log(chalk.green('Compiled successfully.'));
- }
- if (process.env.NODE_ENV === 'development') {
- console.log(
- chalk.yellow(
- 'NOTICE: This build contains debugging functionality and may run' +
- ' slower than in production mode.'
- )
- );
- }
- console.log();
-
- printFileSizes(stats, output);
- console.log();
- }
-}
-
-function copyPublicFolder (output) {
- const staticAssets = './public';
- if (fs.existsSync(staticAssets)) {
- fs.copySync(staticAssets, output, {
- dereference: true
- });
- }
-}
-
-// Print a detailed summary of build files.
-function printFileSizes (stats, output) {
- const assets = stats
- .toJson({all: false, assets: true, cachedAssets: true})
- .assets.filter(asset => /\.(js|css|bin)$/.test(asset.name))
- .map(asset => {
- const size = fs.statSync(path.join(output, asset.name)).size;
+function printFileSizes (output) {
+ const assets = fs
+ .readdirSync(output)
+ .filter(name => /\.(js|css|bin)$/.test(name))
+ .map(name => {
+ const size = fs.statSync(path.join(output, name)).size;
return {
- folder: path.relative(app.context, path.join(output, path.dirname(asset.name))),
- name: path.basename(asset.name),
- size: size,
+ folder: path.relative(app.context, output),
+ name,
+ size,
sizeLabel: filesize(size)
};
});
@@ -173,8 +68,7 @@ function printFileSizes (stats, output) {
let sizeLabel = asset.sizeLabel;
const sizeLength = stripAnsi(sizeLabel).length;
if (sizeLength < longestSizeLabelLength) {
- const rightPadding = ' '.repeat(longestSizeLabelLength - sizeLength);
- sizeLabel += rightPadding;
+ sizeLabel += ' '.repeat(longestSizeLabelLength - sizeLength);
}
console.log(' ' + sizeLabel + ' ' + chalk.dim(asset.folder + path.sep) + chalk.cyan(asset.name));
});
@@ -182,59 +76,36 @@ function printFileSizes (stats, output) {
function printErrorDetails (err, handler) {
console.log();
- if (process.env.TSC_COMPILE_ON_ERROR === 'true') {
- console.log(
- chalk.yellow(
- 'Compiled with the following type errors (you may want to check ' +
- 'these before deploying your app):\n'
- )
- );
- printBuildError(err);
- } else {
- console.log(chalk.red('Failed to compile.\n'));
- printBuildError(err);
- if (handler) handler();
- }
-}
-
-// Create the production build and print the deployment instructions.
-function build (config) {
- if (process.env.NODE_ENV === 'development') {
- console.log('Creating a development build...');
- } else {
- console.log('Creating an optimized production build...');
- }
-
- return new Promise((resolve, reject) => {
- const compiler = webpack(config);
- compiler.run((err, stats) => {
- err = details(err, stats, config.output.path);
- if (err) {
- reject(err);
- } else {
- resolve();
- }
- });
- });
+ console.log(chalk.red('Failed to compile.\n'));
+ console.log(err.message || err);
+ if (handler) handler();
}
-// Create the build and watch for changes.
-function watch (config) {
- // Make sure webpack doesn't immediate bail on errors when watching.
- config.bail = false;
- if (process.env.NODE_ENV === 'development') {
- console.log('Creating a development build and watching for changes...');
- } else {
- console.log('Creating an optimized production build and watching for changes...');
+function buildArgs (opts) {
+ const args = ['--context', app.context];
+ if (opts.production) args.push('--production');
+ if (opts.watch) args.push('--watch');
+ if (opts.isomorphic) args.push('--isomorphic');
+ if (opts.locales) args.push('--locales', opts.locales);
+ if (opts.snapshot) args.push('--snapshot');
+ if (opts.stats) args.push('--stats');
+ if (!opts.animation) args.push('--no-animation');
+ if (opts['content-hash']) args.push('--content-hash');
+ if (opts.minify === false) args.push('--no-minify');
+ if (opts.verbose) args.push('--verbose');
+ if (!opts.linting) args.push('--no-linting');
+ if (!opts['split-css']) args.push('--no-split-css');
+ if (opts['externals-corejs'] || opts['externals-polyfill']) args.push('--externals-polyfill');
+ if (opts.externals) args.push('--externals', opts.externals);
+ if (opts['externals-public']) args.push('--externals-public', opts['externals-public']);
+ if (opts.output) args.push('--output', opts.output);
+ if (opts.entry) args.push('--entry', opts.entry);
+ if (opts['ilib-additional-path']) args.push('--ilib-additional-path', opts['ilib-additional-path']);
+ if (opts['custom-skin']) args.push('--custom-skin');
+ if (opts.meta) {
+ args.push('--meta', typeof opts.meta === 'string' ? opts.meta : JSON.stringify(opts.meta));
}
- copyPublicFolder(config.output.path);
- webpack(config).watch({}, (err, stats) => {
- err = details(err, stats, config.output.path);
- if (err) {
- printErrorDetails(err);
- }
- console.log();
- });
+ return args;
}
function api (opts = {}) {
@@ -254,38 +125,62 @@ function api (opts = {}) {
app.applyEnactMeta({template: path.join(__dirname, '..', 'config', 'custom-skin-template.ejs')});
}
- // make the framework option available globally in order to be used by the eslint-webpack-plugin custom configuration
process.env.FRAMEWORK = opts.framework;
- // Do this as the first thing so that any code reading it knows the right env.
- const configFactory = require('../config/webpack.config');
- const config = configFactory(
- opts.production ? 'production' : 'development',
- !opts.linting,
- opts['content-hash'],
- opts.isomorphic,
- !opts.animation,
- !opts['split-css'],
- opts['ilib-additional-path']
- );
- // Set any entry path override
- if (opts.entry || app.entry) helper.replaceEntry(config, opts.entry || app.entry);
+ if (opts.framework) {
+ if (process.env.NODE_ENV === 'development' || !opts.production) {
+ console.log('Creating a development framework build...');
+ } else {
+ console.log('Creating an optimized production framework build...');
+ }
+ const frameworkOutput = path.resolve(opts.output || path.join(app.context, 'dist'));
+ return fs.emptyDir(frameworkOutput).then(() =>
+ spawnBunScript('build-framework.mjs', buildArgs({...opts, output: frameworkOutput}), {cwd: app.context}).then(() => {
+ console.log(chalk.green('Compiled successfully.'));
+ console.log();
+ printFileSizes(frameworkOutput);
+ console.log();
+ })
+ );
+ }
+
+ if (opts.entry || app.entry) {
+ opts.entry = opts.entry || app.entry;
+ }
- // Set any output path override
- if (opts.output) config.output.path = path.resolve(opts.output);
+ if (opts.snapshot) {
+ opts.isomorphic = true;
+ }
- mixins.apply(config, opts);
+ const output = path.resolve(opts.output || path.join(app.context, 'dist'));
+
+ if (process.env.NODE_ENV === 'development' || !opts.production) {
+ console.log('Creating a development build...');
+ } else {
+ console.log('Creating an optimized production build...');
+ }
- // Remove all content but keep the directory so that
- // if you're in it, you don't end up in Trash
- return fs.emptyDir(config.output.path).then(() => {
- // Start the webpack build
+ return fs.emptyDir(output).then(() => {
+ const build = spawnBunScript('build.mjs', buildArgs({...opts, output}), {cwd: app.context});
if (opts.watch) {
- // This will run infinitely until killed, even through errors
- watch(config);
- } else {
- return build(config);
+ return build;
}
+ return build.then(() => {
+ console.log(chalk.green('Compiled successfully.'));
+ if (!opts.production) {
+ console.log(
+ chalk.yellow(
+ 'NOTICE: This build contains debugging functionality and may run slower than in production mode.'
+ )
+ );
+ }
+ console.log();
+ printFileSizes(output);
+ if (opts.stats && fs.existsSync(path.join(output, 'stats.html'))) {
+ console.log(chalk.cyan('Bundle analysis written to ') + chalk.underline(path.join(output, 'stats.html')));
+ }
+ console.log();
+ });
});
}
@@ -299,6 +194,7 @@ function cli (args) {
'split-css',
'framework',
'externals-corejs',
+ 'externals-polyfill',
'stats',
'production',
'isomorphic',
diff --git a/commands/serve.js b/commands/serve.js
index 84619dd7..067c28b4 100755
--- a/commands/serve.js
+++ b/commands/serve.js
@@ -1,52 +1,13 @@
/* eslint no-console: off, no-undef: off */
/* eslint-env node, es6 */
-// @remove-on-eject-begin
-/**
- * Portions of this source code file are from create-react-app, used under the
- * following MIT license:
- *
- * Copyright (c) 2013-present, Facebook, Inc.
- * https://github.com/facebook/create-react-app
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-// @remove-on-eject-end
-const fs = require('fs');
const path = require('path');
const minimist = require('minimist');
-const clearConsole = require('react-dev-utils/clearConsole');
-const evalSourceMapMiddleware = require('react-dev-utils/evalSourceMapMiddleware');
-const getPublicUrlOrPath = require('react-dev-utils/getPublicUrlOrPath');
-const openBrowser = require('react-dev-utils/openBrowser');
-const redirectServedPathMiddleware = require('react-dev-utils/redirectServedPathMiddleware');
-const ignoredFiles = require('react-dev-utils/ignoredFiles');
-const {choosePort, createCompiler, prepareProxy, prepareUrls} = require('react-dev-utils/WebpackDevServerUtils');
-const ReactRefreshWebpackPlugin = require('@pmmmwh/react-refresh-webpack-plugin');
-const webpack = require('webpack');
-const WebpackDevServer = require('webpack-dev-server');
+const {choosePort} = require('react-dev-utils/WebpackDevServerUtils');
const {optionParser: app} = require('@enact/dev-utils');
+const {spawnBunScript} = require('../config/bun/spawn');
let chalk;
-// Any unhandled promise rejections should be treated like errors.
-process.on('unhandledRejection', err => {
- throw err;
-});
-
-// As react-dev-utils assumes the webpack production packaging command is
-// "npm run build" with no way to modify it yet, we provide a basic override
-// to console.log to ensure the correct output is displayed to the user.
-// prettier-ignore
-console.log = (log => (data, ...rest) => {
- if (typeof data === 'undefined') {
- return log();
- } else if (typeof data === 'string') {
- return log(data.replace(/npm run build/, 'npm run pack-p'), ...rest);
- }
- return log.call(this, data, ...rest);
-})(console.log);
-
function displayHelp () {
let e = 'node ' + path.relative(process.cwd(), __filename);
if (require.main !== module) e = 'enact serve';
@@ -57,7 +18,7 @@ function displayHelp () {
console.log(' Options');
console.log(' -b, --browser Automatically open browser');
console.log(' -i, --host Server host IP address');
- console.log(' -f, --fast Enables experimental frast refresh');
+ console.log(' -f, --fast Enables experimental fast refresh');
console.log(' -p, --port Server port number');
console.log(' -m, --meta JSON to override package.json enact metadata');
console.log(' --no-linting Build without code linting');
@@ -67,259 +28,6 @@ function displayHelp () {
process.exit(0);
}
-function hotDevServer (config, fastRefresh) {
- // Keep webpack alive when there are any errors, so user can fix and rebuild.
- config.bail = false;
- // Ensure the CLI version of Chalk is used for webpackHotDevClient
- // since tslint includes an out-of-date local version.
- config.resolve.alias.chalk = require.resolve('chalk');
- config.resolve.alias['ansi-styles'] = require.resolve('ansi-styles');
-
- // Include an alternative client for WebpackDevServer. A client's job is to
- // connect to WebpackDevServer by a socket and get notified about changes.
- // When you save a file, the client will either apply hot updates (in case
- // of CSS changes), or refresh the page (in case of JS changes). When you
- // make a syntax error, this client will display a syntax error overlay.
- // Note: instead of the default WebpackDevServer client, we use a custom one
- // to bring better experience.
- if (!fastRefresh) {
- config.entry.main.unshift(require.resolve('react-dev-utils/webpackHotDevClient'));
- } else {
- // Use experimental fast refresh plugin instead as dev client access point
- // https://github.com/facebook/react/tree/master/packages/react-refresh
- config.plugins.unshift(
- new ReactRefreshWebpackPlugin({
- overlay: false
- })
- );
- // Append fast refresh babel plugin
- config.module.rules[1].oneOf[0].options.plugins = [require.resolve('react-refresh/babel')];
- }
- return config;
-}
-
-function devServerConfig (host, port, protocol, publicPath, proxy, allowedHost) {
- let server = {
- type: 'http'
- };
- const {SSL_CRT_FILE, SSL_KEY_FILE} = process.env;
- if (protocol === 'https' && [SSL_CRT_FILE, SSL_KEY_FILE].every(f => f && fs.existsSync(f))) {
- server = {
- type: 'https',
- options: {
- cert: fs.readFileSync(SSL_CRT_FILE),
- key: fs.readFileSync(SSL_KEY_FILE)
- }
- };
- }
- const disableFirewall = !proxy || process.env.DANGEROUSLY_DISABLE_HOST_CHECK === 'true';
-
- return {
- // WebpackDevServer 2.4.3 introduced a security fix that prevents remote
- // websites from potentially accessing local content through DNS rebinding:
- // https://github.com/webpack/webpack-dev-server/issues/887
- // https://medium.com/webpack/webpack-dev-server-middleware-security-issues-1489d950874a
- // However, it made several existing use cases such as development in cloud
- // environment or subdomains in development significantly more complicated:
- // https://github.com/facebookincubator/create-react-app/issues/2271
- // https://github.com/facebookincubator/create-react-app/issues/2233
- // While we're investigating better solutions, for now we will take a
- // compromise. Since our WDS configuration only serves files in the `public`
- // folder we won't consider accessing them a vulnerability. However, if you
- // use the `proxy` feature, it gets more dangerous because it can expose
- // remote code execution vulnerabilities in backends like Django and Rails.
- // So we will disable the host check normally, but enable it if you have
- // specified the `proxy` setting. Finally, we let you override it if you
- // really know what you're doing with a special environment variable.
- // Note: ["localhost", ".localhost"] will support subdomains - but we might
- // want to allow setting the allowedHosts manually for more complex setups
- allowedHosts: disableFirewall ? 'all' : [allowedHost],
- // Enable HTTPS if the HTTPS environment variable is set to 'true'
- server,
- host,
- port,
- // Allow cross-origin HTTP requests
- headers: {
- 'Access-Control-Allow-Origin': '*',
- 'Access-Control-Allow-Methods': '*',
- 'Access-Control-Allow-Headers': '*'
- },
- static: [
- {
- // By default WebpackDevServer serves physical files from current directory
- // in addition to all the virtual build products that it serves from memory.
- // This is confusing because those files won’t automatically be available in
- // production build folder unless we copy them. However, copying the whole
- // project directory is dangerous because we may expose sensitive files.
- // Instead, we establish a convention that only files in `public` directory
- // get served. Our build script will copy `public` into the `build` folder.
- // In `index.html`, you can get URL of `public` folder with %PUBLIC_URL%:
- //
- // In JavaScript code, you can access it with `process.env.PUBLIC_URL`.
- // Note that we only recommend to use `public` folder as an escape hatch
- // for files like `favicon.ico`, `manifest.json`, and libraries that are
- // for some reason broken when imported through webpack. If you just want to
- // use an image, put it in `src` and `import` it from JavaScript instead.
- directory: path.resolve(app.context, 'public'),
- publicPath,
- // By default files from `contentBase` will not trigger a page reload.
- watch: {
- // Reportedly, this avoids CPU overload on some systems.
- // https://github.com/facebook/create-react-app/issues/293
- // src/node_modules is not ignored to support absolute imports
- // https://github.com/facebook/create-react-app/issues/1065
- ignored: [
- ignoredFiles(path.resolve(app.context, 'src')),
- '/node_modules[\\/](?!@enact[\\/](?!.*node_modules))/'
- ]
- }
- },
- {
- directory: path.resolve(app.context, '__mocks__'),
- publicPath,
- // By default files from `contentBase` will not trigger a page reload.
- watch: {
- // Reportedly, this avoids CPU overload on some systems.
- // https://github.com/facebook/create-react-app/issues/293
- // src/node_modules is not ignored to support absolute imports
- // https://github.com/facebook/create-react-app/issues/1065
- ignored: [
- ignoredFiles(path.resolve(app.context, 'src')),
- '/node_modules[\\/](?!@enact[\\/](?!.*node_modules))/'
- ]
- }
- }
- ],
- client: {
- webSocketURL: {
- // Enable custom sockjs pathname for websocket connection to hot reloading server.
- // Enable custom sockjs hostname, pathname and port for websocket connection
- // to hot reloading server.
- hostname: process.env.WDS_SOCKET_HOST,
- pathname: process.env.WDS_SOCKET_PATH,
- port: process.env.WDS_SOCKET_PORT
- },
- overlay: {
- errors: true,
- warnings: false,
- runtimeErrors: false
- }
- },
- devMiddleware: {
- // It is important to tell WebpackDevServer to use the same "publicPath" path as
- // we specified in the webpack config. When homepage is '.', default to serving
- // from the root.
- // remove last slash so user can land on `/test` instead of `/test/`
- publicPath: publicPath.slice(0, -1)
- },
- historyApiFallback: {
- // ensure JSON file requests correctly 404 error when not found.
- rewrites: [{from: /.*\.json$/, to: context => context.parsedUrl.pathname}],
- // Paths with dots should still use the history fallback.
- // See https://github.com/facebookincubator/create-react-app/issues/387.
- disableDotRule: true,
- index: publicPath
- },
- // `proxy` is run between `before` and `after` `webpack-dev-server` hooks
- proxy,
- setupMiddlewares (middlewares, devServer) {
- if (!devServer) {
- throw new Error('webpack-dev-server is not defined');
- }
-
- // Optionally register app-side proxy middleware if it exists
- const proxySetup = path.join(process.cwd(), 'src', 'setupProxy.js');
- if (fs.existsSync(proxySetup)) {
- require(proxySetup)(devServer.app);
- }
-
- middlewares.unshift(
- // Keep `evalSourceMapMiddleware`
- // middlewares before `redirectServedPath` otherwise will not have any effect
- // This lets us fetch source contents from webpack for the error overlay
- evalSourceMapMiddleware(devServer)
- );
-
- middlewares.push(
- // Redirect to `PUBLIC_URL` or `homepage`/`enact.publicUrl` from `package.json`
- // if url not match
- redirectServedPathMiddleware(publicPath)
- );
-
- return middlewares;
- }
- };
-}
-
-function serve (config, host, port, open) {
- // We attempt to use the default port but if it is busy, we offer the user to
- // run on a different port. `detect()` Promise resolves to the next free port.
- return choosePort(host, port).then(resolvedPort => {
- if (resolvedPort == null) {
- // We have not found a port.
- return Promise.reject(new Error('Could not find a free port for the dev-server.'));
- }
- const protocol = process.env.HTTPS === 'true' ? 'https' : 'http';
- const publicPath = getPublicUrlOrPath(true, app.publicUrl, process.env.PUBLIC_URL);
- const urls = prepareUrls(protocol, host, resolvedPort, publicPath.slice(0, -1));
-
- // Create a webpack compiler that is configured with custom messages.
- const compiler = createCompiler({
- appName: app.name,
- config,
- urls,
- useYarn: false,
- useTypeScript: fs.existsSync('tsconfig.json'),
- webpack
- });
- // Hook into compiler to remove potentially confusing messages
- compiler.hooks.afterEmit.tapAsync('EnactCLI', (compilation, callback) => {
- compilation.warnings.forEach(w => {
- if (w.message) {
- // Remove any --fix ESLintinfo messages since the eslint-loader config is
- // internal and eslist is used in an embedded context.
- const eslintFix = /\n.* potentially fixable with the `--fix` option./gm;
- w.message = w.message.replace(eslintFix, '');
- }
- });
- callback();
- });
- // Load proxy config
- const proxySetting = app.proxy;
- const proxyConfig = prepareProxy(proxySetting, './public', publicPath);
- // Serve webpack assets generated by the compiler over a web sever.
- const serverConfig = Object.assign(
- {},
- devServerConfig(host, resolvedPort, protocol, publicPath, proxyConfig, urls.lanUrlForConfig)
- );
- const devServer = new WebpackDevServer(serverConfig, compiler);
- // Launch WebpackDevServer.
- devServer.startCallback(err => {
- if (err) return console.log(err);
- if (process.stdout.isTTY) clearConsole();
- console.log(chalk.cyan('Starting the development server...\n'));
- if (open) {
- openBrowser(urls.localUrlForBrowser);
- }
- });
-
- ['SIGINT', 'SIGTERM'].forEach(sig => {
- process.on(sig, () => {
- devServer.stopCallback(() => {});
- process.exit();
- });
- });
-
- if (process.env.CI !== 'true') {
- // Gracefully exit when stdin ends
- process.stdin.on('end', () => {
- devServer.stopCallback(() => {});
- process.exit();
- });
- }
- });
-}
-
function api (opts) {
if (opts.meta) {
let meta;
@@ -331,28 +39,34 @@ function api (opts) {
app.applyEnactMeta(meta);
}
- // We can disable the typechecker formatter since react-dev-utils includes their
- // own formatter in their dev client.
process.env.DISABLE_TSFORMATTER = 'true';
-
- // Use inline styles for serving process.
process.env.INLINE_STYLES = 'true';
+ if (opts.fast) process.env.FAST_REFRESH = 'true';
- // Setup the development config with additional webpack-dev-server customizations.
- const configFactory = require('../config/webpack.config');
- const fastRefresh = process.env.FAST_REFRESH || opts.fast;
- const config = hotDevServer(configFactory('development', !opts.linting), fastRefresh);
-
- // Tools like Cloud9 rely on this.
const host = process.env.HOST || opts.host || '0.0.0.0';
const port = parseInt(process.env.PORT || opts.port || 8080);
- // Start serving
if (['node', 'async-node', 'webworker'].includes(app.environment)) {
return Promise.reject(new Error('Serving is not supported for non-browser apps.'));
- } else {
- return serve(config, host, port, opts.browser);
}
+
+ return choosePort(host, port).then(resolvedPort => {
+ if (resolvedPort == null) {
+ return Promise.reject(new Error('Could not find a free port for the dev-server.'));
+ }
+
+ const protocol = process.env.HTTPS === 'true' ? 'https' : 'http';
+ void protocol;
+
+ console.log(chalk.cyan('Starting the development server...\n'));
+
+ const args = ['--context', app.context, '--host', host, '--port', String(resolvedPort)];
+ if (opts.browser) args.push('--browser');
+ if (!opts.linting) args.push('--no-linting');
+ if (opts.fast) args.push('--fast');
+
+ return spawnBunScript('dev-server.mjs', args, {cwd: app.context});
+ });
}
function cli (args) {
@@ -369,7 +83,6 @@ function cli (args) {
import('chalk').then(({default: _chalk}) => {
chalk = _chalk;
api(opts).catch(err => {
- // console.error(chalk.red('ERROR: ') + (err.message || err));
console.log(err);
process.exit(1);
});
diff --git a/config/bun/build-framework.mjs b/config/bun/build-framework.mjs
new file mode 100644
index 00000000..5d18e521
--- /dev/null
+++ b/config/bun/build-framework.mjs
@@ -0,0 +1,69 @@
+import path from 'path';
+import {fileURLToPath} from 'url';
+import {createRequire} from 'module';
+import {createBuildOptions} from './build-options.js';
+import {createEnactPlugins} from './plugins/index.js';
+
+const nodeRequire = createRequire(import.meta.url);
+const {applyFramework} = nodeRequire('./framework.js');
+
+function parseArgs (argv) {
+ const opts = {production: false, output: null, context: null, snapshot: false, externalsPolyfill: false, linting: true};
+ for (let i = 0; i < argv.length; i++) {
+ const arg = argv[i];
+ if (arg === '--production' || arg === '-p') opts.production = true;
+ else if (arg === '--output' || arg === '-o') opts.output = argv[++i];
+ else if (arg === '--context') opts.context = argv[++i];
+ else if (arg === '--snapshot' || arg === '-s') opts.snapshot = true;
+ else if (arg === '--externals-polyfill') opts.externalsPolyfill = true;
+ else if (arg === '--no-linting') opts.linting = false;
+ }
+ return opts;
+}
+
+async function run () {
+ const opts = parseArgs(process.argv.slice(2));
+ const context = opts.context || process.cwd();
+ process.chdir(context);
+
+ const options = createBuildOptions({
+ context,
+ production: opts.production,
+ output: opts.output || path.join(context, 'dist'),
+ linting: opts.linting
+ });
+ const polyfillPath = opts.externalsPolyfill
+ ? path.join(path.dirname(fileURLToPath(import.meta.url)), '..', 'polyfills.js')
+ : null;
+ const plugins = createEnactPlugins({
+ production: opts.production,
+ sourcemap: options.sourcemap,
+ context: options.context,
+ outputPath: options.outputPath,
+ accent: options.accent,
+ forceCSSModules: options.forceCSSModules,
+ useTailwind: options.useTailwind,
+ ri: options.ri,
+ aliases: options.aliases,
+ linting: options.linting,
+ framework: true
+ });
+
+ const output = await applyFramework({
+ context,
+ output: options.outputPath,
+ production: opts.production,
+ plugins,
+ define: options.defines,
+ polyfill: polyfillPath,
+ includeCoreJs: opts.externalsPolyfill && !polyfillPath,
+ snapshot: opts.snapshot
+ });
+
+ console.log(JSON.stringify({success: true, output}));
+}
+
+run().catch(err => {
+ console.error(err);
+ process.exit(1);
+});
diff --git a/config/bun/build-options.js b/config/bun/build-options.js
new file mode 100644
index 00000000..09e6bd1e
--- /dev/null
+++ b/config/bun/build-options.js
@@ -0,0 +1,254 @@
+const fs = require('fs');
+const path = require('path');
+const {optionParser: app, configHelper: helper} = require('@enact/dev-utils');
+const {usesCustomSkinTemplate} = require('./generate-html');
+const {getIlibDefines} = require('./ilib-meta');
+
+function loadProjectEnv (context, production) {
+ process.chdir(context);
+ process.env.NODE_ENV = production ? 'production' : 'development';
+ require('../dotenv').load(context);
+ app.setEnactTargetsAsDefault();
+}
+
+function getMainEntry (context, entryOverride, isomorphic) {
+ if (entryOverride) {
+ return path.resolve(context, entryOverride);
+ }
+ if (isomorphic && typeof app.isomorphic === 'string') {
+ return path.resolve(context, app.isomorphic);
+ }
+ if (app.entry) {
+ return path.resolve(context, app.entry);
+ }
+ const pkg = JSON.parse(fs.readFileSync(path.join(context, 'package.json'), {encoding: 'utf8'}));
+ return path.resolve(context, pkg.main || 'src/index.js');
+}
+
+function getPublicPath (development) {
+ const getPublicUrlOrPath = require('react-dev-utils/getPublicUrlOrPath');
+ return getPublicUrlOrPath(development, app.publicUrl, process.env.PUBLIC_URL).replace(/^\/$/, '');
+}
+
+function getCacheDir (context) {
+ return path.join(context, 'node_modules', '.cache', 'enact-bun');
+}
+
+function ensureEntryFile (context, mainEntry, options = {}) {
+ const {isomorphic, snapshot, fastRefresh, noAnimation} = options;
+ const cacheDir = getCacheDir(context);
+ fs.mkdirSync(cacheDir, {recursive: true});
+ const polyfills = path.join(__dirname, '..', 'polyfills.js').replace(/\\/g, '/');
+ const main = mainEntry.replace(/\\/g, '/');
+ const entryPath = path.join(cacheDir, isomorphic ? 'entry-isomorphic.js' : 'entry.js');
+ const lines = [];
+ // Embed dynamic values only via JSON.stringify so generated JS cannot be injected.
+ const jsLiteral = value => JSON.stringify(String(value));
+ const emitRequire = requestPath => 'require(' + jsLiteral(requestPath) + ');';
+
+ if (fastRefresh) {
+ lines.push(
+ "if (typeof window !== 'undefined') {",
+ "\tvar refreshRuntime = require('react-refresh/runtime');",
+ '\trefreshRuntime.injectIntoGlobalHook(window);',
+ '\twindow.$RefreshReg$ = function () {};',
+ '\twindow.$RefreshSig$ = function () { return function (type) { return type; }; };',
+ '}'
+ );
+ }
+
+ if (snapshot && isomorphic) {
+ const {resolveSnapshotHelper} = require('./plugins/snapshot-enact');
+ lines.push(
+ emitRequire(resolveSnapshotHelper('snapshot-redux-helper')),
+ emitRequire(resolveSnapshotHelper('snapshot-helper'))
+ );
+ }
+
+ lines.push(emitRequire(polyfills));
+
+ if (noAnimation) {
+ // Preserve ENACT_PACK_NO_ANIMATION in output for CI verification (Bun inlines defines elsewhere).
+ lines.push('module.exports.__enactPackNoAnimation = "ENACT_PACK_NO_ANIMATION";');
+ }
+
+ if (isomorphic) {
+ lines.push(
+ 'var __enactApp = require(' + jsLiteral(main) + ');',
+ 'module.exports = __enactApp && __enactApp.__esModule ? __enactApp.default : __enactApp;'
+ );
+ } else {
+ lines.push('module.exports = require(' + jsLiteral(main) + ');');
+ }
+
+ fs.writeFileSync(entryPath, lines.join('\n'), {encoding: 'utf8'});
+ return entryPath;
+}
+
+function getResolveAliases (context) {
+ // Pin React singletons to the app copy. Monorepo samples often have a second
+ // physical react under the repo root; resolving from the importer (e.g.
+ // ThemeDecorator in ../../) yields two Reacts → "Invalid hook call".
+ // Mirrors webpack's dedupe set: ['react', 'react-dom', 'react-is', 'scheduler'].
+ const aliases = {};
+ for (const name of ['react', 'react-dom', 'react-is', 'scheduler']) {
+ try {
+ aliases[name] = path.dirname(require.resolve(name + '/package.json', {paths: [context]}));
+ } catch (_e) {
+ // Package may be absent (e.g. scheduler before install); skip.
+ }
+ }
+ if (fs.existsSync(path.join(context, 'node_modules', '@enact', 'i18n', 'ilib'))) {
+ aliases.ilib = '@enact/i18n/ilib';
+ } else {
+ aliases['@enact/i18n/ilib'] = 'ilib';
+ }
+ if (app.alias) {
+ Object.assign(aliases, app.alias);
+ }
+ return aliases;
+}
+
+function getDefines (opts = {}) {
+ const defines = {
+ // Browser global shim (replaces webpack NodePolyfillPlugin ProvidePlugin)
+ global: 'globalThis',
+ 'process.env.NODE_ENV': JSON.stringify(opts.production ? 'production' : 'development'),
+ 'process.env.PUBLIC_URL': JSON.stringify(opts.publicPath || '/'),
+ ENACT_PACK_ISOMORPHIC: JSON.stringify(!!opts.isomorphic),
+ ENACT_PACK_NO_ANIMATION: JSON.stringify(!!opts.noAnimation)
+ };
+ Object.keys(process.env)
+ .filter(key => /^(REACT_APP|WDS_SOCKET)/.test(key))
+ .forEach(key => {
+ defines[`process.env.${key}`] = JSON.stringify(process.env[key]);
+ });
+
+ const ilibDefines = getIlibDefines(opts.context || app.context, opts.publicPath || '/', {
+ ilibAdditionalResourcesPath: opts.ilibAdditionalResourcesPath
+ });
+ for (const [key, value] of Object.entries(ilibDefines)) {
+ defines[key] = value;
+ }
+
+ return defines;
+}
+
+function applyMetaOverride (meta) {
+ if (!meta) return;
+ let parsed = meta;
+ if (typeof parsed === 'string') {
+ try {
+ parsed = JSON.parse(parsed);
+ } catch (e) {
+ throw new Error('Invalid metadata; must be a valid JSON string.\n' + e.message);
+ }
+ }
+ app.applyEnactMeta(parsed);
+}
+
+function createBuildOptions (opts = {}) {
+ const context = path.resolve(opts.context || app.context);
+ loadProjectEnv(context, opts.production);
+ applyMetaOverride(opts.meta);
+
+ if (opts.snapshot) {
+ opts.isomorphic = true;
+ }
+
+ const mainEntry = getMainEntry(context, opts.entry, opts.isomorphic);
+ const useSnapshot = !!(opts.snapshot && !opts.externals);
+ const entryFile = ensureEntryFile(context, mainEntry, {
+ isomorphic: opts.isomorphic,
+ snapshot: useSnapshot,
+ fastRefresh: !!opts.fastRefresh,
+ noAnimation: !!opts.noAnimation
+ });
+ const development = !opts.production;
+ const publicPath = getPublicPath(development);
+ const outputPath = path.resolve(opts.output || path.join(context, 'dist'));
+ const useTailwind = fs.existsSync(path.join(context, 'tailwind.config.js'));
+ const defines = getDefines({
+ ...opts,
+ publicPath,
+ context,
+ ilibAdditionalResourcesPath: opts.ilibAdditionalResourcesPath
+ });
+ const externalsPath = opts.externals || null;
+ const externalsPublic = opts['externals-public'] || opts.externalsPublic || null;
+ const template = app.template || path.join(__dirname, '..', 'html-template.ejs');
+ const customSkin = !!(opts.customSkin || usesCustomSkinTemplate(template));
+
+ if (!process.env.ILIB_BASE_PATH && externalsPath) {
+ const {getFrameworkPublicPath} = require('./externals');
+ const frameworkPublicPath = getFrameworkPublicPath(externalsPath, externalsPublic);
+ if (frameworkPublicPath) {
+ const ilibInEnact = path.join(frameworkPublicPath, 'node_modules', '@enact', 'i18n', 'ilib');
+ const ilibStandalone = path.join(frameworkPublicPath, 'node_modules', 'ilib');
+ const ilibBase = fs.existsSync(path.join(context, 'node_modules', '@enact', 'i18n', 'ilib'))
+ ? ilibInEnact.replace(/\\/g, '/')
+ : ilibStandalone.replace(/\\/g, '/');
+ process.env.ILIB_BASE_PATH = ilibBase;
+ // Keep Bun defines in sync — getDefines() ran before externals rewrote the path.
+ defines.ILIB_BASE_PATH = JSON.stringify(ilibBase);
+ }
+ }
+
+ if (opts.isomorphic || useSnapshot) {
+ // Prerender uses FileXHR, which maps bundled ilib URLs back to the filesystem.
+ process.env.ILIB_CONTEXT = context;
+ // Do not clobber an externals-derived ILIB_BASE_PATH with the local-app define.
+ if (!process.env.ILIB_BASE_PATH && defines.ILIB_BASE_PATH) {
+ process.env.ILIB_BASE_PATH = JSON.parse(defines.ILIB_BASE_PATH);
+ }
+ const {resolveIlibFsPath} = require('./ilib-meta');
+ const ilibFsPath = resolveIlibFsPath(context);
+ if (ilibFsPath) {
+ process.env.ILIB_FS_PATH = ilibFsPath;
+ }
+ }
+
+ return {
+ context,
+ mainEntry,
+ entryFile,
+ development,
+ publicPath,
+ outputPath,
+ useTailwind,
+ defines,
+ minify: opts.minify !== false && opts.production,
+ sourcemap: (process.env.GENERATE_SOURCEMAP || (opts.production ? 'false' : 'true')) !== 'false',
+ aliases: getResolveAliases(context),
+ additionalModulePaths: app.additionalModulePaths,
+ isomorphic: !!opts.isomorphic,
+ snapshot: useSnapshot,
+ noAnimation: !!opts.noAnimation,
+ contentHash: !!opts.contentHash,
+ splitCss: opts.splitCss !== false,
+ linting: opts.linting !== false,
+ externalsPath,
+ externalsPublic,
+ externalsPolyfill: !!(opts.externalsPolyfill || opts['externals-corejs']),
+ ilibAdditionalResourcesPath: opts.ilibAdditionalResourcesPath,
+ forceCSSModules: !!app.forceCSSModules,
+ accent: app.accent,
+ ri: app.ri,
+ title: app.title || '',
+ fallbackTitle: app.name || '',
+ template,
+ customSkin
+ };
+}
+
+module.exports = {
+ loadProjectEnv,
+ getMainEntry,
+ getPublicPath,
+ getCacheDir,
+ ensureEntryFile,
+ getResolveAliases,
+ getDefines,
+ createBuildOptions,
+ helper
+};
diff --git a/config/bun/build.mjs b/config/bun/build.mjs
new file mode 100644
index 00000000..9eeb3469
--- /dev/null
+++ b/config/bun/build.mjs
@@ -0,0 +1,392 @@
+import path from 'path';
+import {fileURLToPath} from 'url';
+import {createRequire} from 'module';
+import {createBuildOptions} from './build-options.js';
+import {writeIndexHtml} from './generate-html.js';
+import {createEnactPlugins} from './plugins/index.js';
+import {getIsomorphicExternals} from './plugins/isomorphic-enact.js';
+
+const nodeRequire = createRequire(import.meta.url);
+
+function parseArgs (argv) {
+ const opts = {
+ production: false,
+ watch: false,
+ output: null,
+ entry: null,
+ isomorphic: false,
+ noAnimation: false,
+ contentHash: false,
+ minify: true,
+ ilibAdditionalResourcesPath: null,
+ locales: null,
+ snapshot: false,
+ stats: false,
+ verbose: false,
+ externals: null,
+ externalsPublic: null,
+ customSkin: false,
+ linting: true,
+ splitCss: true,
+ externalsPolyfill: false,
+ prerenderOnly: false
+ };
+ for (let i = 0; i < argv.length; i++) {
+ const arg = argv[i];
+ if (arg === '--production' || arg === '-p') opts.production = true;
+ else if (arg === '--watch' || arg === '-w') opts.watch = true;
+ else if (arg === '--isomorphic' || arg === '-i') opts.isomorphic = true;
+ else if (arg === '--no-animation') opts.noAnimation = true;
+ else if (arg === '--content-hash') opts.contentHash = true;
+ else if (arg === '--no-minify') opts.minify = false;
+ else if (arg === '--snapshot' || arg === '-s') opts.snapshot = true;
+ else if (arg === '--verbose') opts.verbose = true;
+ else if (arg === '--no-linting') opts.linting = false;
+ else if (arg === '--no-split-css') opts.splitCss = false;
+ else if (arg === '--externals-polyfill') opts.externalsPolyfill = true;
+ else if (arg === '--output' || arg === '-o') opts.output = argv[++i];
+ else if (arg === '--entry') opts.entry = argv[++i];
+ else if (arg === '--ilib-additional-path') opts.ilibAdditionalResourcesPath = argv[++i];
+ else if (arg === '--locales' || arg === '-l') opts.locales = argv[++i];
+ else if (arg === '--stats') opts.stats = true;
+ else if (arg === '--externals') opts.externals = argv[++i];
+ else if (arg === '--externals-public') opts.externalsPublic = argv[++i];
+ else if (arg === '--custom-skin') opts.customSkin = true;
+ else if (arg === '--meta' || arg === '-m') opts.meta = argv[++i];
+ else if (arg === '--prerender-only') opts.prerenderOnly = true;
+ else if (arg === '--context') opts.context = argv[++i];
+ }
+ return opts;
+}
+
+function normalizePath (filePath) {
+ return filePath.replace(/\\/g, '/');
+}
+
+function getOutputNaming (buildOpts) {
+ if (buildOpts.contentHash) {
+ return 'main.[hash].[ext]';
+ }
+ return 'main.[ext]';
+}
+
+function getIsomorphicExternalsList () {
+ return getIsomorphicExternals();
+}
+
+function createBuildConfig (buildOpts, options, plugins) {
+ const config = {
+ entrypoints: [normalizePath(options.entryFile)],
+ outdir: normalizePath(options.outputPath),
+ target: 'browser',
+ format: buildOpts.isomorphic ? 'cjs' : 'esm',
+ naming: getOutputNaming(buildOpts),
+ minify: options.minify,
+ sourcemap: options.sourcemap ? 'linked' : 'none',
+ define: options.defines,
+ publicPath: options.publicPath || '/',
+ plugins,
+ alias: options.aliases,
+ metafile: !!buildOpts.stats
+ };
+
+ if (buildOpts.isomorphic && !buildOpts.externals) {
+ config.external = getIsomorphicExternalsList();
+ }
+
+ if (buildOpts.verbose) {
+ console.log('Bun build configuration:');
+ console.log(` entry: ${config.entrypoints[0]}`);
+ console.log(` outdir: ${config.outdir}`);
+ console.log(` format: ${config.format}`);
+ console.log(` naming: ${config.naming}`);
+ console.log(` minify: ${config.minify}`);
+ console.log(` sourcemap: ${config.sourcemap}`);
+ console.log(` publicPath: ${config.publicPath}`);
+ if (buildOpts.externals) {
+ console.log(` externals: ${buildOpts.externals}`);
+ if (buildOpts.externalsPublic) {
+ console.log(` externals-public: ${buildOpts.externalsPublic}`);
+ }
+ }
+ }
+
+ return config;
+}
+
+function getExternalHtmlAssets (buildOpts) {
+ if (!buildOpts.externals) return null;
+ const {getExternalAssets} = nodeRequire('./externals.js');
+ return getExternalAssets(buildOpts.externals, buildOpts.externalsPublic);
+}
+
+function getStartupAssets (publicPath, jsName, buildOpts) {
+ const normalize = asset => asset.replace(/\/{2,}/g, '/');
+ const assets = [];
+
+ if (buildOpts.externals) {
+ const externalAssets = getExternalHtmlAssets(buildOpts);
+ if (externalAssets?.scripts) {
+ for (const script of externalAssets.scripts) {
+ assets.push(normalize(script));
+ }
+ }
+ } else if (buildOpts.isomorphic) {
+ assets.push(normalize(`${publicPath}react-globals.js`));
+ }
+
+ assets.push(normalize(`${publicPath}${jsName}`));
+ return assets;
+}
+
+function getPrerenderPayload (options, buildOpts, jsName) {
+ const app = nodeRequire('@enact/dev-utils/option-parser');
+ return {
+ context: options.context,
+ output: options.outputPath,
+ chunk: jsName,
+ locales: buildOpts.locales || 'en-US',
+ publicPath: options.publicPath,
+ screenTypes: app.screenTypes,
+ deep: app.deep,
+ fontGenerator: app.fontGenerator,
+ externalStartup: app.externalStartup,
+ externals: buildOpts.externals,
+ startupAssets: getStartupAssets(options.publicPath, jsName, buildOpts)
+ };
+}
+
+function runIsomorphicPrerender (options, buildOpts, jsName) {
+ nodeRequire('./run-prerender-in-node.cjs').runPrerenderInNode(
+ getPrerenderPayload(options, buildOpts, jsName)
+ );
+}
+
+async function buildReactGlobals (options, _buildOpts) {
+ const globalsEntry = path.join(path.dirname(fileURLToPath(import.meta.url)), 'react-globals-entry.js');
+ const result = await Bun.build({
+ entrypoints: [globalsEntry],
+ outdir: options.outputPath,
+ target: 'browser',
+ format: 'iife',
+ globalName: 'EnactReactGlobals',
+ naming: 'react-globals.[ext]',
+ minify: options.minify,
+ sourcemap: false,
+ define: options.defines,
+ alias: options.aliases
+ });
+ if (!result.success) {
+ for (const log of result.logs) console.error(log);
+ throw new Error('Failed to build React globals for isomorphic mode.');
+ }
+}
+
+function finalizeBuild (result, buildOpts, options) {
+ if (!result.success) {
+ for (const log of result.logs) console.error(log);
+ return null;
+ }
+
+ const jsOutput = result.outputs.find(o => o.path.endsWith('.js'));
+ const cssOutput = result.outputs.find(o => o.path.endsWith('.css'));
+ const jsName = jsOutput ? path.basename(jsOutput.path) : (buildOpts.isomorphic ? 'main.js' : 'entry.js');
+ const cssName = cssOutput ? path.basename(cssOutput.path) : null;
+ const externalAssets = getExternalHtmlAssets(buildOpts);
+
+ if (buildOpts.verbose) {
+ console.log('Build outputs:');
+ for (const output of result.outputs) {
+ console.log(` ${path.basename(output.path)} (${output.kind}, ${output.size} bytes)`);
+ }
+ }
+
+ nodeRequire('./post-build.js').applyPostBuild(options.context, options.outputPath, {
+ publicPath: options.publicPath,
+ ilibAdditionalResourcesPath: options.ilibAdditionalResourcesPath,
+ customSkin: options.customSkin,
+ watch: buildOpts.watch
+ });
+
+ writeIndexHtml(options.outputPath, {
+ title: options.title,
+ fallbackTitle: options.fallbackTitle,
+ context: options.context,
+ publicPath: options.publicPath,
+ scriptSrc: `${options.publicPath}${jsName}`.replace(/\/{2,}/g, '/'),
+ cssHref: cssName ? `${options.publicPath}${cssName}`.replace(/\/{2,}/g, '/') : null,
+ isomorphic: buildOpts.isomorphic,
+ customSkin: options.customSkin,
+ externalScripts: externalAssets?.scripts,
+ externalStyles: externalAssets?.styles
+ });
+
+ if (buildOpts.isomorphic) {
+ runIsomorphicPrerender(options, buildOpts, jsName);
+ }
+
+ let v8SnapshotFile;
+ if (buildOpts.snapshot) {
+ if (buildOpts.externals) {
+ const {getFrameworkPublicPath} = nodeRequire('./externals.js');
+ const frameworkPublicPath = getFrameworkPublicPath(buildOpts.externals, buildOpts.externalsPublic);
+ if (frameworkPublicPath) {
+ v8SnapshotFile = `${frameworkPublicPath}/snapshot_blob.bin`.replace(/\/{2,}/g, '/');
+ }
+ } else {
+ nodeRequire('./snapshot.js').applySnapshot({
+ output: options.outputPath,
+ target: jsName
+ });
+ v8SnapshotFile = 'snapshot_blob.bin';
+ }
+ }
+
+ if (v8SnapshotFile) {
+ nodeRequire('./webos-meta.js').applyWebOSMeta(options.context, options.outputPath, {
+ v8SnapshotFile
+ });
+ }
+
+ if (buildOpts.stats) {
+ nodeRequire('./generate-stats.js').writeStatsReport(options.outputPath, result.metafile);
+ }
+
+ return {jsName, cssName};
+}
+
+function logBuildResult (buildOpts, options, info) {
+ console.log(JSON.stringify({
+ success: true,
+ output: options.outputPath,
+ js: info.jsName,
+ css: info.cssName,
+ stats: !!buildOpts.stats,
+ watch: !!buildOpts.watch,
+ contentHash: !!buildOpts.contentHash,
+ externals: !!buildOpts.externals
+ }));
+}
+
+async function runPrerenderOnly (buildOpts) {
+ buildOpts.isomorphic = true;
+ const options = createBuildOptions(buildOpts);
+ const jsName = buildOpts.chunk || 'main.js';
+ runIsomorphicPrerender(options, buildOpts, jsName);
+ console.log(JSON.stringify({success: true, prerenderOnly: true, locales: buildOpts.locales}));
+}
+
+async function runBuild (buildOpts) {
+ if (buildOpts.snapshot) {
+ buildOpts.isomorphic = true;
+ }
+
+ if (buildOpts.prerenderOnly) {
+ return runPrerenderOnly(buildOpts);
+ }
+
+ const options = createBuildOptions(buildOpts);
+ const polyfillPath = options.externalsPolyfill
+ ? path.join(path.dirname(fileURLToPath(import.meta.url)), '..', 'polyfills.js')
+ : null;
+ const plugins = createEnactPlugins({
+ production: buildOpts.production,
+ sourcemap: options.sourcemap,
+ context: options.context,
+ outputPath: options.outputPath,
+ additionalModulePaths: options.additionalModulePaths,
+ accent: options.accent,
+ forceCSSModules: options.forceCSSModules,
+ useTailwind: options.useTailwind,
+ ri: options.ri,
+ aliases: options.aliases,
+ isomorphic: buildOpts.isomorphic,
+ snapshot: options.snapshot,
+ linting: options.linting,
+ useExternals: !!buildOpts.externals,
+ externalsOptions: buildOpts.externals
+ ? {
+ polyfill: polyfillPath,
+ context: options.context,
+ local: nodeRequire('./plugins/externals-enact').shouldEnableLocalExternals(options.context)
+ }
+ : undefined
+ });
+ const buildConfig = createBuildConfig(buildOpts, options, plugins);
+
+ if (buildOpts.isomorphic && !buildOpts.externals) {
+ await buildReactGlobals(options, buildOpts);
+ }
+
+ const result = await Bun.build(buildConfig);
+ const info = finalizeBuild(result, buildOpts, options);
+ if (!info && !buildOpts.watch) process.exit(1);
+ if (info) logBuildResult(buildOpts, options, info);
+
+ if (buildOpts.watch) {
+ await runWatchLoop(buildOpts, options, buildConfig);
+ }
+}
+
+async function runWatchLoop (buildOpts, options, buildConfig) {
+ const {createFileWatcher, collectWatchRoots} = nodeRequire('./watch-files.js');
+ let building = false;
+ let rebuildQueued = false;
+
+ async function rebuild () {
+ if (building) {
+ rebuildQueued = true;
+ return;
+ }
+ building = true;
+ try {
+ const result = await Bun.build(buildConfig);
+ const rebuildInfo = finalizeBuild(result, buildOpts, options);
+ if (rebuildInfo) {
+ console.log('Recompiled successfully.');
+ logBuildResult(buildOpts, options, rebuildInfo);
+ }
+ } catch (err) {
+ console.error('Rebuild failed:', err);
+ } finally {
+ building = false;
+ if (rebuildQueued) {
+ rebuildQueued = false;
+ await rebuild();
+ }
+ }
+ }
+
+ const watchRoots = collectWatchRoots(options.context, options.additionalModulePaths);
+
+ console.log('Watching for file changes...');
+ const watcher = createFileWatcher(watchRoots, {
+ ignorePaths: [options.outputPath, getCacheDirPath(options.context)],
+ onChange: async files => {
+ const shown = files.slice(0, 3).map(file => path.relative(options.context, file) || file);
+ const extra = files.length > 3 ? ` (+${files.length - 3} more)` : '';
+ console.log(`File change detected (${shown.join(', ')}${extra}), rebuilding...`);
+ await rebuild();
+ }
+ });
+
+ await new Promise(resolve => {
+ const stop = () => {
+ watcher.close();
+ resolve();
+ };
+ process.once('SIGINT', stop);
+ process.once('SIGTERM', stop);
+ });
+}
+
+function getCacheDirPath (context) {
+ return path.join(context, 'node_modules', '.cache', 'enact-bun');
+}
+
+const cliOpts = parseArgs(process.argv.slice(2));
+
+runBuild(cliOpts).catch(err => {
+ console.error(err);
+ process.exit(1);
+});
diff --git a/config/bun/compare-bundles.js b/config/bun/compare-bundles.js
new file mode 100644
index 00000000..256a31cd
--- /dev/null
+++ b/config/bun/compare-bundles.js
@@ -0,0 +1,29 @@
+#!/usr/bin/env node
+'use strict';
+
+const fs = require('fs');
+
+const a = fs.readFileSync(process.argv[2], 'utf8');
+const b = fs.readFileSync(process.argv[3], 'utf8');
+
+console.log('lengths', a.length, b.length);
+const ca = a.match(/cacheID = "(\d+)"/);
+const cb = b.match(/cacheID = "(\d+)"/);
+console.log('cacheID', ca && ca[1], cb && cb[1]);
+
+let diffCount = 0;
+let firstDiff = -1;
+for (let i = 0; i < Math.min(a.length, b.length); i++) {
+ if (a[i] !== b[i]) {
+ diffCount++;
+ if (firstDiff === -1) firstDiff = i;
+ }
+}
+console.log('diff chars', diffCount + (a.length !== b.length ? ' (length mismatch)' : ''));
+if (firstDiff >= 0) {
+ console.log('first diff context A:', JSON.stringify(a.slice(Math.max(0, firstDiff - 40), firstDiff + 40)));
+ console.log('first diff context B:', JSON.stringify(b.slice(Math.max(0, firstDiff - 40), firstDiff + 40)));
+}
+
+const stripCache = s => s.replace(/cacheID = "\d+"/g, 'cacheID = "X"');
+console.log('identical except cacheID?', stripCache(a) === stripCache(b));
diff --git a/config/bun/dev-proxy.js b/config/bun/dev-proxy.js
new file mode 100644
index 00000000..23fd3e9f
--- /dev/null
+++ b/config/bun/dev-proxy.js
@@ -0,0 +1,69 @@
+const fs = require('fs');
+const path = require('path');
+const {prepareProxy} = require('react-dev-utils/WebpackDevServerUtils');
+
+function createProxyHandler (proxySetting, publicFolder, publicPath) {
+ const proxyConfig = prepareProxy(proxySetting, publicFolder, publicPath);
+ if (!proxyConfig) {
+ return null;
+ }
+
+ const entry = Array.isArray(proxyConfig) ? proxyConfig[0] : proxyConfig;
+ const target = entry.target;
+ const contextFn = entry.context;
+
+ return async function proxyRequest (req, pathname) {
+ if (typeof contextFn === 'function' && !contextFn(pathname, req)) {
+ return null;
+ }
+
+ const targetUrl = new URL(pathname + new URL(req.url).search, target);
+ const headers = new Headers(req.headers);
+ if (headers.has('origin')) {
+ headers.set('origin', target);
+ }
+
+ const init = {
+ method: req.method,
+ headers,
+ redirect: 'manual'
+ };
+
+ if (req.method !== 'GET' && req.method !== 'HEAD') {
+ init.body = req.body;
+ init.duplex = 'half';
+ }
+
+ const response = await fetch(targetUrl, init);
+ return new Response(response.body, {
+ status: response.status,
+ statusText: response.statusText,
+ headers: response.headers
+ });
+ };
+}
+
+function shouldServeSpaIndex (req, pathname, publicFolder, publicPath) {
+ if (req.method !== 'GET') {
+ return false;
+ }
+
+ const accept = req.headers.get('accept') || '';
+ if (!accept.includes('text/html')) {
+ return false;
+ }
+
+ if (pathname.includes('.')) {
+ const maybePublicPath = path.resolve(
+ publicFolder,
+ pathname.replace(new RegExp(`^${publicPath}`), '')
+ );
+ if (fs.existsSync(maybePublicPath)) {
+ return false;
+ }
+ }
+
+ return true;
+}
+
+module.exports = {createProxyHandler, shouldServeSpaIndex};
diff --git a/config/bun/dev-serve-utils.js b/config/bun/dev-serve-utils.js
new file mode 100644
index 00000000..2cabcaf3
--- /dev/null
+++ b/config/bun/dev-serve-utils.js
@@ -0,0 +1,110 @@
+const fs = require('fs');
+const path = require('path');
+const {createRequire} = require('module');
+
+function getTlsOptions () {
+ const {SSL_CRT_FILE, SSL_KEY_FILE} = process.env;
+ if (process.env.HTTPS === 'true' && SSL_CRT_FILE && SSL_KEY_FILE &&
+ fs.existsSync(SSL_CRT_FILE) && fs.existsSync(SSL_KEY_FILE)) {
+ return {
+ cert: fs.readFileSync(SSL_CRT_FILE),
+ key: fs.readFileSync(SSL_KEY_FILE)
+ };
+ }
+ return null;
+}
+
+function getProtocol () {
+ return getTlsOptions() ? 'https' : 'http';
+}
+
+function normalizePublicPath (publicPath) {
+ if (!publicPath || publicPath === '/') return '/';
+ return publicPath.endsWith('/') ? publicPath : `${publicPath}/`;
+}
+
+function redirectPublicPath (pathname, publicPath) {
+ const normalized = normalizePublicPath(publicPath);
+ if (normalized === '/') return pathname;
+ if (pathname.startsWith(normalized)) {
+ return pathname.slice(normalized.length - 1) || '/';
+ }
+ return pathname;
+}
+
+function isAllowedHost (host, allowedHost, hasProxy) {
+ if (!hasProxy || process.env.DANGEROUSLY_DISABLE_HOST_CHECK === 'true') {
+ return true;
+ }
+ if (!host) return false;
+ return host === allowedHost || host.startsWith(`${allowedHost}:`);
+}
+
+function createSetupProxyHandler (context) {
+ const setupProxy = path.join(context, 'src', 'setupProxy.js');
+ if (!fs.existsSync(setupProxy)) {
+ return null;
+ }
+
+ try {
+ require(require.resolve('http-proxy-middleware', {paths: [context]}));
+ } catch (_e) {
+ console.warn('setupProxy.js found but http-proxy-middleware is not installed in the project.');
+ return null;
+ }
+
+ const stack = [];
+ const app = {
+ use (route, handler) {
+ if (typeof route === 'function') {
+ stack.push({route: null, handler: route});
+ } else {
+ stack.push({route: route, handler});
+ }
+ }
+ };
+
+ require(setupProxy)(app);
+
+ return async function handleSetupProxy (req, pathname) {
+ for (const entry of stack) {
+ if (entry.route && !pathname.startsWith(entry.route)) {
+ continue;
+ }
+ if (typeof entry.handler === 'function' && entry.handler.name === 'handle') {
+ const targetUrl = new URL(req.url, 'http://localhost');
+ const response = await fetch(new URL(pathname + targetUrl.search, 'http://localhost'));
+ if (response.status !== 404) {
+ return response;
+ }
+ }
+ }
+ return null;
+ };
+}
+
+function getDevOverlayScript () {
+ try {
+ const requireFromCli = createRequire(path.join(__dirname, '..', '..', 'package.json'));
+ requireFromCli.resolve('react-error-overlay/lib/index');
+ return [
+ ''
+ ].join('\n');
+ } catch (_e) {
+ return '';
+ }
+}
+
+module.exports = {
+ getTlsOptions,
+ getProtocol,
+ redirectPublicPath,
+ isAllowedHost,
+ createSetupProxyHandler,
+ getDevOverlayScript
+};
diff --git a/config/bun/dev-server.mjs b/config/bun/dev-server.mjs
new file mode 100644
index 00000000..ba04259b
--- /dev/null
+++ b/config/bun/dev-server.mjs
@@ -0,0 +1,236 @@
+import path from 'path';
+import fs from 'fs';
+import {createRequire} from 'module';
+import {createBuildOptions, getCacheDir, ensureEntryFile} from './build-options.js';
+import {writeDevHtml} from './generate-html.js';
+import {createEnactPlugins} from './plugins/index.js';
+import {createProxyHandler, shouldServeSpaIndex} from './dev-proxy.js';
+import {
+ getTlsOptions,
+ getProtocol,
+ redirectPublicPath,
+ isAllowedHost,
+ createSetupProxyHandler
+} from './dev-serve-utils.js';
+
+const nodeRequire = createRequire(import.meta.url);
+
+function parseArgs (argv) {
+ const opts = {
+ host: '0.0.0.0',
+ port: 8080,
+ open: false,
+ linting: true,
+ fast: false
+ };
+ for (let i = 0; i < argv.length; i++) {
+ const arg = argv[i];
+ if (arg === '--host' || arg === '-i') opts.host = argv[++i];
+ else if (arg === '--port' || arg === '-p') opts.port = parseInt(argv[++i], 10);
+ else if (arg === '--browser' || arg === '-b') opts.open = true;
+ else if (arg === '--context') opts.context = argv[++i];
+ else if (arg === '--no-linting') opts.linting = false;
+ else if (arg === '--fast' || arg === '-f') opts.fast = true;
+ }
+ return opts;
+}
+
+async function runBuild (opts, entry, buildPlugins, outDir) {
+ const result = await Bun.build({
+ entrypoints: [entry],
+ outdir: outDir,
+ target: 'browser',
+ minify: false,
+ sourcemap: opts.sourcemap ? 'linked' : 'none',
+ define: opts.defines,
+ publicPath: opts.publicPath || '/',
+ plugins: buildPlugins,
+ alias: opts.aliases
+ });
+ if (!result.success) {
+ for (const log of result.logs) console.error(log);
+ throw new Error('Dev build failed.');
+ }
+ return result;
+}
+
+const cliOpts = parseArgs(process.argv.slice(2));
+process.env.INLINE_STYLES = 'true';
+if (cliOpts.fast) {
+ process.env.FAST_REFRESH = 'true';
+}
+
+const buildOpts = createBuildOptions({
+ context: cliOpts.context,
+ production: false,
+ linting: cliOpts.linting,
+ fastRefresh: cliOpts.fast
+});
+const cacheDir = getCacheDir(buildOpts.context);
+fs.mkdirSync(cacheDir, {recursive: true});
+
+const app = nodeRequire('@enact/dev-utils/option-parser');
+const entryFile = ensureEntryFile(buildOpts.context, buildOpts.mainEntry, {
+ isomorphic: false,
+ snapshot: false,
+ fastRefresh: cliOpts.fast
+});
+const plugins = createEnactPlugins({
+ production: false,
+ sourcemap: buildOpts.sourcemap,
+ context: buildOpts.context,
+ outputPath: cacheDir,
+ additionalModulePaths: buildOpts.additionalModulePaths,
+ accent: buildOpts.accent,
+ forceCSSModules: buildOpts.forceCSSModules,
+ useTailwind: buildOpts.useTailwind,
+ ri: buildOpts.ri,
+ aliases: buildOpts.aliases,
+ linting: cliOpts.linting,
+ fastRefresh: cliOpts.fast
+});
+
+await runBuild(buildOpts, entryFile, plugins, cacheDir);
+writeDevHtml(cacheDir, {title: buildOpts.title, publicPath: buildOpts.publicPath, customSkin: buildOpts.customSkin});
+// Copy iLib locale/resources (and webOS meta) into the serve output — same as pack.
+// Without this, XHR to /node_modules/ilib/locale/* 404s in the browser.
+nodeRequire('./post-build.js').applyPostBuild(buildOpts.context, cacheDir, {
+ ilibAdditionalResourcesPath: buildOpts.ilibAdditionalResourcesPath,
+ customSkin: buildOpts.customSkin,
+ watch: true
+});
+
+const publicDir = path.join(buildOpts.context, 'public');
+const mocksDir = path.join(buildOpts.context, '__mocks__');
+const appContext = buildOpts.context;
+const publicPath = buildOpts.publicPath || '/';
+const proxyHandler = createProxyHandler(app.proxy, publicDir, publicPath);
+const setupProxyHandler = createSetupProxyHandler(buildOpts.context);
+const tls = getTlsOptions();
+const allowedHost = cliOpts.host === '0.0.0.0' ? 'localhost' : cliOpts.host;
+
+let rebuilding = false;
+let rebuildQueued = false;
+
+async function rebuildDevBundle () {
+ if (rebuilding) {
+ rebuildQueued = true;
+ return;
+ }
+ rebuilding = true;
+ try {
+ await runBuild(buildOpts, entryFile, plugins, cacheDir);
+ writeDevHtml(cacheDir, {title: buildOpts.title, publicPath: buildOpts.publicPath, customSkin: buildOpts.customSkin});
+ nodeRequire('./post-build.js').applyPostBuild(buildOpts.context, cacheDir, {
+ ilibAdditionalResourcesPath: buildOpts.ilibAdditionalResourcesPath,
+ customSkin: buildOpts.customSkin,
+ watch: true
+ });
+ console.log('Rebuilt.');
+ } catch (err) {
+ console.error('Rebuild failed:', err);
+ } finally {
+ rebuilding = false;
+ if (rebuildQueued) {
+ rebuildQueued = false;
+ await rebuildDevBundle();
+ }
+ }
+}
+
+const {createFileWatcher, collectWatchRoots} = nodeRequire('./watch-files.js');
+const watchRoots = collectWatchRoots(buildOpts.context, buildOpts.additionalModulePaths);
+const fileWatcher = createFileWatcher(watchRoots, {
+ ignorePaths: [cacheDir, path.join(buildOpts.context, 'dist')],
+ onChange: async files => {
+ const shown = files.slice(0, 3).map(file => path.relative(buildOpts.context, file) || file);
+ const extra = files.length > 3 ? ` (+${files.length - 3} more)` : '';
+ console.log(`File change detected (${shown.join(', ')}${extra}), rebuilding...`);
+ await rebuildDevBundle();
+ }
+});
+
+process.once('SIGINT', () => fileWatcher.close());
+process.once('SIGTERM', () => fileWatcher.close());
+
+const server = Bun.serve({
+ hostname: cliOpts.host,
+ port: cliOpts.port,
+ tls,
+ development: {
+ hmr: true,
+ console: true
+ },
+ async fetch (req) {
+ const url = new URL(req.url);
+ if (!isAllowedHost(url.hostname, allowedHost, !!app.proxy)) {
+ return new Response('Invalid Host header', {status: 403});
+ }
+
+ let pathname = decodeURIComponent(url.pathname);
+ pathname = redirectPublicPath(pathname, publicPath);
+
+ if (pathname === '/' || pathname === '/index.html') {
+ return new Response(Bun.file(path.join(cacheDir, 'index.html')), {
+ headers: {
+ 'Content-Type': 'text/html; charset=utf-8',
+ 'Access-Control-Allow-Origin': '*'
+ }
+ });
+ }
+
+ // cacheDir first (bundle + copied iLib), then public/mocks, then app root
+ // so /node_modules/ilib/* and theme resources resolve like webpack-dev-server.
+ for (const dir of [cacheDir, publicDir, mocksDir, appContext]) {
+ if (!fs.existsSync(dir)) continue;
+ const root = path.resolve(dir);
+ const candidate = path.resolve(root, pathname.replace(/^\//, ''));
+ if ((candidate === root || candidate.startsWith(root + path.sep)) &&
+ fs.existsSync(candidate) &&
+ fs.statSync(candidate).isFile()) {
+ return new Response(Bun.file(candidate), {
+ headers: {'Access-Control-Allow-Origin': '*'}
+ });
+ }
+ }
+
+ if (setupProxyHandler) {
+ const setupResponse = await setupProxyHandler(req, pathname);
+ if (setupResponse) {
+ return setupResponse;
+ }
+ }
+
+ if (proxyHandler) {
+ const proxied = await proxyHandler(req, pathname);
+ if (proxied) {
+ return proxied;
+ }
+ }
+
+ if (shouldServeSpaIndex(req, pathname, publicDir, publicPath)) {
+ return new Response(Bun.file(path.join(cacheDir, 'index.html')), {
+ headers: {
+ 'Content-Type': 'text/html; charset=utf-8',
+ 'Access-Control-Allow-Origin': '*'
+ }
+ });
+ }
+
+ return new Response('Not Found', {status: 404});
+ }
+});
+
+const protocol = getProtocol();
+const localUrl = `${protocol}://localhost:${server.port}${normalizePublicPath(publicPath)}`;
+console.log(`Starting the development server at ${localUrl}`);
+
+if (cliOpts.open) {
+ const openBrowser = nodeRequire('react-dev-utils/openBrowser');
+ openBrowser(localUrl);
+}
+
+function normalizePublicPath (value) {
+ if (!value || value === '/') return '/';
+ return value.endsWith('/') ? value : `${value}/`;
+}
diff --git a/config/bun/externals.js b/config/bun/externals.js
new file mode 100644
index 00000000..08107290
--- /dev/null
+++ b/config/bun/externals.js
@@ -0,0 +1,50 @@
+const path = require('path');
+
+const FRAMEWORK_LIBRARIES = [
+ 'react',
+ 'react-dom',
+ 'react-dom/client',
+ 'react-dom/server',
+ 'react-is',
+ 'ilib',
+ '@enact/core',
+ '@enact/i18n',
+ '@enact/spotlight',
+ '@enact/ui'
+];
+
+function normalizePublicPath (publicPath) {
+ if (!publicPath || publicPath === '/') return '';
+ const normalized = publicPath.replace(/\\/g, '/');
+ return normalized.endsWith('/') ? normalized.slice(0, -1) : normalized;
+}
+
+function getFrameworkPublicPath (externalsPath, externalsPublic) {
+ if (externalsPublic) {
+ return normalizePublicPath(externalsPublic);
+ }
+ if (!externalsPath) return null;
+ return normalizePublicPath(path.relative(process.cwd(), path.resolve(externalsPath)).replace(/\\/g, '/'));
+}
+
+function getExternalAssets (externalsPath, externalsPublic) {
+ const publicPath = getFrameworkPublicPath(externalsPath, externalsPublic);
+ if (!publicPath) return null;
+
+ return {
+ publicPath,
+ scripts: [`${publicPath}/enact.js`],
+ styles: [`${publicPath}/enact.css`]
+ };
+}
+
+function getExternalPackages () {
+ return [...FRAMEWORK_LIBRARIES];
+}
+
+module.exports = {
+ FRAMEWORK_LIBRARIES,
+ getExternalAssets,
+ getExternalPackages,
+ getFrameworkPublicPath
+};
diff --git a/config/bun/framework.js b/config/bun/framework.js
new file mode 100644
index 00000000..8bf0b143
--- /dev/null
+++ b/config/bun/framework.js
@@ -0,0 +1,345 @@
+const fs = require('fs');
+const path = require('path');
+
+const fastGlob = require(require.resolve('fast-glob', {
+ paths: [path.dirname(require.resolve('@enact/dev-utils/package.json'))]
+}));
+const packageRoot = require('@enact/dev-utils/package-root');
+const {shouldExcludePath} = require('./plugins/framework-exclusions');
+
+const ROOT_PACKAGES = [
+ 'react',
+ 'react-dom',
+ 'react-dom/client',
+ 'react-dom/server',
+ 'react/jsx-runtime',
+ 'react/jsx-dev-runtime'
+];
+
+const FRAMEWORK_IGNORE = [
+ '**/webpack.config.js',
+ '**/eslint.config.js',
+ '**/karma.conf.js',
+ '**/build/**/*.*',
+ '**/dist/**/*.*',
+ '**/@enact/dev-utils/**/*.*',
+ '**/@enact/docs-utils/**/*.*',
+ '**/@enact/storybook-utils/**/*.*',
+ '**/@enact/ui-test-utils/**/*.*',
+ '**/@enact/screenshot-test-utils/**/*.*',
+ '**/ilib/localedata/**/*.*',
+ '**/node_modules/**/*.*',
+ '**/samples/**/*.*',
+ '**/tests/**/*.*',
+ '**/ilib-node*.js',
+ '**/AsyncNodeLoader.js',
+ '**/NodeLoader.js',
+ '**/RhinoLoader.js',
+ '**/react-dom/cjs/react-dom-server.node.*'
+];
+
+const ILIB_IGNORE = [
+ '!node_modules',
+ '!locale',
+ '**/ilib-node*.js',
+ '**/AsyncNodeLoader.js',
+ '**/NodeLoader.js',
+ '**/RhinoLoader.js'
+];
+
+function isFrameworkModuleFile (file) {
+ return !/(^|[/\\])test[/\\]|\.test\.(js|jsx|es6)$|[-.]specs?\.(js|jsx|es6)$|\.bak(?:\.|\/|\\)/.test(file);
+}
+
+function getModuleId (nodeModules, file) {
+ const absPath = path.join(nodeModules, file);
+ let dir = absPath;
+
+ while (dir.startsWith(nodeModules) && dir.length > nodeModules.length) {
+ const pkgPath = path.join(dir, 'package.json');
+ if (fs.existsSync(pkgPath)) {
+ try {
+ const pkg = JSON.parse(fs.readFileSync(pkgPath, {encoding: 'utf8'}));
+ if (pkg.main) {
+ const mainPath = path.resolve(dir, pkg.main);
+ if (path.resolve(absPath) === mainPath) {
+ return path.relative(nodeModules, dir).replace(/\\/g, '/');
+ }
+ }
+ } catch (_e) {
+ // ignore invalid package.json
+ }
+ if (/[/\\]index\.(js|jsx|es6)$/.test(absPath)) {
+ return path.relative(nodeModules, dir).replace(/\\/g, '/');
+ }
+ }
+ dir = path.dirname(dir);
+ }
+
+ let id = file.replace(/\.(jsx|es6|js)$/, '').replace(/\\/g, '/');
+ if (id.endsWith('/index') && id.length > 6) {
+ id = id.slice(0, -6);
+ }
+ return id;
+}
+
+function getPolyfillModules (context, polyfillPath) {
+ if (!polyfillPath) return [];
+ const modules = [{id: '@enact/polyfills', request: polyfillPath}];
+ return modules;
+}
+
+function getCoreJsModules () {
+ try {
+ const coreJsRoot = path.dirname(require.resolve('core-js/package.json'));
+ return fastGlob.sync('modules/**/*.js', {cwd: coreJsRoot, absolute: true}).map(file => ({
+ id: path.relative(coreJsRoot, file).replace(/\\/g, '/').replace(/\.js$/, ''),
+ request: file
+ }));
+ } catch (_e) {
+ return [];
+ }
+}
+
+function getThemeLocalModules (context) {
+ process.chdir(context);
+ const app = packageRoot();
+ if (
+ !app.meta.name.startsWith('@enact/') ||
+ !(
+ fs.existsSync(path.join(app.path, 'MoonstoneDecorator')) ||
+ fs.existsSync(path.join(app.path, 'ThemeDecorator')) ||
+ app.meta.name === '@enact/i18n'
+ )
+ ) {
+ return [];
+ }
+
+ return fastGlob
+ .sync('**/*.@(js|jsx|es6)', {
+ cwd: app.path,
+ onlyFiles: true,
+ ignore: [
+ '!node_modules',
+ '!samples',
+ '!dist',
+ '!build',
+ '!resources',
+ '!coverage',
+ '!tests',
+ '**/__tests__/**/*.{js,jsx,ts,tsx}',
+ '**/?(*.)+(spec|test).[jt]s?(x)',
+ '**/*-specs.{js,jsx,ts,tsx}',
+ '**/*.bak*/**',
+ '**/*bak*/**'
+ ]
+ })
+ .map(file => {
+ const abs = path.resolve(app.path, file);
+ let id = './' + file.replace(/\.(jsx|es6|js)$/, '').replace(/\\/g, '/');
+ if (id.endsWith('/index') && id.length > 6) {
+ id = id.slice(0, -6);
+ }
+ if (id.startsWith('.') && !id.startsWith('..')) {
+ id = id.replace(/^\./, app.meta.name);
+ }
+ return {id, request: abs};
+ });
+}
+
+function getFrameworkModuleRequests (context, options = {}) {
+ const nodeModules = path.join(context, 'node_modules');
+ const enactFiles = fastGlob.sync('@enact/**/*.@(js|jsx|es6)', {
+ cwd: nodeModules,
+ onlyFiles: true,
+ ignore: FRAMEWORK_IGNORE,
+ followSymbolicLinks: false
+ });
+ const ilibFiles = fastGlob.sync('ilib/**/*.@(js|jsx|es6)', {
+ cwd: nodeModules,
+ onlyFiles: true,
+ ignore: ILIB_IGNORE,
+ followSymbolicLinks: false
+ });
+
+ const modules = new Map();
+ for (const pkg of ROOT_PACKAGES) {
+ modules.set(pkg, pkg);
+ }
+ for (const file of enactFiles.concat(ilibFiles)) {
+ if (!isFrameworkModuleFile(file)) continue;
+ const id = getModuleId(nodeModules, file);
+ if (!modules.has(id)) {
+ modules.set(id, id);
+ }
+ }
+
+ for (const {id, request} of getThemeLocalModules(context)) {
+ modules.set(id, request);
+ }
+
+ if (options.polyfill) {
+ for (const {id, request} of getPolyfillModules(context, options.polyfill)) {
+ modules.set(id, request);
+ }
+ } else if (options.includeCoreJs) {
+ for (const {id, request} of getCoreJsModules()) {
+ modules.set(id, request);
+ }
+ }
+
+ return [...modules.entries()].map(([id, request]) => ({id, request}));
+}
+
+function writeFrameworkEntry (context, modules, options = {}) {
+ const cacheDir = path.join(context, 'node_modules', '.cache', 'enact-bun');
+ fs.mkdirSync(cacheDir, {recursive: true});
+ const entryPath = path.join(cacheDir, 'framework-entry.js');
+
+ // Embed dynamic values only via JSON.stringify so generated JS cannot be injected.
+ const jsLiteral = value => JSON.stringify(String(value));
+ const registerRequire = (id, requestPath) =>
+ '__register(' +
+ jsLiteral(id) +
+ ', function () { return require(' +
+ jsLiteral(requestPath) +
+ '); });';
+ const emitRequire = requestPath => 'require(' + jsLiteral(requestPath) + ');';
+
+ const lines = [
+ 'var __registry = Object.create(null);',
+ 'function __register(id, loader) { __registry[id] = loader; }',
+ ''
+ ];
+
+ if (options.polyfill) {
+ const polyfillPath = path.resolve(options.polyfill).replace(/\\/g, '/');
+ lines.push(registerRequire('@enact/polyfills', polyfillPath));
+ }
+
+ for (const {id, request} of modules) {
+ const normalizedRequest = String(request).replace(/\\/g, '/');
+ if (shouldExcludePath(normalizedRequest)) {
+ continue;
+ }
+ lines.push(registerRequire(id, normalizedRequest));
+ }
+
+ lines.push('', '// Eagerly load framework modules for CSS extraction');
+ for (const {request} of modules) {
+ const normalizedRequest = String(request).replace(/\\/g, '/');
+ if (shouldExcludePath(normalizedRequest)) {
+ continue;
+ }
+ lines.push(emitRequire(normalizedRequest));
+ }
+
+ lines.push(
+ '',
+ 'function enact_framework(id) {',
+ '\tvar loader = __registry[id];',
+ '\tif (!loader) throw new Error(\'Cannot find enact framework module \' + id);',
+ '\treturn loader();',
+ '}',
+ 'enact_framework.require = enact_framework;',
+ 'module.exports = enact_framework;',
+ ''
+ );
+
+ fs.writeFileSync(entryPath, lines.join('\n'), {encoding: 'utf8'});
+ return entryPath;
+}
+
+function wrapFrameworkBundle (code) {
+ const body = code.replace(/^\uFEFF?#![^\n]*\n/, '');
+ return [
+ '(function (root, factory) {',
+ '\tif (typeof module === \'object\' && typeof module.exports !== \'undefined\') {',
+ '\t\tmodule.exports = factory(root, typeof require === \'function\' ? require : null);',
+ '\t} else {',
+ '\t\troot.enact_framework = factory(root, null);',
+ '\t}',
+ '})(typeof self !== \'undefined\' ? self : this, function (root, nodeRequire) {',
+ '\tvar exports = {};',
+ '\tvar module = { exports: exports };',
+ '\tvar require = nodeRequire || function () {',
+ '\t\tthrow new Error(\'Enact framework requires a runtime require() implementation.\');',
+ '\t};',
+ '\t(function () {',
+ body,
+ '\t})();',
+ '\tvar framework = module.exports;',
+ '\tif (typeof framework === \'function\') {',
+ '\t\tframework.require = framework.require || framework;',
+ '\t}',
+ '\treturn framework;',
+ '});',
+ ''
+ ].join('\n');
+}
+
+async function applyFramework (options = {}) {
+ const context = path.resolve(options.context || process.cwd());
+ const output = path.resolve(options.output || path.join(context, 'dist'));
+ const polyfillPath = options.polyfill
+ ? path.join(__dirname, '..', 'polyfills.js')
+ : null;
+ const modules = getFrameworkModuleRequests(context, {
+ polyfill: polyfillPath,
+ includeCoreJs: !!options.includeCoreJs && !polyfillPath
+ });
+
+ if (modules.length === 0) {
+ throw new Error('Framework build: no @enact entries found.');
+ }
+
+ fs.mkdirSync(output, {recursive: true});
+ const entryPath = writeFrameworkEntry(context, modules, {polyfill: polyfillPath});
+ const plugins = options.plugins || [];
+ const result = await Bun.build({
+ entrypoints: [entryPath.replace(/\\/g, '/')],
+ outdir: output,
+ target: 'browser',
+ format: 'cjs',
+ naming: 'enact.[ext]',
+ minify: !!options.production,
+ sourcemap: options.production ? 'none' : 'linked',
+ define: options.define || {global: 'globalThis'},
+ plugins
+ });
+
+ if (!result.success) {
+ for (const log of result.logs) console.error(log);
+ throw new Error('Framework build failed.');
+ }
+
+ const jsOutput = result.outputs.find(outputFile => outputFile.path.endsWith('.js'));
+ const cssOutput = result.outputs.find(outputFile => outputFile.path.endsWith('.css'));
+ if (jsOutput) {
+ const code = fs.readFileSync(jsOutput.path, {encoding: 'utf8'});
+ fs.writeFileSync(jsOutput.path, wrapFrameworkBundle(code), {encoding: 'utf8'});
+ }
+ if (cssOutput && path.basename(cssOutput.path) !== 'enact.css') {
+ const enactCss = path.join(output, 'enact.css');
+ fs.copyFileSync(cssOutput.path, enactCss);
+ if (cssOutput.path !== enactCss) {
+ fs.unlinkSync(cssOutput.path);
+ }
+ }
+
+ if (options.snapshot) {
+ require('./snapshot.js').applySnapshot({
+ output,
+ target: 'enact.js'
+ });
+ }
+
+ return output;
+}
+
+module.exports = {
+ applyFramework,
+ getFrameworkModuleRequests,
+ getModuleId,
+ wrapFrameworkBundle
+};
diff --git a/config/bun/generate-html.js b/config/bun/generate-html.js
new file mode 100644
index 00000000..5b2814a0
--- /dev/null
+++ b/config/bun/generate-html.js
@@ -0,0 +1,99 @@
+const fs = require('fs');
+const path = require('path');
+
+const CUSTOM_SKIN_JS = 'customizations/custom_skin.js';
+const CUSTOM_SKIN_CSS = 'customizations/custom_skin.css';
+
+function usesCustomSkinTemplate (templatePath) {
+ return !!(templatePath && /custom-skin-template\.ejs$/i.test(path.basename(templatePath)));
+}
+
+function getCustomSkinHeadHtml () {
+ return [
+ `\n\t\t`,
+ `\t\t`
+ ].join('\n');
+}
+
+function readWebOSTitle (context) {
+ const roots = [context, path.join(context, 'webos-meta')];
+ for (const root of roots) {
+ const appinfoPath = path.join(root, 'appinfo.json');
+ if (fs.existsSync(appinfoPath)) {
+ try {
+ const appinfo = JSON.parse(fs.readFileSync(appinfoPath, {encoding: 'utf8'}));
+ if (appinfo.title) return appinfo.title;
+ } catch (_e) {
+ // ignore parse errors
+ }
+ }
+ }
+ return null;
+}
+
+function renderHtml ({title, scriptSrc, cssHref, isomorphic, externalScripts, externalStyles, customSkin}) {
+ const customSkinHead = customSkin ? getCustomSkinHeadHtml() : '';
+ const externalCss = (externalStyles || [])
+ .map(href => `\n\t\t`)
+ .join('');
+ const css = cssHref ? `\n\t\t` : '';
+ const externalJs = !isomorphic
+ ? (externalScripts || [])
+ .map(src => `\n\t\t`)
+ .join('')
+ : '';
+ const scriptType = isomorphic ? 'text/javascript' : 'module';
+ const appScript = scriptSrc && !isomorphic
+ ? `\n\t\t`
+ : '';
+ const bodyScripts = externalJs + appScript;
+
+ return `
+
+
+
+
+
+ ${title || ''}${customSkinHead}${externalCss}${css}
+
+
+ ${bodyScripts}
+
+
+`;
+}
+
+function writeIndexHtml (outputDir, options) {
+ fs.mkdirSync(outputDir, {recursive: true});
+ const title = options.title || readWebOSTitle(options.context) || options.fallbackTitle || '';
+ const html = renderHtml({...options, title});
+ const target = path.join(outputDir, 'index.html');
+ fs.writeFileSync(target, html, {encoding: 'utf8'});
+ return target;
+}
+
+function writeDevHtml (cacheDir, options) {
+ fs.mkdirSync(cacheDir, {recursive: true});
+ const overlay = require('./dev-serve-utils').getDevOverlayScript();
+ // Bun emits entry.css beside entry.js; pack links it via writeIndexHtml, serve must too.
+ const cssFile = path.join(cacheDir, 'entry.css');
+ const cssHref = fs.existsSync(cssFile) ? './entry.css' : null;
+ const html = renderHtml({
+ ...options,
+ scriptSrc: './entry.js',
+ cssHref: options.cssHref !== undefined ? options.cssHref : cssHref
+ }).replace('', `${overlay}\n\t`);
+ const target = path.join(cacheDir, 'index.html');
+ fs.writeFileSync(target, html, {encoding: 'utf8'});
+ return target;
+}
+
+module.exports = {
+ renderHtml,
+ writeIndexHtml,
+ writeDevHtml,
+ usesCustomSkinTemplate,
+ getCustomSkinHeadHtml,
+ CUSTOM_SKIN_JS,
+ CUSTOM_SKIN_CSS
+};
diff --git a/config/bun/generate-stats.js b/config/bun/generate-stats.js
new file mode 100644
index 00000000..dcd4127c
--- /dev/null
+++ b/config/bun/generate-stats.js
@@ -0,0 +1,136 @@
+const fs = require('fs');
+const path = require('path');
+
+function formatBytes (bytes) {
+ if (!bytes) return '0 B';
+ const k = 1024;
+ const sizes = ['B', 'KB', 'MB', 'GB'];
+ const i = Math.min(Math.floor(Math.log(bytes) / Math.log(k)), sizes.length - 1);
+ return `${parseFloat((bytes / Math.pow(k, i)).toFixed(2))} ${sizes[i]}`;
+}
+
+function escapeHtml (value) {
+ return String(value)
+ .replace(/&/g, '&')
+ .replace(//g, '>')
+ .replace(/"/g, '"');
+}
+
+function basename (filePath) {
+ return filePath.split(/[/\\]/).pop() || filePath;
+}
+
+function buildInputRows (inputs, limit = 100) {
+ const maxBytes = inputs[0]?.bytes || 1;
+ return inputs.slice(0, limit).map(({file, bytes}) => {
+ const width = Math.max(2, Math.round((bytes / maxBytes) * 100));
+ return `
+ | ${escapeHtml(file)} |
+ ${formatBytes(bytes)} |
+ |
+
`;
+ }).join('\n');
+}
+
+function buildOutputSections (outputs, metafile) {
+ return outputs.map(({file, bytes}) => {
+ const outputMeta = metafile.outputs[file] || {};
+ const contributors = Object.entries(outputMeta.inputs || {})
+ .map(([inputPath, info]) => ({
+ file: inputPath,
+ bytes: info.bytesInOutput || 0
+ }))
+ .sort((a, b) => b.bytes - a.bytes)
+ .slice(0, 25);
+
+ const rows = contributors.map(({file: inputPath, bytes: inputBytes}) =>
+ `| ${escapeHtml(inputPath)} | ${formatBytes(inputBytes)} |
`
+ ).join('\n');
+
+ return `
+ ${escapeHtml(basename(file))} ${formatBytes(bytes)}
+
+ | Input module | Bytes in output |
+ ${rows || '| No module details available. |
'}
+
+`;
+ }).join('\n');
+}
+
+function renderStatsHtml (metafile) {
+ const inputs = Object.entries(metafile.inputs || {})
+ .map(([file, meta]) => ({file, bytes: meta.bytes || 0}))
+ .sort((a, b) => b.bytes - a.bytes);
+
+ const outputs = Object.entries(metafile.outputs || {})
+ .map(([file, meta]) => ({file, bytes: meta.bytes || 0}))
+ .sort((a, b) => b.bytes - a.bytes);
+
+ const totalInput = inputs.reduce((sum, item) => sum + item.bytes, 0);
+ const totalOutput = outputs.reduce((sum, item) => sum + item.bytes, 0);
+
+ return `
+
+
+
+
+ Enact Bundle Analysis
+
+
+
+
+ Enact Bundle Analysis
+ Generated from Bun metafile data.
+
+
+
Input modules${inputs.length}
+
Total input size${formatBytes(totalInput)}
+
Output files${outputs.length}
+
Total output size${formatBytes(totalOutput)}
+
+
+ Largest input modules
+
+ | Module | Size | Relative size |
+ ${buildInputRows(inputs)}
+
+
+ ${buildOutputSections(outputs, metafile)}
+
+
+`;
+}
+
+function writeStatsReport (outputDir, metafile) {
+ if (!metafile) {
+ throw new Error('Unable to generate bundle analysis: Bun build did not return a metafile.');
+ }
+
+ fs.mkdirSync(outputDir, {recursive: true});
+ fs.writeFileSync(path.join(outputDir, 'stats.json'), JSON.stringify(metafile, null, 2), {encoding: 'utf8'});
+ fs.writeFileSync(path.join(outputDir, 'stats.html'), renderStatsHtml(metafile), {encoding: 'utf8'});
+}
+
+module.exports = {writeStatsReport, formatBytes};
diff --git a/config/bun/ilib-meta.js b/config/bun/ilib-meta.js
new file mode 100644
index 00000000..6b6c9fc5
--- /dev/null
+++ b/config/bun/ilib-meta.js
@@ -0,0 +1,208 @@
+const fs = require('fs-extra');
+const path = require('path');
+const glob = require('glob');
+const app = require('@enact/dev-utils/option-parser');
+
+function packageSearch (dir, pkg) {
+ const root = path.isAbsolute(dir) ? dir : path.join(process.cwd(), dir);
+ dir = root;
+ while (dir.length > 0 && dir !== path.dirname(dir)) {
+ const full = path.join(dir, 'node_modules', pkg);
+ if (fs.existsSync(full)) {
+ return path.relative(root, full).replace(/\\/g, '/');
+ }
+ dir = path.dirname(dir);
+ }
+ return null;
+}
+
+function hasLocaleMatchJson (ilibPath) {
+ return fs.existsSync(path.join(ilibPath, 'locale', 'localematch.json'));
+}
+
+function transformPath (context, file) {
+ return path
+ .relative(context, file)
+ .replace(/\\/g, '/')
+ .replace(/\.\.(\/)?/g, '_$1');
+}
+
+function bundleConst (name) {
+ return (
+ 'ILIB_' +
+ path.basename(name).toUpperCase().replace(/[-_\s]/g, '_') +
+ '_PATH'
+ );
+}
+
+function resolveBundlePath ({dir, context, publicPath, relative, symlinks = false}) {
+ // Default false matches webpack ILibPlugin({symlinks: false}). Following
+ // realpaths turns linked @enact/limestone into ../../AppData/... which
+ // transformPath rewrites to /_/_/_/AppData/... and 404s in the browser.
+ if (path.isAbsolute(dir)) {
+ return JSON.stringify(dir.replace(/\\/g, '/'));
+ }
+ let full = path.join(context, dir);
+ if (fs.existsSync(full)) {
+ if (symlinks) {
+ full = fs.realpathSync(full);
+ }
+ } else {
+ full = dir;
+ }
+ if (relative) {
+ return JSON.stringify(transformPath(context, full));
+ }
+ return JSON.stringify(path.join(publicPath || '/', transformPath(context, full)).replace(/\\/g, '/'));
+}
+
+function findIlibPath (context) {
+ const candidates = [
+ packageSearch(context, path.join('@enact', 'i18n', 'ilib')),
+ packageSearch(context, 'ilib'),
+ fs.existsSync(path.join(context, 'ilib')) && 'ilib'
+ ].filter(Boolean);
+
+ for (const rel of candidates) {
+ const full = path.join(context, rel);
+ if (fs.existsSync(full) && hasLocaleMatchJson(fs.realpathSync(full))) {
+ return rel;
+ }
+ }
+
+ return candidates[0] || null;
+}
+
+function resolveIlibFsPath (context) {
+ const candidates = [];
+ const fromEnact = packageSearch(context, path.join('@enact', 'i18n', 'ilib'));
+ const standalone = packageSearch(context, 'ilib');
+
+ if (fromEnact) candidates.push(fromEnact);
+ if (standalone && standalone !== fromEnact) candidates.push(standalone);
+ if (fs.existsSync(path.join(context, 'ilib'))) {
+ candidates.push('ilib');
+ }
+
+ for (const rel of candidates) {
+ const full = path.join(context, rel);
+ if (!fs.existsSync(full)) continue;
+
+ const resolved = fs.realpathSync(full).replace(/\\/g, '/');
+ if (hasLocaleMatchJson(resolved)) {
+ return resolved;
+ }
+ }
+
+ return null;
+}
+
+function readManifestFiles (manifestPath) {
+ if (!fs.existsSync(manifestPath)) return [];
+ const data = JSON.parse(fs.readFileSync(manifestPath, {encoding: 'utf8'}));
+ return data.files || [];
+}
+
+function emitManifestAssets (context, output, manifestPath, cache) {
+ const dir = path.dirname(manifestPath);
+ const relManifest = transformPath(context, manifestPath);
+ const outManifest = path.join(output, relManifest);
+ fs.ensureDirSync(path.dirname(outManifest));
+
+ if (!cache || !fs.existsSync(outManifest) || fs.statSync(manifestPath).mtimeMs > fs.statSync(outManifest).mtimeMs) {
+ fs.copySync(manifestPath, outManifest, {dereference: true});
+ }
+
+ for (const file of readManifestFiles(manifestPath)) {
+ const src = path.join(dir, file);
+ const dest = path.join(output, transformPath(context, src));
+ if (!fs.existsSync(src)) continue;
+ fs.ensureDirSync(path.dirname(dest));
+ if (!cache || !fs.existsSync(dest) || fs.statSync(src).mtimeMs > fs.statSync(dest).mtimeMs) {
+ fs.copySync(src, dest, {dereference: true});
+ }
+ }
+}
+
+function ensureManifest (manifestPath, create) {
+ if (fs.existsSync(manifestPath)) return manifestPath;
+ const dir = path.dirname(manifestPath);
+ let files = [];
+ if (fs.existsSync(dir)) {
+ files = glob.sync('./**/!(appinfo).json', {cwd: dir, onlyFiles: true}).map(f => f.replace(/^\.\//, ''));
+ }
+ if (create) {
+ fs.ensureDirSync(dir);
+ fs.writeFileSync(manifestPath, JSON.stringify({files}, null, '\t') + '\n', {encoding: 'utf8'});
+ }
+ return manifestPath;
+}
+
+function getIlibDefines (context, publicPath, options = {}) {
+ const ilibDir = options.ilib || findIlibPath(context);
+ if (!ilibDir) return {};
+
+ const defines = {
+ ILIB_BASE_PATH: resolveBundlePath({dir: ilibDir, context, publicPath}),
+ ILIB_RESOURCES_PATH: resolveBundlePath({dir: options.resources || 'resources', context, publicPath}),
+ ILIB_CACHE_ID: JSON.stringify(String(Date.now())),
+ ILIB_NO_ASSETS: JSON.stringify(false)
+ };
+
+ if (options.ilibAdditionalResourcesPath) {
+ defines.ILIB_ADDITIONAL_RESOURCES_PATH = JSON.stringify(options.ilibAdditionalResourcesPath.replace(/\\/g, '/'));
+ }
+
+ defines[bundleConst(app.name || 'app')] = defines.ILIB_RESOURCES_PATH;
+
+ let pkgDir = context;
+ for (let t = app.theme; t; t = t.theme) {
+ const themeDir = packageSearch(pkgDir, t.name);
+ if (themeDir) {
+ defines[bundleConst(t.name)] = resolveBundlePath({
+ dir: path.join(themeDir, 'resources'),
+ context,
+ publicPath
+ });
+ pkgDir = path.dirname(path.join(context, themeDir));
+ }
+ }
+
+ return defines;
+}
+
+function applyIlibResources (context, output, options = {}) {
+ const ilibDir = options.ilib || findIlibPath(context);
+ if (!ilibDir) return;
+
+ const create = options.create !== false;
+ const cache = options.cache !== false;
+ const manifests = [];
+
+ const ilibPath = path.join(context, ilibDir);
+ if (fs.existsSync(ilibPath)) {
+ const ilibManifest = path.join(ilibPath, 'locale', 'ilibmanifest.json');
+ manifests.push(ensureManifest(ilibManifest, create));
+ }
+
+ const resourcesManifest = path.join(context, options.resources || 'resources', 'ilibmanifest.json');
+ manifests.push(ensureManifest(resourcesManifest, create));
+
+ let pkgDir = context;
+ for (let t = app.theme; t; t = t.theme) {
+ const themeDir = packageSearch(pkgDir, t.name);
+ if (themeDir) {
+ const themeManifest = path.join(context, themeDir, 'resources', 'ilibmanifest.json');
+ manifests.push(ensureManifest(themeManifest, create));
+ pkgDir = path.dirname(path.join(context, themeDir));
+ }
+ }
+
+ for (const manifest of manifests) {
+ if (fs.existsSync(manifest)) {
+ emitManifestAssets(context, output, manifest, cache);
+ }
+ }
+}
+
+module.exports = {getIlibDefines, applyIlibResources, findIlibPath, resolveIlibFsPath, bundleConst};
diff --git a/config/bun/plugins/babel-enact.js b/config/bun/plugins/babel-enact.js
new file mode 100644
index 00000000..807d9ec1
--- /dev/null
+++ b/config/bun/plugins/babel-enact.js
@@ -0,0 +1,45 @@
+const path = require('path');
+const babel = require('@babel/core');
+
+function createBabelEnactPlugin (options = {}) {
+ const babelConfigPath = path.join(__dirname, '..', '..', 'babel.config.js');
+ const compact = !!options.production;
+ const babelPlugins = [];
+
+ if (options.fastRefresh) {
+ babelPlugins.push(require.resolve('react-refresh/babel'));
+ }
+
+ return {
+ name: 'enact-babel',
+ setup (build) {
+ build.onLoad({filter: /\.(js|mjs|jsx|ts|tsx)$/}, async args => {
+ if (/node_modules/.test(args.path) && !/node_modules[/\\]@enact/.test(args.path)) {
+ return undefined;
+ }
+
+ const source = await Bun.file(args.path).text();
+ const result = await babel.transformAsync(source, {
+ filename: args.path,
+ configFile: babelConfigPath,
+ babelrc: false,
+ plugins: babelPlugins,
+ sourceMaps: options.sourcemap ? 'inline' : false,
+ compact
+ });
+
+ let loader = 'js';
+ if (/\.tsx?$/.test(args.path)) loader = 'ts';
+ if (/\.jsx$/.test(args.path)) loader = 'jsx';
+
+ return {
+ loader,
+ contents: result.code,
+ resolveDir: path.dirname(args.path)
+ };
+ });
+ }
+ };
+}
+
+module.exports = {createBabelEnactPlugin};
diff --git a/config/bun/plugins/case-sensitive-enact.js b/config/bun/plugins/case-sensitive-enact.js
new file mode 100644
index 00000000..f2384d31
--- /dev/null
+++ b/config/bun/plugins/case-sensitive-enact.js
@@ -0,0 +1,50 @@
+const fs = require('fs');
+const path = require('path');
+
+function createCaseSensitiveEnactPlugin (_options = {}) {
+ if (process.platform === 'win32' || process.platform === 'darwin') {
+ return null;
+ }
+
+ const realpathSync = fs.realpathSync.native || fs.realpathSync;
+
+ return {
+ name: 'enact-case-sensitive-paths',
+ setup (build) {
+ build.onResolve({filter: /.*/}, args => {
+ if (args.namespace !== 'file' && args.namespace) {
+ return undefined;
+ }
+ if (!args.path.startsWith('.') && !path.isAbsolute(args.path)) {
+ return undefined;
+ }
+
+ const resolved = path.isAbsolute(args.path)
+ ? args.path
+ : path.resolve(args.resolveDir, args.path);
+
+ if (!fs.existsSync(resolved)) {
+ return undefined;
+ }
+
+ try {
+ const real = realpathSync(resolved);
+ if (real !== resolved) {
+ throw new Error(
+ `Cannot resolve path '${args.path}' with different casing than the real path '${real}'.`
+ );
+ }
+ } catch (error) {
+ if (error.code === 'ENOENT') {
+ return undefined;
+ }
+ throw error;
+ }
+
+ return undefined;
+ });
+ }
+ };
+}
+
+module.exports = {createCaseSensitiveEnactPlugin};
diff --git a/config/bun/plugins/eslint-enact.js b/config/bun/plugins/eslint-enact.js
new file mode 100644
index 00000000..9584ce71
--- /dev/null
+++ b/config/bun/plugins/eslint-enact.js
@@ -0,0 +1,86 @@
+const path = require('path');
+const {ESLint} = require('eslint');
+
+const LINT_GLOBS = [
+ '**/*.{js,mjs,jsx,ts,tsx}',
+ // Framework packages are often linked under node_modules/@enact; include them
+ // explicitly because ESLint skips node_modules for the broad glob.
+ 'node_modules/@enact/**/*.{js,mjs,jsx,ts,tsx}'
+];
+
+// Webpack's eslint plugin only linted the module graph; Bun scans the filesystem.
+// Skip pack outputs (dist, dist2 from pack.sh -o=, custom --output, cache, etc.).
+const DEFAULT_IGNORES = [
+ '**/dist/**',
+ '**/dist*/**',
+ '**/build/**',
+ '**/coverage/**',
+ '**/node_modules/.cache/**'
+];
+
+function toPosix (filePath) {
+ return filePath.replace(/\\/g, '/');
+}
+
+function getIgnorePatterns (context, options = {}) {
+ const ignores = [...DEFAULT_IGNORES];
+ const outputPath = options.outputPath && path.resolve(options.outputPath);
+ if (outputPath) {
+ const relative = toPosix(path.relative(context, outputPath));
+ if (relative && relative !== '.' && !relative.startsWith('..')) {
+ ignores.push(`${relative}/**`);
+ }
+ }
+ return ignores;
+}
+
+function createEslintEnactPlugin (options = {}) {
+ if (options.linting === false) {
+ return null;
+ }
+
+ const context = path.resolve(options.context || process.cwd());
+ const configFile = path.join(__dirname, '..', '..', 'eslintWebpackPluginConfig.js');
+ const formatterPath = require.resolve('react-dev-utils/eslintFormatter');
+ const eslint = new ESLint({
+ overrideConfigFile: configFile,
+ overrideConfig: {
+ ignores: getIgnorePatterns(context, options)
+ },
+ cache: true,
+ cacheLocation: path.join(context, 'node_modules', '.cache', '.eslintcache'),
+ cwd: context,
+ errorOnUnmatchedPattern: false
+ });
+
+ let formatterPromise;
+
+ const getFormatter = () => {
+ if (!formatterPromise) {
+ formatterPromise = eslint.loadFormatter(formatterPath);
+ }
+ return formatterPromise;
+ };
+
+ return {
+ name: 'enact-eslint',
+ setup (build) {
+ // One lint pass per Bun.build (including watch rebuilds), not per module.
+ build.onStart(async () => {
+ const results = await eslint.lintFiles(LINT_GLOBS);
+ const formatter = await getFormatter();
+ const resultText = await formatter.format(results);
+
+ if (resultText) {
+ console.log(resultText);
+ }
+
+ if (results.some(result => result.errorCount > 0)) {
+ throw new Error('Lint errors found.');
+ }
+ });
+ }
+ };
+}
+
+module.exports = {createEslintEnactPlugin};
diff --git a/config/bun/plugins/externals-enact.js b/config/bun/plugins/externals-enact.js
new file mode 100644
index 00000000..d7ff14b6
--- /dev/null
+++ b/config/bun/plugins/externals-enact.js
@@ -0,0 +1,155 @@
+const fs = require('fs');
+const path = require('path');
+const app = require('@enact/dev-utils/option-parser');
+
+const DEFAULT_LIBRARIES = [
+ '@enact',
+ 'react',
+ 'react-dom',
+ 'react-dom/client',
+ 'react-dom/server',
+ 'react/jsx-runtime',
+ 'react/jsx-dev-runtime',
+ 'ilib'
+];
+
+const DEFAULT_IGNORE = [
+ '@enact/dev-utils',
+ '@enact/storybook-utils',
+ '@enact/ui-test-utils',
+ '@enact/screenshot-test-utils',
+ 'readable-stream',
+ 'react-is'
+];
+
+function escapeRegExp (value) {
+ return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
+}
+
+function findParentMain (dir) {
+ const currPkg = path.join(dir, 'package.json');
+ if (fs.existsSync(currPkg)) {
+ const meta = JSON.parse(fs.readFileSync(currPkg, {encoding: 'utf8'}));
+ if (meta.main) {
+ return {path: dir, pointsTo: path.join(dir, meta.main).replace(/\.js$/, '')};
+ }
+ }
+ if (dir === path.parse(dir).root || dir === '.' || dir === '') {
+ return null;
+ }
+ return findParentMain(path.dirname(dir));
+}
+
+function normalizeLocalId (resource, context) {
+ const parent = findParentMain(path.dirname(resource));
+ let localResource = resource;
+ if (parent && parent.pointsTo === resource) {
+ localResource = parent.path;
+ }
+ return localResource
+ .replace(context, app.name)
+ .replace(/\.js$/, '')
+ .replace(/\\/g, '/')
+ .replace(app.name + '/node_modules/', '')
+ .replace(/[\\/]$/, '');
+}
+
+function shouldExternalizeLocal (resource, context, ignoreReg) {
+ if (!resource.startsWith(context)) return false;
+ if (/[\\/]tests[\\/]/.test('./' + path.relative(context, resource))) return false;
+ const relative = resource.replace(/^(.*[\\/]node_modules[\\/])+/, '');
+ if (ignoreReg && ignoreReg.test(relative)) return false;
+ return true;
+}
+
+function createExternalsEnactPlugin (options = {}) {
+ const libraries = options.libraries || DEFAULT_LIBRARIES;
+ const ignore = options.ignore || DEFAULT_IGNORE;
+ const polyfillPath = options.polyfill || null;
+ const context = options.context || app.context;
+ const enableLocal = !!options.local;
+ const libReg = new RegExp('^(' + libraries.map(escapeRegExp).join('|') + ')(?=/|$)');
+ const ignReg = new RegExp('^(' + ignore.map(p => escapeRegExp(p)).join('|') + ')(?=/|$)');
+
+ return {
+ name: 'enact-externals',
+ setup (build) {
+ if (polyfillPath) {
+ const resolvedPolyfill = path.resolve(polyfillPath);
+ build.onResolve({filter: /.*/}, args => {
+ const resolved = path.isAbsolute(args.path)
+ ? args.path
+ : path.resolve(args.resolveDir, args.path);
+ if (resolved === resolvedPolyfill) {
+ return {
+ path: '@enact/polyfills',
+ namespace: 'enact-external'
+ };
+ }
+ return undefined;
+ });
+ }
+
+ if (enableLocal) {
+ build.onResolve({filter: /^\./}, args => {
+ const resource = path.resolve(args.resolveDir, args.path);
+ if (!shouldExternalizeLocal(resource, context, ignReg)) {
+ return undefined;
+ }
+ return {
+ path: normalizeLocalId(resource, context),
+ namespace: 'enact-external'
+ };
+ });
+ }
+
+ build.onResolve({filter: libReg}, args => {
+ if (ignReg.test(args.path)) {
+ return undefined;
+ }
+ return {
+ path: args.path,
+ namespace: 'enact-external'
+ };
+ });
+
+ build.onLoad({filter: /.*/, namespace: 'enact-external'}, args => {
+ const id = args.path;
+ const contents = [
+ "const fw = typeof enact_framework !== 'undefined' ? enact_framework : globalThis.enact_framework;",
+ 'const req = typeof fw === \'function\' ? fw : fw && fw.require;',
+ 'if (!req) {',
+ "\tthrow new Error('External Enact framework not loaded. Include enact.js before the app bundle.');",
+ '}',
+ 'const mod = req(' + JSON.stringify(String(id)) + ');',
+ 'module.exports = mod && mod.__esModule ? mod.default : mod;',
+ 'if (mod && typeof mod === \'object\') {',
+ '\tfor (const key of Object.keys(mod)) {',
+ "\t\tif (key !== 'default') module.exports[key] = mod[key];",
+ '\t}',
+ '}'
+ ].join('\n');
+ return {loader: 'js', contents};
+ });
+ }
+ };
+}
+
+function shouldEnableLocalExternals (context) {
+ const pkgRoot = require('@enact/dev-utils/package-root');
+ process.chdir(context);
+ const pkg = pkgRoot();
+ return (
+ pkg.meta.name.startsWith('@enact/') &&
+ (fs.existsSync(path.join(pkg.path, 'MoonstoneDecorator')) ||
+ fs.existsSync(path.join(pkg.path, 'ThemeDecorator')) ||
+ pkg.meta.name === '@enact/i18n')
+ );
+}
+
+module.exports = {
+ createExternalsEnactPlugin,
+ shouldEnableLocalExternals,
+ DEFAULT_LIBRARIES,
+ DEFAULT_IGNORE
+};
diff --git a/config/bun/plugins/framework-exclusions.js b/config/bun/plugins/framework-exclusions.js
new file mode 100644
index 00000000..315f288a
--- /dev/null
+++ b/config/bun/plugins/framework-exclusions.js
@@ -0,0 +1,86 @@
+const STUB_NAMESPACE = 'enact-framework-stub';
+
+const EXCLUDED_PACKAGES = new Set([
+ 'tape',
+ 'async_hooks',
+ 'vm',
+ 'node:async_hooks',
+ 'node:vm'
+]);
+
+const EXCLUDED_PATH_PATTERN = /[/\\]node_modules[/\\][^/\\]+[/\\]test\.js$|[/\\]node_modules[/\\](?:[^/\\]+[/\\])*(?:test|tests)[/\\]|\.test\.(?:js|cjs|mjs)$|[-.]specs?\.(?:js|cjs|mjs)$|react-dom-server\.node|ilib-node(?:-async|-assembled|-dyn)?\.js|AsyncNodeLoader\.js|NodeLoader\.js|RhinoLoader\.js|ilib-full-dyn-compiled\.js/;
+
+function shouldExcludePath (filePath) {
+ if (!filePath) return false;
+ const request = filePath.replace(/\\/g, '/');
+ return EXCLUDED_PATH_PATTERN.test(request);
+}
+
+function shouldExcludeFrameworkImport (args) {
+ const request = args.path.replace(/\\/g, '/');
+
+ if (EXCLUDED_PACKAGES.has(args.path) || EXCLUDED_PACKAGES.has(request)) {
+ return true;
+ }
+
+ if (shouldExcludePath(request)) {
+ return true;
+ }
+
+ if (args.importer) {
+ const importer = args.importer.replace(/\\/g, '/');
+ if (shouldExcludePath(importer)) {
+ return true;
+ }
+ }
+
+ return false;
+}
+
+function createFrameworkExclusionsPlugin () {
+ return {
+ name: 'enact-framework-exclusions',
+ setup (build) {
+ build.onResolve({filter: /^react-dom\/server$/}, () => {
+ try {
+ return {path: require.resolve('react-dom/server.browser')};
+ } catch (_e) {
+ return undefined;
+ }
+ });
+
+ build.onResolve({filter: /.*/}, args => {
+ if (!shouldExcludeFrameworkImport(args)) {
+ return undefined;
+ }
+
+ return {
+ path: args.path,
+ namespace: STUB_NAMESPACE
+ };
+ });
+
+ build.onLoad({filter: /.*/, namespace: STUB_NAMESPACE}, () => ({
+ contents: 'module.exports = {};',
+ loader: 'js'
+ }));
+
+ // Prevent Bun from parsing excluded files reached via absolute require() paths.
+ build.onLoad({filter: /.*/}, args => {
+ if (args.namespace !== 'file' || !args.path) {
+ return undefined;
+ }
+ if (shouldExcludePath(args.path)) {
+ return {contents: 'module.exports = {};', loader: 'js'};
+ }
+ return undefined;
+ });
+ }
+ };
+}
+
+module.exports = {
+ createFrameworkExclusionsPlugin,
+ shouldExcludeFrameworkImport,
+ shouldExcludePath
+};
diff --git a/config/bun/plugins/index.js b/config/bun/plugins/index.js
new file mode 100644
index 00000000..4190f980
--- /dev/null
+++ b/config/bun/plugins/index.js
@@ -0,0 +1,70 @@
+const {createBabelEnactPlugin} = require('./babel-enact');
+const {createLessEnactPlugin} = require('./less-enact');
+const {createResolveEnactPlugin} = require('./resolve-enact');
+const {createFrameworkExclusionsPlugin} = require('./framework-exclusions');
+const {createExternalsEnactPlugin} = require('./externals-enact');
+const {createIsomorphicEnactPlugin} = require('./isomorphic-enact');
+const {createEslintEnactPlugin} = require('./eslint-enact');
+const {createSnapshotEnactPlugin} = require('./snapshot-enact');
+const {createCaseSensitiveEnactPlugin} = require('./case-sensitive-enact');
+const {createTypescriptEnactPlugin} = require('./typescript-enact');
+
+function createEnactPlugins (options = {}) {
+ const plugins = [];
+
+ if (options.framework) {
+ plugins.unshift(createFrameworkExclusionsPlugin());
+ }
+
+ const eslintPlugin = createEslintEnactPlugin(options);
+ if (eslintPlugin) {
+ plugins.push(eslintPlugin);
+ }
+
+ const typescriptPlugin = createTypescriptEnactPlugin(options);
+ if (typescriptPlugin) {
+ plugins.push(typescriptPlugin);
+ }
+
+ const caseSensitivePlugin = createCaseSensitiveEnactPlugin(options);
+ if (caseSensitivePlugin) {
+ plugins.push(caseSensitivePlugin);
+ }
+
+ if (options.snapshot) {
+ plugins.unshift(createSnapshotEnactPlugin(options));
+ }
+
+ plugins.push(
+ createResolveEnactPlugin(options),
+ createBabelEnactPlugin(options),
+ createLessEnactPlugin(options)
+ );
+
+ if (options.useExternals) {
+ plugins.unshift(createExternalsEnactPlugin(options.externalsOptions));
+ }
+
+ if (options.isomorphic && !options.useExternals) {
+ plugins.unshift(createIsomorphicEnactPlugin({
+ isomorphic: true,
+ globalName: 'App',
+ useExternals: false
+ }));
+ }
+
+ return plugins;
+}
+
+module.exports = {
+ createEnactPlugins,
+ createBabelEnactPlugin,
+ createLessEnactPlugin,
+ createFrameworkExclusionsPlugin,
+ createExternalsEnactPlugin,
+ createIsomorphicEnactPlugin,
+ createEslintEnactPlugin,
+ createSnapshotEnactPlugin,
+ createCaseSensitiveEnactPlugin,
+ createTypescriptEnactPlugin
+};
diff --git a/config/bun/plugins/isomorphic-enact.js b/config/bun/plugins/isomorphic-enact.js
new file mode 100644
index 00000000..bf917c88
--- /dev/null
+++ b/config/bun/plugins/isomorphic-enact.js
@@ -0,0 +1,74 @@
+const fs = require('fs');
+
+const ISOMORPHIC_EXTERNALS = [
+ 'react',
+ 'react-dom',
+ 'react-dom/client',
+ 'react/jsx-runtime',
+ 'react/jsx-dev-runtime'
+];
+
+function getIsomorphicExternals () {
+ return ISOMORPHIC_EXTERNALS;
+}
+
+function wrapIsomorphicBundle (code, globalName = 'App') {
+ const body = code.replace(/^\uFEFF?#![^\n]*\n/, '');
+ return [
+ `(function (root, factory) {`,
+ `\tif (typeof module === 'object' && typeof module.exports !== 'undefined') {`,
+ `\t\tmodule.exports = factory(root, typeof require === 'function' ? require : null);`,
+ `\t} else {`,
+ `\t\troot.${globalName} = factory(root, null);`,
+ `\t}`,
+ `})(typeof self !== 'undefined' ? self : this, function (root, nodeRequire) {`,
+ `\tvar exports = {};`,
+ `\tvar module = { exports: exports };`,
+ `\tvar require = nodeRequire || function (name) {`,
+ `\t\tif (name === 'react') return root.React || globalThis.React;`,
+ `\t\tif (name === 'react/jsx-runtime' || name === 'react/jsx-dev-runtime') {`,
+ `\t\t\tvar React = root.React || globalThis.React;`,
+ `\t\t\treturn { jsx: React.createElement, jsxs: React.createElement, Fragment: React.Fragment };`,
+ `\t\t}`,
+ `\t\tif (name === 'react-dom/client') return root.ReactDOMClient || globalThis.ReactDOMClient;`,
+ `\t\tif (name === 'react-dom') return root.ReactDOM || globalThis.ReactDOM;`,
+ `\t\tthrow new Error('Cannot find module ' + name);`,
+ `\t};`,
+ `\t(function () {`,
+ body,
+ `\t})();`,
+ `\treturn module.exports && module.exports.default !== undefined ? module.exports.default : module.exports;`,
+ `});`,
+ ''
+ ].join('\n');
+}
+
+function createIsomorphicEnactPlugin (options = {}) {
+ const reactPackages = getIsomorphicExternals();
+
+ return {
+ name: 'enact-isomorphic',
+ setup (build) {
+ if (!options.useExternals) {
+ build.onResolve({filter: /^react(-dom)?(\/.*)?$/}, args => {
+ if (reactPackages.includes(args.path)) {
+ return {path: args.path, external: true};
+ }
+ return undefined;
+ });
+ }
+
+ build.onEnd (result => {
+ if (!options.isomorphic || !result.success) return;
+
+ for (const output of result.outputs) {
+ if (!output.path.endsWith('.js')) continue;
+ const code = fs.readFileSync(output.path, {encoding: 'utf8'});
+ fs.writeFileSync(output.path, wrapIsomorphicBundle(code, options.globalName || 'App'), {encoding: 'utf8'});
+ }
+ });
+ }
+ };
+}
+
+module.exports = {createIsomorphicEnactPlugin, wrapIsomorphicBundle, getIsomorphicExternals};
diff --git a/config/bun/plugins/less-enact.js b/config/bun/plugins/less-enact.js
new file mode 100644
index 00000000..5338e0ff
--- /dev/null
+++ b/config/bun/plugins/less-enact.js
@@ -0,0 +1,178 @@
+const path = require('path');
+const fs = require('fs');
+const crypto = require('crypto');
+const less = require('less');
+const sass = require('sass');
+const {createPostcssEnactPlugin} = require('./postcss-enact');
+const {resolveTildeImport} = require('./resolve-tilde-import');
+
+function normalizePath (filePath) {
+ return path.resolve(filePath).replace(/\\/g, '/');
+}
+
+function isModuleStylesheet (filePath, forceCSSModules) {
+ return forceCSSModules || /\.module\.(css|less|scss|sass)$/.test(filePath);
+}
+
+function getCssCacheDir (appContext) {
+ return path.join(appContext, 'node_modules', '.cache', 'enact-bun', 'css');
+}
+
+function isCachedCssAsset (filePath, cssCacheDir) {
+ const normalized = normalizePath(filePath);
+ const cacheRoot = normalizePath(cssCacheDir);
+ return normalized === cacheRoot || normalized.startsWith(cacheRoot + '/');
+}
+
+function createLessTildePlugin (appContext) {
+ class TildeFileManager extends less.FileManager {
+ supports (filename) {
+ return filename.charAt(0) === '~';
+ }
+
+ loadFile (filename, currentDirectory, options, environment) {
+ const resolvedPath = resolveTildeImport(filename.slice(1), currentDirectory, appContext);
+ return super.loadFile(resolvedPath, path.dirname(resolvedPath), options, environment);
+ }
+ }
+
+ return {
+ install (_less, pluginManager) {
+ pluginManager.addFileManager(new TildeFileManager());
+ },
+ minVersion: [3, 0, 0]
+ };
+}
+
+function getLessSearchPaths (filePath, appContext) {
+ const paths = new Set([
+ path.dirname(filePath),
+ path.join(appContext, 'node_modules')
+ ]);
+
+ let dir = path.dirname(filePath);
+ while (dir) {
+ if (
+ fs.existsSync(path.join(dir, 'ThemeDecorator')) ||
+ fs.existsSync(path.join(dir, 'MoonstoneDecorator')) ||
+ fs.existsSync(path.join(dir, 'AgateDecorator'))
+ ) {
+ paths.add(dir);
+ const stylesDir = path.join(dir, 'styles');
+ if (fs.existsSync(stylesDir)) {
+ paths.add(stylesDir);
+ }
+ }
+ const parent = path.dirname(dir);
+ if (parent === dir) {
+ break;
+ }
+ dir = parent;
+ }
+
+ return [...paths];
+}
+
+async function compileSass (source, filePath) {
+ const result = sass.compileString(source, {
+ url: new URL(`file:///${filePath.replace(/\\/g, '/')}`),
+ loadPaths: [path.dirname(filePath)],
+ style: 'expanded'
+ });
+ return result.css;
+}
+
+function writeCachedCssAsset (filePath, css, cssCacheDir) {
+ fs.mkdirSync(cssCacheDir, {recursive: true});
+ // Must NOT end in .module.css — Bun would re-scope already-scoped class names.
+ const hash = crypto.createHash('sha256').update(filePath).digest('hex').slice(0, 8);
+ const base = path.basename(filePath).replace(/\W/g, '_');
+ const target = path.join(cssCacheDir, `${base}_${hash}.css`);
+ fs.writeFileSync(target, css, {encoding: 'utf8'});
+ return normalizePath(target);
+}
+
+function createCssLoadResult (filePath, processed, moduleMode, cssCacheDir) {
+ if (!moduleMode) {
+ return {
+ loader: 'css',
+ contents: processed.css,
+ resolveDir: path.dirname(filePath)
+ };
+ }
+
+ // Bun only emits CSS loaded from the file namespace. Virtual-namespace
+ // {loader:'css'} results are accepted then discarded — write a real file
+ // and side-effect-import it from JS that exports the locals map.
+ const target = writeCachedCssAsset(filePath, processed.css, cssCacheDir);
+
+ return {
+ loader: 'js',
+ contents: [
+ 'import ' + JSON.stringify(target) + ';',
+ 'export default ' + JSON.stringify(processed.exports || {}) + ';'
+ ].join('\n')
+ };
+}
+
+function createLessEnactPlugin (options = {}) {
+ const postcssPlugin = createPostcssEnactPlugin(options);
+ const appContext = options.context || process.cwd();
+ const lessTildePlugin = createLessTildePlugin(appContext);
+ const cssCacheDir = getCssCacheDir(appContext);
+
+ return {
+ name: 'enact-less',
+ setup (build) {
+ build.onLoad({filter: /\.(scss|sass)$/}, async args => {
+ if (isCachedCssAsset(args.path, cssCacheDir)) {
+ return undefined;
+ }
+
+ const source = await Bun.file(args.path).text();
+ const css = await compileSass(source, args.path);
+ const moduleMode = isModuleStylesheet(args.path, options.forceCSSModules);
+ const processed = await postcssPlugin.processCss(css, args.path, moduleMode);
+
+ return createCssLoadResult(args.path, processed, moduleMode, cssCacheDir);
+ });
+
+ build.onLoad({filter: /\.less$/}, async args => {
+ if (isCachedCssAsset(args.path, cssCacheDir)) {
+ return undefined;
+ }
+
+ const source = await Bun.file(args.path).text();
+ const lessResult = await less.render(source, {
+ filename: args.path,
+ paths: getLessSearchPaths(args.path, appContext),
+ modifyVars: Object.assign({__DEV__: !options.production}, options.accent || {}),
+ javascriptEnabled: true,
+ rewriteUrls: 'all',
+ plugins: [lessTildePlugin]
+ });
+
+ const moduleMode = isModuleStylesheet(args.path, options.forceCSSModules);
+ const processed = await postcssPlugin.processCss(lessResult.css, args.path, moduleMode);
+
+ return createCssLoadResult(args.path, processed, moduleMode, cssCacheDir);
+ });
+
+ build.onLoad({filter: /\.css$/}, async args => {
+ // Cached assets are already postcss-processed; re-running with
+ // forceCSSModules would recurse infinitely.
+ if (isCachedCssAsset(args.path, cssCacheDir)) {
+ return undefined;
+ }
+
+ const moduleMode = /\.module\.css$/.test(args.path) || options.forceCSSModules;
+ const cssSource = await Bun.file(args.path).text();
+ const cssProcessed = await postcssPlugin.processCss(cssSource, args.path, moduleMode);
+
+ return createCssLoadResult(args.path, cssProcessed, moduleMode, cssCacheDir);
+ });
+ }
+ };
+}
+
+module.exports = {createLessEnactPlugin, isModuleStylesheet, getCssCacheDir, isCachedCssAsset};
diff --git a/config/bun/plugins/postcss-enact.js b/config/bun/plugins/postcss-enact.js
new file mode 100644
index 00000000..81da5ad0
--- /dev/null
+++ b/config/bun/plugins/postcss-enact.js
@@ -0,0 +1,106 @@
+const path = require('path');
+const postcss = require('postcss');
+const postcssImportJson = require('@daltontan/postcss-import-json');
+const postcssModules = require('postcss-modules');
+const {cssModuleIdent: getLocalIdent} = require('@enact/dev-utils');
+const {
+ resolveTildeImport,
+ toCssRelativeImport,
+ toBundlerCssUrl,
+ parseImportPath,
+ formatImportParams,
+ createPostcssUrlPlugin,
+ createPostcssImportAbsolutePlugin
+} = require('./resolve-tilde-import');
+
+function createPostcssImportTildePlugin (appContext = process.cwd()) {
+ return {
+ postcssPlugin: 'postcss-import-tilde',
+ Once (root) {
+ const inputFile = root.source?.input?.file || appContext;
+ const currentFileDir = path.dirname(inputFile);
+
+ root.walkAtRules(atRule => {
+ if (atRule.name !== 'import' && atRule.name !== 'import-json') {
+ return;
+ }
+
+ const src = parseImportPath(atRule.params);
+ if (!src.startsWith('~')) {
+ return;
+ }
+
+ try {
+ const resolvedPath = resolveTildeImport(src.slice(1), currentFileDir, appContext);
+ // @import-json resolves via Node from the stylesheet dir — keep relative.
+ // Plain @import may be relocated into the css cache — pin absolute.
+ const rewritten = atRule.name === 'import-json'
+ ? toCssRelativeImport(currentFileDir, resolvedPath)
+ : toBundlerCssUrl(resolvedPath);
+ atRule.params = formatImportParams(atRule.params, rewritten);
+ } catch (error) {
+ if (process.env.NODE_ENV !== 'test') {
+ console.warn(`Could not resolve ${src}: ${error.message}`);
+ }
+ }
+ });
+ }
+ };
+}
+createPostcssImportTildePlugin.postcss = true;
+
+function buildPostcssPlugins (options = {}) {
+ return [
+ createPostcssImportTildePlugin(options.context),
+ createPostcssImportAbsolutePlugin(options.context),
+ createPostcssUrlPlugin(options.context),
+ options.useTailwind && require('tailwindcss'),
+ require('postcss-flexbugs-fixes'),
+ require('postcss-preset-env')({
+ autoprefixer: {flexbox: 'no-2009', remove: false},
+ stage: 3,
+ features: {'custom-properties': false}
+ }),
+ !options.useTailwind && require('postcss-normalize'),
+ options.ri !== false && require('postcss-resolution-independence')(options.ri),
+ postcssImportJson({
+ map: (selector, value) => {
+ if (typeof value === 'object' && value !== null && value.$ref) {
+ const tokenPath = value.$ref.split('#/')[1];
+ return `var(--${tokenPath.replace(/\//g, '-')})`;
+ }
+ return value;
+ }
+ })
+ ].filter(Boolean);
+}
+
+function createPostcssEnactPlugin (options = {}) {
+ return {
+ async processCss (source, filePath, asModule) {
+ let moduleExports = {};
+ const plugins = [...buildPostcssPlugins(options)];
+
+ if (asModule) {
+ plugins.unshift(
+ postcssModules({
+ generateScopedName: (name, filename) =>
+ getLocalIdent(
+ {resourcePath: filename || filePath, rootContext: options.context},
+ '[name]_[local]',
+ name
+ ),
+ getJSON: (_cssFileName, cssExports) => {
+ moduleExports = cssExports;
+ }
+ })
+ );
+ }
+
+ const result = await postcss(plugins).process(source, {from: filePath});
+ return {css: result.css, exports: asModule ? moduleExports : undefined};
+ }
+ };
+}
+
+module.exports = {createPostcssEnactPlugin, buildPostcssPlugins};
diff --git a/config/bun/plugins/resolve-enact.js b/config/bun/plugins/resolve-enact.js
new file mode 100644
index 00000000..7f8eafe6
--- /dev/null
+++ b/config/bun/plugins/resolve-enact.js
@@ -0,0 +1,246 @@
+const path = require('path');
+const fs = require('fs');
+const {resolveAppRootImport, isExternalUrl} = require('./resolve-tilde-import');
+
+function normalizeBundlerPath (filePath) {
+ return path.resolve(filePath).replace(/\\/g, '/');
+}
+
+const IMPORT_EXTENSIONS = ['.js', '.jsx', '.ts', '.tsx', '.json', '.mjs', '.cjs'];
+
+function resolveDirectoryEntry (dirPath) {
+ const pkgPath = path.join(dirPath, 'package.json');
+ if (fs.existsSync(pkgPath)) {
+ try {
+ const pkg = JSON.parse(fs.readFileSync(pkgPath, {encoding: 'utf8'}));
+ if (pkg.main) {
+ const mainPath = resolveImportPath(path.resolve(dirPath, pkg.main));
+ if (mainPath) {
+ return mainPath;
+ }
+ }
+ } catch (_e) {
+ // continue
+ }
+ }
+
+ for (const index of ['index.js', 'index.jsx', 'index.ts', 'index.tsx', 'index.mjs']) {
+ const indexPath = path.join(dirPath, index);
+ if (fs.existsSync(indexPath) && fs.statSync(indexPath).isFile()) {
+ return indexPath;
+ }
+ }
+
+ return null;
+}
+
+function resolveImportPath (requestPath) {
+ const resolved = path.resolve(requestPath);
+
+ if (fs.existsSync(resolved)) {
+ const stat = fs.statSync(resolved);
+ if (stat.isFile()) {
+ return resolved;
+ }
+ if (stat.isDirectory()) {
+ return resolveDirectoryEntry(resolved);
+ }
+ }
+
+ for (const ext of IMPORT_EXTENSIONS) {
+ const withExt = `${resolved}${ext}`;
+ if (fs.existsSync(withExt) && fs.statSync(withExt).isFile()) {
+ return withExt;
+ }
+ }
+
+ return null;
+}
+
+function toResolveResult (filePath) {
+ const absolutePath = path.resolve(filePath);
+ if (
+ !path.isAbsolute(absolutePath) ||
+ !fs.existsSync(absolutePath) ||
+ !fs.statSync(absolutePath).isFile()
+ ) {
+ return undefined;
+ }
+
+ return {path: normalizeBundlerPath(absolutePath)};
+}
+
+function isNodeBuiltin (request) {
+ const normalized = request.replace(/^node:/, '');
+ const builtins = require('module').builtinModules || [];
+ return builtins.includes(normalized) || builtins.includes(`node:${normalized}`);
+}
+
+function normalizeAdditionalModulePaths (paths, context) {
+ if (!paths) return [];
+ const list = Array.isArray(paths) ? paths : [paths];
+ return list.map(modulePath => path.resolve(context, modulePath));
+}
+
+function resolveFromModulePaths (request, modulePaths) {
+ for (const modulePath of modulePaths) {
+ const resolved = resolveImportPath(path.join(modulePath, request));
+ if (resolved) {
+ return resolved;
+ }
+ }
+ return null;
+}
+
+function getModuleSearchPaths (args, context, additionalModulePaths) {
+ const paths = new Set();
+
+ // Prefer the app context first (webpack resolve.modules: [./node_modules, ...])
+ // so monorepo packages do not pull a second copy of shared deps like react.
+ if (context) {
+ paths.add(context);
+ }
+ for (const modulePath of additionalModulePaths) {
+ paths.add(modulePath);
+ }
+ if (args.resolveDir) {
+ paths.add(args.resolveDir);
+ }
+ if (args.importer) {
+ paths.add(path.dirname(args.importer));
+ }
+
+ return [...paths];
+}
+
+function resolveNodeModule (request, searchPaths) {
+ for (const searchPath of searchPaths) {
+ try {
+ return require.resolve(request, {paths: [searchPath]});
+ } catch (_e) {
+ // continue
+ }
+ }
+ return null;
+}
+
+function createResolveEnactPlugin (options = {}) {
+ const context = path.resolve(options.context || process.cwd());
+ const aliases = options.aliases || {};
+ const additionalModulePaths = normalizeAdditionalModulePaths(options.additionalModulePaths, context);
+
+ return {
+ name: 'enact-resolve',
+ setup (build) {
+ build.onResolve({filter: /.*/}, args => {
+ if (isExternalUrl(args.path)) {
+ return {external: true};
+ }
+
+ if (path.isAbsolute(args.path)) {
+ const absoluteImport = resolveImportPath(args.path);
+ if (absoluteImport) {
+ return toResolveResult(absoluteImport);
+ }
+ }
+
+ if (args.path.startsWith('.') && args.resolveDir) {
+ const relativeImport = resolveImportPath(path.resolve(args.resolveDir, args.path));
+ if (relativeImport) {
+ return toResolveResult(relativeImport);
+ }
+ }
+
+ const appRootPath = resolveAppRootImport(args.path, context);
+ if (appRootPath) {
+ return toResolveResult(appRootPath);
+ }
+
+ if (!args.path.startsWith('.') && !path.isAbsolute(args.path)) {
+ if (isNodeBuiltin(args.path)) {
+ return undefined;
+ }
+
+ const fromModulePaths = resolveFromModulePaths(args.path, additionalModulePaths);
+ if (fromModulePaths) {
+ return toResolveResult(fromModulePaths);
+ }
+ }
+
+ // Longest key first so `react-dom` wins over `react` for `react-dom/client`.
+ const aliasKeys = Object.keys(aliases).sort((a, b) => b.length - a.length);
+ for (const key of aliasKeys) {
+ const exact = args.path === key;
+ const prefixed = args.path.startsWith(key + '/');
+ if (!exact && !prefixed) {
+ continue;
+ }
+
+ const target = aliases[key];
+ const suffix = exact ? '' : args.path.slice(key.length);
+ let resolved = target;
+ if (path.isAbsolute(target)) {
+ const candidate = suffix ? path.join(target, suffix.slice(1)) : target;
+ const absoluteImport = resolveImportPath(candidate);
+ if (absoluteImport) {
+ return toResolveResult(absoluteImport);
+ }
+ try {
+ return toResolveResult(require.resolve(candidate, {paths: [context]}));
+ } catch (_e) {
+ return toResolveResult(normalizeBundlerPath(candidate));
+ }
+ }
+ if (!target.startsWith('@')) {
+ resolved = path.resolve(context, target);
+ if (suffix) {
+ resolved = path.join(resolved, suffix.slice(1));
+ }
+ } else {
+ try {
+ const request = exact ? target : target + suffix;
+ resolved = require.resolve(request, {paths: [context, args.importer].filter(Boolean)});
+ } catch (_e) {
+ return undefined;
+ }
+ }
+ return toResolveResult(resolved);
+ }
+
+ if (args.path === 'ilib' || args.path === '@enact/i18n/ilib') {
+ const checks = ['@enact/i18n/ilib', 'ilib'];
+ for (const check of checks) {
+ try {
+ return toResolveResult(require.resolve(check, {paths: [context, args.importer].filter(Boolean)}));
+ } catch (_e) {
+ // continue
+ }
+ }
+ }
+
+ if (!args.path.startsWith('.') && !path.isAbsolute(args.path)) {
+ const searchPaths = getModuleSearchPaths(args, context, additionalModulePaths);
+ const resolved = resolveNodeModule(args.path, searchPaths);
+ if (resolved) {
+ return toResolveResult(resolved);
+ }
+ }
+
+ return undefined;
+ });
+
+ build.onLoad({filter: /node_modules[/\\]ilib[/\\]index\.js$/}, async args => {
+ let source = await Bun.file(args.path).text();
+ source = source.replace(/require\("\.\/lib\/ilib-[^"]+"\)/g, 'undefined');
+ return {loader: 'js', contents: source};
+ });
+ }
+ };
+}
+
+module.exports = {
+ createResolveEnactPlugin,
+ normalizeBundlerPath,
+ toResolveResult,
+ resolveImportPath
+};
diff --git a/config/bun/plugins/resolve-tilde-import.js b/config/bun/plugins/resolve-tilde-import.js
new file mode 100644
index 00000000..81c10c1f
--- /dev/null
+++ b/config/bun/plugins/resolve-tilde-import.js
@@ -0,0 +1,240 @@
+const fs = require('fs');
+const path = require('path');
+
+function isExternalUrl (url) {
+ return /^(?:data:|https?:|\/\/|#)/.test(url);
+}
+
+function isAppRootUrl (url) {
+ if (!url.startsWith('/') || url.startsWith('//')) {
+ return false;
+ }
+
+ // PostCSS rewrites asset URLs to absolute filesystem paths on Linux (e.g.
+ // /home/.../fonts/foo.ttf). Those are not app-root imports like /assets/foo.png.
+ if (path.isAbsolute(url) && fs.existsSync(url)) {
+ return false;
+ }
+
+ return true;
+}
+
+function resolveAppRootImport (importPath, appContext = process.cwd()) {
+ if (!isAppRootUrl(importPath)) {
+ return null;
+ }
+
+ const resolvedPath = path.resolve(appContext, importPath.slice(1));
+ return fs.existsSync(resolvedPath) ? resolvedPath : null;
+}
+
+function resolveTildeImport (packagePath, fromDir, appContext = process.cwd()) {
+ const searchPaths = [
+ fromDir,
+ appContext,
+ path.join(appContext, 'node_modules')
+ ];
+
+ for (const searchPath of searchPaths) {
+ try {
+ return require.resolve(packagePath, {paths: [searchPath]});
+ } catch (_e) {
+ // try next search path
+ }
+ }
+
+ throw new Error(`Could not resolve: ~${packagePath}`);
+}
+
+function toCssRelativeImport (fromDir, resolvedPath) {
+ let relativePath = path.relative(fromDir, resolvedPath).replace(/\\/g, '/');
+ if (!relativePath.startsWith('.')) {
+ relativePath = `./${relativePath}`;
+ }
+ return relativePath;
+}
+
+function parseImportPath (params) {
+ const trimmed = params.trim();
+ const urlMatch = trimmed.match(/^url\(\s*(['"]?)([^'")]+)\1\s*\)$/i);
+ if (urlMatch) {
+ return urlMatch[2];
+ }
+
+ if (
+ (trimmed.startsWith('"') && trimmed.endsWith('"')) ||
+ (trimmed.startsWith("'") && trimmed.endsWith("'"))
+ ) {
+ return trimmed.slice(1, -1);
+ }
+
+ return trimmed;
+}
+
+function formatImportParams (params, resolvedRelativePath) {
+ const trimmed = params.trim();
+ if (/^url\(/i.test(trimmed)) {
+ return `url("${resolvedRelativePath}")`;
+ }
+ return `"${resolvedRelativePath}"`;
+}
+
+function parseCssUrls (value) {
+ const urls = [];
+ const pattern = /url\(\s*(['"]?)([^'")]+)\1\s*\)/gi;
+ let match;
+
+ while ((match = pattern.exec(value)) !== null) {
+ urls.push({
+ full: match[0],
+ quote: match[1],
+ url: match[2],
+ index: match.index
+ });
+ }
+
+ return urls;
+}
+
+function normalizeCssUrlPath (url) {
+ return url.replace(/\\/g, '/').split(/[?#]/)[0];
+}
+
+function resolveCssAssetPath (url, fromDir) {
+ if (isExternalUrl(url) || isAppRootUrl(url)) {
+ return null;
+ }
+
+ const directPath = path.resolve(fromDir, url);
+ if (fs.existsSync(directPath)) {
+ return directPath;
+ }
+
+ // LESS keeps url() paths relative to the file where they were authored, even
+ // after those sheets are imported elsewhere (e.g. fonts.less -> ThemeDecorator).
+ const segments = normalizeCssUrlPath(url).split('/').filter(Boolean);
+ while (segments[0] === '..') {
+ segments.shift();
+ }
+
+ if (!segments.length) {
+ return null;
+ }
+
+ const tailPath = segments.join('/');
+ let searchDir = fromDir;
+ while (searchDir !== path.dirname(searchDir)) {
+ const candidate = path.join(searchDir, tailPath);
+ if (fs.existsSync(candidate)) {
+ return candidate;
+ }
+ searchDir = path.dirname(searchDir);
+ }
+
+ return null;
+}
+
+function toBundlerCssUrl (filePath) {
+ return filePath.replace(/\\/g, '/');
+}
+
+function resolveCssUrlPath (url, fromDir) {
+ const resolvedPath = resolveCssAssetPath(url, fromDir);
+ if (!resolvedPath) {
+ return null;
+ }
+
+ return toBundlerCssUrl(resolvedPath);
+}
+
+function rewriteCssUrls (value, fromDir) {
+ const urls = parseCssUrls(value);
+ if (!urls.length) {
+ return value;
+ }
+
+ let result = value;
+ for (let i = urls.length - 1; i >= 0; i--) {
+ const {full, url} = urls[i];
+ const rewritten = resolveCssUrlPath(url, fromDir);
+ if (rewritten && rewritten !== url) {
+ result = result.slice(0, urls[i].index) +
+ `url("${rewritten}")` +
+ result.slice(urls[i].index + full.length);
+ }
+ }
+
+ return result;
+}
+
+function createPostcssUrlPlugin (appContext = process.cwd()) {
+ return {
+ postcssPlugin: 'postcss-enact-url',
+ Declaration (decl) {
+ if (!decl.value.includes('url(')) {
+ return;
+ }
+
+ const inputFile = decl.source?.input?.file || appContext;
+ decl.value = rewriteCssUrls(decl.value, path.dirname(inputFile));
+ }
+ };
+}
+createPostcssUrlPlugin.postcss = true;
+
+/**
+ * Pin relative @import paths to absolute filesystem paths so CSS relocated into
+ * the enact-bun css cache still resolves (e.g. @enovaui token sheets left as
+ * CSS @imports after LESS). url() is already absolute via createPostcssUrlPlugin.
+ */
+function createPostcssImportAbsolutePlugin (appContext = process.cwd()) {
+ return {
+ postcssPlugin: 'postcss-enact-import-absolute',
+ Once (root) {
+ const inputFile = root.source?.input?.file || appContext;
+ const currentFileDir = path.dirname(inputFile);
+
+ root.walkAtRules(atRule => {
+ if (atRule.name !== 'import') {
+ return;
+ }
+
+ const src = parseImportPath(atRule.params);
+ if (!src || isExternalUrl(src) || src.startsWith('~')) {
+ return;
+ }
+
+ let resolvedPath = null;
+ if (path.isAbsolute(src) || (src.startsWith('/') && fs.existsSync(src))) {
+ resolvedPath = src;
+ } else {
+ const candidate = path.resolve(currentFileDir, src);
+ if (fs.existsSync(candidate)) {
+ resolvedPath = candidate;
+ }
+ }
+
+ if (resolvedPath) {
+ atRule.params = formatImportParams(atRule.params, toBundlerCssUrl(resolvedPath));
+ }
+ });
+ }
+ };
+}
+createPostcssImportAbsolutePlugin.postcss = true;
+
+module.exports = {
+ resolveTildeImport,
+ toCssRelativeImport,
+ toBundlerCssUrl,
+ parseImportPath,
+ formatImportParams,
+ isExternalUrl,
+ isAppRootUrl,
+ resolveAppRootImport,
+ resolveCssAssetPath,
+ resolveCssUrlPath,
+ rewriteCssUrls,
+ createPostcssUrlPlugin,
+ createPostcssImportAbsolutePlugin
+};
diff --git a/config/bun/plugins/snapshot-enact.js b/config/bun/plugins/snapshot-enact.js
new file mode 100644
index 00000000..b433f3b7
--- /dev/null
+++ b/config/bun/plugins/snapshot-enact.js
@@ -0,0 +1,96 @@
+const fs = require('fs');
+const path = require('path');
+const {resolveDevUtilsModule} = require('../resolve-dev-utils');
+
+function resolveSnapshotHelper (name) {
+ const candidates = [
+ path.join(__dirname, '..', '..', '..', '..', 'dev-utils', 'plugins', 'SnapshotPlugin', `${name}.js`),
+ path.join(__dirname, '..', '..', '..', 'dev-utils', 'plugins', 'SnapshotPlugin', `${name}.js`)
+ ];
+
+ for (const candidate of candidates) {
+ if (fs.existsSync(candidate)) {
+ return candidate;
+ }
+ }
+
+ try {
+ return require.resolve(`@enact/dev-utils/plugins/SnapshotPlugin/${name}`);
+ } catch (_e) {
+ resolveDevUtilsModule(`plugins/SnapshotPlugin/${name}`);
+ throw new Error(`Unable to resolve SnapshotPlugin helper: ${name}`);
+ }
+}
+
+function packageMissing (context, lib) {
+ return !fs.existsSync(path.join(context, 'node_modules', lib));
+}
+
+function createSnapshotEnactPlugin (options = {}) {
+ const context = options.context;
+ const helperJS = resolveSnapshotHelper('snapshot-helper');
+ const helperReduxJS = resolveSnapshotHelper('snapshot-redux-helper');
+ const reactDOMClient = path.join(context, 'node_modules', 'react-dom', 'client');
+ const reduxPath = path.join(context, 'node_modules', 'react-redux');
+ const reactRedux = fs.existsSync(reduxPath) ? reduxPath : null;
+ const optionalMissing = [
+ '@enact/i18n',
+ '@enact/moonstone',
+ '@enact/sandstone',
+ '@enact/limestone',
+ '@enact/core/snapshot'
+ ].filter(lib => packageMissing(context, lib));
+
+ const ignoreIlib = ['ilib', '@enact/i18n/ilib'].every(lib => packageMissing(context, lib));
+
+ return {
+ name: 'enact-snapshot',
+ setup (build) {
+ build.onLoad({filter: /.*/, namespace: 'snapshot-empty'}, () => ({
+ contents: 'module.exports = {};',
+ loader: 'js'
+ }));
+
+ build.onResolve({filter: /.*/}, args => {
+ if (args.kind !== 'import-statement' && args.kind !== 'require-call') {
+ return undefined;
+ }
+
+ const issuer = args.importer || '';
+ const fromHelper = issuer === helperJS || issuer === helperReduxJS;
+
+ if (args.path === 'react-dom/client') {
+ if (fromHelper) {
+ return {path: reactDOMClient};
+ }
+ return {path: helperJS};
+ }
+
+ if (reactRedux && args.path === 'react-redux') {
+ if (fromHelper) {
+ return {path: reactRedux};
+ }
+ return {path: helperReduxJS};
+ }
+
+ for (const lib of optionalMissing) {
+ if (args.path === lib || args.path.startsWith(`${lib}/`)) {
+ if (issuer.startsWith(path.dirname(helperJS))) {
+ return {path: args.path, namespace: 'snapshot-empty'};
+ }
+ }
+ }
+
+ if (ignoreIlib && (args.path === 'ilib' || args.path.startsWith('ilib/'))) {
+ if (issuer.startsWith(path.dirname(helperJS))) {
+ return {path: args.path, namespace: 'snapshot-empty'};
+ }
+ }
+
+ return undefined;
+ });
+ }
+ };
+}
+
+module.exports = {createSnapshotEnactPlugin, resolveSnapshotHelper};
diff --git a/config/bun/plugins/typescript-enact.js b/config/bun/plugins/typescript-enact.js
new file mode 100644
index 00000000..6703e7be
--- /dev/null
+++ b/config/bun/plugins/typescript-enact.js
@@ -0,0 +1,77 @@
+const fs = require('fs');
+const path = require('path');
+
+let typecheckRunning = false;
+
+function formatDiagnostics (diagnostics, host) {
+ return diagnostics
+ .map(diagnostic => {
+ const message = host.getCategoryFormat(diagnostic.category)(diagnostic.messageText);
+ if (diagnostic.file && typeof diagnostic.start === 'number') {
+ const {line, character} = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start);
+ return `${diagnostic.file.fileName}(${line + 1},${character + 1}): ${message}`;
+ }
+ return message;
+ })
+ .join('\n');
+}
+
+function runTypeCheck (context) {
+ const configPath = path.join(context, 'tsconfig.json');
+ if (!fs.existsSync(configPath) || typecheckRunning) {
+ return Promise.resolve();
+ }
+
+ let ts;
+ try {
+ ts = require(require.resolve('typescript', {paths: [context, __dirname]}));
+ } catch (_e) {
+ return Promise.resolve();
+ }
+
+ typecheckRunning = true;
+ return Promise.resolve().then(() => {
+ const configFile = ts.readConfigFile(configPath, ts.sys.readFile);
+ if (configFile.error) {
+ throw new Error(ts.formatDiagnostic(configFile.error, {
+ getCategoryFormat: () => msg => msg
+ }));
+ }
+
+ const parsed = ts.parseJsonConfigFileContent(configFile.config, ts.sys, context);
+ const program = ts.createProgram(parsed.fileNames, parsed.options);
+ const diagnostics = ts.getPreEmitDiagnostics(program);
+ const errors = diagnostics.filter(d => d.category === ts.DiagnosticCategory.Error);
+
+ if (errors.length > 0) {
+ const host = {
+ getCategoryFormat: category => {
+ if (category === ts.DiagnosticCategory.Error) return msg => `error TS: ${msg}`;
+ return msg => msg;
+ }
+ };
+ throw new Error(formatDiagnostics(errors, host));
+ }
+ }).finally(() => {
+ typecheckRunning = false;
+ });
+}
+
+function createTypescriptEnactPlugin (options = {}) {
+ if (options.typeCheck === false) {
+ return null;
+ }
+
+ const context = options.context;
+
+ return {
+ name: 'enact-typescript',
+ setup (build) {
+ build.onStart(async () => {
+ await runTypeCheck(context);
+ });
+ }
+ };
+}
+
+module.exports = {createTypescriptEnactPlugin, runTypeCheck};
diff --git a/config/bun/post-build.js b/config/bun/post-build.js
new file mode 100644
index 00000000..4e666547
--- /dev/null
+++ b/config/bun/post-build.js
@@ -0,0 +1,41 @@
+const fs = require('fs-extra');
+const path = require('path');
+const {applyWebOSMeta} = require('./webos-meta');
+const {applyIlibResources} = require('./ilib-meta');
+
+function copyDir (from, to) {
+ if (fs.existsSync(from)) {
+ fs.copySync(from, to, {dereference: true});
+ }
+}
+
+function copyPublicFolder (context, output) {
+ const publicDir = path.join(context, 'public');
+ if (fs.existsSync(publicDir)) {
+ fs.copySync(publicDir, output, {dereference: true});
+ }
+}
+
+function ensureCustomizationsDir (output) {
+ fs.ensureDirSync(path.join(output, 'customizations'));
+}
+
+function applyPostBuild (context, output, options = {}) {
+ copyPublicFolder(context, output);
+ applyIlibResources(context, output, {
+ ilibAdditionalResourcesPath: options.ilibAdditionalResourcesPath,
+ create: true,
+ cache: !options.watch
+ });
+ applyWebOSMeta(context, output, {
+ v8SnapshotFile: options.v8SnapshotFile
+ });
+ if (options.customSkin) {
+ ensureCustomizationsDir(output);
+ }
+ if (options.ilibAdditionalResourcesPath && fs.existsSync(options.ilibAdditionalResourcesPath)) {
+ copyDir(options.ilibAdditionalResourcesPath, path.join(output, 'resources'));
+ }
+}
+
+module.exports = {applyPostBuild, copyPublicFolder};
diff --git a/config/bun/prerender-worker.cjs b/config/bun/prerender-worker.cjs
new file mode 100644
index 00000000..06b9ee1b
--- /dev/null
+++ b/config/bun/prerender-worker.cjs
@@ -0,0 +1,37 @@
+'use strict';
+
+const fs = require('fs');
+const path = require('path');
+
+const optionsFile = process.argv[2];
+if (!optionsFile) {
+ console.error('Missing prerender options file');
+ process.exit(1);
+}
+
+const prerenderOpts = JSON.parse(fs.readFileSync(optionsFile, 'utf8'));
+const bunDir = __dirname;
+
+process.chdir(prerenderOpts.context);
+
+const appModules = path.join(prerenderOpts.context, 'node_modules');
+if (fs.existsSync(appModules)) {
+ module.paths.unshift(appModules);
+}
+
+const {createBuildOptions} = require(path.join(bunDir, 'build-options'));
+const {applyPrerender} = require(path.join(bunDir, 'prerender'));
+
+createBuildOptions({
+ isomorphic: true,
+ context: prerenderOpts.context,
+ output: prerenderOpts.output,
+ externals: prerenderOpts.externals
+});
+
+try {
+ applyPrerender(prerenderOpts);
+} catch (e) {
+ console.error(e.stack || e.message || e);
+ process.exit(1);
+}
diff --git a/config/bun/prerender.js b/config/bun/prerender.js
new file mode 100644
index 00000000..e2fb69a7
--- /dev/null
+++ b/config/bun/prerender.js
@@ -0,0 +1,36 @@
+const {resolveDevUtilsModule} = require('./resolve-dev-utils');
+
+function resolveApplyBunPostBuild () {
+ try {
+ const PrerenderPlugin = require('@enact/dev-utils/plugins/PrerenderPlugin');
+ if (typeof PrerenderPlugin.applyBunPostBuild === 'function') {
+ return PrerenderPlugin.applyBunPostBuild;
+ }
+ } catch (_e) {
+ // continue
+ }
+
+ const prerender = resolveDevUtilsModule('bun-plugins/prerender');
+ if (prerender && typeof prerender.applyPrerender === 'function') {
+ return prerender.applyPrerender;
+ }
+
+ const localPlugin = resolveDevUtilsModule('plugins/PrerenderPlugin');
+ if (localPlugin && typeof localPlugin.applyBunPostBuild === 'function') {
+ return localPlugin.applyBunPostBuild;
+ }
+
+ return null;
+}
+
+function applyPrerender (options = {}) {
+ const applyBunPostBuild = resolveApplyBunPostBuild();
+ if (!applyBunPostBuild) {
+ throw new Error(
+ 'Prerender is unavailable. Install @enact/dev-utils with Bun support or use a linked dev-utils workspace.'
+ );
+ }
+ return applyBunPostBuild(options);
+}
+
+module.exports = {applyPrerender, resolveApplyBunPostBuild};
diff --git a/config/bun/react-globals-entry.js b/config/bun/react-globals-entry.js
new file mode 100644
index 00000000..ee7e9c4b
--- /dev/null
+++ b/config/bun/react-globals-entry.js
@@ -0,0 +1,9 @@
+import React from 'react';
+import * as ReactDOMClient from 'react-dom/client';
+
+if (typeof globalThis !== 'undefined') {
+ globalThis.React = React;
+ globalThis.ReactDOMClient = ReactDOMClient;
+}
+
+export default React;
diff --git a/config/bun/resolve-bun.js b/config/bun/resolve-bun.js
new file mode 100644
index 00000000..e3a9721c
--- /dev/null
+++ b/config/bun/resolve-bun.js
@@ -0,0 +1,84 @@
+const {spawnSync} = require('child_process');
+const fs = require('fs');
+const path = require('path');
+
+function firstExisting (paths) {
+ for (const candidate of paths) {
+ if (candidate && fs.existsSync(candidate)) {
+ return candidate;
+ }
+ }
+ return null;
+}
+
+function resolveBundledBun () {
+ const cliRoot = path.join(__dirname, '..', '..');
+ const bunRoot = path.join(cliRoot, 'node_modules', 'bun');
+
+ return firstExisting([
+ path.join(bunRoot, 'bin', 'bun'),
+ // npm postinstall always links the native binary to bun.exe (all platforms)
+ path.join(bunRoot, 'bin', 'bun.exe'),
+ path.join(cliRoot, 'node_modules', '.bin', 'bun')
+ ]);
+}
+
+function resolveOvenBun () {
+ const {platform, arch} = process;
+ const names = [];
+
+ if (platform === 'linux') {
+ names.push(
+ `@oven/bun-linux-${arch}`,
+ `@oven/bun-linux-${arch}-baseline`,
+ `@oven/bun-linux-${arch}-musl`,
+ `@oven/bun-linux-${arch}-musl-baseline`
+ );
+ } else if (platform === 'darwin') {
+ names.push(
+ `@oven/bun-darwin-${arch}`,
+ `@oven/bun-darwin-${arch}-baseline`
+ );
+ } else if (platform === 'win32') {
+ names.push(
+ `@oven/bun-windows-${arch}`,
+ `@oven/bun-windows-${arch}-baseline`
+ );
+ }
+
+ for (const name of names) {
+ for (const exe of ['bin/bun', 'bin/bun.exe']) {
+ try {
+ const resolved = require.resolve(`${name}/${exe}`);
+ if (fs.existsSync(resolved)) {
+ return resolved;
+ }
+ } catch (_err) {
+ // optional platform package not installed
+ }
+ }
+ }
+
+ return null;
+}
+
+function resolveBun () {
+ const bundled = resolveBundledBun();
+ if (bundled) return bundled;
+
+ const oven = resolveOvenBun();
+ if (oven) return oven;
+
+ const which = spawnSync(process.platform === 'win32' ? 'where' : 'which', ['bun'], {
+ encoding: 'utf8'
+ });
+ if (which.status === 0 && which.stdout.trim()) {
+ return which.stdout.trim().split(/\r?\n/)[0];
+ }
+
+ throw new Error(
+ 'Bun is required but was not found. Install Bun 1.3+ from https://bun.com and ensure it is on your PATH.'
+ );
+}
+
+module.exports = {resolveBun};
diff --git a/config/bun/resolve-dev-utils.js b/config/bun/resolve-dev-utils.js
new file mode 100644
index 00000000..942a446a
--- /dev/null
+++ b/config/bun/resolve-dev-utils.js
@@ -0,0 +1,50 @@
+const fs = require('fs');
+const path = require('path');
+
+function getWorkspaceDevUtilsRoots () {
+ return [
+ path.join(__dirname, '..', '..', '..', 'dev-utils'),
+ path.join(__dirname, '..', '..', '..', '..', 'dev-utils')
+ ];
+}
+
+function resolveModulePath (basePath) {
+ if (fs.existsSync(`${basePath}.js`)) {
+ return basePath;
+ }
+ if (fs.existsSync(path.join(basePath, 'index.js'))) {
+ return path.join(basePath, 'index.js');
+ }
+ return null;
+}
+
+function resolveDevUtilsModule (subpath) {
+ try {
+ return require(`@enact/dev-utils/${subpath}`);
+ } catch (_e) {
+ // continue
+ }
+
+ try {
+ const pkgRoot = path.dirname(require.resolve('@enact/dev-utils/package.json'));
+ const localPath = path.join(pkgRoot, subpath.replace(/\//g, path.sep));
+ const resolved = resolveModulePath(localPath);
+ if (resolved) {
+ return require(resolved);
+ }
+ } catch (_e) {
+ // continue
+ }
+
+ for (const root of getWorkspaceDevUtilsRoots()) {
+ const localPath = path.join(root, subpath.replace(/\//g, path.sep));
+ const resolved = resolveModulePath(localPath);
+ if (resolved) {
+ return require(resolved);
+ }
+ }
+
+ return null;
+}
+
+module.exports = {resolveDevUtilsModule, getWorkspaceDevUtilsRoots};
diff --git a/config/bun/run-prerender-in-node.cjs b/config/bun/run-prerender-in-node.cjs
new file mode 100644
index 00000000..85349bba
--- /dev/null
+++ b/config/bun/run-prerender-in-node.cjs
@@ -0,0 +1,51 @@
+'use strict';
+
+const {spawnSync} = require('child_process');
+const fs = require('fs');
+const path = require('path');
+const os = require('os');
+
+function resolveNodeExecutable () {
+ const candidates = [
+ process.env.ENACT_NODE,
+ process.env.npm_node_execpath,
+ process.env.NODE_BINARY
+ ].filter(Boolean);
+
+ for (const candidate of candidates) {
+ if (!/bun/i.test(path.basename(candidate))) {
+ return candidate;
+ }
+ }
+
+ return 'node';
+}
+
+function runPrerenderInNode (prerenderOpts) {
+ const node = resolveNodeExecutable();
+ const worker = path.join(__dirname, 'prerender-worker.cjs');
+ const optsFile = path.join(os.tmpdir(), `enact-prerender-${process.pid}-${Date.now()}.json`);
+
+ fs.writeFileSync(optsFile, JSON.stringify(prerenderOpts), 'utf8');
+
+ const result = spawnSync(node, [worker, optsFile], {
+ stdio: 'inherit',
+ cwd: prerenderOpts.context,
+ env: process.env
+ });
+
+ try {
+ fs.unlinkSync(optsFile);
+ } catch (_e) {
+ // ignore cleanup errors
+ }
+
+ if (result.error) {
+ throw result.error;
+ }
+ if (result.status !== 0) {
+ process.exit(result.status === null ? 1 : result.status);
+ }
+}
+
+module.exports = {runPrerenderInNode};
diff --git a/config/bun/snapshot.js b/config/bun/snapshot.js
new file mode 100644
index 00000000..df4b376b
--- /dev/null
+++ b/config/bun/snapshot.js
@@ -0,0 +1,85 @@
+const cp = require('child_process');
+const fs = require('fs');
+const path = require('path');
+const glob = require('glob');
+
+function getBlobName (args) {
+ for (let i = 0; i < args.length; i++) {
+ if (args[i].indexOf('--startup-blob=') === 0) {
+ return args[i].replace('--startup-blob=', '');
+ }
+ }
+ return 'snapshot_blob.bin';
+}
+
+function getSnapshotArgs (target) {
+ let args = [
+ '--profile-deserialization',
+ '--random-seed=314159265',
+ '--abort_on_uncaught_exception',
+ '--startup-blob=snapshot_blob.bin'
+ ];
+
+ if (process.env.V8_SNAPSHOT_ARGS) {
+ args = process.env.V8_SNAPSHOT_ARGS.split(/\s+/);
+ }
+
+ args.push(target);
+ return args;
+}
+
+function updateAppinfoV8Snapshot (output, blobPath) {
+ const normalizedBlob = blobPath.replace(/\\/g, '/');
+ const appinfoFiles = glob.sync('**/appinfo.json', {
+ cwd: output,
+ absolute: true,
+ nodir: true
+ });
+
+ for (const appinfoPath of appinfoFiles) {
+ const meta = JSON.parse(fs.readFileSync(appinfoPath, {encoding: 'utf8'}));
+ meta.v8SnapshotFile = normalizedBlob;
+ fs.writeFileSync(appinfoPath, JSON.stringify(meta, null, '\t') + '\n', {encoding: 'utf8'});
+ }
+}
+
+function applySnapshot (options = {}) {
+ const exec = options.exec || process.env.V8_MKSNAPSHOT;
+ const target = options.target || 'main.js';
+ const output = path.resolve(options.output);
+ const args = getSnapshotArgs(target);
+ const blob = getBlobName(args);
+
+ if (!exec) {
+ return null;
+ }
+
+ const child = cp.spawnSync(exec, args, {cwd: output, encoding: 'utf8'});
+ if (child.status !== 0) {
+ const message = child.stderr || child.stdout || 'V8 snapshot generation failed.';
+ import('chalk').then(({default: chalk}) => {
+ console.log(
+ chalk.red(
+ 'Snapshot blob generation "' + exec + ' ' + args.join(' ') + '" in "' + output + '" directory failed:'
+ )
+ );
+ });
+ throw new Error(message);
+ }
+
+ const blobPath = path.join(output, blob);
+ if (!fs.existsSync(blobPath)) {
+ throw new Error('V8 snapshot blob was not generated at ' + blob);
+ }
+
+ const stat = fs.statSync(blobPath);
+ if (stat.size === 0) {
+ throw new Error((child.stdout || '') + '\n' + (child.stderr || ''));
+ }
+
+ const snapshotMetaPath = options.v8SnapshotFile || blob;
+ updateAppinfoV8Snapshot(output, snapshotMetaPath);
+ return blobPath;
+}
+
+module.exports = {applySnapshot, updateAppinfoV8Snapshot, getSnapshotArgs};
diff --git a/config/bun/spawn.js b/config/bun/spawn.js
new file mode 100644
index 00000000..8f302d49
--- /dev/null
+++ b/config/bun/spawn.js
@@ -0,0 +1,27 @@
+const path = require('path');
+const spawn = require('cross-spawn');
+const {resolveBun} = require('./resolve-bun');
+
+function spawnBunScript (script, args = [], opts = {}) {
+ const bun = resolveBun();
+ const scriptPath = path.join(__dirname, script);
+ const spawnOpts = {
+ stdio: 'inherit',
+ cwd: opts.cwd || process.cwd(),
+ env: {...process.env, ENACT_NODE: process.execPath, ...opts.env}
+ };
+
+ return new Promise((resolve, reject) => {
+ const child = spawn(bun, [scriptPath, ...args], spawnOpts);
+ child.on('close', code => {
+ if (code !== 0) {
+ reject(new Error(`Bun exited with code ${code}`));
+ } else {
+ resolve();
+ }
+ });
+ child.on('error', reject);
+ });
+}
+
+module.exports = {spawnBunScript, resolveBun};
diff --git a/config/bun/watch-files.js b/config/bun/watch-files.js
new file mode 100644
index 00000000..0cd4f669
--- /dev/null
+++ b/config/bun/watch-files.js
@@ -0,0 +1,206 @@
+const fs = require('fs');
+const path = require('path');
+
+// Do not include "build" — some apps use that as a legitimate source folder name.
+const IGNORE_DIR_NAMES = new Set([
+ 'node_modules',
+ 'dist',
+ '.git',
+ '.cache',
+ 'coverage',
+ 'tmp',
+ 'temp'
+]);
+
+const WATCH_EXTENSIONS = /\.(js|jsx|mjs|cjs|ts|tsx|json|css|less|scss|sass|html|ejs|md|txt)$/i;
+
+function normalizePath (filePath) {
+ return path.resolve(filePath).replace(/\\/g, '/');
+}
+
+function shouldIgnoreRelative (relativePath) {
+ const parts = relativePath.replace(/\\/g, '/').split('/').filter(Boolean);
+ return parts.some(part => IGNORE_DIR_NAMES.has(part));
+}
+
+function isWatchableFile (relativePath) {
+ const base = path.basename(relativePath);
+ if (base.startsWith('.env')) {
+ return true;
+ }
+ return WATCH_EXTENSIONS.test(relativePath);
+}
+
+/**
+ * Resolve @enact/* packages that are symlinks/junctions (or otherwise realpath
+ * outside node_modules) so framework edits trigger pack/serve rebuilds.
+ * webpack watched the resolved module graph; Bun only watches explicit roots.
+ */
+function getLinkedEnactWatchRoots (context) {
+ const roots = [];
+ const seen = new Set();
+ const enactScope = path.join(path.resolve(context), 'node_modules', '@enact');
+
+ if (!fs.existsSync(enactScope)) {
+ return roots;
+ }
+
+ let entries;
+ try {
+ entries = fs.readdirSync(enactScope);
+ } catch (_e) {
+ return roots;
+ }
+
+ for (const name of entries) {
+ const pkgPath = path.join(enactScope, name);
+ let realPath;
+ try {
+ const stat = fs.lstatSync(pkgPath);
+ if (!stat.isDirectory() && !stat.isSymbolicLink()) {
+ continue;
+ }
+ realPath = fs.realpathSync(pkgPath);
+ } catch (_e) {
+ continue;
+ }
+
+ const normalizedPkg = normalizePath(pkgPath);
+ const normalizedReal = normalizePath(realPath);
+ if (normalizedReal === normalizedPkg || seen.has(normalizedReal)) {
+ continue;
+ }
+
+ seen.add(normalizedReal);
+ roots.push(realPath);
+ }
+
+ return roots;
+}
+
+function collectWatchRoots (context, additionalModulePaths = []) {
+ const roots = [path.resolve(context)];
+ const seen = new Set([normalizePath(context)]);
+
+ const add = dir => {
+ if (!dir) return;
+ const resolved = path.resolve(dir);
+ const key = normalizePath(resolved);
+ if (seen.has(key) || !fs.existsSync(resolved)) return;
+ seen.add(key);
+ roots.push(resolved);
+ };
+
+ if (Array.isArray(additionalModulePaths)) {
+ for (const modulePath of additionalModulePaths) {
+ add(modulePath);
+ }
+ }
+
+ for (const linked of getLinkedEnactWatchRoots(context)) {
+ add(linked);
+ }
+
+ return roots;
+}
+
+/**
+ * Watch project roots and invoke onChange (debounced) when source files change.
+ * Bun.build has no watch/onRebuild API, so pack/serve use this instead.
+ */
+function createFileWatcher (roots, options = {}) {
+ const debounceMs = options.debounceMs ?? 200;
+ const onChange = options.onChange;
+ const ignoreAbsolute = (options.ignorePaths || []).map(normalizePath);
+ const filter = options.filter;
+
+ let timer = null;
+ let closed = false;
+ let pending = new Set();
+ const watchers = [];
+
+ const isIgnoredAbsolute = absPath => {
+ const normalized = normalizePath(absPath);
+ return ignoreAbsolute.some(
+ ignored => normalized === ignored || normalized.startsWith(`${ignored}/`)
+ );
+ };
+
+ const flush = () => {
+ timer = null;
+ if (closed || !onChange || pending.size === 0) {
+ pending.clear();
+ return;
+ }
+ const files = [...pending];
+ pending.clear();
+ Promise.resolve(onChange(files)).catch(err => {
+ console.error('Watch rebuild failed:', err);
+ });
+ };
+
+ const queue = (root, filename) => {
+ if (!filename || closed) return;
+
+ const relative = String(filename).replace(/\\/g, '/');
+ if (shouldIgnoreRelative(relative) || !isWatchableFile(relative)) {
+ return;
+ }
+
+ const absolute = normalizePath(path.join(root, filename));
+ if (isIgnoredAbsolute(absolute)) {
+ return;
+ }
+ if (filter && !filter(absolute, relative)) {
+ return;
+ }
+
+ pending.add(absolute);
+ if (timer) {
+ clearTimeout(timer);
+ }
+ timer = setTimeout(flush, debounceMs);
+ };
+
+ for (const root of roots) {
+ const resolvedRoot = path.resolve(root);
+ if (!fs.existsSync(resolvedRoot)) {
+ continue;
+ }
+
+ try {
+ const watcher = fs.watch(resolvedRoot, {recursive: true}, (_eventType, filename) => {
+ queue(resolvedRoot, filename);
+ });
+ watcher.on('error', err => {
+ console.warn(`File watcher error (${resolvedRoot}):`, err.message);
+ });
+ watchers.push(watcher);
+ } catch (err) {
+ console.warn(`Unable to watch ${resolvedRoot}:`, err.message);
+ }
+ }
+
+ return {
+ close () {
+ closed = true;
+ if (timer) {
+ clearTimeout(timer);
+ timer = null;
+ }
+ pending.clear();
+ for (const watcher of watchers) {
+ watcher.close();
+ }
+ watchers.length = 0;
+ }
+ };
+}
+
+module.exports = {
+ createFileWatcher,
+ shouldIgnoreRelative,
+ isWatchableFile,
+ getLinkedEnactWatchRoots,
+ collectWatchRoots
+};
diff --git a/config/bun/webos-meta.js b/config/bun/webos-meta.js
new file mode 100644
index 00000000..e90426ce
--- /dev/null
+++ b/config/bun/webos-meta.js
@@ -0,0 +1,134 @@
+const fs = require('fs-extra');
+const path = require('path');
+const glob = require('glob');
+
+const PROPS = [
+ 'icon',
+ 'largeIcon',
+ 'extraLargeIcon',
+ 'miniicon',
+ 'smallicon',
+ 'splashicon',
+ 'splashBackground',
+ 'bgImage',
+ 'imageForRecents'
+];
+
+let sysAssetsPath = 'sys-assets';
+let variableSysPaths = null;
+const assetPathCache = {};
+
+function readAppInfo (file) {
+ if (!fs.existsSync(file)) return null;
+ try {
+ return JSON.parse(fs.readFileSync(file, {encoding: 'utf8'}));
+ } catch (_e) {
+ console.log('ERROR: unable to read/parse appinfo.json at ' + file);
+ return null;
+ }
+}
+
+function handleSysAssetPath (context, appinfo) {
+ if (appinfo.sysAssetsBasePath && appinfo.sysAssetsBasePath !== sysAssetsPath) {
+ sysAssetsPath = appinfo.sysAssetsBasePath;
+ variableSysPaths = null;
+ }
+ const sys = path.join(context, sysAssetsPath);
+ if (!variableSysPaths && fs.existsSync(sys)) {
+ variableSysPaths = fs.readdirSync(sys)
+ .map(name => path.join(context, sysAssetsPath, name))
+ .filter(entry => fs.statSync(entry).isDirectory());
+ }
+}
+
+function detectSysAssets (name) {
+ const result = [];
+ const trueName = name.substring(1);
+ for (const dir of variableSysPaths || []) {
+ const abs = path.resolve(path.join(dir, trueName));
+ if (fs.existsSync(abs)) {
+ result.push(abs);
+ }
+ }
+ return result;
+}
+
+function rootAppInfo (context, specific) {
+ const rootDir = [context, path.join(context, 'webos-meta')];
+ if (specific) {
+ rootDir.unshift(path.isAbsolute(specific) ? specific : path.join(context, specific));
+ }
+ for (const root of rootDir) {
+ const meta = readAppInfo(path.join(root, 'appinfo.json'));
+ if (meta) {
+ return {path: root, obj: meta};
+ }
+ }
+ return null;
+}
+
+function copyMetaAsset (abs, outPath, output) {
+ const dest = path.join(output, outPath);
+ fs.ensureDirSync(path.dirname(dest));
+ if (!fs.existsSync(dest)) {
+ fs.copySync(abs, dest, {dereference: true});
+ }
+}
+
+function addMetaAssets (metaDir, outDirPrefix, appinfo, output) {
+ for (const prop of PROPS) {
+ if (!appinfo[prop]) continue;
+ const assets = appinfo[prop].charAt(0) === '$'
+ ? detectSysAssets(appinfo[prop])
+ : [path.resolve(path.join(metaDir, appinfo[prop]))];
+
+ for (const abs of assets) {
+ if (appinfo[prop].charAt(0) === '$') {
+ if (!assetPathCache[abs]) {
+ assetPathCache[abs] = path.relative(metaDir, abs).replace(/\\/g, '/');
+ }
+ } else if (assetPathCache[abs]) {
+ appinfo[prop] = path.relative(outDirPrefix || output, assetPathCache[abs]).replace(/\\/g, '/');
+ } else {
+ assetPathCache[abs] = path.join(outDirPrefix || '', appinfo[prop]).replace(/\\/g, '/');
+ }
+
+ if (fs.existsSync(abs)) {
+ copyMetaAsset(abs, assetPathCache[abs], output);
+ }
+ }
+ }
+}
+
+function applyWebOSMeta (context, output, options = {}) {
+ sysAssetsPath = 'sys-assets';
+ variableSysPaths = null;
+ Object.keys(assetPathCache).forEach(key => delete assetPathCache[key]);
+
+ const meta = rootAppInfo(context, options.path);
+ if (meta && meta.obj) {
+ let appinfo = {...meta.obj};
+ if (options.v8SnapshotFile) {
+ appinfo.v8SnapshotFile = options.v8SnapshotFile;
+ }
+ handleSysAssetPath(context, appinfo);
+ addMetaAssets(meta.path, '', appinfo, output);
+ fs.writeFileSync(path.join(output, 'appinfo.json'), JSON.stringify(appinfo, null, '\t') + '\n', {encoding: 'utf8'});
+ }
+
+ const localized = glob.sync('resources/**/appinfo.json', {cwd: context, absolute: true});
+ for (const locFile of localized) {
+ const locRel = path.relative(context, locFile).replace(/\\/g, '/');
+ const locMeta = readAppInfo(locFile);
+ if (!locMeta) continue;
+
+ handleSysAssetPath(context, locMeta);
+ addMetaAssets(path.dirname(locFile), path.dirname(locRel), locMeta, output);
+ fs.ensureDirSync(path.join(output, path.dirname(locRel)));
+ fs.writeFileSync(path.join(output, locRel), JSON.stringify(locMeta, null, '\t') + '\n', {encoding: 'utf8'});
+ }
+
+ return meta && meta.obj && meta.obj.title;
+}
+
+module.exports = {applyWebOSMeta, rootAppInfo, readAppInfo};
diff --git a/config/createEnvironmentHash.js b/config/createEnvironmentHash.js
deleted file mode 100644
index d117a2cb..00000000
--- a/config/createEnvironmentHash.js
+++ /dev/null
@@ -1,9 +0,0 @@
-'use strict';
-const {createHash} = require('crypto');
-
-module.exports = env => {
- const hash = createHash('md5');
- hash.update(JSON.stringify(env));
-
- return hash.digest('hex');
-};
diff --git a/config/webpack.config.js b/config/webpack.config.js
deleted file mode 100644
index 54be65f8..00000000
--- a/config/webpack.config.js
+++ /dev/null
@@ -1,685 +0,0 @@
-/* eslint no-console: off, no-undef: off */
-/* eslint-env node, es6 */
-// @remove-on-eject-begin
-/**
- * Portions of this source code file are from create-react-app, used under the
- * following MIT license:
- *
- * Copyright (c) 2013-present, Facebook, Inc.
- * https://github.com/facebook/create-react-app
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
-// @remove-on-eject-end
-
-const fs = require('fs');
-const path = require('path');
-const CaseSensitivePathsPlugin = require('case-sensitive-paths-webpack-plugin');
-const ESLintPlugin = require('eslint-webpack-plugin');
-const ForkTsCheckerWebpackPlugin =
- process.env.TSC_COMPILE_ON_ERROR === 'true' ?
- require('react-dev-utils/ForkTsCheckerWarningWebpackPlugin') :
- require('react-dev-utils/ForkTsCheckerWebpackPlugin');
-const HtmlWebpackPlugin = require('html-webpack-plugin');
-const MiniCssExtractPlugin = require('mini-css-extract-plugin');
-const CssMinimizerPlugin = require('css-minimizer-webpack-plugin');
-const getPublicUrlOrPath = require('react-dev-utils/getPublicUrlOrPath');
-const ModuleNotFoundPlugin = require('react-dev-utils/ModuleNotFoundPlugin');
-const NodePolyfillPlugin = require('node-polyfill-webpack-plugin');
-const resolve = require('resolve');
-const TerserPlugin = require('terser-webpack-plugin');
-const {DefinePlugin, EnvironmentPlugin} = require('webpack');
-const {
- optionParser: app,
- cssModuleIdent: getLocalIdent,
- GracefulFsPlugin,
- ILibPlugin,
- WebOSMetaPlugin
-} = require('@enact/dev-utils');
-const createEnvironmentHash = require('./createEnvironmentHash');
-
-// This is the production and development configuration.
-// It is focused on developer experience, fast rebuilds, and a minimal bundle.
-module.exports = function (
- env,
- noLinting = false,
- contentHash = false,
- isomorphic = false,
- noAnimation = false,
- noSplitCSS = false,
- ilibAdditionalResourcesPath
-) {
- process.chdir(app.context);
-
- // Load applicable .env files into environment variables.
- require('./dotenv').load(app.context);
-
- // Sets the browserslist default fallback set of browsers to the Enact default browser support list.
- app.setEnactTargetsAsDefault();
-
- // Check if TypeScript is setup
- const useTypeScript = fs.existsSync('tsconfig.json');
-
- // Check if Tailwind config exists
- const useTailwind = fs.existsSync(path.join(app.context, 'tailwind.config.js'));
-
- process.env.NODE_ENV = env || process.env.NODE_ENV;
- const isEnvProduction = process.env.NODE_ENV === 'production';
-
- const publicPath = getPublicUrlOrPath(!isEnvProduction, app.publicUrl, process.env.PUBLIC_URL).replace(/^\/$/, '');
-
- // Source maps are resource heavy and can cause out of memory issue for large source files.
- // By default, sourcemaps will be used in development, however it can universally forced
- // on or off by setting the GENERATE_SOURCEMAP environment variable.
- const GENERATE_SOURCEMAP = process.env.GENERATE_SOURCEMAP || (isEnvProduction ? 'false' : 'true');
- const shouldUseSourceMap = GENERATE_SOURCEMAP !== 'false';
-
- // common function to get style loaders
- const getStyleLoaders = (cssLoaderOptions = {}, preProcessor) => {
- // Multiple styling-support features are used together, bottom-to-top.
- // An optonal preprocessor, like "less loader", compiles LESS syntax into CSS.
- // "postcss" loader applies autoprefixer to our CSS.
- // "css" loader resolves paths in CSS and adds assets as dependencies.
- // `MiniCssExtractPlugin` takes the resulting CSS and puts it into an
- // external file in our build process. If you use code splitting, any async
- // bundles will stilluse the "style" loader inside the async code so CSS
- // from them won't be in the main CSS file.
- // When INLINE_STYLES env var is set, instead of MiniCssExtractPlugin, uses
- // `style` loader to dynamically inline CSS in style tags at runtime.
- const mergedCssLoaderOptions = {
- ...cssLoaderOptions,
- modules: {
- ...cssLoaderOptions.modules,
- // Options to restore 6.x behavior:
- // https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md#700-2024-04-04
- namedExport: false,
- exportLocalsConvention: 'as-is'
- }
- };
-
- const loaders = [
- process.env.INLINE_STYLES ? require.resolve('style-loader') : MiniCssExtractPlugin.loader,
- {
- loader: require.resolve('css-loader'),
- options: Object.assign({sourceMap: shouldUseSourceMap}, mergedCssLoaderOptions, {
- url: {
- filter: url => {
- // Don't handle absolute path urls
- if (url.startsWith('/')) {
- return false;
- }
-
- return true;
- }
- }
- })
- },
- {
- // Options for PostCSS as we reference these options twice
- // Adds vendor prefixing based on your specified browser support in
- // package.json
- loader: require.resolve('postcss-loader'),
- options: {
- postcssOptions: {
- // Necessary for external CSS imports to work
- // https://github.com/facebook/create-react-app/issues/2677
- ident: 'postcss',
- plugins: [
- useTailwind && 'tailwindcss',
- // Fix and adjust for known flexbox issues
- // See https://github.com/philipwalton/flexbugs
- 'postcss-flexbugs-fixes',
- // Transpile stage-3 CSS standards based on browserslist targets.
- // See https://preset-env.cssdb.org/features for supported features.
- // Includes support for targetted auto-prefixing.
- [
- 'postcss-preset-env',
- {
- autoprefixer: {
- flexbox: 'no-2009',
- remove: false
- },
- stage: 3,
- features: {'custom-properties': false}
- }
- ],
- // Adds PostCSS Normalize to standardize browser quirks based on
- // the browserslist targets.
- !useTailwind && require('postcss-normalize'),
- // Resolution indepedence support
- app.ri !== false && require('postcss-resolution-independence')(app.ri),
- // Support importing JSON files with ~ alias - custom plugin (must run first)
- {
- postcssPlugin: 'postcss-import-json-tilde',
- Once (root) {
- // Process all @import-json rules with ~ prefix first, before other plugins
- root.walkAtRules('import-json', atRule => {
- let src = atRule.params.slice(1, -1); // Remove quotes
-
- // Only handle ~ alias paths
- if (src.startsWith('~')) {
- const packagePath = src.substring(1); // Remove ~
-
- try {
- // Use Node.js standard module resolution
- // This mimics webpack's ~ alias behavior
- const currentFileDir = path.dirname(atRule.source.input.file || '');
-
- // Try to resolve the module using require.resolve
- // This follows standard Node.js module resolution algorithm
- let resolvedPath;
- try {
- // First try from current file's directory
- resolvedPath = require.resolve(packagePath, {
- paths: [currentFileDir]
- });
- } catch (e) {
- // Fallback to current working directory
- resolvedPath = require.resolve(packagePath, {
- paths: [process.cwd()]
- });
- }
-
- // Convert to relative path for the original plugin
- const relativePath = path.relative(currentFileDir, resolvedPath);
- atRule.params = `"${relativePath}"`;
- } catch (error) {
- // If resolution fails, try manual node_modules lookup
- try {
- let currentDir = path.dirname(
- atRule.source.input.file || process.cwd()
- );
- let found = false;
-
- // Walk up directories to find node_modules
- while (currentDir !== path.parse(currentDir).root && !found) {
- const moduleDir = path.join(
- currentDir,
- 'node_modules',
- packagePath
- );
- if (fs.existsSync(moduleDir)) {
- const relativePath = path.relative(
- path.dirname(atRule.source.input.file || ''),
- moduleDir
- );
- atRule.params = `"${relativePath}"`;
- found = true;
- break;
- }
- currentDir = path.dirname(currentDir);
- }
-
- if (!found) {
- console.warn(`Could not resolve module path: ${packagePath}`);
- }
- } catch (fallbackError) {
- console.warn(
- `Failed to resolve ${packagePath}:`,
- fallbackError.message
- );
- }
- }
- }
- });
- }
- },
- // Support importing JSON files in CSS - original plugin (for non-~ paths)
- [
- '@daltontan/postcss-import-json',
- {
- map: (selector, value) => {
- if (typeof value === 'object' && value !== null && value.$ref) {
- const tokenPath = value.$ref.split('#/')[1];
- const cssVariableName = '--' + tokenPath.replace(/\//g, '-');
-
- return `var(${cssVariableName})`;
- }
- return value;
- }
- }
- ]
- ].filter(Boolean)
- },
- sourceMap: shouldUseSourceMap
- }
- }
- ];
- if (preProcessor) {
- loaders.push(preProcessor);
- }
- return loaders;
- };
-
- const getLessStyleLoaders = cssLoaderOptions =>
- getStyleLoaders(cssLoaderOptions, {
- loader: require.resolve('less-loader'),
- options: {
- lessOptions: {
- modifyVars: Object.assign({__DEV__: !isEnvProduction}, app.accent)
- },
- sourceMap: shouldUseSourceMap
- }
- });
-
- const getScssStyleLoaders = cssLoaderOptions =>
- getStyleLoaders(cssLoaderOptions, {
- loader: require.resolve('sass-loader'),
- options: {
- sourceMap: shouldUseSourceMap
- }
- });
-
- const getAdditionalModulePaths = paths => {
- if (!paths) return [];
- return Array.isArray(paths) ? paths : [paths];
- };
-
- return {
- mode: isEnvProduction ? 'production' : 'development',
- // Don't attempt to continue if there are any errors.
- bail: true,
- // Webpack noise constrained to errors only
- stats: 'errors-only',
- // Use source maps during development builds or when specified by GENERATE_SOURCEMAP
- devtool: shouldUseSourceMap && (isEnvProduction ? 'source-map' : 'cheap-module-source-map'),
- // These are the "entry points" to our application.
- entry: {
- main: [
- // Include any polyfills needed for the target browsers.
- require.resolve('./polyfills'),
- // This is your app's code
- app.context
- ]
- },
- output: {
- // The build output directory.
- path: path.resolve('./dist'),
- // Generated JS file names (with nested folders).
- // There will be one main bundle, and one file per asynchronous chunk.
- // We don't currently advertise code splitting but Webpack supports it.
- filename: contentHash ? '[name].[contenthash].js' : '[name].js',
- // There are also additional JS chunk files if you use code splitting.
- chunkFilename: contentHash ? 'chunk.[name].[contenthash].js' : 'chunk.[name].js',
- assetModuleFilename: contentHash ? '[path][name][contenthash][ext]' : '[path][name][ext]',
- // Add /* filename */ comments to generated require()s in the output.
- pathinfo: !isEnvProduction,
- publicPath,
- // Improved sourcemap path name mapping for system filepaths
- devtoolModuleFilenameTemplate: info => {
- let file = isEnvProduction ?
- path.relative(app.context, info.absoluteResourcePath) :
- path.resolve(info.absoluteResourcePath);
- file = file.replace(/\\/g, '/').replace(/\.\./g, '_');
- const loader = info.allLoaders.match(/[^\\/]+-loader/);
- if (info.resource.includes('.less') && loader) {
- // Temporary special handling for LESS files. The css-loader will
- // output absolute-path mapped LESS sourcemaps, unaffected by this
- // function, while both css-loader and style-loader pseudo modules
- // will get their own sourcemaps. Good to differentiate.
- return file + '?' + loader[0];
- } else {
- return file;
- }
- }
- },
- cache: {
- type: 'filesystem',
- version: createEnvironmentHash(Object.keys(process.env)),
- cacheDirectory: path.resolve('./node_modules/.cache'),
- store: 'pack',
- buildDependencies: {
- defaultWebpack: ['webpack/lib/'],
- config: [__filename],
- tsconfig: useTypeScript ? ['tsconfig.json'] : []
- }
- },
- infrastructureLogging: {
- level: 'none'
- },
- ignoreWarnings: [
- // We ignore 'Module not found' warnings from SnapshotPlugin
- {
- module: /SnapshotPlugin/,
- message: /Module not found/
- }
- ],
- resolve: {
- // These are the reasonable defaults supported by the React/ES6 ecosystem.
- extensions: ['.js', '.mjs', '.jsx', '.ts', '.tsx', '.json'].filter(
- ext => useTypeScript || !ext.includes('ts')
- ),
- // Allows us to specify paths to check for module resolving.
- modules: [
- path.resolve('./node_modules'),
- 'node_modules',
- ...getAdditionalModulePaths(app.additionalModulePaths)
- ],
- // Don't resolve symlinks to their underlying paths
- symlinks: false,
- // Backward compatibility for apps using new ilib references with old Enact
- // and old apps referencing old iLib location with new Enact
- alias: Object.assign(
- {
- 'react-is': path.dirname(require.resolve('react-is/package.json'))
- },
- fs.existsSync(path.join(app.context, 'node_modules', '@enact', 'i18n', 'ilib')) ?
- {ilib: '@enact/i18n/ilib'} :
- {'@enact/i18n/ilib': 'ilib'},
- app.alias
- ),
- // Optional configuration for redirecting module requests.
- fallback: app.resolveFallback
- },
- // @remove-on-eject-begin
- // Resolve loaders (webpack plugins for CSS, images, transpilation) from the
- // directory of `@enact/cli` itself rather than the project directory.
- resolveLoader: {
- modules: [path.resolve(__dirname, '../node_modules'), path.resolve('./node_modules')]
- },
- // @remove-on-eject-end
- module: {
- rules: [
- shouldUseSourceMap && {
- enforce: 'pre',
- exclude: /@babel(?:\/|\\{1,2})runtime/,
- test: /\.(js|mjs|jsx|ts|tsx|css)$/,
- loader: require.resolve('source-map-loader')
- },
- {
- // "oneOf" will traverse all following loaders until one will
- // match the requirements. When no loader matches it will fall
- // back to the "file" loader at the end of the loader list.
- oneOf: [
- // Process JS with Babel.
- {
- test: /\.(js|mjs|jsx|ts|tsx)$/,
- exclude: /node_modules.(?!@enact)/,
- loader: require.resolve('babel-loader'),
- options: {
- configFile: path.join(__dirname, 'babel.config.js'),
- babelrc: false,
- // This is a feature of `babel-loader` for webpack (not Babel itself).
- // It enables caching results in ./node_modules/.cache/babel-loader/
- // directory for faster rebuilds.
- cacheDirectory: !isEnvProduction,
- cacheCompression: false,
- compact: isEnvProduction
- }
- },
- // Style-based rules support both LESS and CSS format, with *.module.* extension format
- // to designate CSS modular support.
- // See comments within `getStyleLoaders` for details on the stylesheet loader chains and
- // options used at each level of processing.
- {
- test: /\.module\.css$/,
- use: getStyleLoaders({
- importLoaders: 1,
- modules: {
- ...(isEnvProduction ? {} : {getLocalIdent})
- }
- })
- },
- {
- test: /\.css$/,
- // The `forceCSSModules` Enact build option can be set true to universally apply
- // modular CSS support.
- use: getStyleLoaders({
- importLoaders: 1,
- modules: {
- ...(app.forceCSSModules ? {} : {mode: 'icss'}),
- ...(!app.forceCSSModules && isEnvProduction ? {} : {getLocalIdent})
- }
- }),
- // Don't consider CSS imports dead code even if the
- // containing package claims to have no side effects.
- // Remove this when webpack adds a warning or an error for this.
- // See https://github.com/webpack/webpack/issues/6571
- sideEffects: true
- },
- {
- test: /\.module\.less$/,
- use: getLessStyleLoaders({
- importLoaders: 2,
- modules: {
- ...(isEnvProduction ? {} : {getLocalIdent})
- }
- })
- },
- {
- test: /\.less$/,
- use: getLessStyleLoaders({
- importLoaders: 2,
- modules: {
- ...(app.forceCSSModules ? {} : {mode: 'icss'}),
- ...(!app.forceCSSModules && isEnvProduction ? {} : {getLocalIdent})
- }
- }),
- sideEffects: true
- },
- // Opt-in support for CSS Modules, but using SASS
- // using the extension .module.scss or .module.sass
- {
- test: /\.module\.(scss|sass)$/,
- use: getScssStyleLoaders({
- importLoaders: 3,
- modules: {
- ...(isEnvProduction ? {} : {getLocalIdent})
- }
- })
- },
- // Opt-in support for SASS (using .scss or .sass extensions)
- {
- test: /\.(scss|sass)$/,
- use: getScssStyleLoaders({
- importLoaders: 3,
- modules: {
- ...(app.forceCSSModules ? {} : {mode: 'icss'}),
- ...(!app.forceCSSModules && isEnvProduction ? {} : {getLocalIdent})
- }
- })
- },
- // "file" loader handles on all files not caught by the above loaders.
- // When you `import` an asset, you get its output filename and the file
- // is copied during the build process.
- {
- // Exclude `js` files to keep "css" loader working as it injects
- // its runtime that would otherwise be processed through "file" loader.
- // Also exclude `html` and `json` extensions so they get processed
- // by webpacks internal loaders.
- // Exclude `ejs` HTML templating language as that's handled by
- // the HtmlWebpackPlugin.
- exclude: [/^$/, /\.(js|mjs|jsx|ts|tsx)$/, /\.html$/, /\.ejs$/, /\.json$/],
- type: 'asset/resource'
- }
- // ** STOP ** Are you adding a new loader?
- // Make sure to add the new loader(s) before the "file" loader.
- ]
- }
- ].filter(Boolean)
- },
- // Target app to build for a specific environment (default 'browserslist')
- target: app.environment,
- // Optional configuration for polyfilling NodeJS built-ins.
- node: app.nodeBuiltins,
- performance: false,
- optimization: {
- minimize: isEnvProduction,
- // These are only used in production mode
- minimizer: [
- new TerserPlugin({
- terserOptions: {
- parse: {
- // we want uglify-js to parse ecma 8 code. However, we don't want it
- // to apply any minfication steps that turns valid ecma 5 code
- // into invalid ecma 5 code. This is why the 'compress' and 'output'
- // sections only apply transformations that are ecma 5 safe
- // https://github.com/facebook/create-react-app/pull/4234
- ecma: 8
- },
- compress: {
- ecma: 5,
- warnings: false,
- // Disabled because of an issue with Uglify breaking seemingly valid code:
- // https://github.com/facebook/create-react-app/issues/2376
- // Pending further investigation:
- // https://github.com/mishoo/UglifyJS2/issues/2011
- comparisons: false,
- // Disabled because of an issue with Terser breaking valid code:
- // https://github.com/facebook/create-react-app/issues/5250
- // Pending futher investigation:
- // https://github.com/terser-js/terser/issues/120
- inline: 2
- },
- mangle: {
- safari10: true
- },
- output: {
- ecma: 5,
- comments: false,
- // Turned on because emoji and regex is not minified properly using default
- // https://github.com/facebook/create-react-app/issues/2488
- // eslint-disable-next-line camelcase
- ascii_only: true
- }
- },
- // Use multi-process parallel running to improve the build speed
- // Default number of concurrent runs: os.cpus().length - 1
- parallel: true
- }),
- new CssMinimizerPlugin()
- ],
- splitChunks: noSplitCSS && {
- cacheGroups: {
- styles: {
- name: 'main',
- type: 'css/mini-extract',
- chunks: 'all',
- enforce: true
- }
- }
- }
- },
- plugins: [
- // Generates an `index.html` file with the js and css tags injected.
- new HtmlWebpackPlugin({
- // Title can be specified in the package.json enact options or will
- // be determined automatically from any appinfo.json files discovered.
- title: app.title || '',
- inject: 'body',
- template: app.template || path.join(__dirname, 'html-template.ejs'),
- xhtml: true,
- minify: isEnvProduction && {
- removeComments: true,
- collapseWhitespace: false,
- removeRedundantAttributes: true,
- useShortDoctype: true,
- removeEmptyAttributes: true,
- removeStyleLinkTypeAttributes: true,
- keepClosingSlash: true,
- minifyJS: true,
- minifyCSS: true,
- minifyURLs: true
- }
- }),
- // Make NODE_ENV environment variable available to the JS code, for example:
- // if (process.env.NODE_ENV === 'production') { ... }.
- // It is absolutely essential that NODE_ENV was set to production here.
- // Otherwise React will be compiled in the very slow development mode.
- new DefinePlugin({
- 'process.env.NODE_ENV': JSON.stringify(isEnvProduction ? 'production' : 'development'),
- 'process.env.PUBLIC_URL': JSON.stringify(publicPath),
- // Define ENACT_PACK_ISOMORPHIC global variable to determine to use
- // `hydrateRoot` for isomorphic build and `createRoot` for non-isomorphic build by app.
- ENACT_PACK_ISOMORPHIC: isomorphic,
- // Define ENACT_PACK_NO_ANIMATION global variable to determine
- // whether to build including effects such as animation or shadow or not.
- ENACT_PACK_NO_ANIMATION: noAnimation
- }),
- // Inject prefixed environment variables within code, when used
- new EnvironmentPlugin(Object.keys(process.env).filter(key => /^(REACT_APP|WDS_SOCKET)/.test(key))),
- // Note: this won't work without MiniCssExtractPlugin.loader in `loaders`.
- !process.env.INLINE_STYLES &&
- new MiniCssExtractPlugin({
- filename: contentHash ? '[name].[contenthash].css' : '[name].css',
- chunkFilename: contentHash ? 'chunk.[name].[contenthash].css' : 'chunk.[name].css',
- ignoreOrder: noSplitCSS
- }),
- // Webpack5 removed node polyfills but we need this to run screenshot tests
- new NodePolyfillPlugin({
- additionalAliases: ['console', 'domain', 'process', 'stream']
- }),
- // Provide meaningful information when modules are not found
- new ModuleNotFoundPlugin(app.context),
- // Ensure correct casing in module filepathes
- new CaseSensitivePathsPlugin(),
- // Switch the internal NodeOutputFilesystem to use graceful-fs to avoid
- // EMFILE errors when hanndling mass amounts of files at once, such as
- // what happens when using ilib bundles/resources.
- new GracefulFsPlugin(),
- // Automatically configure iLib library within @enact/i18n. Additionally,
- // ensure the locale data files and the resource files are copied during
- // the build to the output directory.
- new ILibPlugin({publicPath, symlinks: false, ilibAdditionalResourcesPath}),
- // Automatically detect ./appinfo.json and ./webos-meta/appinfo.json files,
- // and parses any to copy over any webOS meta assets at build time.
- new WebOSMetaPlugin({htmlPlugin: HtmlWebpackPlugin}),
- // TypeScript type checking
- useTypeScript &&
- new ForkTsCheckerWebpackPlugin({
- async: !isEnvProduction,
- typescript: {
- typescriptPath: resolve.sync('typescript', {
- basedir: 'node_modules'
- }),
- configOverwrite: {
- compilerOptions: {
- sourceMap: shouldUseSourceMap,
- skipLibCheck: true,
- inlineSourceMap: false,
- declarationMap: false,
- noEmit: true,
- incremental: true,
- tsBuildInfoFile: 'node_modules/.cache/tsconfig.tsbuildinfo'
- }
- },
- context: app.context,
- diagnosticOptions: {
- syntactic: true
- },
- mode: 'write-references'
- // profile: true,
- },
- issue: {
- // prettier-ignore
- include: [
- {file: '../**/src/**/*.{ts,tsx}'},
- {file: '**/src/**/*.{ts,tsx}'}
- ],
- exclude: [
- {file: '**/src/**/__tests__/**'},
- {file: '**/src/**/?(*.){spec|test}.*'},
- {file: '**/src/setupProxy.*'},
- {file: '**/src/setupTests.*'}
- ]
- },
- logger: {
- infrastructure: 'silent'
- }
- }),
- !noLinting &&
- new ESLintPlugin({
- // Plugin options
- configType: 'flat',
- extensions: ['js', 'mjs', 'jsx', 'ts', 'tsx'],
- formatter: require.resolve('react-dev-utils/eslintFormatter'),
- eslintPath: require.resolve('eslint'),
- // @remove-on-eject-begin
- overrideConfigFile: require.resolve('./eslintWebpackPluginConfig'),
- // @remove-on-eject-end
- cache: true
- })
- ].filter(Boolean)
- };
-};
diff --git a/docs/building-apps.md b/docs/building-apps.md
index a2014e40..ba971d50 100644
--- a/docs/building-apps.md
+++ b/docs/building-apps.md
@@ -125,7 +125,7 @@ To use Sass, install Sass globally:
npm install -g sass
```
-Now you can rename `src/App.css` to `src/App.scss` or `src/App.sass` and for using CSS modules, `src/App.module.scss` or `src/App.module.sass`. And update `src/App.js` to import `src/App.scss`. Enact CLI will compile these files properly through webpack for you.
+Now you can rename `src/App.css` to `src/App.scss` or `src/App.sass` and for using CSS modules, `src/App.module.scss` or `src/App.module.sass`. And update `src/App.js` to import `src/App.scss`. Enact CLI will compile these files properly through Bun for you.
More information can be found [here](https://sass-lang.com/guide) to learn about Sass.
@@ -233,7 +233,7 @@ To accommodate devices with lower performance, the Enact CLI offers the `--no-an
## Caching
-For supporting better [`caching`](https://webpack.js.org/guides/caching/), Enact CLI provides `--content-hash` option to add a unique hash to each output file name based on the content of an asset.
+For supporting better caching, Enact CLI provides `--content-hash` option to add a unique hash to each output file name based on the content of an asset.
Building With this option should produce the following output:
@@ -248,7 +248,7 @@ When the content changes, the output file name will change as well.
199.85 kB dist/main.2088c66150ab73b27793.css
```
-> **NOTE** The filename `main.*.js` will be changed after another building, even without making any changes. This is because webpack includes certain boilerplate, specifically the runtime and manifest, in the entry chunk.
+> **NOTE** The filename `main.*.js` may change after another building, even without making changes, depending on bundler runtime output.
## Isomorphic Support & Prerendering
By using the isomorphic code layout option, your project bundle will be outputted in a versatile universal code format allowing potential usage outside the browser. The Enact CLI takes advantage of this mode by additionally generating an HTML output of your project and embedding it directly with the resulting **index.html**. By default, isomorphic mode will attempt to prerender only `en-US`, however with the `--locales` option, a wide variety of locales can be specified and prerendered. More details on isomorphic support and its limitations can be found [here](./isomorphic-support.md).
@@ -260,7 +260,10 @@ The v8 snapshot blob creation feature is highly experimental and temperamental d
Similar to the [`enact serve`](./serving-apps.md) command, the watcher will build the project and wait for any detected source code changes. When a change is detected, it will rebuild the project. The rebuild time will be significantly faster since the process can actively cache and build only what has changed.
## Stats Analysis
-The Bundle analysis file option uses the popular [webpack-bundle-analyzer](https://github.com/webpack-contrib/webpack-bundle-analyzer) to create a visual representation of the project build to **stats.html**, showing the full module hierarchy arranged by output size. This can be very useful in determining where bloat is coming from or finding dependencies that may have been included by mistake.
+The `--stats` option generates bundle analysis files in the output directory using Bun's build metafile:
+
+* **stats.html** — static report with largest modules and output breakdown
+* **stats.json** — raw metafile data (compatible with [esbuild's bundle analyzer](https://esbuild.github.io/analyze/))
## Override Metadata
The @enact/cli tool inspects the `enact` object in the project's package.json for [customization options](./starting-a-new-app.md#enact-project-settings).
diff --git a/docs/ejecting-apps.md b/docs/ejecting-apps.md
index fdcc0c25..eed33940 100644
--- a/docs/ejecting-apps.md
+++ b/docs/ejecting-apps.md
@@ -12,7 +12,7 @@ sidebar:
Options
-b, --bare Abandon Enact CLI command enhancements
and eject into a a barebones setup (using
- webpack, eslint, jest, etc. directly)
+ Bun, eslint, jest, etc. directly)
-v, --version Display version information
-h, --help Display help information
```
@@ -20,11 +20,11 @@ The `enact eject` command will permanently eject an app from within the Enact CL
## Should I Eject My App?
-A question that may come up during the course of development is whether to eject an app for customization purposes. The default configuration of the Enact CLI tool is designed to meet the majority of use cases and keep the development environment abstracted. In rare circumstances where a webpack or Babel config customization is absolutely required, it may be necessary to eject. It is very important to leave ejection as a last resort since it will greatly increase the complexity of the app's dependencies and will remove the ability to take advantage of Enact CLI updates and improvements; the entirety of the app development cycle will now be up to you to maintain.
+A question that may come up during the course of development is whether to eject an app for customization purposes. The default configuration of the Enact CLI tool is designed to meet the majority of use cases and keep the development environment abstracted. In rare circumstances where a Bun or Babel config customization is absolutely required, it may be necessary to eject. It is very important to leave ejection as a last resort since it will greatly increase the complexity of the app's dependencies and will remove the ability to take advantage of Enact CLI updates and improvements; the entirety of the app development cycle will now be up to you to maintain.
## Post-Eject Development Environment
-Once an app is ejected, its structure will be changed fairly noticeable. All the polyfills and development tools (babel, webpack, less, jest, eslint, etc.) will be added to the **package.json** and the run-scripts will be updated to use them. Afterwards, your project should look like this:
+Once an app is ejected, its structure will be changed fairly noticeable. All the polyfills and development tools (babel, Bun, less, jest, eslint, etc.) will be added to the **package.json** and the run-scripts will be updated to use them. Afterwards, your project should look like this:
```none
my-app/
README.md
@@ -37,7 +37,9 @@ my-app/
babel.config.js
dotenv.js
html-template.ejs
- webpack.config.js
+ bun/
+ build.mjs
+ dev-server.mjs
jest/
babelTransform.js
fileTransform.js
@@ -55,4 +57,4 @@ my-app/
webos-meta/
```
-The **config** directory will contain all the main development configuration files: babel, webpack, and jest, along with polyfill setup files. Additionally, a **scripts** directory will be generated, containing shorthand wrapper scripts that replicate the Enact CLI output styling/usage. These scripts will keep a consistent developer experience between ejected and non-ejected apps. However, if `-b`/`--bare` flag is used during ejection, no scripts will be generated and the npm run-scripts will harness the raw tools (webpack/jest/eslint/etc) directly.
+The **config** directory will contain all the main development configuration files: babel, Bun build scripts, and jest, along with polyfill setup files. Additionally, a **scripts** directory will be generated, containing shorthand wrapper scripts that replicate the Enact CLI output styling/usage. These scripts will keep a consistent developer experience between ejected and non-ejected apps. However, if `-b`/`--bare` flag is used during ejection, no scripts will be generated and the npm run-scripts will harness the raw tools (Bun/jest/eslint/etc) directly.
diff --git a/docs/index.md b/docs/index.md
index 72d40a41..b26dbaf7 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -4,7 +4,9 @@ sidebar:
order: 1
---
-The Enact CLI package provides a command-line tool for creating and building Enact applications. It leverages powerful open source tools and technologies such as [webpack](https://webpack.js.org), [Babel](https://babeljs.io), [LESS](http://lesscss.org), and [Jest](https://jestjs.io) to provide a development environment for apps that requires zero configuration to get started.
+The Enact CLI package provides a command-line tool for creating and building Enact applications. It leverages [Bun](https://bun.com) as its bundler and development server, along with [Babel](https://babeljs.io), [LESS](http://lesscss.org), and [Jest](https://jestjs.io) to provide a development environment for apps that requires zero configuration to get started.
+
+**Requirements:** Node.js 20.12+ and [Bun 1.3+](https://bun.com/docs/installation).
The following sections describe its installation and usage:
diff --git a/docs/installation.md b/docs/installation.md
index dcbf2642..248124f4 100644
--- a/docs/installation.md
+++ b/docs/installation.md
@@ -5,7 +5,10 @@ sidebar:
---
## Requirements
-Node 10 LTS or later.
+* Node.js 20.12+, 22.x, or 24+
+* [Bun](https://bun.com) 1.3+ (bundler and dev server)
+
+Install Bun from https://bun.com/docs/installation before using `@enact/cli` v8+.
## Installation via npm
diff --git a/docs/isomorphic-support.md b/docs/isomorphic-support.md
index 52609375..e227b571 100644
--- a/docs/isomorphic-support.md
+++ b/docs/isomorphic-support.md
@@ -87,6 +87,6 @@ When multiple locales are specified for prerendering, each locale is evaluated i
## How It Works
With an isomorphic build, the app is built in a special pseudo-library layout, in a universal module definition ([UMD](https://github.com/umdjs/umd)) format. In a Node environment, the top-level export is the `ReactElement` export of the 'isomorphic' file. In a browser environment, the app executes normally.
-During the build process, a custom webpack plugin, `PrerenderPlugin`, will access the build within its Node environment and use React's [`ReactDOMServer`](https://reactjs.org/docs/react-dom-server.html#rendertostring) to render the initial state of the app into an HTML string and inject that into the **index.html** file, within the `root` ID `div` element. This is the same API used in server-side rendering.
+During the build process, the `PrerenderPlugin` post-build step accesses the bundle within its Node environment and uses React's [`ReactDOMServer`](https://reactjs.org/docs/react-dom-server.html#rendertostring) to render the initial state of the app into an HTML string and inject that into the **index.html** file, within the `root` ID `div` element. This is the same API used in server-side rendering.
When the webpage loads up in a browser environment, the built JavaScript is loaded normally (and is expected to render itself into the HTML), except React will detect the DOM tree and will simply attach event listeners and go through the React lifecycle methods.
diff --git a/docs/loading-existing-app.md b/docs/loading-existing-app.md
index e4d3e585..031c8246 100644
--- a/docs/loading-existing-app.md
+++ b/docs/loading-existing-app.md
@@ -22,7 +22,7 @@ npm install
## Available npm Tasks
npm tasks vary by package and are defined within a `scripts` object in the **package.json** file. If the app was created via the Enact CLI, then it will support the following npm task aliases:
-* `npm run serve` - Packages and hosts the app on a local http server using [webpack-dev-server](https://github.com/webpack/webpack-dev-server). Supports hot module replacement and inline updates as the source code changes.
+* `npm run serve` - Packages and hosts the app on a local http server using Bun's development server with HMR. Supports hot module replacement and inline updates as the source code changes.
* `npm run pack` - Packages the app into **./dist** in development mode (unminified code, with any applicable development code).
* `npm run pack-p` - Packages the app into **./dist** in production mode (minified code, with development code dropped).
* `npm run watch` - Packages in development mode and sets up a watcher that will rebuild the app whenever the source code changes.
diff --git a/docs/serving-apps.md b/docs/serving-apps.md
index e71d82c2..b1f275ec 100644
--- a/docs/serving-apps.md
+++ b/docs/serving-apps.md
@@ -18,7 +18,7 @@ sidebar:
-v, --version Display version information
-h, --help Display help information
```
-The `enact serve` command (aliased as `npm run serve`) will build and host your project on **http://localhost:8080/**. The options allow you to customize the host IP and host port, which can also be overriden via `HOST` and `PORT` environment variable. While the `enact serve` is active, any changes to source code will trigger a rebuild and update any loaded browser windows.
+The `enact serve` command (aliased as `npm run serve`) will build and host your project on **http://localhost:8080/** using Bun's full-stack development server with hot module replacement. The options allow you to customize the host IP and host port, which can also be overriden via `HOST` and `PORT` environment variable. While the `enact serve` is active, any changes to source code will trigger a rebuild and update any loaded browser windows.
## Custom Proxy
diff --git a/docs/starting-a-new-app.md b/docs/starting-a-new-app.md
index 696384be..6578ee54 100644
--- a/docs/starting-a-new-app.md
+++ b/docs/starting-a-new-app.md
@@ -22,7 +22,7 @@ This will generate a basic app based on the Limestone project template, complete
## Enact Project Settings
The @enact/cli tool will check the project's **package.json** looking for an optional `enact` object for a few customization options:
-* `template` _[string]_ - Filepath to an alternate HTML template to use with the [Webpack html-webpack-plugin](https://github.com/jantimon/html-webpack-plugin).
+* `template` _[string]_ - Filepath to an alternate HTML template used when generating **index.html**.
* `isomorphic` _[string]_ - Alternate filepath to a custom isomorphic-compatible entry point. Not needed if main entry point is already isomorphic-compatible.
* `title` _[string]_ - Title text that should be put within the HTML's `` tags. Note: if this is a webOS-project, the title will, by default, be auto-detected from the **appinfo.json** content.
* `theme` _[object]_ - A simplified string name to extrapolate `fontGenerator`, `ri`, and `screenTypes` preset values from. For example, `"limestone"`.
@@ -30,12 +30,12 @@ The @enact/cli tool will check the project's **package.json** looking for an opt
* `ri` _[object]_ - Resolution independence options to be forwarded to the [postcss-resolution-independence](https://github.com/enactjs/postcss-resolution-independence). By default, will use any preset for a specified theme or fallback to limestone.
* `baseSize` _[number]_ - The root font-size to use when converting the value of the base unit to a resolution-independent unit. For example, when `baseSize` is set to 24, 48px in the LESS file will be converted to 2rem.
* `screenTypes` _[array|string]_ - Array of 1 or more screentype definitions to be used with prerender HTML initialization. Can alternatively reference a json filepath to read for screentype definitions. By default, will use any preset for a specified theme or fallback to limestone.
-* `nodeBuiltins` _[object]_ - Configuration settings for polyfilling NodeJS built-ins. See `node` [webpack option](https://webpack.js.org/configuration/node/).
-* `resolveFallback` _[object]_ - Configuration settings for redirecting module requests when normal resolving fails. See `resolve.fallback` [webpack option](https://webpack.js.org/configuration/resolve/#resolvefallback).
+* `nodeBuiltins` _[object]_ - Configuration settings for polyfilling NodeJS built-ins.
+* `resolveFallback` _[object]_ - Configuration settings for redirecting module requests when normal resolving fails.
* `externalStartup` _[boolean]_ - Flag whether to externalize the startup/update js that is normally inlined within prerendered app HTML output.
* `forceCSSModules` _[boolean]_ - Flag whether to force all LESS/CSS to be processed in a modular context (not just the `*.module.css` and `*.module.less` files).
* `deep` _[string|array]_ - 1 or more JavaScript conditions that, when met, indicate deeplinking and any prerender should be discarded.
-* `target` _[string|array]_ - A build-type generic preset string (see `target` [webpack option](https://webpack.js.org/configuration/target/)) or alternatively a specific [browserslist array](https://github.com/browserslist/browserslist) of desired targets.
+* `target` _[string|array]_ - A build-type generic preset string or alternatively a specific [browserslist array](https://github.com/browserslist/browserslist) of desired targets.
* `proxy` _[string]_ - Proxy target during project `serve` to be used within the [http-proxy-middleware](https://github.com/chimurai/http-proxy-middleware).
For example:
@@ -60,7 +60,7 @@ For example:
## Available npm Tasks
Included within the project template are a number of npm tasks available, with each mapped to Enact CLI commands:
-* `npm run serve` - Packages and hosts the app on a local http server using [webpack-dev-server](https://github.com/webpack/webpack-dev-server). Supports hot module replacement and inline updates as the source code changes.
+* `npm run serve` - Packages and hosts the app on a local http server using Bun's development server with HMR. Supports hot module replacement and inline updates as the source code changes.
* `npm run pack` - Packages the app into **./dist** in development mode (unminified code, with any applicable development code).
* `npm run pack-p` - Packages the app into **./dist** in production mode (minified code, with development code dropped).
* `npm run watch` - Packages in development mode and sets up a watcher that will rebuild the app whenever the source code changes.
diff --git a/eslint.config.js b/eslint.config.js
new file mode 100644
index 00000000..8b36fb89
--- /dev/null
+++ b/eslint.config.js
@@ -0,0 +1,36 @@
+const strict = require('eslint-config-enact/strict');
+const globals = require('globals');
+
+const bunGlobals = {
+ ...globals.node,
+ Bun: 'readonly'
+};
+
+const bunRules = {
+ 'no-console': 'off',
+ 'no-nested-ternary': 'off',
+ 'no-undefined': 'off',
+ 'operator-linebreak': 'off',
+ 'radix': 'off',
+ 'no-unused-vars': ['error', {
+ argsIgnorePattern: '^_',
+ varsIgnorePattern: '^_',
+ caughtErrorsIgnorePattern: '^_'
+ }],
+ 'no-shadow': ['error', {
+ builtinGlobals: false,
+ hoist: 'all',
+ allow: ['context', 'require', 'exports']
+ }]
+};
+
+module.exports = [
+ ...strict,
+ {
+ files: ['config/bun/**/*.{js,mjs,cjs}'],
+ languageOptions: {
+ globals: bunGlobals
+ },
+ rules: bunRules
+ }
+];
diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json
index 3b4cc045..99eaf4fe 100644
--- a/npm-shrinkwrap.json
+++ b/npm-shrinkwrap.json
@@ -9,51 +9,41 @@
"version": "7.3.3",
"license": "Apache-2.0",
"dependencies": {
+ "@babel/core": "^7.29.0",
"@babel/plugin-transform-modules-commonjs": "^7.29.7",
"@daltontan/postcss-import-json": "^1.1.1",
"@enact/dev-utils": "^7.0.5",
"@enact/template-limestone": "1.0.0",
- "@pmmmwh/react-refresh-webpack-plugin": "^0.6.2",
"@testing-library/jest-dom": "^6.9.1",
"@testing-library/react": "^16.3.2",
"@testing-library/user-event": "^14.6.1",
"babel-jest": "^30.4.1",
- "babel-loader": "^10.1.1",
"babel-plugin-dynamic-import-node": "^2.3.3",
"babel-plugin-transform-rename-import": "^2.3.0",
"babel-preset-enact": "^0.1.17",
- "case-sensitive-paths-webpack-plugin": "^2.4.0",
+ "bun": "^1.3.14",
"chalk": "^5.6.2",
"core-js": "3.22.8",
"cross-spawn": "^7.0.6",
- "css-loader": "^7.1.4",
- "css-minimizer-webpack-plugin": "^8.0.0",
"dotenv": "^17.4.2",
"dotenv-expand": "^13.0.0",
"eslint": "^9.39.4",
"eslint-config-enact": "^5.1.2",
- "eslint-webpack-plugin": "^6.0.0",
- "expose-loader": "^5.0.1",
- "file-loader": "^6.2.0",
"filesize": "^11.0.19",
"fs-extra": "^11.3.6",
"glob": "^13.0.6",
"global-modules": "^2.0.0",
- "html-webpack-plugin": "^5.6.7",
"identity-obj-proxy": "^3.0.0",
"jest": "~30.3.0",
"jest-environment-jsdom": "29.7.0",
"jest-watch-typeahead": "^3.0.1",
"less": "^4.6.7",
- "less-loader": "^12.3.2",
"less-plugin-npm-import": "^2.1.0",
"license-checker": "^25.0.1",
- "mini-css-extract-plugin": "^2.10.2",
"minimist": "^1.2.8",
- "node-polyfill-webpack-plugin": "4.0.0",
"postcss": "^8.5.16",
"postcss-flexbugs-fixes": "^5.0.2",
- "postcss-loader": "^8.2.1",
+ "postcss-modules": "^6.0.1",
"postcss-normalize": "^13.0.1",
"postcss-preset-env": "^11.3.2",
"postcss-resolution-independence": "^1.1.11",
@@ -66,16 +56,11 @@
"react-test-renderer": "^19.2.7",
"resolution-independence": "^1.0.0",
"resolve": "^1.22.12",
- "sass-loader": "^16.0.7",
+ "sass": "^1.101.0",
"semver": "^7.8.5",
- "source-map-loader": "^5.0.0",
"strip-ansi": "^7.2.0",
- "style-loader": "^4.0.0",
"tar": "^7.5.19",
- "terser-webpack-plugin": "^5.6.1",
- "validate-npm-package-name": "^7.0.2",
- "webpack": "^5.108.4",
- "webpack-dev-server": "^5.2.5"
+ "validate-npm-package-name": "^7.0.2"
},
"bin": {
"enact": "bin/enact.js"
@@ -88,6 +73,7 @@
"prettier": "^3.9.4"
},
"engines": {
+ "bun": ">=1.3.0",
"node": "^20.12.0 || ^22.0.0 || >=24.0.0"
},
"optionalDependencies": {
@@ -2041,12 +2027,6 @@
"integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
"license": "MIT"
},
- "node_modules/@colordx/core": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/@colordx/core/-/core-5.5.0.tgz",
- "integrity": "sha512-3PxTH8itZzltK0U9jTwVVnjLXvnDYuq3m+QXsHkENxWiPRh4WaoLcs1SQjqgZ55kS+QyirpH5BVwzP2gMVG6EQ==",
- "license": "MIT"
- },
"node_modules/@csstools/cascade-layer-name-parser": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-3.0.0.tgz",
@@ -3747,8 +3727,9 @@
"version": "0.3.13",
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
"integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@jridgewell/sourcemap-codec": "^1.5.0",
"@jridgewell/trace-mapping": "^0.3.24"
@@ -3758,8 +3739,9 @@
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
"integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=6.0.0"
}
@@ -3768,8 +3750,9 @@
"version": "0.3.11",
"resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz",
"integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@jridgewell/gen-mapping": "^0.3.5",
"@jridgewell/trace-mapping": "^0.3.25"
@@ -3779,15 +3762,17 @@
"version": "1.5.5",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
"integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
- "extraneous": true,
- "license": "MIT"
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/@jridgewell/trace-mapping": {
"version": "0.3.31",
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz",
"integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@jridgewell/resolve-uri": "^3.1.0",
"@jridgewell/sourcemap-codec": "^1.4.14"
@@ -3858,22 +3843,25 @@
"version": "1.0.9",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz",
"integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==",
- "extraneous": true,
- "license": "MIT"
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/@types/html-minifier-terser": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz",
"integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==",
- "extraneous": true,
- "license": "MIT"
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/@types/json-schema": {
"version": "7.0.15",
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
"integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
- "extraneous": true,
- "license": "MIT"
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/@types/json5": {
"version": "0.0.29",
@@ -3886,8 +3874,9 @@
"version": "26.0.0",
"resolved": "https://registry.npmjs.org/@types/node/-/node-26.0.0.tgz",
"integrity": "sha512-vf2YFi1iY9lHGwNJMs01biZFbKJkrZR1T6/MlzjhJLPdntOHLhTrDSnSVcdtvjihi4VQNlrFRIxLsDBlQpAipA==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"undici-types": "~8.3.0"
}
@@ -3896,8 +3885,9 @@
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz",
"integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@webassemblyjs/helper-numbers": "1.13.2",
"@webassemblyjs/helper-wasm-bytecode": "1.13.2"
@@ -3907,29 +3897,33 @@
"version": "1.13.2",
"resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz",
"integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==",
- "extraneous": true,
- "license": "MIT"
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/@webassemblyjs/helper-api-error": {
"version": "1.13.2",
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz",
"integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==",
- "extraneous": true,
- "license": "MIT"
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/@webassemblyjs/helper-buffer": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz",
"integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==",
- "extraneous": true,
- "license": "MIT"
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/@webassemblyjs/helper-numbers": {
"version": "1.13.2",
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz",
"integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@webassemblyjs/floating-point-hex-parser": "1.13.2",
"@webassemblyjs/helper-api-error": "1.13.2",
@@ -3940,15 +3934,17 @@
"version": "1.13.2",
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz",
"integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==",
- "extraneous": true,
- "license": "MIT"
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/@webassemblyjs/helper-wasm-section": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz",
"integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@webassemblyjs/ast": "1.14.1",
"@webassemblyjs/helper-buffer": "1.14.1",
@@ -3960,8 +3956,9 @@
"version": "1.13.2",
"resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz",
"integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@xtuc/ieee754": "^1.2.0"
}
@@ -3970,8 +3967,9 @@
"version": "1.13.2",
"resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz",
"integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==",
- "extraneous": true,
"license": "Apache-2.0",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@xtuc/long": "4.2.2"
}
@@ -3980,15 +3978,17 @@
"version": "1.13.2",
"resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz",
"integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==",
- "extraneous": true,
- "license": "MIT"
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/@webassemblyjs/wasm-edit": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz",
"integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@webassemblyjs/ast": "1.14.1",
"@webassemblyjs/helper-buffer": "1.14.1",
@@ -4004,8 +4004,9 @@
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz",
"integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@webassemblyjs/ast": "1.14.1",
"@webassemblyjs/helper-wasm-bytecode": "1.13.2",
@@ -4018,8 +4019,9 @@
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz",
"integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@webassemblyjs/ast": "1.14.1",
"@webassemblyjs/helper-buffer": "1.14.1",
@@ -4031,8 +4033,9 @@
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz",
"integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@webassemblyjs/ast": "1.14.1",
"@webassemblyjs/helper-api-error": "1.13.2",
@@ -4046,8 +4049,9 @@
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz",
"integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@webassemblyjs/ast": "1.14.1",
"@xtuc/long": "4.2.2"
@@ -4057,15 +4061,17 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
"integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
- "extraneous": true,
- "license": "BSD-3-Clause"
+ "license": "BSD-3-Clause",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/@xtuc/long": {
"version": "4.2.2",
"resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
"integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
- "extraneous": true,
- "license": "Apache-2.0"
+ "license": "Apache-2.0",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/acorn": {
"version": "8.17.0",
@@ -4083,8 +4089,9 @@
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz",
"integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=10.13.0"
},
@@ -4135,8 +4142,9 @@
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz",
"integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"ajv": "^8.0.0"
},
@@ -4153,8 +4161,9 @@
"version": "8.20.0",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz",
"integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"fast-deep-equal": "^3.1.3",
"fast-uri": "^3.0.1",
@@ -4170,15 +4179,17 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
- "extraneous": true,
- "license": "MIT"
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/ansi-regex": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=8"
}
@@ -4383,8 +4394,9 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
"integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
- "extraneous": true,
- "license": "ISC"
+ "license": "ISC",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/brace-expansion": {
"version": "1.1.15",
@@ -4446,8 +4458,9 @@
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
"integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
- "extraneous": true,
- "license": "MIT"
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/call-bind": {
"version": "1.0.9",
@@ -4512,8 +4525,9 @@
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz",
"integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"pascal-case": "^3.1.2",
"tslib": "^2.0.3"
@@ -4555,8 +4569,9 @@
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz",
"integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=6.0"
}
@@ -4565,8 +4580,9 @@
"version": "5.3.3",
"resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz",
"integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"source-map": "~0.6.0"
},
@@ -4598,8 +4614,9 @@
"version": "8.3.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
"integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">= 12"
}
@@ -4663,8 +4680,9 @@
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz",
"integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==",
- "extraneous": true,
"license": "BSD-2-Clause",
+ "optional": true,
+ "peer": true,
"dependencies": {
"boolbase": "^1.0.0",
"css-what": "^6.0.1",
@@ -4680,8 +4698,9 @@
"version": "6.2.2",
"resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz",
"integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==",
- "extraneous": true,
"license": "BSD-2-Clause",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">= 6"
},
@@ -4821,8 +4840,9 @@
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz",
"integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"utila": "~0.4"
}
@@ -4831,8 +4851,9 @@
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
"integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"domelementtype": "^2.0.1",
"domhandler": "^4.2.0",
@@ -4846,21 +4867,23 @@
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
"integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
- "extraneous": true,
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/fb55"
}
],
- "license": "BSD-2-Clause"
+ "license": "BSD-2-Clause",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/domhandler": {
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz",
"integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
- "extraneous": true,
"license": "BSD-2-Clause",
+ "optional": true,
+ "peer": true,
"dependencies": {
"domelementtype": "^2.2.0"
},
@@ -4875,8 +4898,9 @@
"version": "2.8.0",
"resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
"integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
- "extraneous": true,
"license": "BSD-2-Clause",
+ "optional": true,
+ "peer": true,
"dependencies": {
"dom-serializer": "^1.0.1",
"domelementtype": "^2.2.0",
@@ -4890,8 +4914,9 @@
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz",
"integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"no-case": "^3.0.4",
"tslib": "^2.0.3"
@@ -4922,8 +4947,9 @@
"version": "5.24.0",
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.24.0.tgz",
"integrity": "sha512-SkE2t82KlkkxQRVMVLAGKxLfORGQfrkx5dkj+vlgXRVNEdPc4eZcR+J/Fvj8C+yKSFH5L0q3NFlyufOVQnCcYQ==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"graceful-fs": "^4.2.4",
"tapable": "^2.3.3"
@@ -4936,8 +4962,9 @@
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
"integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
- "extraneous": true,
"license": "BSD-2-Clause",
+ "optional": true,
+ "peer": true,
"funding": {
"url": "https://github.com/fb55/entities?sponsor=1"
}
@@ -5053,8 +5080,9 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.1.0.tgz",
"integrity": "sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==",
- "extraneous": true,
- "license": "MIT"
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/es-object-atoms": {
"version": "1.1.2",
@@ -5204,9 +5232,11 @@
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/eslint-config-enact/-/eslint-config-enact-5.1.2.tgz",
"integrity": "sha512-nXHHZdqGiSz8GtiZ09uq3shiCugWMqL68uh89ddd98w1ybMsrqZtVBKgfPlJl6bn8l0FqGAWVgev0c/sZIi0MQ==",
- "extraneous": true,
+ "dev": true,
"hasShrinkwrap": true,
"license": "Apache-2.0",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/eslint-parser": "^7.29.7",
"@babel/eslint-plugin": "^7.29.7",
@@ -5234,8 +5264,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz",
"integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-validator-identifier": "^7.29.7",
"js-tokens": "^4.0.0",
@@ -5249,8 +5281,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.7.tgz",
"integrity": "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=6.9.0"
}
@@ -5259,8 +5293,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.7.tgz",
"integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/code-frame": "^7.29.7",
"@babel/generator": "^7.29.7",
@@ -5290,8 +5326,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.29.7.tgz",
"integrity": "sha512-zxt+UJTOMKvUt3yOg+D58MLuz334pHp93qifMFcjIIO+9hN6t+ufw2gi7vDPMpxvfnHRR+3VVXvIjineCcgyXw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1",
"eslint-visitor-keys": "^2.1.0",
@@ -5309,8 +5347,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/eslint-plugin/-/eslint-plugin-7.29.7.tgz",
"integrity": "sha512-9qag/N0IHYLNf0nCNvHctNGBpoY4Idr7JkPeYUf2p5J9UpvHpd+Xx6VGjHDhJKmueVBa4/cq6MPl3uxj6/8knw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"eslint-rule-composer": "^0.3.0"
},
@@ -5326,8 +5366,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.7.tgz",
"integrity": "sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/parser": "^7.29.7",
"@babel/types": "^7.29.7",
@@ -5343,8 +5385,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.29.7.tgz",
"integrity": "sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/types": "^7.29.7"
},
@@ -5356,8 +5400,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz",
"integrity": "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/compat-data": "^7.29.7",
"@babel/helper-validator-option": "^7.29.7",
@@ -5373,8 +5419,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.29.7.tgz",
"integrity": "sha512-IY3ZD9Tmooqr3TUhc3DUWxiuo8xx1DWLhd5M7hQ+ZWJamqM2BbalrBJb2MisSLoYorOj75U03qULCxQTY9r3hg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.29.7",
"@babel/helper-member-expression-to-functions": "^7.29.7",
@@ -5395,8 +5443,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.29.7.tgz",
"integrity": "sha512-907Uymvqgg1dwUA+7IGwFAOSYzQOuzPXKNJ1yxzwPffzkYFg2q2eHi1fIOs6sXkG9NbIUMunnUlkYsfRFNvomg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.29.7",
"regexpu-core": "^6.3.1",
@@ -5413,8 +5463,10 @@
"version": "0.6.8",
"resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.8.tgz",
"integrity": "sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-compilation-targets": "^7.28.6",
"@babel/helper-plugin-utils": "^7.28.6",
@@ -5430,8 +5482,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz",
"integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=6.9.0"
}
@@ -5440,8 +5494,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.29.7.tgz",
"integrity": "sha512-j+7JYmk1JYDtACIGj0QJqqWZjoUpMoEikQGADMaHgCMCSDqd2+P32rfcibUNrGOMWrlzK1WJBdxrB3JJQZwWtg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/traverse": "^7.29.7",
"@babel/types": "^7.29.7"
@@ -5454,8 +5510,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz",
"integrity": "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/traverse": "^7.29.7",
"@babel/types": "^7.29.7"
@@ -5468,8 +5526,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz",
"integrity": "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-module-imports": "^7.29.7",
"@babel/helper-validator-identifier": "^7.29.7",
@@ -5486,8 +5546,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.29.7.tgz",
"integrity": "sha512-+kmGVjcT9RGYzoDwdwEqEvGgKe3BYq+O1iGzjFubaNgZHwYHP6lsF2Yghf4kEuv9BV7tYDZ913aBW9am6YKong==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/types": "^7.29.7"
},
@@ -5499,8 +5561,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz",
"integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=6.9.0"
}
@@ -5509,8 +5573,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.29.7.tgz",
"integrity": "sha512-16AMiW26DbXWBbr3B8wNozKM0ydMLB892vaOaJW/fPJdnT8vJk5sdkQcU/isqUxyCE0cEoa8wZOcbgDuC4b6Og==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.29.7",
"@babel/helper-wrap-function": "^7.29.7",
@@ -5527,8 +5593,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.29.7.tgz",
"integrity": "sha512-atfGXWSeCiF4DnKZIfmJfQRkSw9b9gNNXR1kqKjbhG4pGYCOnkp8OcTB8E3NXjBu8NpheSnOeNKz8KT7UNFTmQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-member-expression-to-functions": "^7.29.7",
"@babel/helper-optimise-call-expression": "^7.29.7",
@@ -5545,8 +5613,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.29.7.tgz",
"integrity": "sha512-brcMGQaVzIeUb+6/bs1Av0f8YuNNjKY2JyvfRCsFuFsdKccEQ5Ges2y74D74NZ1Rz8lKJ9ksJkfqwQFJ/iNEyQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/traverse": "^7.29.7",
"@babel/types": "^7.29.7"
@@ -5559,8 +5629,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz",
"integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=6.9.0"
}
@@ -5569,8 +5641,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz",
"integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=6.9.0"
}
@@ -5579,8 +5653,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz",
"integrity": "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=6.9.0"
}
@@ -5589,8 +5665,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.29.7.tgz",
"integrity": "sha512-iES0Skag9ERIF68aXadpO6dbXa03mNWK3sEqJaMnLNs/eC3l0lkImdfoy6Y09/SfkpawdAB4RjQ7PVA7TcVGdw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/template": "^7.29.7",
"@babel/traverse": "^7.29.7",
@@ -5604,8 +5682,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.7.tgz",
"integrity": "sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/template": "^7.29.7",
"@babel/types": "^7.29.7"
@@ -5618,8 +5698,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.7.tgz",
"integrity": "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/types": "^7.29.7"
},
@@ -5634,8 +5716,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.29.7.tgz",
"integrity": "sha512-j8SrR0zLZrRsC09DlszEx8FpMiwukKffYXMK0d5LmOglO7vGG6sz/BR/20yHqWH+Lnn31JTt2PE3hIWNgM2J6w==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.29.7",
"@babel/traverse": "^7.29.7"
@@ -5651,8 +5735,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.29.7.tgz",
"integrity": "sha512-r8j8escF+U2FUHo0KOhPUdMzUO+jp9fInva6+ACVAF3Y97Ev+5iNZwiqTghmzNeWwDkOPlYuTcfb1vDaoZKmAQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.29.7"
},
@@ -5667,8 +5753,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.29.7.tgz",
"integrity": "sha512-GE1TFSiuFeGsCxmYXZl8HwoPrVlwe4rHPFE8weieGKZqnDORK+Ar3vgWMgW+AOxQ6/2TgLSKx9p6W7O4rC6qgQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.29.7"
},
@@ -5683,8 +5771,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-rest-destructuring-rhs-array/-/plugin-bugfix-safari-rest-destructuring-rhs-array-7.29.7.tgz",
"integrity": "sha512-oBNVCvnO5tND+xSopWvV8WNGfpTfgP4Zr/YXXSj8zfmcPktp5Ku/aZlsIowgSD4fjmgHn6sGmB9APVsU5zOdhA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.29.7",
"@babel/helper-skip-transparent-expression-wrappers": "^7.29.7"
@@ -5700,8 +5790,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.29.7.tgz",
"integrity": "sha512-QQt9qKHZ2sg/kivaLr7lnQr8HVrQDdBNSfCsTjiDxRuX/K5ORyKq+Bu8Xr0cDE3Dfkv0cw28Ve0EKyKMvulkOw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.29.7",
"@babel/helper-skip-transparent-expression-wrappers": "^7.29.7",
@@ -5718,8 +5810,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.29.7.tgz",
"integrity": "sha512-pn6QacGLgvCcwc+syUhKE/qSjV2D1IHDB84RNxWYSt1mW3K/SCtjinZ2p0cETJxAWBjPy3K/1lHwG5BjjPxNlw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.29.7",
"@babel/traverse": "^7.29.7"
@@ -5735,8 +5829,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.29.7.tgz",
"integrity": "sha512-EtU0Hi3GvrTqD56xKmZvV/uCXK2ZbwVNPNLAquVItcAZpUhkXwWlo3Fmj0c2LxgSf2I8IDULeAepwNP1OefLXg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-create-class-features-plugin": "^7.29.7",
"@babel/helper-plugin-utils": "^7.29.7",
@@ -5753,8 +5849,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.29.7.tgz",
"integrity": "sha512-p+G5BNXDcy3bOXplhY4HybQ1GxH3i2Tppmdm/3epyRu2VgJJZuUlZ61MqRTg582Q7ZLBdP7fePYvsumSEkMxcQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.29.7"
},
@@ -5769,8 +5867,10 @@
"version": "7.21.0-placeholder-for-preset-env.2",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz",
"integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=6.9.0"
},
@@ -5782,8 +5882,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.29.7.tgz",
"integrity": "sha512-9MTTLbF39X6sqM92JPEsoI7++26hjZvzkxKZy64aMhWLH2mPkJ/Q3AV4QLmls3R14FpSpkOwQQfUh962JGQxxg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.29.7"
},
@@ -5798,8 +5900,10 @@
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
"integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.8.0"
},
@@ -5811,8 +5915,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.29.7.tgz",
"integrity": "sha512-/An1OCBN93thpBAGyfsK2pcf0jvju1SAtKkL2Ny++B5Sy6sqgzXDQH1cZxWbF96Wuk+bn41MDA9bLd4VVAw6rw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.29.7"
},
@@ -5827,8 +5933,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.29.7.tgz",
"integrity": "sha512-zGYcYfq/WmZ4V+kBIXQon9dSSc8ircGZqw9ZaNhhGj9nZkeBu1jHLBDQqYYi5WA9uawvA2sIMbry2nCFhf5Djg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.29.7"
},
@@ -5843,8 +5951,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.29.7.tgz",
"integrity": "sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.29.7"
},
@@ -5859,8 +5969,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.29.7.tgz",
"integrity": "sha512-ngr+82Sh0xMz25TPCZi+nC2iTzjfCdWS2ONXTp/PtSCHCgaCNBpdMqgvJ2ccdLlClVZ7sisIgB914j/JFe+RZA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.29.7"
},
@@ -5875,8 +5987,10 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz",
"integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-create-regexp-features-plugin": "^7.18.6",
"@babel/helper-plugin-utils": "^7.18.6"
@@ -5892,8 +6006,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.29.7.tgz",
"integrity": "sha512-N7zArUXWzAMzm+/N0uPBeVB3Fam5lMxtUwMmDK5f/IBBS7a7p1qeUoxd/6CckXoxUdgsntq1Dh8xNW06maZbDQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.29.7"
},
@@ -5908,8 +6024,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.29.7.tgz",
"integrity": "sha512-d98gXZkgswvkyohMBABkhm3GeXhYj8psWfwQ2C7gtfrKGTykQa/iOIi+JJhwMjPlZ6Vm2XN+DCf3Es1EoG4ZLA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.29.7",
"@babel/helper-remap-async-to-generator": "^7.29.7",
@@ -5926,8 +6044,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.29.7.tgz",
"integrity": "sha512-pcUb2SS+RMo9TWVBwKGI5ShtoG7R+zBsFmCKDa6fe8c+hPr3XJlZgoE5j6i8W7gDjhyvy+85vmYexanvXh3d1w==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-module-imports": "^7.29.7",
"@babel/helper-plugin-utils": "^7.29.7",
@@ -5944,8 +6064,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.29.7.tgz",
"integrity": "sha512-cUSmjh72N+rN4PrkFlN1dJwNCwjVp5d38/CQrEsFggkD10UiFlBFgdH3tv5dNsLuHY+3S8db2xCHjhZcv5WgvA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.29.7"
},
@@ -5960,8 +6082,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.29.7.tgz",
"integrity": "sha512-ONyr4+AZhKh8yKWInVxU9AXA9EbsyeLcL6V0dJy6M2/62vuvpGm29zzuymbTpdc451GEpDIdAyPLP3r+P61yKQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.29.7"
},
@@ -5976,8 +6100,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.29.7.tgz",
"integrity": "sha512-GtcpjFvanPfzNQi3eTitsCqtRRmmqzpy/A+yhTR1HaZo1Ly3EA8ZXxlPyHdR8/IuRMYc3E4wdGBewB2QKQjAaA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-create-class-features-plugin": "^7.29.7",
"@babel/helper-plugin-utils": "^7.29.7"
@@ -5993,8 +6119,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.29.7.tgz",
"integrity": "sha512-kibJgmEdX2iMwsHY2tSZNDgj8PwIlCQz7FK9KuGKO8zsuoUwSEhoNnNVp/emKWrbY4HeO6kkXfdMqRKKKXBm2A==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-create-class-features-plugin": "^7.29.7",
"@babel/helper-plugin-utils": "^7.29.7"
@@ -6010,8 +6138,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.29.7.tgz",
"integrity": "sha512-qV0OGGBVacduzQHE649JyCneOFI/maT+YKsO+K4Yi3xv2wTPNjM/W2o2gdzMwEAZz7fXNTHAe0NcSg30bIN69g==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.29.7",
"@babel/helper-compilation-targets": "^7.29.7",
@@ -6031,8 +6161,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.29.7.tgz",
"integrity": "sha512-RK7/IyU5phpuCdBAuig5VkzG/EnbDaui5SQGdU9BFrHdV+mV4cUjLMQ9lJDjLNtWHsqtiefpGZUXQP2BiTYMsA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.29.7",
"@babel/template": "^7.29.7"
@@ -6048,8 +6180,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.29.7.tgz",
"integrity": "sha512-iPX8aD6H9zV5s7ZsqTdNocPN/MGQ5sSMnElKrktxjJRMnB2jN/1p2+R7GkfD6CAYoVFqy5A4XnSIUeGgJzIWpg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.29.7",
"@babel/traverse": "^7.29.7"
@@ -6065,8 +6199,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.29.7.tgz",
"integrity": "sha512-3qc18hsD2RdZiyJNDNc7HQpv6xbncwh8FYtxNFFzclSyh/trPD9KkVR9BDECUjDLvb7yJVF15GfYUuC+LMkkiQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-create-regexp-features-plugin": "^7.29.7",
"@babel/helper-plugin-utils": "^7.29.7"
@@ -6082,8 +6218,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.29.7.tgz",
"integrity": "sha512-6IvRRriEMqnBwD6chtxdLpMYCHWEzN+oL5cyQtjykya19UgzbmKhxmhZgKC/LHxS2nYr9Q/qYPZ5Lr6jOL9+yQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.29.7"
},
@@ -6098,8 +6236,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.29.7.tgz",
"integrity": "sha512-2wiIyo2BjtgU7HufSeDnL9L2O7zr8jmhFKuSr65VpRkUiRKRNpb0mdlk56+XPPKoIrfHqzbMuglDvZun0RISsA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-create-regexp-features-plugin": "^7.29.7",
"@babel/helper-plugin-utils": "^7.29.7"
@@ -6115,8 +6255,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.29.7.tgz",
"integrity": "sha512-giOlEm/EFjfjr+te9NsdjkUo2v4f8rS/SXPumRVHAtbNcyNlvtREkU1dZzaIDclNpnaVhlCqRdFKhJBjBikzLg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.29.7"
},
@@ -6131,8 +6273,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.29.7.tgz",
"integrity": "sha512-Rstj7coNz8sE+7Ju7ihpHLI564lsK5pUpNNlvptCIC/16E/S5hbl6n3kESPKdNRmqEWlpn5xpS5Q2dvXBsySLw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.29.7",
"@babel/plugin-transform-destructuring": "^7.29.7"
@@ -6148,8 +6292,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.29.7.tgz",
"integrity": "sha512-zFpMOTLZBdW5LfObqcSbL6kefg4R4eLdmvS0wbN9M6D5Mym/sKm9toOoWyVOa+xDjvCnuWcHls2YonXwHvH3CQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.29.7"
},
@@ -6164,8 +6310,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.29.7.tgz",
"integrity": "sha512-24B2nOy2TeJSMheqwPD4DDQOV/elLSIlKxjZt4i05H5AgdPdWR3n18HnNrcJ+j76WJd9gbwb9jPjNYUy6RautA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.29.7"
},
@@ -6180,8 +6328,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.29.7.tgz",
"integrity": "sha512-zeSIHh0+E1Um1WJRXCFlHQYu2ieJNdivLLjlBEp+dIBu3S51n+SZZmIXjxnItw6pz56Cn+KvK68BIBVsxq2JiQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.29.7",
"@babel/helper-skip-transparent-expression-wrappers": "^7.29.7"
@@ -6197,8 +6347,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.29.7.tgz",
"integrity": "sha512-otRWaHXE6fbAGkePvaj/kvs3HsqXfPhlnzwSOlnFgbqCPMd975dW+4wZ00WFBt+/YlBGcJwNrARQTOJOb4ZrIg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-compilation-targets": "^7.29.7",
"@babel/helper-plugin-utils": "^7.29.7",
@@ -6215,8 +6367,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.29.7.tgz",
"integrity": "sha512-RRnE2+eon1rJAq8MnoF1b5kTpY1vU88twHcvcKMrsqP/jxIRqDVs9iJB5fqPuqyeFAW0wJo4MlUIPpQCq/aRsg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.29.7"
},
@@ -6231,8 +6385,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.29.7.tgz",
"integrity": "sha512-DZ/oLP21ZuWx1vKqnoNv6/tvEK48AQOBRai40CX9dTjGluvT/YZCyY3rryDtyUqCEoyNroy5KKPwX2iQCiRvyw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.29.7"
},
@@ -6247,8 +6403,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.29.7.tgz",
"integrity": "sha512-A0H91hh6W8MFRkp5TqJmMr39jzGD1A1E1Ysiv2O06Sfbhkapm+XyIzxWCEh5kqwOZ1/8QZ0dY3SeQ7XBqfJd5Q==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.29.7"
},
@@ -6263,8 +6421,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.29.7.tgz",
"integrity": "sha512-hl1kwFZCCiDyfH25Xmco9jTrkPgnS9pmOzSG7W5I4SaGbLeqKv417hcU2RKmaxoPEgsoJh7ZPOrnPGq99bHoUg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.29.7"
},
@@ -6279,8 +6439,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.29.7.tgz",
"integrity": "sha512-fxtQoH3m5ywUSIfaH0FGCzWu4McsYon5bD3K4XnskC7f+OyQMj7rsOMi4NvvmJ83WwBAg4UCe+ov4VZlqEvyew==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-module-transforms": "^7.29.7",
"@babel/helper-plugin-utils": "^7.29.7"
@@ -6296,8 +6458,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.29.7.tgz",
"integrity": "sha512-j0vCldybPC5b5dwCQOJ21uKtHzt7hxLygJTg9eF1ScfaikEDNfzn94XoW5Fi+seBR0nCyL23xaBFFkq7dTM8XQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-module-transforms": "^7.29.7",
"@babel/helper-plugin-utils": "^7.29.7"
@@ -6313,8 +6477,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.29.7.tgz",
"integrity": "sha512-TM2ZcQLoG2/y4HODiStCo10DibYhWhGWAwVv+EQKmG/7GFl0N+AAmUiXOMKM+aiJ9XBJ9AHVZBvTzMnJ2sM3cQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-module-transforms": "^7.29.7",
"@babel/helper-plugin-utils": "^7.29.7",
@@ -6332,8 +6498,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.29.7.tgz",
"integrity": "sha512-B4UkaTK3QpgCwJnrxKfMPKdo92CN7OKXAlpAAnM3UPu0Q0lCCk57ylA9AJbRy2v8dDKOPAAWcoR6CMyeoHwRCA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-module-transforms": "^7.29.7",
"@babel/helper-plugin-utils": "^7.29.7"
@@ -6349,8 +6517,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.29.7.tgz",
"integrity": "sha512-vuFoLwr4qnv2xbZ16SQd6uPcH5FNrLHhk/Jzo++0XJFcaDsr4gjJVg6j398oMHiC+83k/GiBzviwF5KBJkPUtQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-create-regexp-features-plugin": "^7.29.7",
"@babel/helper-plugin-utils": "^7.29.7"
@@ -6366,8 +6536,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.29.7.tgz",
"integrity": "sha512-fEo41GmsOUhOBlw8ioo6zvjX5Xc2Lqkzlyfqbpsk3eB6TReV18uhxZ0esfEokVbY2+PVJAQHNKxER6lGrzNd3A==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.29.7"
},
@@ -6382,8 +6554,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.29.7.tgz",
"integrity": "sha512-idmp1dFaekP9GbcMvG24Kvw2BfhFZjHnNJCkV4WuIY4PskJzwI3f1N5OdgYke38T7rftO6ERulFRn2cFeZwRkg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.29.7"
},
@@ -6398,8 +6572,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.29.7.tgz",
"integrity": "sha512-zR7fv/z14OjgHl4AgRtkDBvBMhIzCxqV/qN/2BCRC7LjFwvuzjYe7gDWxC4Wl/SNsLM6SE1IWvRPYMgSJaUvNw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.29.7"
},
@@ -6414,8 +6590,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.29.7.tgz",
"integrity": "sha512-Ld98jn4c0smUywL57m7SgsHq3OpThOa6LqZJif3G6jYOovPleoFhVrBJ1WegRApSFB2wu4+RelAj9AC9G08Z4A==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-compilation-targets": "^7.29.7",
"@babel/helper-plugin-utils": "^7.29.7",
@@ -6434,8 +6612,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.29.7.tgz",
"integrity": "sha512-Ea/diGcw0twB5IlZPO5sgET6fJsLJqPABqTuFWIR+iMPGPZJkATEIWx0wa+aEQ5UY1CBQyP/gkAiLEqn1vBiQA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.29.7",
"@babel/helper-replace-supers": "^7.29.7"
@@ -6451,8 +6631,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.29.7.tgz",
"integrity": "sha512-sLsyndxK2VwX6yNUOakMb7Sh553ZTe/vVM1XJ+9Z5aW1ytsc8xOIwmyk05NNjN60vkc5/KqoTH6hB4V41LJhng==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.29.7"
},
@@ -6467,8 +6649,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.29.7.tgz",
"integrity": "sha512-6GM1dhvK3gNODkXcEcMCOLEDCLSoZ/sBbro2Ax8HURyasQ4NshagQixkRFdh5niI6E4gmA/jYI/4aT7rRos3ZQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.29.7",
"@babel/helper-skip-transparent-expression-wrappers": "^7.29.7"
@@ -6484,8 +6668,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.29.7.tgz",
"integrity": "sha512-ZDOBqV/qLYJI0YElr8DcENEyARsFQeESqWXH6gZlghYXuPPjvweuDhP4VyEi4BlUBlLRFZVjxoZDMjxhLW766g==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.29.7"
},
@@ -6500,8 +6686,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.29.7.tgz",
"integrity": "sha512-/6Rz4DK1ETDEM/bWHsPHcaEe7ZaT1EqSXjtSP/L0DijOYuaUhiRiOKcwpZ8P7zR4xXEHc2ITdiCgBm9Tpyv9ug==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-create-class-features-plugin": "^7.29.7",
"@babel/helper-plugin-utils": "^7.29.7"
@@ -6517,8 +6705,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.29.7.tgz",
"integrity": "sha512-+BNo06dnrzdNNqCm1X6YUaVv0DKk8Q+JYcoZfOkLhYWNCXzlwTSRq8zGWayT1csjcpNXV9CQTBRRbmTLZac5cA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.29.7",
"@babel/helper-create-class-features-plugin": "^7.29.7",
@@ -6535,8 +6725,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.29.7.tgz",
"integrity": "sha512-bOMRLQuI0A5ZqHq3OWJ89/rXpJ/NJrbVhXiP4zwPGMs6kpcVsuTUNjwoE30K0Qm3mf48a/TnRYYD6vPNqcg6jA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.29.7"
},
@@ -6551,8 +6743,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.29.7.tgz",
"integrity": "sha512-+1wdDMGNb4UPeY3Q4L5yLiYe6TXPXubs4NjrgRFw13hPRLJfEMw2Q5OXkee6/IfdqePIeW4Jjwe3aBh7SdKz4Q==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.29.7"
},
@@ -6567,8 +6761,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.29.7.tgz",
"integrity": "sha512-WsZulLVBUHXVj2cUcPVx6UE21TpalB6bHbSFErKT0Ib++ax24jjXe73FqlWvdylFOjiuPHYi6VCcgRad1ItN+A==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.29.7",
"@babel/helper-module-imports": "^7.29.7",
@@ -6587,8 +6783,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.29.7.tgz",
"integrity": "sha512-Xfy3UVMF04+ypnFbkhvfqtmvwfe92qwQdbGZVonhE+6v35GzlofmOnA1szaZqzb9xYWr0nl1e5EMmzi0DNON1g==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/plugin-transform-react-jsx": "^7.29.7"
},
@@ -6603,8 +6801,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.29.7.tgz",
"integrity": "sha512-H5E+HBgDpr6Q5t+Aj11tL7XkIui1jhbIoArVQnqjgXo5/3YxkN7ZEBcWF4RQlB0T4rrxJQbXS6kiFV6B7XTqUA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.29.7",
"@babel/helper-plugin-utils": "^7.29.7"
@@ -6620,8 +6820,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.29.7.tgz",
"integrity": "sha512-rNNFV0DBAJp988xW2DOntfDoYn1eR8GGF5AT5vYc+rjyfaQkM242c9tZUHHPe7KYaiJizXPWhQTzzdbXySyhBw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.29.7"
},
@@ -6636,8 +6838,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.29.7.tgz",
"integrity": "sha512-mB5Fs0VWrJ42ZCmc8114v60qetdaUVNkj9PmSZRmanCZM3S9hm0CFRLjRmYIsuXav14l2jvZ+4T8iiCGnhj3nQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-create-regexp-features-plugin": "^7.29.7",
"@babel/helper-plugin-utils": "^7.29.7"
@@ -6653,8 +6857,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.29.7.tgz",
"integrity": "sha512-5+YhdpVgmfSmwZyLMftfaiffLRMHjzIRHFHHLdibcSyJm2pasMrKHrO3Ptrt2DRshjvpgjEJJ1zVW14WPq/6QA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.29.7"
},
@@ -6669,8 +6875,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.29.7.tgz",
"integrity": "sha512-xmAscdE/AsqRW7vutbPNoUmu/nF5SrLKPs7aoJgEjo35lLKA/Bc0i2rMv/hr1+Y0o1bQCiVtith3u2vdgRL39Q==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-module-imports": "^7.29.7",
"@babel/helper-plugin-utils": "^7.29.7",
@@ -6690,8 +6898,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.29.7.tgz",
"integrity": "sha512-I+WYbGBAiCn7nA6xBrlgPH+MB7HWb4u8pv5S0Pv7OtwNvIFvCCb24YlttKEeUFVurfBCEaOTnuhlqsb7f0Z5Dg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.29.7"
},
@@ -6706,8 +6916,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.29.7.tgz",
"integrity": "sha512-/u5K1QWada7tbYNqTjMh96718g9NTwh9tfPJMsSmVsQwGT447FskV+KcfeXkXq2GWki4EM/MuTdmBec+hOuVTQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.29.7",
"@babel/helper-skip-transparent-expression-wrappers": "^7.29.7"
@@ -6723,8 +6935,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.29.7.tgz",
"integrity": "sha512-BCHzNYJGe9l7EpwwDBN/ztlL2NYFFq8hp9ddjtUEM9f2O7S7kKV/lL6Fwo7IF7NSkYhPK2vO+86nIGltA90MsA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.29.7"
},
@@ -6739,8 +6953,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.29.7.tgz",
"integrity": "sha512-NCSEJ4sLFU2gqAub45HYh4fus2yQ36rr6ei6vpU7NdoJqCpxvEG8E6eJpscGyXP3VHD2Ny+fSXr04k1hoUrFqA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.29.7"
},
@@ -6755,8 +6971,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.29.7.tgz",
"integrity": "sha512-223mNGoTkBiTEWFoK+Q6Go3tueMRclO8vxxxxquNCYuNI4jWOofFKJRRDu6SDrB8Sgo1UEGW9T4GAQ8ZyRso1A==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.29.7"
},
@@ -6771,8 +6989,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.29.7.tgz",
"integrity": "sha512-jK52h8LaLc7JarhQV2ofeFMts4H7vnOXnqZNA6fYglBTZewRBE51KWt3BUltW1P+KoPsYkHoJeXePuz4zo2LMw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.29.7",
"@babel/helper-create-class-features-plugin": "^7.29.7",
@@ -6791,8 +7011,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.29.7.tgz",
"integrity": "sha512-jCfXxSjf94lf4E0hKE0AByxF6F3/pVFqRdUUNkDJhsY0m1ZKjnN6ZYyMeHNpzflxb/0q5b7t3p+BE+SLF1WOtA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.29.7"
},
@@ -6807,8 +7029,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.29.7.tgz",
"integrity": "sha512-OgZ+zoAJgZLUCunsTRQ5LAjOywDv5zzZ2/hQ5aMw1pGXyY2rtE8/chXYUmu3AlVHKpm10KEdG9aMwbI/K76ZGw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-create-regexp-features-plugin": "^7.29.7",
"@babel/helper-plugin-utils": "^7.29.7"
@@ -6824,8 +7048,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.29.7.tgz",
"integrity": "sha512-7D/x/23/d/3VqZ0QA+LGbZMlGwZjztBygSWWWsfTPoQ1oQ6Q1P6Mr3d0kk42XabyUVw+fha3LqdRsFqeKqvCyA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-create-regexp-features-plugin": "^7.29.7",
"@babel/helper-plugin-utils": "^7.29.7"
@@ -6841,8 +7067,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.29.7.tgz",
"integrity": "sha512-BLOhLht9DOJwIxlmp91wHvkXv1lguuHS3/FwUO8HL1H0u8s4hR1gASVFyilu9iGtcTRYqjTZmlsFFeQletntEg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-create-regexp-features-plugin": "^7.29.7",
"@babel/helper-plugin-utils": "^7.29.7"
@@ -6858,8 +7086,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.29.7.tgz",
"integrity": "sha512-GYzX36n1nsciIb0uyH0GHwxwtNwPQIcpxSeiVLDtG/B7jB5xXgchnmL1f/jCX5o+pwnaDBtO60ONSJhEBJfxYA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/compat-data": "^7.29.7",
"@babel/helper-compilation-targets": "^7.29.7",
@@ -6944,8 +7174,10 @@
"version": "0.14.2",
"resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.14.2.tgz",
"integrity": "sha512-coWpDLJ410R781Npmn/SIBZEsAetR4xVi0SxLMXPaMO4lSf1MwnkGYMtkFxew0Dn8B3/CpbpYxN0JCgg8mn67g==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-define-polyfill-provider": "^0.6.8",
"core-js-compat": "^3.48.0"
@@ -6958,8 +7190,10 @@
"version": "0.1.6-no-external-plugins",
"resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz",
"integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.0.0",
"@babel/types": "^7.4.4",
@@ -6973,8 +7207,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.29.7.tgz",
"integrity": "sha512-C+PV1TFUPTmBQGoPBL8j2QmLpZ117YTCwxIZeJOM96GbYMFSc7/pOXU5lVykwnZxyTqQxRsvoRk6f2FktZgGHA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.29.7",
"@babel/helper-validator-option": "^7.29.7",
@@ -6994,8 +7230,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.29.7.tgz",
"integrity": "sha512-/Foi8vKY2EVbed/1eZx0gJEEwHAIxogrySI7rULcRIvhZzbvoE/b5qG5Ghc0WKAFKOHA9SD1x7RsFlOYdutIiQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.29.7",
"@babel/helper-validator-option": "^7.29.7",
@@ -7014,8 +7252,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.7.tgz",
"integrity": "sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=6.9.0"
}
@@ -7024,8 +7264,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz",
"integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/code-frame": "^7.29.7",
"@babel/parser": "^7.29.7",
@@ -7039,8 +7281,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.7.tgz",
"integrity": "sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/code-frame": "^7.29.7",
"@babel/generator": "^7.29.7",
@@ -7058,8 +7302,10 @@
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.7.tgz",
"integrity": "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-string-parser": "^7.29.7",
"@babel/helper-validator-identifier": "^7.29.7"
@@ -7072,8 +7318,10 @@
"version": "4.9.1",
"resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz",
"integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"eslint-visitor-keys": "^3.4.3"
},
@@ -7091,8 +7339,10 @@
"version": "3.4.3",
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
"integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
- "extraneous": true,
+ "dev": true,
"license": "Apache-2.0",
+ "optional": true,
+ "peer": true,
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
@@ -7104,8 +7354,10 @@
"version": "4.12.2",
"resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz",
"integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": "^12.0.0 || ^14.0.0 || >=16.0.0"
}
@@ -7114,8 +7366,10 @@
"version": "0.21.2",
"resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.2.tgz",
"integrity": "sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==",
- "extraneous": true,
+ "dev": true,
"license": "Apache-2.0",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@eslint/object-schema": "^2.1.7",
"debug": "^4.3.1",
@@ -7129,15 +7383,19 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
- "extraneous": true,
- "license": "MIT"
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/eslint-config-enact/node_modules/@eslint/config-array/node_modules/brace-expansion": {
"version": "1.1.15",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.15.tgz",
"integrity": "sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -7147,8 +7405,10 @@
"version": "3.1.5",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
"integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
- "extraneous": true,
+ "dev": true,
"license": "ISC",
+ "optional": true,
+ "peer": true,
"dependencies": {
"brace-expansion": "^1.1.7"
},
@@ -7160,8 +7420,10 @@
"version": "0.4.2",
"resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz",
"integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==",
- "extraneous": true,
+ "dev": true,
"license": "Apache-2.0",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@eslint/core": "^0.17.0"
},
@@ -7173,8 +7435,10 @@
"version": "0.17.0",
"resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz",
"integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==",
- "extraneous": true,
+ "dev": true,
"license": "Apache-2.0",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@types/json-schema": "^7.0.15"
},
@@ -7186,8 +7450,10 @@
"version": "3.3.5",
"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.5.tgz",
"integrity": "sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"ajv": "^6.14.0",
"debug": "^4.3.2",
@@ -7210,15 +7476,19 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
- "extraneous": true,
- "license": "MIT"
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/eslint-config-enact/node_modules/@eslint/eslintrc/node_modules/brace-expansion": {
"version": "1.1.15",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.15.tgz",
"integrity": "sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -7228,8 +7498,10 @@
"version": "14.0.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz",
"integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=18"
},
@@ -7241,8 +7513,10 @@
"version": "5.3.2",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
"integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">= 4"
}
@@ -7251,8 +7525,10 @@
"version": "3.1.5",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
"integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
- "extraneous": true,
+ "dev": true,
"license": "ISC",
+ "optional": true,
+ "peer": true,
"dependencies": {
"brace-expansion": "^1.1.7"
},
@@ -7264,8 +7540,10 @@
"version": "9.39.4",
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.4.tgz",
"integrity": "sha512-nE7DEIchvtiFTwBw4Lfbu59PG+kCofhjsKaCWzxTpt4lfRjRMqG6uMBzKXuEcyXhOHoUp9riAm7/aWYGhXZ9cw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
@@ -7277,8 +7555,10 @@
"version": "2.1.7",
"resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz",
"integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==",
- "extraneous": true,
+ "dev": true,
"license": "Apache-2.0",
+ "optional": true,
+ "peer": true,
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
@@ -7287,8 +7567,10 @@
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz",
"integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==",
- "extraneous": true,
+ "dev": true,
"license": "Apache-2.0",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@eslint/core": "^0.17.0",
"levn": "^0.4.1"
@@ -7301,8 +7583,10 @@
"version": "0.19.2",
"resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.2.tgz",
"integrity": "sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==",
- "extraneous": true,
+ "dev": true,
"license": "Apache-2.0",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@humanfs/types": "^0.15.0"
},
@@ -7314,8 +7598,10 @@
"version": "0.16.8",
"resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.8.tgz",
"integrity": "sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==",
- "extraneous": true,
+ "dev": true,
"license": "Apache-2.0",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@humanfs/core": "^0.19.2",
"@humanfs/types": "^0.15.0",
@@ -7329,8 +7615,10 @@
"version": "0.15.0",
"resolved": "https://registry.npmjs.org/@humanfs/types/-/types-0.15.0.tgz",
"integrity": "sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==",
- "extraneous": true,
+ "dev": true,
"license": "Apache-2.0",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=18.18.0"
}
@@ -7339,8 +7627,10 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
"integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
- "extraneous": true,
+ "dev": true,
"license": "Apache-2.0",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=12.22"
},
@@ -7353,8 +7643,10 @@
"version": "0.4.3",
"resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz",
"integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==",
- "extraneous": true,
+ "dev": true,
"license": "Apache-2.0",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=18.18"
},
@@ -7367,8 +7659,10 @@
"version": "0.3.13",
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
"integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@jridgewell/sourcemap-codec": "^1.5.0",
"@jridgewell/trace-mapping": "^0.3.24"
@@ -7378,8 +7672,10 @@
"version": "2.3.5",
"resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz",
"integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@jridgewell/gen-mapping": "^0.3.5",
"@jridgewell/trace-mapping": "^0.3.24"
@@ -7389,8 +7685,10 @@
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
"integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=6.0.0"
}
@@ -7399,15 +7697,19 @@
"version": "1.5.5",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
"integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
- "extraneous": true,
- "license": "MIT"
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/eslint-config-enact/node_modules/@jridgewell/trace-mapping": {
"version": "0.3.31",
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz",
"integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@jridgewell/resolve-uri": "^3.1.0",
"@jridgewell/sourcemap-codec": "^1.4.14"
@@ -7417,8 +7719,10 @@
"version": "5.1.1-v1",
"resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz",
"integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"eslint-scope": "5.1.1"
}
@@ -7427,22 +7731,28 @@
"version": "1.0.9",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz",
"integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==",
- "extraneous": true,
- "license": "MIT"
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/eslint-config-enact/node_modules/@types/json-schema": {
"version": "7.0.15",
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
"integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
- "extraneous": true,
- "license": "MIT"
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/eslint-config-enact/node_modules/@typescript-eslint/eslint-plugin": {
"version": "8.62.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.62.0.tgz",
"integrity": "sha512-o+mpz7EYiMzXoySXiKmzlabIvTVqUuK5yLrAedRPRDA0IpPFMUV1IXt6OqljIxX/kumN6EjUYp41Hqelh6p/Dw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@eslint-community/regexpp": "^4.12.2",
"@typescript-eslint/scope-manager": "8.62.0",
@@ -7470,8 +7780,10 @@
"version": "8.62.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.62.0.tgz",
"integrity": "sha512-dzHeT2gySzZtLDsuqxU9AkYgIsQoHAHtRBpOqM+Ofzx1Bwrd2RcCjQJ+6iQbsHOIR6NS33bF2W1k3blN1zLDrA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@typescript-eslint/scope-manager": "8.62.0",
"@typescript-eslint/types": "8.62.0",
@@ -7495,8 +7807,10 @@
"version": "8.62.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.62.0.tgz",
"integrity": "sha512-wexnCqiTg7BOGtbLDftYpRWlmLq4xfoMd7BKFR6Y75sZS3QmRKLdN3yWLhmIYgqMmP/OXWpj3H8odkb5nGURCQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@typescript-eslint/tsconfig-utils": "^8.62.0",
"@typescript-eslint/types": "^8.62.0",
@@ -7517,8 +7831,10 @@
"version": "8.62.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.62.0.tgz",
"integrity": "sha512-1lX38kNxXIRb8mEc3lbq5mdHq1Pf2+U0nFU65KfT18mtPxxl0fvjuEE92mHuXPuCtElJhOrddOpyMlM3Z0umEA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@typescript-eslint/types": "8.62.0",
"@typescript-eslint/visitor-keys": "8.62.0"
@@ -7535,8 +7851,10 @@
"version": "8.62.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.62.0.tgz",
"integrity": "sha512-y2GAdB6ykaXUvuspbYnizQc4oDDz0Tz/Yc7iWrXf9mx8vm/L/0vLHCe0tS2boG96Zy+DivnVDQ9ZUEWoHqqx1g==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
@@ -7552,8 +7870,10 @@
"version": "8.62.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.62.0.tgz",
"integrity": "sha512-+g5O3j0w2ldzC86Pv6fvbO/xhAonbJFIdf/MKQ1d30gndlsVzUOE83ldfSE15Qrl9fhFjK6AovHs5Wpp6vx86w==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@typescript-eslint/types": "8.62.0",
"@typescript-eslint/typescript-estree": "8.62.0",
@@ -7577,8 +7897,10 @@
"version": "8.62.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.62.0.tgz",
"integrity": "sha512-KvAclkktORPvM54TgLgA4z9HIV1M8zOgw9ZVNXl9f/8dLYfXYX1wkMXP7qmabpijQRV5bHJLOmoyGQbLMaUYeg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
@@ -7591,8 +7913,10 @@
"version": "8.62.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.62.0.tgz",
"integrity": "sha512-+hVbNxtW64pIcZWDPGbyaKF7vp2IBTVY5ma1blwwksrjdsbdqqEKvJWMGbBofei4F6Dovx1M0RJgoFeNu2279A==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@typescript-eslint/project-service": "8.62.0",
"@typescript-eslint/tsconfig-utils": "8.62.0",
@@ -7619,8 +7943,10 @@
"version": "7.8.5",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz",
"integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==",
- "extraneous": true,
+ "dev": true,
"license": "ISC",
+ "optional": true,
+ "peer": true,
"bin": {
"semver": "bin/semver.js"
},
@@ -7632,8 +7958,10 @@
"version": "8.62.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.62.0.tgz",
"integrity": "sha512-82r66fi9zYwZ+mTq3vKgwjbZ1PVk/DJzrXFLpG6RnBbdvH8TEGVHIs9H4d2drhkOzf0syZuD/OZvvlu6GDbP4g==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.9.1",
"@typescript-eslint/scope-manager": "8.62.0",
@@ -7656,8 +7984,10 @@
"version": "8.62.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.62.0.tgz",
"integrity": "sha512-CY3uyFSRbcQv3nnSv8S0+lDftMVz6P963PoRlxrV7ew/Md564g9ut60PYzdLM5qW4jFn93GBF+Soi90ISAN+GQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@typescript-eslint/types": "8.62.0",
"eslint-visitor-keys": "^5.0.0"
@@ -7674,8 +8004,10 @@
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz",
"integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==",
- "extraneous": true,
+ "dev": true,
"license": "Apache-2.0",
+ "optional": true,
+ "peer": true,
"engines": {
"node": "^20.19.0 || ^22.13.0 || >=24"
},
@@ -7687,8 +8019,10 @@
"version": "8.17.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.17.0.tgz",
"integrity": "sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"bin": {
"acorn": "bin/acorn"
},
@@ -7700,8 +8034,10 @@
"version": "5.3.2",
"resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
"integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"peerDependencies": {
"acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
}
@@ -7710,8 +8046,10 @@
"version": "6.15.0",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz",
"integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
@@ -7727,8 +8065,10 @@
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -7743,15 +8083,19 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "extraneous": true,
- "license": "Python-2.0"
+ "dev": true,
+ "license": "Python-2.0",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/eslint-config-enact/node_modules/aria-query": {
"version": "5.3.2",
"resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz",
"integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==",
- "extraneous": true,
+ "dev": true,
"license": "Apache-2.0",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">= 0.4"
}
@@ -7760,8 +8104,10 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz",
"integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bound": "^1.0.3",
"is-array-buffer": "^3.0.5"
@@ -7777,8 +8123,10 @@
"version": "3.1.9",
"resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz",
"integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bind": "^1.0.8",
"call-bound": "^1.0.4",
@@ -7800,8 +8148,10 @@
"version": "1.2.5",
"resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz",
"integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bind": "^1.0.7",
"define-properties": "^1.2.1",
@@ -7821,8 +8171,10 @@
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz",
"integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bind": "^1.0.8",
"define-properties": "^1.2.1",
@@ -7840,8 +8192,10 @@
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz",
"integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bind": "^1.0.8",
"define-properties": "^1.2.1",
@@ -7859,8 +8213,10 @@
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz",
"integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bind": "^1.0.7",
"define-properties": "^1.2.1",
@@ -7876,8 +8232,10 @@
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz",
"integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"array-buffer-byte-length": "^1.0.1",
"call-bind": "^1.0.8",
@@ -7898,15 +8256,19 @@
"version": "0.0.8",
"resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz",
"integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==",
- "extraneous": true,
- "license": "MIT"
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/eslint-config-enact/node_modules/async-function": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz",
"integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">= 0.4"
}
@@ -7915,8 +8277,10 @@
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
"integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"possible-typed-array-names": "^1.0.0"
},
@@ -7931,8 +8295,10 @@
"version": "4.12.1",
"resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.12.1.tgz",
"integrity": "sha512-s7iGf5GaVMxEG0ENN9x+xTr7GFZCb1ZP/1uATUpCEK2X78nDB3RwbtFCo9pGAf9ru+VwoQ464DkaLEeRM08wJA==",
- "extraneous": true,
+ "dev": true,
"license": "MPL-2.0",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=4"
}
@@ -7941,8 +8307,10 @@
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz",
"integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==",
- "extraneous": true,
+ "dev": true,
"license": "Apache-2.0",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">= 0.4"
}
@@ -7951,8 +8319,10 @@
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/babel-plugin-dev-expression/-/babel-plugin-dev-expression-0.2.3.tgz",
"integrity": "sha512-rP5LK9QQTzCW61nVVzw88En1oK8t8gTsIeC6E61oelxNsU842yMjF0G1MxhvUpCkxCEIj7sE8/e5ieTheT//uw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"peerDependencies": {
"@babel/core": "^7.0.0"
}
@@ -7961,8 +8331,10 @@
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz",
"integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"object.assign": "^4.1.0"
}
@@ -7971,8 +8343,10 @@
"version": "0.4.17",
"resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.17.tgz",
"integrity": "sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/compat-data": "^7.28.6",
"@babel/helper-define-polyfill-provider": "^0.6.8",
@@ -7986,8 +8360,10 @@
"version": "0.13.0",
"resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz",
"integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-define-polyfill-provider": "^0.6.5",
"core-js-compat": "^3.43.0"
@@ -8000,8 +8376,10 @@
"version": "0.6.8",
"resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.8.tgz",
"integrity": "sha512-M762rNHfSF1EV3SLtnCJXFoQbbIIz0OyRwnCmV0KPC7qosSfCO0QLTSuJX3ayAebubhE6oYBAYPrBA5ljowaZg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/helper-define-polyfill-provider": "^0.6.8"
},
@@ -8013,15 +8391,19 @@
"version": "0.4.24",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz",
"integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==",
- "extraneous": true,
- "license": "MIT"
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/eslint-config-enact/node_modules/babel-preset-enact": {
"version": "0.1.17",
"resolved": "https://registry.npmjs.org/babel-preset-enact/-/babel-preset-enact-0.1.17.tgz",
"integrity": "sha512-0x8sc//pDJazXhGvlOD4w8mecFVcUZvuiIi3JLK/1TBYZ7Q4/8jnXjii61OZyyGGwy30QCflf+WTy3A6rQubbg==",
- "extraneous": true,
+ "dev": true,
"license": "Apache-2.0",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/core": "^7.29.7",
"@babel/plugin-proposal-decorators": "^7.29.7",
@@ -8041,8 +8423,10 @@
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz",
"integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": "18 || 20 || >=22"
}
@@ -8051,8 +8435,10 @@
"version": "2.10.38",
"resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.38.tgz",
"integrity": "sha512-31/02mVB4yuQU6adKk5SlY6m+mxDwUq5KZkyYgnLrrKl7TEm1+3PyDtDBz2kOv/wxZz41GHsvV1A/u6RmiyBvw==",
- "extraneous": true,
+ "dev": true,
"license": "Apache-2.0",
+ "optional": true,
+ "peer": true,
"bin": {
"baseline-browser-mapping": "dist/cli.cjs"
},
@@ -8064,8 +8450,10 @@
"version": "5.0.6",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz",
"integrity": "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"balanced-match": "^4.0.2"
},
@@ -8077,7 +8465,7 @@
"version": "4.28.4",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.4.tgz",
"integrity": "sha512-MTc8i/x9jBQd1iMw2CFGS+rwMa07eYjLR0CCTLDACl9xhxy+nIs3KeML/biicXtk9JrZ6dnnTatmc7ErPXIxqw==",
- "extraneous": true,
+ "dev": true,
"funding": [
{
"type": "opencollective",
@@ -8093,6 +8481,8 @@
}
],
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"baseline-browser-mapping": "^2.10.38",
"caniuse-lite": "^1.0.30001799",
@@ -8111,8 +8501,10 @@
"version": "1.0.9",
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.9.tgz",
"integrity": "sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bind-apply-helpers": "^1.0.2",
"es-define-property": "^1.0.1",
@@ -8130,8 +8522,10 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
"integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"es-errors": "^1.3.0",
"function-bind": "^1.1.2"
@@ -8144,8 +8538,10 @@
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
"integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bind-apply-helpers": "^1.0.2",
"get-intrinsic": "^1.3.0"
@@ -8161,8 +8557,10 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
"integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=6"
}
@@ -8171,7 +8569,7 @@
"version": "1.0.30001799",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001799.tgz",
"integrity": "sha512-hG1bReV+OUU+MOqK4t/ZWI0tZOyz3rqS9XuhOUz1cIcbwBKjOyJEJuw9ER5JuNyqxNk8u/JUVbGibBOL1yrjFw==",
- "extraneous": true,
+ "dev": true,
"funding": [
{
"type": "opencollective",
@@ -8186,14 +8584,18 @@
"url": "https://github.com/sponsors/ai"
}
],
- "license": "CC-BY-4.0"
+ "license": "CC-BY-4.0",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/eslint-config-enact/node_modules/chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -8209,8 +8611,10 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"color-name": "~1.1.4"
},
@@ -8222,29 +8626,37 @@
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "extraneous": true,
- "license": "MIT"
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/eslint-config-enact/node_modules/concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
- "extraneous": true,
- "license": "MIT"
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/eslint-config-enact/node_modules/convert-source-map": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
"integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
- "extraneous": true,
- "license": "MIT"
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/eslint-config-enact/node_modules/core-js-compat": {
"version": "3.49.0",
"resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.49.0.tgz",
"integrity": "sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"browserslist": "^4.28.1"
},
@@ -8257,8 +8669,10 @@
"version": "7.0.6",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
"integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"path-key": "^3.1.0",
"shebang-command": "^2.0.0",
@@ -8272,15 +8686,19 @@
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz",
"integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==",
- "extraneous": true,
- "license": "BSD-2-Clause"
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/eslint-config-enact/node_modules/data-view-buffer": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz",
"integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bound": "^1.0.3",
"es-errors": "^1.3.0",
@@ -8297,8 +8715,10 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz",
"integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bound": "^1.0.3",
"es-errors": "^1.3.0",
@@ -8315,8 +8735,10 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz",
"integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bound": "^1.0.2",
"es-errors": "^1.3.0",
@@ -8333,8 +8755,10 @@
"version": "4.4.3",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
"integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"ms": "^2.1.3"
},
@@ -8351,15 +8775,19 @@
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
"integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
- "extraneous": true,
- "license": "MIT"
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/eslint-config-enact/node_modules/define-data-property": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
"integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"es-define-property": "^1.0.0",
"es-errors": "^1.3.0",
@@ -8376,8 +8804,10 @@
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
"integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"define-data-property": "^1.0.1",
"has-property-descriptors": "^1.0.0",
@@ -8394,8 +8824,10 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
"integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
- "extraneous": true,
+ "dev": true,
"license": "Apache-2.0",
+ "optional": true,
+ "peer": true,
"dependencies": {
"esutils": "^2.0.2"
},
@@ -8407,8 +8839,10 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
"integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bind-apply-helpers": "^1.0.1",
"es-errors": "^1.3.0",
@@ -8422,22 +8856,28 @@
"version": "1.5.377",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.377.tgz",
"integrity": "sha512-cH1jZgJHoezfTnKfKwnScpHywTFVnJUNITDPREFdhNjiuD502+QFpG0Qk7G8jhsV/f+CEAFlIrzP1fT+IMb92g==",
- "extraneous": true,
- "license": "ISC"
+ "dev": true,
+ "license": "ISC",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/eslint-config-enact/node_modules/emoji-regex": {
"version": "9.2.2",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
"integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
- "extraneous": true,
- "license": "MIT"
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/eslint-config-enact/node_modules/es-abstract": {
"version": "1.24.2",
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.2.tgz",
"integrity": "sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"array-buffer-byte-length": "^1.0.2",
"arraybuffer.prototype.slice": "^1.0.4",
@@ -8505,8 +8945,10 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/es-abstract-get/-/es-abstract-get-1.0.0.tgz",
"integrity": "sha512-6PMWXpdhshVvFp+FoWYs1EvG1Nj0tvk0dZM+XcK0xMEM1czRVcP6ohqPWHy6qPagSpC8j4+p89WXlT+xXJs/fg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"es-errors": "^1.3.0",
"es-object-atoms": "^1.1.2",
@@ -8524,8 +8966,10 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
"integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">= 0.4"
}
@@ -8534,8 +8978,10 @@
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
"integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">= 0.4"
}
@@ -8544,8 +8990,10 @@
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.3.3.tgz",
"integrity": "sha512-0PuBxFi+4uPanB97iDxCLWuHeYud2FALrw5HFZGtAF38UpJDbDC8frwp2cnDyae692CQ0dou60UwWfhgsa4U/g==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bind": "^1.0.9",
"call-bound": "^1.0.4",
@@ -8572,8 +9020,10 @@
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz",
"integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"es-errors": "^1.3.0"
},
@@ -8585,8 +9035,10 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
"integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"es-errors": "^1.3.0",
"get-intrinsic": "^1.2.6",
@@ -8601,8 +9053,10 @@
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz",
"integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"hasown": "^2.0.2"
},
@@ -8614,8 +9068,10 @@
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.1.tgz",
"integrity": "sha512-CxN9N56HYfd2m/acc/NOFrZQsN9kU4eh+2kk6A707Kz1krH8tKmfrs5RnftB8WNX80T0NS7vSQsDOlg23diR2g==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"es-abstract-get": "^1.0.0",
"es-errors": "^1.3.0",
@@ -8634,8 +9090,10 @@
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
"integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=6"
}
@@ -8644,8 +9102,10 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
"integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=10"
},
@@ -8657,8 +9117,10 @@
"version": "9.39.4",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.4.tgz",
"integrity": "sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.8.0",
"@eslint-community/regexpp": "^4.12.1",
@@ -8717,8 +9179,10 @@
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/eslint-plugin-enact/-/eslint-plugin-enact-2.0.4.tgz",
"integrity": "sha512-BGl2iswi85FUl/fTZ9WEQq+M6oHzcP4YjK4eCxaISeO/BIMjYenp76QHzKFNG20GFjeaK5Eo/Rpah7DhSkDLeQ==",
- "extraneous": true,
+ "dev": true,
"license": "Apache-2.0",
+ "optional": true,
+ "peer": true,
"dependencies": {
"doctrine": "^3.0.0",
"jsx-ast-utils": "^3.3.5",
@@ -8735,8 +9199,10 @@
"version": "29.15.2",
"resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-29.15.2.tgz",
"integrity": "sha512-kEN4r9RZl1xcsb4arGq89LrcVdOUFII/JSCwtTPJyv16mDwmPrcuEQwpxqZHeINvcsd7oK5O/rhdGlxFRaZwvQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@typescript-eslint/utils": "^8.0.0"
},
@@ -8765,8 +9231,10 @@
"version": "6.10.2",
"resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz",
"integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"aria-query": "^5.3.2",
"array-includes": "^3.1.8",
@@ -8795,15 +9263,19 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
- "extraneous": true,
- "license": "MIT"
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/eslint-config-enact/node_modules/eslint-plugin-jsx-a11y/node_modules/brace-expansion": {
"version": "1.1.15",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.15.tgz",
"integrity": "sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -8813,8 +9285,10 @@
"version": "3.1.5",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
"integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
- "extraneous": true,
+ "dev": true,
"license": "ISC",
+ "optional": true,
+ "peer": true,
"dependencies": {
"brace-expansion": "^1.1.7"
},
@@ -8826,8 +9300,10 @@
"version": "7.37.5",
"resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz",
"integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"array-includes": "^3.1.8",
"array.prototype.findlast": "^1.2.5",
@@ -8859,8 +9335,10 @@
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-7.0.1.tgz",
"integrity": "sha512-O0d0m04evaNzEPoSW+59Mezf8Qt0InfgGIBJnpC0h3NH/WjUAR7BIKUfysC6todmtiZ/A0oUVS8Gce0WhBrHsA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@babel/core": "^7.24.4",
"@babel/parser": "^7.24.4",
@@ -8879,15 +9357,19 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
- "extraneous": true,
- "license": "MIT"
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/eslint-config-enact/node_modules/eslint-plugin-react/node_modules/brace-expansion": {
"version": "1.1.15",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.15.tgz",
"integrity": "sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -8897,8 +9379,10 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
"integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
- "extraneous": true,
+ "dev": true,
"license": "Apache-2.0",
+ "optional": true,
+ "peer": true,
"dependencies": {
"esutils": "^2.0.2"
},
@@ -8910,8 +9394,10 @@
"version": "3.1.5",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
"integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
- "extraneous": true,
+ "dev": true,
"license": "ISC",
+ "optional": true,
+ "peer": true,
"dependencies": {
"brace-expansion": "^1.1.7"
},
@@ -8923,8 +9409,10 @@
"version": "2.0.0-next.7",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.7.tgz",
"integrity": "sha512-tqt+NBWwyaMgw3zDsnygx4CByWjQEJHOPMdslYhppaQSJUtL/D4JO9CcBBlhPoI8lz9oJIDXkwXfhF4aWqP8xQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"es-errors": "^1.3.0",
"is-core-module": "^2.16.2",
@@ -8947,8 +9435,10 @@
"version": "7.16.2",
"resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-7.16.2.tgz",
"integrity": "sha512-8gleGnQXK2ZA3hHwjCwpYTZvM+9VsrJ+/9kDI8CjqAQGAdMQOdn/rJNu7ZySENuiWlGKQWyZJ4ZjEg2zamaRHw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@typescript-eslint/scope-manager": "^8.56.0",
"@typescript-eslint/utils": "^8.56.0"
@@ -8964,8 +9454,10 @@
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz",
"integrity": "sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=4.0.0"
}
@@ -8974,8 +9466,10 @@
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
"integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
- "extraneous": true,
+ "dev": true,
"license": "BSD-2-Clause",
+ "optional": true,
+ "peer": true,
"dependencies": {
"esrecurse": "^4.3.0",
"estraverse": "^4.1.1"
@@ -8988,8 +9482,10 @@
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
"integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
- "extraneous": true,
+ "dev": true,
"license": "BSD-2-Clause",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=4.0"
}
@@ -8998,8 +9494,10 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
"integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
- "extraneous": true,
+ "dev": true,
"license": "Apache-2.0",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=10"
}
@@ -9008,15 +9506,19 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
- "extraneous": true,
- "license": "MIT"
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/eslint-config-enact/node_modules/eslint/node_modules/brace-expansion": {
"version": "1.1.15",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.15.tgz",
"integrity": "sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -9026,8 +9528,10 @@
"version": "8.4.0",
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz",
"integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==",
- "extraneous": true,
+ "dev": true,
"license": "BSD-2-Clause",
+ "optional": true,
+ "peer": true,
"dependencies": {
"esrecurse": "^4.3.0",
"estraverse": "^5.2.0"
@@ -9043,8 +9547,10 @@
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
"integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
- "extraneous": true,
+ "dev": true,
"license": "Apache-2.0",
+ "optional": true,
+ "peer": true,
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
@@ -9056,8 +9562,10 @@
"version": "5.3.2",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
"integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">= 4"
}
@@ -9066,8 +9574,10 @@
"version": "3.1.5",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
"integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
- "extraneous": true,
+ "dev": true,
"license": "ISC",
+ "optional": true,
+ "peer": true,
"dependencies": {
"brace-expansion": "^1.1.7"
},
@@ -9079,8 +9589,10 @@
"version": "10.4.0",
"resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz",
"integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==",
- "extraneous": true,
+ "dev": true,
"license": "BSD-2-Clause",
+ "optional": true,
+ "peer": true,
"dependencies": {
"acorn": "^8.15.0",
"acorn-jsx": "^5.3.2",
@@ -9097,8 +9609,10 @@
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
"integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
- "extraneous": true,
+ "dev": true,
"license": "Apache-2.0",
+ "optional": true,
+ "peer": true,
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
@@ -9110,8 +9624,10 @@
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz",
"integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==",
- "extraneous": true,
+ "dev": true,
"license": "BSD-3-Clause",
+ "optional": true,
+ "peer": true,
"dependencies": {
"estraverse": "^5.1.0"
},
@@ -9123,8 +9639,10 @@
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
"integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
- "extraneous": true,
+ "dev": true,
"license": "BSD-2-Clause",
+ "optional": true,
+ "peer": true,
"dependencies": {
"estraverse": "^5.2.0"
},
@@ -9136,8 +9654,10 @@
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
"integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
- "extraneous": true,
+ "dev": true,
"license": "BSD-2-Clause",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=4.0"
}
@@ -9146,8 +9666,10 @@
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
"integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
- "extraneous": true,
+ "dev": true,
"license": "BSD-2-Clause",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=0.10.0"
}
@@ -9156,29 +9678,37 @@
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
- "extraneous": true,
- "license": "MIT"
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/eslint-config-enact/node_modules/fast-json-stable-stringify": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
"integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
- "extraneous": true,
- "license": "MIT"
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/eslint-config-enact/node_modules/fast-levenshtein": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
"integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
- "extraneous": true,
- "license": "MIT"
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/eslint-config-enact/node_modules/fdir": {
"version": "6.5.0",
"resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
"integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=12.0.0"
},
@@ -9195,8 +9725,10 @@
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz",
"integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"flat-cache": "^4.0.0"
},
@@ -9208,8 +9740,10 @@
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
"integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"locate-path": "^6.0.0",
"path-exists": "^4.0.0"
@@ -9225,8 +9759,10 @@
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz",
"integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"flatted": "^3.2.9",
"keyv": "^4.5.4"
@@ -9239,15 +9775,19 @@
"version": "3.4.2",
"resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz",
"integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==",
- "extraneous": true,
- "license": "ISC"
+ "dev": true,
+ "license": "ISC",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/eslint-config-enact/node_modules/for-each": {
"version": "0.3.5",
"resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz",
"integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"is-callable": "^1.2.7"
},
@@ -9262,8 +9802,10 @@
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
"integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
@@ -9272,8 +9814,10 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.2.0.tgz",
"integrity": "sha512-jObKIik1P2QjPHP5nz5BaOtUlfgS0fWo8IUByNXkM+o+02sJOi94em77GwJKQSJ3gfPHdgzLNrHc1uokV4P/ew==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bind": "^1.0.9",
"call-bound": "^1.0.4",
@@ -9296,8 +9840,10 @@
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
"integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
@@ -9306,8 +9852,10 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz",
"integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">= 0.4"
}
@@ -9316,8 +9864,10 @@
"version": "1.0.0-beta.2",
"resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
"integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=6.9.0"
}
@@ -9326,8 +9876,10 @@
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
"integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bind-apply-helpers": "^1.0.2",
"es-define-property": "^1.0.1",
@@ -9351,8 +9903,10 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
"integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"dunder-proto": "^1.0.1",
"es-object-atoms": "^1.0.0"
@@ -9365,8 +9919,10 @@
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz",
"integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bound": "^1.0.3",
"es-errors": "^1.3.0",
@@ -9383,8 +9939,10 @@
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
"integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
- "extraneous": true,
+ "dev": true,
"license": "ISC",
+ "optional": true,
+ "peer": true,
"dependencies": {
"is-glob": "^4.0.3"
},
@@ -9396,8 +9954,10 @@
"version": "17.7.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-17.7.0.tgz",
"integrity": "sha512-Czmyns5dUsq4seFBR/Kdydhmo8y9kC79hiSkPn0YcGtNnYWnrgt0vjrSjx9tspoDGWm2CMarffRuLjM4xUz8xg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=18"
},
@@ -9409,8 +9969,10 @@
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz",
"integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"define-properties": "^1.2.1",
"gopd": "^1.0.1"
@@ -9426,8 +9988,10 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
"integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">= 0.4"
},
@@ -9439,8 +10003,10 @@
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz",
"integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">= 0.4"
},
@@ -9452,8 +10018,10 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=8"
}
@@ -9462,8 +10030,10 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
"integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"es-define-property": "^1.0.0"
},
@@ -9475,8 +10045,10 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz",
"integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"dunder-proto": "^1.0.0"
},
@@ -9491,8 +10063,10 @@
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
"integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">= 0.4"
},
@@ -9504,8 +10078,10 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
"integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"has-symbols": "^1.0.3"
},
@@ -9520,8 +10096,10 @@
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz",
"integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"function-bind": "^1.1.2"
},
@@ -9533,15 +10111,19 @@
"version": "0.25.1",
"resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.25.1.tgz",
"integrity": "sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==",
- "extraneous": true,
- "license": "MIT"
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/eslint-config-enact/node_modules/hermes-parser": {
"version": "0.25.1",
"resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.25.1.tgz",
"integrity": "sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"hermes-estree": "0.25.1"
}
@@ -9550,8 +10132,10 @@
"version": "7.0.5",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz",
"integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">= 4"
}
@@ -9560,8 +10144,10 @@
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz",
"integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"parent-module": "^1.0.0",
"resolve-from": "^4.0.0"
@@ -9577,8 +10163,10 @@
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
"integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=0.8.19"
}
@@ -9587,8 +10175,10 @@
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz",
"integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"es-errors": "^1.3.0",
"hasown": "^2.0.2",
@@ -9602,8 +10192,10 @@
"version": "3.0.5",
"resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz",
"integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bind": "^1.0.8",
"call-bound": "^1.0.3",
@@ -9620,8 +10212,10 @@
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz",
"integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"async-function": "^1.0.0",
"call-bound": "^1.0.3",
@@ -9640,8 +10234,10 @@
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz",
"integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"has-bigints": "^1.0.2"
},
@@ -9656,8 +10252,10 @@
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz",
"integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bound": "^1.0.3",
"has-tostringtag": "^1.0.2"
@@ -9673,8 +10271,10 @@
"version": "1.2.7",
"resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
"integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">= 0.4"
},
@@ -9686,8 +10286,10 @@
"version": "2.16.2",
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.2.tgz",
"integrity": "sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"hasown": "^2.0.3"
},
@@ -9702,8 +10304,10 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz",
"integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bound": "^1.0.2",
"get-intrinsic": "^1.2.6",
@@ -9720,8 +10324,10 @@
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz",
"integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bound": "^1.0.2",
"has-tostringtag": "^1.0.2"
@@ -9737,8 +10343,10 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-document.all/-/is-document.all-1.0.0.tgz",
"integrity": "sha512-+XSoyS05OdBbhFuELhgTCpFNHkpBOJqtsZfUFFpe5QTw+9Sjbh8zitxhQkYAo6wV7e1Vb8cAPvpCk9jGam/82g==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bound": "^1.0.4"
},
@@ -9753,8 +10361,10 @@
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
"integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=0.10.0"
}
@@ -9763,8 +10373,10 @@
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz",
"integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bound": "^1.0.3"
},
@@ -9779,8 +10391,10 @@
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz",
"integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bound": "^1.0.4",
"generator-function": "^2.0.0",
@@ -9799,8 +10413,10 @@
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
"integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"is-extglob": "^2.1.1"
},
@@ -9812,8 +10428,10 @@
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz",
"integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">= 0.4"
},
@@ -9825,8 +10443,10 @@
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz",
"integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">= 0.4"
},
@@ -9838,8 +10458,10 @@
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz",
"integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bound": "^1.0.3",
"has-tostringtag": "^1.0.2"
@@ -9855,8 +10477,10 @@
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz",
"integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bound": "^1.0.2",
"gopd": "^1.2.0",
@@ -9874,8 +10498,10 @@
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz",
"integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">= 0.4"
},
@@ -9887,8 +10513,10 @@
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz",
"integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bound": "^1.0.3"
},
@@ -9903,8 +10531,10 @@
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz",
"integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bound": "^1.0.3",
"has-tostringtag": "^1.0.2"
@@ -9920,8 +10550,10 @@
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz",
"integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bound": "^1.0.2",
"has-symbols": "^1.1.0",
@@ -9938,8 +10570,10 @@
"version": "1.1.15",
"resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz",
"integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"which-typed-array": "^1.1.16"
},
@@ -9954,8 +10588,10 @@
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz",
"integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">= 0.4"
},
@@ -9967,8 +10603,10 @@
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz",
"integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bound": "^1.0.3"
},
@@ -9983,8 +10621,10 @@
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz",
"integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bound": "^1.0.3",
"get-intrinsic": "^1.2.6"
@@ -10000,22 +10640,28 @@
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
"integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
- "extraneous": true,
- "license": "MIT"
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/eslint-config-enact/node_modules/isexe": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
- "extraneous": true,
- "license": "ISC"
+ "dev": true,
+ "license": "ISC",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/eslint-config-enact/node_modules/iterator.prototype": {
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz",
"integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"define-data-property": "^1.1.4",
"es-object-atoms": "^1.0.0",
@@ -10032,14 +10678,16 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "extraneous": true,
- "license": "MIT"
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/eslint-config-enact/node_modules/js-yaml": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.2.0.tgz",
"integrity": "sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==",
- "extraneous": true,
+ "dev": true,
"funding": [
{
"type": "github",
@@ -10051,6 +10699,8 @@
}
],
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"argparse": "^2.0.1"
},
@@ -10062,8 +10712,10 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
"integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"bin": {
"jsesc": "bin/jsesc"
},
@@ -10075,29 +10727,37 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
"integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
- "extraneous": true,
- "license": "MIT"
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/eslint-config-enact/node_modules/json-schema-traverse": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
- "extraneous": true,
- "license": "MIT"
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/eslint-config-enact/node_modules/json-stable-stringify-without-jsonify": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
"integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
- "extraneous": true,
- "license": "MIT"
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/eslint-config-enact/node_modules/json5": {
"version": "2.2.3",
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
"integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"bin": {
"json5": "lib/cli.js"
},
@@ -10109,8 +10769,10 @@
"version": "3.3.5",
"resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz",
"integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"array-includes": "^3.1.6",
"array.prototype.flat": "^1.3.1",
@@ -10125,8 +10787,10 @@
"version": "4.5.4",
"resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
"integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"json-buffer": "3.0.1"
}
@@ -10135,15 +10799,19 @@
"version": "0.3.23",
"resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz",
"integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==",
- "extraneous": true,
- "license": "CC0-1.0"
+ "dev": true,
+ "license": "CC0-1.0",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/eslint-config-enact/node_modules/language-tags": {
"version": "1.0.9",
"resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz",
"integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"language-subtag-registry": "^0.3.20"
},
@@ -10155,8 +10823,10 @@
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
"integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"prelude-ls": "^1.2.1",
"type-check": "~0.4.0"
@@ -10169,8 +10839,10 @@
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
"integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"p-locate": "^5.0.0"
},
@@ -10185,22 +10857,28 @@
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
"integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==",
- "extraneous": true,
- "license": "MIT"
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/eslint-config-enact/node_modules/lodash.merge": {
"version": "4.6.2",
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
"integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
- "extraneous": true,
- "license": "MIT"
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/eslint-config-enact/node_modules/loose-envify": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
"integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"js-tokens": "^3.0.0 || ^4.0.0"
},
@@ -10212,8 +10890,10 @@
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
"integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
- "extraneous": true,
+ "dev": true,
"license": "ISC",
+ "optional": true,
+ "peer": true,
"dependencies": {
"yallist": "^3.0.2"
}
@@ -10222,8 +10902,10 @@
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
"integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">= 0.4"
}
@@ -10232,8 +10914,10 @@
"version": "10.2.5",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz",
"integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==",
- "extraneous": true,
+ "dev": true,
"license": "BlueOak-1.0.0",
+ "optional": true,
+ "peer": true,
"dependencies": {
"brace-expansion": "^5.0.5"
},
@@ -10248,22 +10932,28 @@
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
- "extraneous": true,
- "license": "MIT"
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/eslint-config-enact/node_modules/natural-compare": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
"integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
- "extraneous": true,
- "license": "MIT"
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/eslint-config-enact/node_modules/node-exports-info": {
"version": "1.6.2",
"resolved": "https://registry.npmjs.org/node-exports-info/-/node-exports-info-1.6.2.tgz",
"integrity": "sha512-kXs9Go0cah0qHVV2v389IXQLdLCeE1xfFtjOAF+iobu0OIoG1pje8At2vMHyaPMiPMnG/LWP50twML21eMcAag==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"array.prototype.flatmap": "^1.3.3",
"es-errors": "^1.3.0",
@@ -10281,8 +10971,10 @@
"version": "2.0.48",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.48.tgz",
"integrity": "sha512-1uz8041X6LoI6ZSdZacM9lVY28vuzDlSKitnpbSNK0RfKoIJkX29NBPVEFXhnuSuEOA9Ww0xnPJ+ILWbGAv8DA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=18"
}
@@ -10291,8 +10983,10 @@
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=0.10.0"
}
@@ -10301,8 +10995,10 @@
"version": "1.13.4",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
"integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">= 0.4"
},
@@ -10314,8 +11010,10 @@
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
"integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">= 0.4"
}
@@ -10324,8 +11022,10 @@
"version": "4.1.7",
"resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz",
"integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bind": "^1.0.8",
"call-bound": "^1.0.3",
@@ -10345,8 +11045,10 @@
"version": "1.1.9",
"resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz",
"integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bind": "^1.0.8",
"call-bound": "^1.0.4",
@@ -10361,8 +11063,10 @@
"version": "2.0.8",
"resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz",
"integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bind": "^1.0.7",
"define-properties": "^1.2.1",
@@ -10380,8 +11084,10 @@
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz",
"integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bind": "^1.0.8",
"call-bound": "^1.0.3",
@@ -10399,8 +11105,10 @@
"version": "0.9.4",
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
"integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"deep-is": "^0.1.3",
"fast-levenshtein": "^2.0.6",
@@ -10417,8 +11125,10 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz",
"integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"get-intrinsic": "^1.2.6",
"object-keys": "^1.1.1",
@@ -10435,8 +11145,10 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
"integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"yocto-queue": "^0.1.0"
},
@@ -10451,8 +11163,10 @@
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
"integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"p-limit": "^3.0.2"
},
@@ -10467,8 +11181,10 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
"integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"callsites": "^3.0.0"
},
@@ -10480,8 +11196,10 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
"integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=8"
}
@@ -10490,8 +11208,10 @@
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
"integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=8"
}
@@ -10500,22 +11220,28 @@
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
- "extraneous": true,
- "license": "MIT"
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/eslint-config-enact/node_modules/picocolors": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
"integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
- "extraneous": true,
- "license": "ISC"
+ "dev": true,
+ "license": "ISC",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/eslint-config-enact/node_modules/picomatch": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
"integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=12"
},
@@ -10527,8 +11253,10 @@
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz",
"integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">= 0.4"
}
@@ -10537,8 +11265,10 @@
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
"integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">= 0.8.0"
}
@@ -10547,8 +11277,10 @@
"version": "15.8.1",
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
"integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"loose-envify": "^1.4.0",
"object-assign": "^4.1.1",
@@ -10559,8 +11291,10 @@
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
"integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=6"
}
@@ -10569,8 +11303,10 @@
"version": "19.2.7",
"resolved": "https://registry.npmjs.org/react/-/react-19.2.7.tgz",
"integrity": "sha512-HNe9WslTbXmFK8o8cmwgAeJFSBvt1bPdHCVKtaaV+WlAN36mpT4hcRpwbf3fY56ar2oIXzsBpOAiIRHAdY0OlQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=0.10.0"
}
@@ -10579,15 +11315,19 @@
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
- "extraneous": true,
- "license": "MIT"
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/eslint-config-enact/node_modules/reflect.getprototypeof": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz",
"integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bind": "^1.0.8",
"define-properties": "^1.2.1",
@@ -10609,15 +11349,19 @@
"version": "1.4.2",
"resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
"integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==",
- "extraneous": true,
- "license": "MIT"
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/eslint-config-enact/node_modules/regenerate-unicode-properties": {
"version": "10.2.2",
"resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz",
"integrity": "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"regenerate": "^1.4.2"
},
@@ -10629,8 +11373,10 @@
"version": "1.5.4",
"resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz",
"integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bind": "^1.0.8",
"define-properties": "^1.2.1",
@@ -10650,8 +11396,10 @@
"version": "6.4.0",
"resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.4.0.tgz",
"integrity": "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"regenerate": "^1.4.2",
"regenerate-unicode-properties": "^10.2.2",
@@ -10668,15 +11416,19 @@
"version": "0.8.0",
"resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz",
"integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==",
- "extraneous": true,
- "license": "MIT"
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/eslint-config-enact/node_modules/regjsparser": {
"version": "0.13.2",
"resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.2.tgz",
"integrity": "sha512-NgRBy2Nx/bE+9F27nVHnqcN5HjyLmecqsqx2PJHu3/IEtADD4WuxuXIVExD5PoSDFVrl78dOonfcOe5O+5nbzQ==",
- "extraneous": true,
+ "dev": true,
"license": "BSD-2-Clause",
+ "optional": true,
+ "peer": true,
"dependencies": {
"jsesc": "~3.1.0"
},
@@ -10688,8 +11440,10 @@
"version": "1.22.12",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz",
"integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"es-errors": "^1.3.0",
"is-core-module": "^2.16.1",
@@ -10710,8 +11464,10 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
"integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=4"
}
@@ -10720,8 +11476,10 @@
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.4.tgz",
"integrity": "sha512-wtZlHyOje6OZTGqAoaDKxFkgRtkF9CnHAVnCHKfuj200wAgL+bSJhdsCD2l0Qx/2ekEXjPWcyKkfGb5CPboslg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bind": "^1.0.9",
"call-bound": "^1.0.4",
@@ -10740,8 +11498,10 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz",
"integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"es-errors": "^1.3.0",
"isarray": "^2.0.5"
@@ -10757,8 +11517,10 @@
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz",
"integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bound": "^1.0.2",
"es-errors": "^1.3.0",
@@ -10775,8 +11537,10 @@
"version": "6.3.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "extraneous": true,
+ "dev": true,
"license": "ISC",
+ "optional": true,
+ "peer": true,
"bin": {
"semver": "bin/semver.js"
}
@@ -10785,8 +11549,10 @@
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
"integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"define-data-property": "^1.1.4",
"es-errors": "^1.3.0",
@@ -10803,8 +11569,10 @@
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz",
"integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"define-data-property": "^1.1.4",
"es-errors": "^1.3.0",
@@ -10819,8 +11587,10 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz",
"integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"dunder-proto": "^1.0.1",
"es-errors": "^1.3.0",
@@ -10834,8 +11604,10 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
"integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"shebang-regex": "^3.0.0"
},
@@ -10847,8 +11619,10 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
"integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=8"
}
@@ -10857,8 +11631,10 @@
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.1.tgz",
"integrity": "sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"es-errors": "^1.3.0",
"object-inspect": "^1.13.4",
@@ -10877,8 +11653,10 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz",
"integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"es-errors": "^1.3.0",
"object-inspect": "^1.13.4"
@@ -10894,8 +11672,10 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
"integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bound": "^1.0.2",
"es-errors": "^1.3.0",
@@ -10913,8 +11693,10 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
"integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bound": "^1.0.2",
"es-errors": "^1.3.0",
@@ -10933,8 +11715,10 @@
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz",
"integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"es-errors": "^1.3.0",
"internal-slot": "^1.1.0"
@@ -10947,8 +11731,10 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz",
"integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bind": "^1.0.7",
"define-properties": "^1.2.1",
@@ -10962,8 +11748,10 @@
"version": "4.0.12",
"resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz",
"integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bind": "^1.0.8",
"call-bound": "^1.0.3",
@@ -10990,8 +11778,10 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz",
"integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"define-properties": "^1.1.3",
"es-abstract": "^1.17.5"
@@ -11001,8 +11791,10 @@
"version": "1.2.11",
"resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.11.tgz",
"integrity": "sha512-PwvK7BU+CMTJGYQCTZb5RWXIML92lftJLhQz1tBzgKiqGxJaMlBAa48POXaNAC2s4y8jr3EFqrkF9+44neS46w==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bind": "^1.0.9",
"call-bound": "^1.0.4",
@@ -11024,8 +11816,10 @@
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.10.tgz",
"integrity": "sha512-2+3aDAOmPTmuFwjDnmJG2ctEkQKVki7vOSqaxkv42Mowj1V6PnvuwFCRrR5lChUux1TBskPjfkeTOhqczDMxTw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bind": "^1.0.9",
"call-bound": "^1.0.4",
@@ -11043,8 +11837,10 @@
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz",
"integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bind": "^1.0.7",
"define-properties": "^1.2.1",
@@ -11061,8 +11857,10 @@
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
"integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=8"
},
@@ -11074,8 +11872,10 @@
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -11087,8 +11887,10 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
"integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">= 0.4"
},
@@ -11100,8 +11902,10 @@
"version": "0.2.17",
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz",
"integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"fdir": "^6.5.0",
"picomatch": "^4.0.4"
@@ -11117,8 +11921,10 @@
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz",
"integrity": "sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=18.12"
},
@@ -11130,8 +11936,10 @@
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
"integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"prelude-ls": "^1.2.1"
},
@@ -11143,8 +11951,10 @@
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz",
"integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bound": "^1.0.3",
"es-errors": "^1.3.0",
@@ -11158,8 +11968,10 @@
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz",
"integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bind": "^1.0.8",
"for-each": "^0.3.3",
@@ -11178,8 +11990,10 @@
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz",
"integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"available-typed-arrays": "^1.0.7",
"call-bind": "^1.0.8",
@@ -11200,8 +12014,10 @@
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.8.tgz",
"integrity": "sha512-phPGCwqr2+Qo0fwniCE8e4pKnGu/yFb5nD5Y8bf0EEeiI5GklnACYA9GFy/DrAeRrKHXvHn+1SUsOWgJp6RO+g==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bind": "^1.0.9",
"for-each": "^0.3.5",
@@ -11221,8 +12037,10 @@
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz",
"integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==",
- "extraneous": true,
+ "dev": true,
"license": "Apache-2.0",
+ "optional": true,
+ "peer": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
@@ -11235,8 +12053,10 @@
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz",
"integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bound": "^1.0.3",
"has-bigints": "^1.0.2",
@@ -11254,8 +12074,10 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz",
"integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=4"
}
@@ -11264,8 +12086,10 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz",
"integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"unicode-canonical-property-names-ecmascript": "^2.0.0",
"unicode-property-aliases-ecmascript": "^2.0.0"
@@ -11278,8 +12102,10 @@
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz",
"integrity": "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=4"
}
@@ -11288,8 +12114,10 @@
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz",
"integrity": "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=4"
}
@@ -11298,7 +12126,7 @@
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz",
"integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==",
- "extraneous": true,
+ "dev": true,
"funding": [
{
"type": "opencollective",
@@ -11314,6 +12142,8 @@
}
],
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"escalade": "^3.2.0",
"picocolors": "^1.1.1"
@@ -11329,8 +12159,10 @@
"version": "4.4.1",
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
"integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
- "extraneous": true,
+ "dev": true,
"license": "BSD-2-Clause",
+ "optional": true,
+ "peer": true,
"dependencies": {
"punycode": "^2.1.0"
}
@@ -11339,8 +12171,10 @@
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "extraneous": true,
+ "dev": true,
"license": "ISC",
+ "optional": true,
+ "peer": true,
"dependencies": {
"isexe": "^2.0.0"
},
@@ -11355,8 +12189,10 @@
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz",
"integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"is-bigint": "^1.1.0",
"is-boolean-object": "^1.2.1",
@@ -11375,8 +12211,10 @@
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz",
"integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"call-bound": "^1.0.2",
"function.prototype.name": "^1.1.6",
@@ -11403,8 +12241,10 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz",
"integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"is-map": "^2.0.3",
"is-set": "^2.0.3",
@@ -11422,8 +12262,10 @@
"version": "1.1.22",
"resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.22.tgz",
"integrity": "sha512-fvO4ExWMFsqyhG3AiPAObMuY1lxaqgYcxbc49CNdWDDECOJNgQyvsOWVwbZc+qf3rzRtxojBK+CMEv0Ld5CYpw==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"available-typed-arrays": "^1.0.7",
"call-bind": "^1.0.9",
@@ -11444,8 +12286,10 @@
"version": "1.2.5",
"resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
"integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=0.10.0"
}
@@ -11454,15 +12298,19 @@
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
"integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
- "extraneous": true,
- "license": "ISC"
+ "dev": true,
+ "license": "ISC",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/eslint-config-enact/node_modules/yocto-queue": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
"integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=10"
},
@@ -11474,8 +12322,10 @@
"version": "4.4.3",
"resolved": "https://registry.npmjs.org/zod/-/zod-4.4.3.tgz",
"integrity": "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"funding": {
"url": "https://github.com/sponsors/colinhacks"
}
@@ -11484,8 +12334,10 @@
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-4.0.2.tgz",
"integrity": "sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==",
- "extraneous": true,
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=18.0.0"
},
@@ -11753,8 +12605,9 @@
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
"integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
- "extraneous": true,
"license": "BSD-2-Clause",
+ "optional": true,
+ "peer": true,
"dependencies": {
"estraverse": "^5.2.0"
},
@@ -11766,8 +12619,9 @@
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
"integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
- "extraneous": true,
"license": "BSD-2-Clause",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=4.0"
}
@@ -11786,8 +12640,9 @@
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
"integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=0.8.x"
}
@@ -11796,8 +12651,9 @@
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
- "extraneous": true,
- "license": "MIT"
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/fast-diff": {
"version": "1.3.0",
@@ -11852,7 +12708,6 @@
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.2.tgz",
"integrity": "sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==",
- "extraneous": true,
"funding": [
{
"type": "github",
@@ -11863,7 +12718,9 @@
"url": "https://opencollective.com/fastify"
}
],
- "license": "BSD-3-Clause"
+ "license": "BSD-3-Clause",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/fastq": {
"version": "1.20.1",
@@ -12135,8 +12992,9 @@
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
"integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==",
- "extraneous": true,
- "license": "BSD-2-Clause"
+ "license": "BSD-2-Clause",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/globals": {
"version": "17.7.0",
@@ -12204,8 +13062,9 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=8"
}
@@ -12284,8 +13143,9 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
"integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"bin": {
"he": "bin/he"
}
@@ -12300,8 +13160,9 @@
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz",
"integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"camel-case": "^4.1.2",
"clean-css": "^5.2.2",
@@ -12322,8 +13183,9 @@
"version": "5.6.7",
"resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.7.tgz",
"integrity": "sha512-md+vXtdCAe60s1k6AU3dUyMJnDxUyQAwfwPKoLisvgUF1IXjtlLsk2se54+qfL9Mdm26bbwvjJybpNx48NKRLw==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@types/html-minifier-terser": "^6.0.0",
"html-minifier-terser": "^6.0.2",
@@ -12355,7 +13217,6 @@
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz",
"integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==",
- "extraneous": true,
"funding": [
"https://github.com/fb55/htmlparser2?sponsor=1",
{
@@ -12364,6 +13225,8 @@
}
],
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"domelementtype": "^2.0.1",
"domhandler": "^4.0.0",
@@ -12844,8 +13707,9 @@
"version": "27.5.1",
"resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
"integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@types/node": "*",
"merge-stream": "^2.0.0",
@@ -12946,8 +13810,9 @@
"version": "4.3.2",
"resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.2.tgz",
"integrity": "sha512-DFEqQ3ihfS9blba08cLfYf1NRAIEm+dDjic073DRDc3/JspI/8wYmtDsHwd3+4hwvdxSK7PGaElfTmm0awWJ4w==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=6.11.5"
},
@@ -12985,8 +13850,9 @@
"version": "4.18.1",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz",
"integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==",
- "extraneous": true,
- "license": "MIT"
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/lodash.merge": {
"version": "4.6.2",
@@ -13011,8 +13877,9 @@
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
"integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"tslib": "^2.0.3"
}
@@ -13031,8 +13898,9 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
"integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
- "extraneous": true,
- "license": "MIT"
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/merge2": {
"version": "1.4.1",
@@ -13060,8 +13928,9 @@
"version": "1.54.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz",
"integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">= 0.6"
}
@@ -13129,15 +13998,17 @@
"version": "2.6.2",
"resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
"integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
- "extraneous": true,
- "license": "MIT"
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/no-case": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
"integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"lower-case": "^2.0.2",
"tslib": "^2.0.3"
@@ -13207,8 +14078,9 @@
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
"integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
- "extraneous": true,
"license": "BSD-2-Clause",
+ "optional": true,
+ "peer": true,
"dependencies": {
"boolbase": "^1.0.0"
},
@@ -13419,8 +14291,9 @@
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz",
"integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"dot-case": "^3.0.4",
"tslib": "^2.0.3"
@@ -13442,8 +14315,9 @@
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz",
"integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"no-case": "^3.0.4",
"tslib": "^2.0.3"
@@ -13561,8 +14435,9 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz",
"integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"lodash": "^4.17.20",
"renderkid": "^3.0.0"
@@ -13665,8 +14540,9 @@
"version": "0.2.7",
"resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz",
"integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">= 0.10"
}
@@ -13681,8 +14557,9 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz",
"integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"css-select": "^4.1.3",
"dom-converter": "^0.2.0",
@@ -13695,8 +14572,9 @@
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
"integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=0.10.0"
}
@@ -13823,8 +14701,9 @@
"version": "4.3.3",
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz",
"integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@types/json-schema": "^7.0.9",
"ajv": "^8.9.0",
@@ -13843,8 +14722,9 @@
"version": "8.20.0",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz",
"integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"fast-deep-equal": "^3.1.3",
"fast-uri": "^3.0.1",
@@ -13860,8 +14740,9 @@
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
"integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"fast-deep-equal": "^3.1.3"
},
@@ -13873,8 +14754,9 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
- "extraneous": true,
- "license": "MIT"
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/semver": {
"version": "6.3.1",
@@ -14058,8 +14940,9 @@
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "extraneous": true,
"license": "BSD-3-Clause",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=0.10.0"
}
@@ -14068,8 +14951,9 @@
"version": "0.5.21",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
"integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"buffer-from": "^1.0.0",
"source-map": "^0.6.0"
@@ -14153,8 +15037,9 @@
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"ansi-regex": "^5.0.1"
},
@@ -14189,8 +15074,9 @@
"version": "8.1.1",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
"integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -14246,8 +15132,9 @@
"version": "5.48.0",
"resolved": "https://registry.npmjs.org/terser/-/terser-5.48.0.tgz",
"integrity": "sha512-J/9An6vs9Us6wKRriSFXBWdRZapREHqFzdNUKk0pmu804EMR6dr6winwo7e5JDxN4xahxQsuysyYFwlwj4XN/Q==",
- "extraneous": true,
"license": "BSD-2-Clause",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@jridgewell/source-map": "^0.3.3",
"acorn": "^8.15.0",
@@ -14265,8 +15152,9 @@
"version": "5.6.1",
"resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.6.1.tgz",
"integrity": "sha512-201R5j+sJpK8nFWwKVyNfZot8FaJbLZDq5evriVzbV1wDtSXDjRUDRfJzHpAaxFDMEhsZL1QkeqM61wgsS3KaQ==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@jridgewell/trace-mapping": "^0.3.25",
"jest-worker": "^27.4.5",
@@ -14326,8 +15214,9 @@
"version": "2.20.3",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
- "extraneous": true,
- "license": "MIT"
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/to-regex-range": {
"version": "5.0.1",
@@ -14373,8 +15262,9 @@
"version": "2.8.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
- "extraneous": true,
- "license": "0BSD"
+ "license": "0BSD",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/type-check": {
"version": "0.4.0",
@@ -14516,8 +15406,9 @@
"version": "8.3.0",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.3.0.tgz",
"integrity": "sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==",
- "extraneous": true,
- "license": "MIT"
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/update-browserslist-db": {
"version": "1.2.3",
@@ -14563,15 +15454,17 @@
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz",
"integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==",
- "extraneous": true,
- "license": "MIT"
+ "license": "MIT",
+ "optional": true,
+ "peer": true
},
"node_modules/@enact/dev-utils/node_modules/watchpack": {
"version": "2.5.2",
"resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.2.tgz",
"integrity": "sha512-6i/00NBjP4yGPs+caKSyRfpTF/8Torsu0MOW3mMzIbhgISFder8i7xbqgHlLMwJrdiN8ndBV3UA1/AfzPSr+jg==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"graceful-fs": "^4.1.2"
},
@@ -14589,8 +15482,9 @@
"version": "5.107.2",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.107.2.tgz",
"integrity": "sha512-v7RhXaJbpMlV0D7hC7lb2EbnxkoeUqf9qhKr6lozx3Q48pmFrqqNRmZFUEGmi7pSwm6fCQ2H1IjvCkHqdpVdjQ==",
- "extraneous": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@types/estree": "^1.0.8",
"@types/json-schema": "^7.0.15",
@@ -14690,8 +15584,9 @@
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
"integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
- "extraneous": true,
"license": "BSD-2-Clause",
+ "optional": true,
+ "peer": true,
"dependencies": {
"esrecurse": "^4.3.0",
"estraverse": "^4.1.1"
@@ -14704,8 +15599,9 @@
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
"integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
- "extraneous": true,
"license": "BSD-2-Clause",
+ "optional": true,
+ "peer": true,
"engines": {
"node": ">=4.0"
}
@@ -17106,6 +18002,7 @@
"resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz",
"integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@jridgewell/gen-mapping": "^0.3.5",
"@jridgewell/trace-mapping": "^0.3.25"
@@ -17127,421 +18024,6 @@
"@jridgewell/sourcemap-codec": "^1.4.14"
}
},
- "node_modules/@jsonjoy.com/base64": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-1.1.2.tgz",
- "integrity": "sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==",
- "license": "Apache-2.0",
- "engines": {
- "node": ">=10.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/streamich"
- },
- "peerDependencies": {
- "tslib": "2"
- }
- },
- "node_modules/@jsonjoy.com/buffers": {
- "version": "17.67.0",
- "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-17.67.0.tgz",
- "integrity": "sha512-tfExRpYxBvi32vPs9ZHaTjSP4fHAfzSmcahOfNxtvGHcyJel+aibkPlGeBB+7AoC6hL7lXIE++8okecBxx7lcw==",
- "license": "Apache-2.0",
- "engines": {
- "node": ">=10.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/streamich"
- },
- "peerDependencies": {
- "tslib": "2"
- }
- },
- "node_modules/@jsonjoy.com/codegen": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@jsonjoy.com/codegen/-/codegen-1.0.0.tgz",
- "integrity": "sha512-E8Oy+08cmCf0EK/NMxpaJZmOxPqM+6iSe2S4nlSBrPZOORoDJILxtbSUEDKQyTamm/BVAhIGllOBNU79/dwf0g==",
- "license": "Apache-2.0",
- "engines": {
- "node": ">=10.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/streamich"
- },
- "peerDependencies": {
- "tslib": "2"
- }
- },
- "node_modules/@jsonjoy.com/fs-core": {
- "version": "4.58.0",
- "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-core/-/fs-core-4.58.0.tgz",
- "integrity": "sha512-K82t5e9w3NYQeIcw129f0SCH/Rn8m8GKPJBYge4W/sA4hhE5h7I8YQhs2HRpUQyUpi+qk7I9tbp1/b87eCM/PA==",
- "license": "Apache-2.0",
- "dependencies": {
- "@jsonjoy.com/fs-node-builtins": "4.58.0",
- "@jsonjoy.com/fs-node-utils": "4.58.0",
- "thingies": "^2.5.0"
- },
- "engines": {
- "node": ">=10.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/streamich"
- },
- "peerDependencies": {
- "tslib": "2"
- }
- },
- "node_modules/@jsonjoy.com/fs-fsa": {
- "version": "4.58.0",
- "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-fsa/-/fs-fsa-4.58.0.tgz",
- "integrity": "sha512-1/FdsxQao9pBo2OJLEfKrujHdVyGxXvDTT7EtNh9fvp3MK42nB+xHh1EJr2L1c0a05eCMyFCYZPID3KjX9EAng==",
- "license": "Apache-2.0",
- "dependencies": {
- "@jsonjoy.com/fs-core": "4.58.0",
- "@jsonjoy.com/fs-node-builtins": "4.58.0",
- "@jsonjoy.com/fs-node-utils": "4.58.0",
- "thingies": "^2.5.0"
- },
- "engines": {
- "node": ">=10.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/streamich"
- },
- "peerDependencies": {
- "tslib": "2"
- }
- },
- "node_modules/@jsonjoy.com/fs-node": {
- "version": "4.58.0",
- "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node/-/fs-node-4.58.0.tgz",
- "integrity": "sha512-bOqoLND5b5xyM+1zro63kClBnB05HTIX0RzOSHy4kAjfnec+CTdV742H/nsDmbkDaaDLHMmYqxAw09NQ8yVIrQ==",
- "license": "Apache-2.0",
- "dependencies": {
- "@jsonjoy.com/fs-core": "4.58.0",
- "@jsonjoy.com/fs-node-builtins": "4.58.0",
- "@jsonjoy.com/fs-node-utils": "4.58.0",
- "@jsonjoy.com/fs-print": "4.58.0",
- "@jsonjoy.com/fs-snapshot": "4.58.0",
- "glob-to-regex.js": "^1.0.0",
- "thingies": "^2.5.0"
- },
- "engines": {
- "node": ">=10.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/streamich"
- },
- "peerDependencies": {
- "tslib": "2"
- }
- },
- "node_modules/@jsonjoy.com/fs-node-builtins": {
- "version": "4.58.0",
- "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-builtins/-/fs-node-builtins-4.58.0.tgz",
- "integrity": "sha512-M1sAhjR1de4CL7ivQAFYqJRDVE3krwVOmfcAgG5YQJiDWxYfcGDMLUNcx0p/+Rcs31/Inh1m9aUDk/0jfR1T5w==",
- "license": "Apache-2.0",
- "engines": {
- "node": ">=10.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/streamich"
- },
- "peerDependencies": {
- "tslib": "2"
- }
- },
- "node_modules/@jsonjoy.com/fs-node-to-fsa": {
- "version": "4.58.0",
- "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-to-fsa/-/fs-node-to-fsa-4.58.0.tgz",
- "integrity": "sha512-erivc39YHoqWY0U8q5IlEcn238AUkIBByMvM0w7OO/FU9hEH3P7oNkPpYWIMpEMncbePk672GiC8ZSwYc2m7fg==",
- "license": "Apache-2.0",
- "dependencies": {
- "@jsonjoy.com/fs-fsa": "4.58.0",
- "@jsonjoy.com/fs-node-builtins": "4.58.0",
- "@jsonjoy.com/fs-node-utils": "4.58.0"
- },
- "engines": {
- "node": ">=10.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/streamich"
- },
- "peerDependencies": {
- "tslib": "2"
- }
- },
- "node_modules/@jsonjoy.com/fs-node-utils": {
- "version": "4.58.0",
- "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-utils/-/fs-node-utils-4.58.0.tgz",
- "integrity": "sha512-IrsAFMFBFQXjpS/u3jOY4DMIbRDg94KxzadddDlJv9xodxZ6/Y3ji91uMwrRqklyu+KoquO/Vxihf3/QrQiuOA==",
- "license": "Apache-2.0",
- "dependencies": {
- "@jsonjoy.com/fs-node-builtins": "4.58.0"
- },
- "engines": {
- "node": ">=10.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/streamich"
- },
- "peerDependencies": {
- "tslib": "2"
- }
- },
- "node_modules/@jsonjoy.com/fs-print": {
- "version": "4.58.0",
- "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-print/-/fs-print-4.58.0.tgz",
- "integrity": "sha512-jbAYbeuzPXIzvWOuuFMoQgrWaQU5hBqevloebLaiAimoBYLjrjiLPdOaaLHepWcZzOq/7Us8x2F22YlsTPbwmw==",
- "license": "Apache-2.0",
- "dependencies": {
- "@jsonjoy.com/fs-node-utils": "4.58.0",
- "tree-dump": "^1.1.0"
- },
- "engines": {
- "node": ">=10.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/streamich"
- },
- "peerDependencies": {
- "tslib": "2"
- }
- },
- "node_modules/@jsonjoy.com/fs-snapshot": {
- "version": "4.58.0",
- "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-snapshot/-/fs-snapshot-4.58.0.tgz",
- "integrity": "sha512-DkozLuMgzfpWZO8o8tSlFJIpUQauG7/sgjH0JrqsbLkmjdoInn/o1W7P9FZQSZlR9lOjDgSXs2MfE/sAUi2JRQ==",
- "license": "Apache-2.0",
- "dependencies": {
- "@jsonjoy.com/buffers": "^17.65.0",
- "@jsonjoy.com/fs-node-utils": "4.58.0",
- "@jsonjoy.com/json-pack": "^17.65.0",
- "@jsonjoy.com/util": "^17.65.0"
- },
- "engines": {
- "node": ">=10.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/streamich"
- },
- "peerDependencies": {
- "tslib": "2"
- }
- },
- "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/base64": {
- "version": "17.67.0",
- "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-17.67.0.tgz",
- "integrity": "sha512-5SEsJGsm15aP8TQGkDfJvz9axgPwAEm98S5DxOuYe8e1EbfajcDmgeXXzccEjh+mLnjqEKrkBdjHWS5vFNwDdw==",
- "license": "Apache-2.0",
- "engines": {
- "node": ">=10.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/streamich"
- },
- "peerDependencies": {
- "tslib": "2"
- }
- },
- "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/codegen": {
- "version": "17.67.0",
- "resolved": "https://registry.npmjs.org/@jsonjoy.com/codegen/-/codegen-17.67.0.tgz",
- "integrity": "sha512-idnkUplROpdBOV0HMcwhsCUS5TRUi9poagdGs70A6S4ux9+/aPuKbh8+UYRTLYQHtXvAdNfQWXDqZEx5k4Dj2Q==",
- "license": "Apache-2.0",
- "engines": {
- "node": ">=10.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/streamich"
- },
- "peerDependencies": {
- "tslib": "2"
- }
- },
- "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/json-pack": {
- "version": "17.67.0",
- "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-17.67.0.tgz",
- "integrity": "sha512-t0ejURcGaZsn1ClbJ/3kFqSOjlryd92eQY465IYrezsXmPcfHPE/av4twRSxf6WE+TkZgLY+71vCZbiIiFKA/w==",
- "license": "Apache-2.0",
- "dependencies": {
- "@jsonjoy.com/base64": "17.67.0",
- "@jsonjoy.com/buffers": "17.67.0",
- "@jsonjoy.com/codegen": "17.67.0",
- "@jsonjoy.com/json-pointer": "17.67.0",
- "@jsonjoy.com/util": "17.67.0",
- "hyperdyperid": "^1.2.0",
- "thingies": "^2.5.0",
- "tree-dump": "^1.1.0"
- },
- "engines": {
- "node": ">=10.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/streamich"
- },
- "peerDependencies": {
- "tslib": "2"
- }
- },
- "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/json-pointer": {
- "version": "17.67.0",
- "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pointer/-/json-pointer-17.67.0.tgz",
- "integrity": "sha512-+iqOFInH+QZGmSuaybBUNdh7yvNrXvqR+h3wjXm0N/3JK1EyyFAeGJvqnmQL61d1ARLlk/wJdFKSL+LHJ1eaUA==",
- "license": "Apache-2.0",
- "dependencies": {
- "@jsonjoy.com/util": "17.67.0"
- },
- "engines": {
- "node": ">=10.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/streamich"
- },
- "peerDependencies": {
- "tslib": "2"
- }
- },
- "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/util": {
- "version": "17.67.0",
- "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-17.67.0.tgz",
- "integrity": "sha512-6+8xBaz1rLSohlGh68D1pdw3AwDi9xydm8QNlAFkvnavCJYSze+pxoW2VKP8p308jtlMRLs5NTHfPlZLd4w7ew==",
- "license": "Apache-2.0",
- "dependencies": {
- "@jsonjoy.com/buffers": "17.67.0",
- "@jsonjoy.com/codegen": "17.67.0"
- },
- "engines": {
- "node": ">=10.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/streamich"
- },
- "peerDependencies": {
- "tslib": "2"
- }
- },
- "node_modules/@jsonjoy.com/json-pack": {
- "version": "1.21.0",
- "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.21.0.tgz",
- "integrity": "sha512-+AKG+R2cfZMShzrF2uQw34v3zbeDYUqnQ+jg7ORic3BGtfw9p/+N6RJbq/kkV8JmYZaINknaEQ2m0/f693ZPpg==",
- "license": "Apache-2.0",
- "dependencies": {
- "@jsonjoy.com/base64": "^1.1.2",
- "@jsonjoy.com/buffers": "^1.2.0",
- "@jsonjoy.com/codegen": "^1.0.0",
- "@jsonjoy.com/json-pointer": "^1.0.2",
- "@jsonjoy.com/util": "^1.9.0",
- "hyperdyperid": "^1.2.0",
- "thingies": "^2.5.0",
- "tree-dump": "^1.1.0"
- },
- "engines": {
- "node": ">=10.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/streamich"
- },
- "peerDependencies": {
- "tslib": "2"
- }
- },
- "node_modules/@jsonjoy.com/json-pack/node_modules/@jsonjoy.com/buffers": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-1.2.1.tgz",
- "integrity": "sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==",
- "license": "Apache-2.0",
- "engines": {
- "node": ">=10.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/streamich"
- },
- "peerDependencies": {
- "tslib": "2"
- }
- },
- "node_modules/@jsonjoy.com/json-pointer": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pointer/-/json-pointer-1.0.2.tgz",
- "integrity": "sha512-Fsn6wM2zlDzY1U+v4Nc8bo3bVqgfNTGcn6dMgs6FjrEnt4ZCe60o6ByKRjOGlI2gow0aE/Q41QOigdTqkyK5fg==",
- "license": "Apache-2.0",
- "dependencies": {
- "@jsonjoy.com/codegen": "^1.0.0",
- "@jsonjoy.com/util": "^1.9.0"
- },
- "engines": {
- "node": ">=10.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/streamich"
- },
- "peerDependencies": {
- "tslib": "2"
- }
- },
- "node_modules/@jsonjoy.com/util": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.9.0.tgz",
- "integrity": "sha512-pLuQo+VPRnN8hfPqUTLTHk126wuYdXVxE6aDmjSeV4NCAgyxWbiOIeNJVtID3h1Vzpoi9m4jXezf73I6LgabgQ==",
- "license": "Apache-2.0",
- "dependencies": {
- "@jsonjoy.com/buffers": "^1.0.0",
- "@jsonjoy.com/codegen": "^1.0.0"
- },
- "engines": {
- "node": ">=10.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/streamich"
- },
- "peerDependencies": {
- "tslib": "2"
- }
- },
- "node_modules/@jsonjoy.com/util/node_modules/@jsonjoy.com/buffers": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-1.2.1.tgz",
- "integrity": "sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==",
- "license": "Apache-2.0",
- "engines": {
- "node": ">=10.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/streamich"
- },
- "peerDependencies": {
- "tslib": "2"
- }
- },
- "node_modules/@leichtgewicht/ip-codec": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz",
- "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==",
- "license": "MIT"
- },
"node_modules/@napi-rs/wasm-runtime": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.6.tgz",
@@ -17560,18 +18042,6 @@
"@emnapi/runtime": "^1.7.1"
}
},
- "node_modules/@noble/hashes": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz",
- "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==",
- "license": "MIT",
- "engines": {
- "node": ">= 16"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- }
- },
"node_modules/@nodelib/fs.scandir": {
"version": "2.1.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
@@ -17607,161 +18077,508 @@
"node": ">= 8"
}
},
- "node_modules/@peculiar/asn1-cms": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/@peculiar/asn1-cms/-/asn1-cms-2.8.0.tgz",
- "integrity": "sha512-NgekZOrSJFSBFLFoLfwePguAWAx7z1+f2TEsWFUMyiqqfntZ4+S/S5hzqME3q4pCA0iOsFKdwiQ35dwY24eVqA==",
+ "node_modules/@oven/bun-darwin-aarch64": {
+ "version": "1.3.14",
+ "resolved": "https://registry.npmjs.org/@oven/bun-darwin-aarch64/-/bun-darwin-aarch64-1.3.14.tgz",
+ "integrity": "sha512-Omj20SuiHBOUjUBIyqtkNjSUIjOtEOJwmbix/ZyFH4BaQ6OZTaaRWIR4TjHVz0yadHgli6lLTiAh1uarnvD49A==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@oven/bun-darwin-x64": {
+ "version": "1.3.14",
+ "resolved": "https://registry.npmjs.org/@oven/bun-darwin-x64/-/bun-darwin-x64-1.3.14.tgz",
+ "integrity": "sha512-FFj3QdU/OhlDyZOJ8CWfN5eWLpRlT4qjZg7lMQi7jA6GuoY5ajlO1zWLP/MuHYRSbXQUvV52RejNi8DVnAp13w==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@oven/bun-darwin-x64-baseline": {
+ "version": "1.3.14",
+ "resolved": "https://registry.npmjs.org/@oven/bun-darwin-x64-baseline/-/bun-darwin-x64-baseline-1.3.14.tgz",
+ "integrity": "sha512-OSfsTZstc898HHElhU4NccaBGOSSDn5VfahiVTnidZ9B/+wb7WTyfZJaBeJcfjwJ9H2W9uTh2TGtl3UfcXgV9g==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@oven/bun-freebsd-aarch64": {
+ "version": "1.3.14",
+ "resolved": "https://registry.npmjs.org/@oven/bun-freebsd-aarch64/-/bun-freebsd-aarch64-1.3.14.tgz",
+ "integrity": "sha512-LIKrXaFxAHybVO5Pf+9XP2FHUj/5APvXTUKk9dqHm5iFz4oH+W24cmhjkJirNujh9hKeTyrpWSe3no9JZKowIw==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@oven/bun-freebsd-x64": {
+ "version": "1.3.14",
+ "resolved": "https://registry.npmjs.org/@oven/bun-freebsd-x64/-/bun-freebsd-x64-1.3.14.tgz",
+ "integrity": "sha512-uwD+fGUH1ADpIF3B1U2jWzzb20QwRLZfj5QZ28GUCGrAJ/nTmWrD6YYGsblCY1wuhldRez3lU40AyuvSCyLYmw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@oven/bun-linux-aarch64": {
+ "version": "1.3.14",
+ "resolved": "https://registry.npmjs.org/@oven/bun-linux-aarch64/-/bun-linux-aarch64-1.3.14.tgz",
+ "integrity": "sha512-X5SsPZHs+iYO8R/efIcRtc7gT2Q2DgPfliCxEkx4cXBumwkw0c/EsHMNwH3EgGpCDaZ7IYVPhpCG/xBOQHEwZw==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@oven/bun-linux-aarch64-android": {
+ "version": "1.3.14",
+ "resolved": "https://registry.npmjs.org/@oven/bun-linux-aarch64-android/-/bun-linux-aarch64-android-1.3.14.tgz",
+ "integrity": "sha512-y4kq5b85lsrmFb9Xvi4w9mA5IEFJkLMrSmYn06q24KjL9rUWDWO3VFZEtteZxUN5+ec3Zm5S8OnJw1umaCbVjA==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@oven/bun-linux-aarch64-musl": {
+ "version": "1.3.14",
+ "resolved": "https://registry.npmjs.org/@oven/bun-linux-aarch64-musl/-/bun-linux-aarch64-musl-1.3.14.tgz",
+ "integrity": "sha512-jmqOA92Cd1NL/1XBd4bFkJLxQ86K0RW7ohxS2qzzAvuitO4JiIxjjTeCspoU44zCozH72HpfZfUE2On31OjnWA==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@oven/bun-linux-x64": {
+ "version": "1.3.14",
+ "resolved": "https://registry.npmjs.org/@oven/bun-linux-x64/-/bun-linux-x64-1.3.14.tgz",
+ "integrity": "sha512-7OVTAKvwfPmSbIV1HpdOoVVx5VRc427GuPPne93N6vk4eQBPId9nXmZDh9/zGaKPdbVjVtQSZafWQoUjx38Utw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@oven/bun-linux-x64-android": {
+ "version": "1.3.14",
+ "resolved": "https://registry.npmjs.org/@oven/bun-linux-x64-android/-/bun-linux-x64-android-1.3.14.tgz",
+ "integrity": "sha512-qe9e1d+3VAEU7nAA2ol9Jvmy/o99PVMSgZhHn7Q/9O3YcDrfEqyQ8zm4zoe5qTEo8HZH0dN03Le0Ys2eQPs7eg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@oven/bun-linux-x64-baseline": {
+ "version": "1.3.14",
+ "resolved": "https://registry.npmjs.org/@oven/bun-linux-x64-baseline/-/bun-linux-x64-baseline-1.3.14.tgz",
+ "integrity": "sha512-q/8EdOC0yUE8FPeoOVq8/Pw5I9/tJaYmUfO/uDUAREx8IUnOJH1RJ5A3BjFqre8pvJoiZA9AovPJq5FnNNjSxA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@oven/bun-linux-x64-musl": {
+ "version": "1.3.14",
+ "resolved": "https://registry.npmjs.org/@oven/bun-linux-x64-musl/-/bun-linux-x64-musl-1.3.14.tgz",
+ "integrity": "sha512-GBCB/k/sIqcr06eTNgg7g46qiUv35Jasx4XiccJ/n7RGqrE4RWUD/XJBbWFprVPjvqd59+QtSnS99XGqvftHfg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@oven/bun-linux-x64-musl-baseline": {
+ "version": "1.3.14",
+ "resolved": "https://registry.npmjs.org/@oven/bun-linux-x64-musl-baseline/-/bun-linux-x64-musl-baseline-1.3.14.tgz",
+ "integrity": "sha512-n6iE71G4lQE4XkrZhQQcL5YUlxDbnq6nqV7zeQi33PMsLT/0kYE+RvHOtBWZ3w0wMdXZfINmp63hIb9ijUBGtw==",
+ "cpu": [
+ "x64"
+ ],
"license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@oven/bun-windows-aarch64": {
+ "version": "1.3.14",
+ "resolved": "https://registry.npmjs.org/@oven/bun-windows-aarch64/-/bun-windows-aarch64-1.3.14.tgz",
+ "integrity": "sha512-T7s3x/BsVKQObGU6QDkZeI6wKynzqGbBH1yI77jrrj5siElclxr3DQrDIk8CV4G5/SJq2HHq4kpLyYY2DKCSmA==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@oven/bun-windows-x64": {
+ "version": "1.3.14",
+ "resolved": "https://registry.npmjs.org/@oven/bun-windows-x64/-/bun-windows-x64-1.3.14.tgz",
+ "integrity": "sha512-mUFWL3BoYkNpjd8e9PqROiFF/1Xeotq20mABJsiQH62jM1g5zqWh4khw1RZ6bX8Q8fWvlPaxG1PjofkmjUi3vg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@oven/bun-windows-x64-baseline": {
+ "version": "1.3.14",
+ "resolved": "https://registry.npmjs.org/@oven/bun-windows-x64-baseline/-/bun-windows-x64-baseline-1.3.14.tgz",
+ "integrity": "sha512-uIjLUC1S9DWgICzuoMba7vurBJnBruE4S5CxnvmZkdqWVXRzx1Rgu636HoH+k0qeaQCFh3jeG3JQ1y6fRHv0sw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@parcel/watcher": {
+ "version": "2.5.6",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.6.tgz",
+ "integrity": "sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ==",
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
"dependencies": {
- "@peculiar/asn1-schema": "^2.8.0",
- "@peculiar/asn1-x509": "^2.8.0",
- "@peculiar/asn1-x509-attr": "^2.8.0",
- "asn1js": "^3.0.10",
- "tslib": "^2.8.1"
+ "detect-libc": "^2.0.3",
+ "is-glob": "^4.0.3",
+ "node-addon-api": "^7.0.0",
+ "picomatch": "^4.0.3"
+ },
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ },
+ "optionalDependencies": {
+ "@parcel/watcher-android-arm64": "2.5.6",
+ "@parcel/watcher-darwin-arm64": "2.5.6",
+ "@parcel/watcher-darwin-x64": "2.5.6",
+ "@parcel/watcher-freebsd-x64": "2.5.6",
+ "@parcel/watcher-linux-arm-glibc": "2.5.6",
+ "@parcel/watcher-linux-arm-musl": "2.5.6",
+ "@parcel/watcher-linux-arm64-glibc": "2.5.6",
+ "@parcel/watcher-linux-arm64-musl": "2.5.6",
+ "@parcel/watcher-linux-x64-glibc": "2.5.6",
+ "@parcel/watcher-linux-x64-musl": "2.5.6",
+ "@parcel/watcher-win32-arm64": "2.5.6",
+ "@parcel/watcher-win32-ia32": "2.5.6",
+ "@parcel/watcher-win32-x64": "2.5.6"
+ }
+ },
+ "node_modules/@parcel/watcher-android-arm64": {
+ "version": "2.5.6",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.6.tgz",
+ "integrity": "sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
}
},
- "node_modules/@peculiar/asn1-csr": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/@peculiar/asn1-csr/-/asn1-csr-2.8.0.tgz",
- "integrity": "sha512-akbF8+uvleHs8sejNPQxwmVFuInAg6FMNHOwMILXfP518YfFJwdR3jr6oNUPOaEJfuEhn/vkNOCIT6ASUd4mbg==",
+ "node_modules/@parcel/watcher-darwin-arm64": {
+ "version": "2.5.6",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.6.tgz",
+ "integrity": "sha512-Z2ZdrnwyXvvvdtRHLmM4knydIdU9adO3D4n/0cVipF3rRiwP+3/sfzpAwA/qKFL6i1ModaabkU7IbpeMBgiVEA==",
+ "cpu": [
+ "arm64"
+ ],
"license": "MIT",
- "dependencies": {
- "@peculiar/asn1-schema": "^2.8.0",
- "@peculiar/asn1-x509": "^2.8.0",
- "asn1js": "^3.0.10",
- "tslib": "^2.8.1"
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
}
},
- "node_modules/@peculiar/asn1-ecc": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/@peculiar/asn1-ecc/-/asn1-ecc-2.8.0.tgz",
- "integrity": "sha512-ohwlk+u9Rv2NOAY1c6MfHj45ATVF8R1DUN/WCgABiRtLi2ZftlZWZX7KvpAbU8v9xPcmoILfELeEABj/rn18AQ==",
+ "node_modules/@parcel/watcher-darwin-x64": {
+ "version": "2.5.6",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.6.tgz",
+ "integrity": "sha512-HgvOf3W9dhithcwOWX9uDZyn1lW9R+7tPZ4sug+NGrGIo4Rk1hAXLEbcH1TQSqxts0NYXXlOWqVpvS1SFS4fRg==",
+ "cpu": [
+ "x64"
+ ],
"license": "MIT",
- "dependencies": {
- "@peculiar/asn1-schema": "^2.8.0",
- "@peculiar/asn1-x509": "^2.8.0",
- "asn1js": "^3.0.10",
- "tslib": "^2.8.1"
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
}
},
- "node_modules/@peculiar/asn1-pfx": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/@peculiar/asn1-pfx/-/asn1-pfx-2.8.0.tgz",
- "integrity": "sha512-5yof1ytoB++RQtaFbqSUJ8pxDJtZT6vbVqZ8XoJ61ph7UjNVvfFwAilnCodqkNsAodpy13gDhoxZXw00pghnyg==",
+ "node_modules/@parcel/watcher-freebsd-x64": {
+ "version": "2.5.6",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.6.tgz",
+ "integrity": "sha512-vJVi8yd/qzJxEKHkeemh7w3YAn6RJCtYlE4HPMoVnCpIXEzSrxErBW5SJBgKLbXU3WdIpkjBTeUNtyBVn8TRng==",
+ "cpu": [
+ "x64"
+ ],
"license": "MIT",
- "dependencies": {
- "@peculiar/asn1-cms": "^2.8.0",
- "@peculiar/asn1-pkcs8": "^2.8.0",
- "@peculiar/asn1-rsa": "^2.8.0",
- "@peculiar/asn1-schema": "^2.8.0",
- "asn1js": "^3.0.10",
- "tslib": "^2.8.1"
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
}
},
- "node_modules/@peculiar/asn1-pkcs8": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs8/-/asn1-pkcs8-2.8.0.tgz",
- "integrity": "sha512-qAKXtLpBEw9LqhKpjw3ajZSXlBur+ipW+y2ivVBQAG6F6qRx94yO+1ZR4mvw+YaCfKSaOzLeYEzsPaBp4SJELA==",
+ "node_modules/@parcel/watcher-linux-arm-glibc": {
+ "version": "2.5.6",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.6.tgz",
+ "integrity": "sha512-9JiYfB6h6BgV50CCfasfLf/uvOcJskMSwcdH1PHH9rvS1IrNy8zad6IUVPVUfmXr+u+Km9IxcfMLzgdOudz9EQ==",
+ "cpu": [
+ "arm"
+ ],
"license": "MIT",
- "dependencies": {
- "@peculiar/asn1-schema": "^2.8.0",
- "@peculiar/asn1-x509": "^2.8.0",
- "asn1js": "^3.0.10",
- "tslib": "^2.8.1"
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
}
},
- "node_modules/@peculiar/asn1-pkcs9": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs9/-/asn1-pkcs9-2.8.0.tgz",
- "integrity": "sha512-b5nDWCnkV60+cQ141D6sVVwK9nz64R5n3zSVnklGd+ECdkW2Ol3U1a6yYFlalpSOaD557yuJB64A+q42jG7lUQ==",
+ "node_modules/@parcel/watcher-linux-arm-musl": {
+ "version": "2.5.6",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.6.tgz",
+ "integrity": "sha512-Ve3gUCG57nuUUSyjBq/MAM0CzArtuIOxsBdQ+ftz6ho8n7s1i9E1Nmk/xmP323r2YL0SONs1EuwqBp2u1k5fxg==",
+ "cpu": [
+ "arm"
+ ],
"license": "MIT",
- "dependencies": {
- "@peculiar/asn1-cms": "^2.8.0",
- "@peculiar/asn1-pfx": "^2.8.0",
- "@peculiar/asn1-pkcs8": "^2.8.0",
- "@peculiar/asn1-schema": "^2.8.0",
- "@peculiar/asn1-x509": "^2.8.0",
- "@peculiar/asn1-x509-attr": "^2.8.0",
- "asn1js": "^3.0.10",
- "tslib": "^2.8.1"
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
}
},
- "node_modules/@peculiar/asn1-rsa": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/@peculiar/asn1-rsa/-/asn1-rsa-2.8.0.tgz",
- "integrity": "sha512-zHEUlCqB2mk7x2lxDwHHJy7hWZOPdGHVlsmITWKB5/PbQo61atbu9PJ/0r9dQNMwFzbKPXZ8uK8/91eUhRznSg==",
+ "node_modules/@parcel/watcher-linux-arm64-glibc": {
+ "version": "2.5.6",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.6.tgz",
+ "integrity": "sha512-f2g/DT3NhGPdBmMWYoxixqYr3v/UXcmLOYy16Bx0TM20Tchduwr4EaCbmxh1321TABqPGDpS8D/ggOTaljijOA==",
+ "cpu": [
+ "arm64"
+ ],
"license": "MIT",
- "dependencies": {
- "@peculiar/asn1-schema": "^2.8.0",
- "@peculiar/asn1-x509": "^2.8.0",
- "asn1js": "^3.0.10",
- "tslib": "^2.8.1"
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
}
},
- "node_modules/@peculiar/asn1-schema": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.8.0.tgz",
- "integrity": "sha512-7YT0U/ze0tF2QOBbE15gKZwy5tvgGyLRiRHLzhlbOpf7BT032oBSd0haZqXn5W6l26WLlu3dyxzjM+2638/z2Q==",
+ "node_modules/@parcel/watcher-linux-arm64-musl": {
+ "version": "2.5.6",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.6.tgz",
+ "integrity": "sha512-qb6naMDGlbCwdhLj6hgoVKJl2odL34z2sqkC7Z6kzir8b5W65WYDpLB6R06KabvZdgoHI/zxke4b3zR0wAbDTA==",
+ "cpu": [
+ "arm64"
+ ],
"license": "MIT",
- "dependencies": {
- "@peculiar/utils": "^2.0.2",
- "asn1js": "^3.0.10",
- "tslib": "^2.8.1"
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
}
},
- "node_modules/@peculiar/asn1-x509": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509/-/asn1-x509-2.8.0.tgz",
- "integrity": "sha512-N0CMuhWUzsWEVq6F1q9X6+VKUnWzSW+cSVg+aPaGGwDdbFoFWTYgin5MHwXgpWd6y9COMBxnfy/Qc+Xc7F0Zwg==",
+ "node_modules/@parcel/watcher-linux-x64-glibc": {
+ "version": "2.5.6",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.6.tgz",
+ "integrity": "sha512-kbT5wvNQlx7NaGjzPFu8nVIW1rWqV780O7ZtkjuWaPUgpv2NMFpjYERVi0UYj1msZNyCzGlaCWEtzc+exjMGbQ==",
+ "cpu": [
+ "x64"
+ ],
"license": "MIT",
- "dependencies": {
- "@peculiar/asn1-schema": "^2.8.0",
- "@peculiar/utils": "^2.0.2",
- "asn1js": "^3.0.10",
- "tslib": "^2.8.1"
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
}
},
- "node_modules/@peculiar/asn1-x509-attr": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509-attr/-/asn1-x509-attr-2.8.0.tgz",
- "integrity": "sha512-tHjkfS/qhMnmrlB2J9NhflQlQ7In3khO3CfmVrriOlpTeErY9ZIKOso1hQ5JQiyrJ7ShvqVPk7E5fQmbclkSKA==",
+ "node_modules/@parcel/watcher-linux-x64-musl": {
+ "version": "2.5.6",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.6.tgz",
+ "integrity": "sha512-1JRFeC+h7RdXwldHzTsmdtYR/Ku8SylLgTU/reMuqdVD7CtLwf0VR1FqeprZ0eHQkO0vqsbvFLXUmYm/uNKJBg==",
+ "cpu": [
+ "x64"
+ ],
"license": "MIT",
- "dependencies": {
- "@peculiar/asn1-schema": "^2.8.0",
- "@peculiar/asn1-x509": "^2.8.0",
- "asn1js": "^3.0.10",
- "tslib": "^2.8.1"
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
}
},
- "node_modules/@peculiar/utils": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/@peculiar/utils/-/utils-2.0.3.tgz",
- "integrity": "sha512-+oL3HPFRIZ1St2K50lWCXiioIgSoxzz7R1J3uF6neO2yl1sgmpgY6XXJH4BdpoDkMWznQTeYF6oWNDZLCdQ4eQ==",
+ "node_modules/@parcel/watcher-win32-arm64": {
+ "version": "2.5.6",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.6.tgz",
+ "integrity": "sha512-3ukyebjc6eGlw9yRt678DxVF7rjXatWiHvTXqphZLvo7aC5NdEgFufVwjFfY51ijYEWpXbqF5jtrK275z52D4Q==",
+ "cpu": [
+ "arm64"
+ ],
"license": "MIT",
- "dependencies": {
- "tslib": "^2.8.1"
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
}
},
- "node_modules/@peculiar/x509": {
- "version": "1.14.3",
- "resolved": "https://registry.npmjs.org/@peculiar/x509/-/x509-1.14.3.tgz",
- "integrity": "sha512-C2Xj8FZ0uHWeCXXqX5B4/gVFQmtSkiuOolzAgutjTfseNOHT3pUjljDZsTSxXFGgio54bCzVFqmEOUrIVk8RDA==",
+ "node_modules/@parcel/watcher-win32-ia32": {
+ "version": "2.5.6",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.6.tgz",
+ "integrity": "sha512-k35yLp1ZMwwee3Ez/pxBi5cf4AoBKYXj00CZ80jUz5h8prpiaQsiRPKQMxoLstNuqe2vR4RNPEAEcjEFzhEz/g==",
+ "cpu": [
+ "ia32"
+ ],
"license": "MIT",
- "dependencies": {
- "@peculiar/asn1-cms": "^2.6.0",
- "@peculiar/asn1-csr": "^2.6.0",
- "@peculiar/asn1-ecc": "^2.6.0",
- "@peculiar/asn1-pkcs9": "^2.6.0",
- "@peculiar/asn1-rsa": "^2.6.0",
- "@peculiar/asn1-schema": "^2.6.0",
- "@peculiar/asn1-x509": "^2.6.0",
- "pvtsutils": "^1.3.6",
- "reflect-metadata": "^0.2.2",
- "tslib": "^2.8.1",
- "tsyringe": "^4.10.0"
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
},
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-win32-x64": {
+ "version": "2.5.6",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.6.tgz",
+ "integrity": "sha512-hbQlYcCq5dlAX9Qx+kFb0FHue6vbjlf0FrNzSKdYK2APUf7tGfGxQCk2ihEREmbR6ZMc0MVAD5RIX/41gpUzTw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
"engines": {
- "node": ">=20.0.0"
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
}
},
"node_modules/@pkgjs/parseargs": {
@@ -17786,53 +18603,6 @@
"url": "https://opencollective.com/pkgr"
}
},
- "node_modules/@pmmmwh/react-refresh-webpack-plugin": {
- "version": "0.6.2",
- "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.6.2.tgz",
- "integrity": "sha512-IhIAD5n4XvGHuL9nAgWfsBR0TdxtjrUWETYKCBHxauYXEv+b+ctEbs9neEgPC7Ecgzv4bpZTBwesAoGDeFymzA==",
- "license": "MIT",
- "dependencies": {
- "anser": "^2.1.1",
- "core-js-pure": "^3.23.3",
- "error-stack-parser": "^2.0.6",
- "html-entities": "^2.1.0",
- "schema-utils": "^4.2.0",
- "source-map": "^0.7.3"
- },
- "engines": {
- "node": ">=18.12"
- },
- "peerDependencies": {
- "@types/webpack": "5.x",
- "react-refresh": ">=0.10.0 <1.0.0",
- "sockjs-client": "^1.4.0",
- "type-fest": ">=0.17.0 <6.0.0",
- "webpack": "^5.0.0",
- "webpack-dev-server": "^4.8.0 || 5.x",
- "webpack-hot-middleware": "2.x",
- "webpack-plugin-serve": "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
- }
- }
- },
"node_modules/@rtsao/scc": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz",
@@ -18016,49 +18786,14 @@
"@babel/types": "^7.28.2"
}
},
- "node_modules/@types/body-parser": {
- "version": "1.19.6",
- "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz",
- "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==",
- "license": "MIT",
- "dependencies": {
- "@types/connect": "*",
- "@types/node": "*"
- }
- },
- "node_modules/@types/bonjour": {
- "version": "3.5.13",
- "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz",
- "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==",
- "license": "MIT",
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/connect": {
- "version": "3.4.38",
- "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz",
- "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==",
- "license": "MIT",
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/connect-history-api-fallback": {
- "version": "1.5.4",
- "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz",
- "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==",
- "license": "MIT",
- "dependencies": {
- "@types/express-serve-static-core": "*",
- "@types/node": "*"
- }
- },
"node_modules/@types/eslint": {
"version": "9.6.1",
"resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz",
"integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==",
+ "dev": true,
"license": "MIT",
+ "optional": true,
+ "peer": true,
"dependencies": {
"@types/estree": "*",
"@types/json-schema": "*"
@@ -18070,51 +18805,6 @@
"integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==",
"license": "MIT"
},
- "node_modules/@types/express": {
- "version": "4.17.25",
- "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.25.tgz",
- "integrity": "sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==",
- "license": "MIT",
- "dependencies": {
- "@types/body-parser": "*",
- "@types/express-serve-static-core": "^4.17.33",
- "@types/qs": "*",
- "@types/serve-static": "^1"
- }
- },
- "node_modules/@types/express-serve-static-core": {
- "version": "4.19.8",
- "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.8.tgz",
- "integrity": "sha512-02S5fmqeoKzVZCHPZid4b8JH2eM5HzQLZWN2FohQEy/0eXTq8VXZfSN6Pcr3F6N9R/vNrj7cpgbhjie6m/1tCA==",
- "license": "MIT",
- "dependencies": {
- "@types/node": "*",
- "@types/qs": "*",
- "@types/range-parser": "*",
- "@types/send": "*"
- }
- },
- "node_modules/@types/html-minifier-terser": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz",
- "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==",
- "license": "MIT"
- },
- "node_modules/@types/http-errors": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz",
- "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==",
- "license": "MIT"
- },
- "node_modules/@types/http-proxy": {
- "version": "1.17.17",
- "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.17.tgz",
- "integrity": "sha512-ED6LB+Z1AVylNTu7hdzuBqOgMnvG/ld6wGCG8wFnAzKX5uyW2K3WD52v0gnLCTK/VLpXtKckgWuyScYK6cSPaw==",
- "license": "MIT",
- "dependencies": {
- "@types/node": "*"
- }
- },
"node_modules/@types/istanbul-lib-coverage": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz",
@@ -18163,12 +18853,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/@types/mime": {
- "version": "1.3.5",
- "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz",
- "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==",
- "license": "MIT"
- },
"node_modules/@types/node": {
"version": "26.1.0",
"resolved": "https://registry.npmjs.org/@types/node/-/node-26.1.0.tgz",
@@ -18184,72 +18868,6 @@
"integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==",
"license": "MIT"
},
- "node_modules/@types/qs": {
- "version": "6.15.1",
- "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.15.1.tgz",
- "integrity": "sha512-GZHUBZR9hckSUhrxmp1nG6NwdpM9fCunJwyThLW1X3AyHgd9IlHb6VANpQQqDr2o/qQp6McZ3y/IA2rVzKzSbw==",
- "license": "MIT"
- },
- "node_modules/@types/range-parser": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz",
- "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==",
- "license": "MIT"
- },
- "node_modules/@types/retry": {
- "version": "0.12.2",
- "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz",
- "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==",
- "license": "MIT"
- },
- "node_modules/@types/send": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.1.tgz",
- "integrity": "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==",
- "license": "MIT",
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/serve-index": {
- "version": "1.9.4",
- "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz",
- "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==",
- "license": "MIT",
- "dependencies": {
- "@types/express": "*"
- }
- },
- "node_modules/@types/serve-static": {
- "version": "1.15.10",
- "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.10.tgz",
- "integrity": "sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==",
- "license": "MIT",
- "dependencies": {
- "@types/http-errors": "*",
- "@types/node": "*",
- "@types/send": "<1"
- }
- },
- "node_modules/@types/serve-static/node_modules/@types/send": {
- "version": "0.17.6",
- "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.6.tgz",
- "integrity": "sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==",
- "license": "MIT",
- "dependencies": {
- "@types/mime": "^1",
- "@types/node": "*"
- }
- },
- "node_modules/@types/sockjs": {
- "version": "0.3.36",
- "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz",
- "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==",
- "license": "MIT",
- "dependencies": {
- "@types/node": "*"
- }
- },
"node_modules/@types/stack-utils": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz",
@@ -18262,15 +18880,6 @@
"integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==",
"license": "MIT"
},
- "node_modules/@types/ws": {
- "version": "8.18.1",
- "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz",
- "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==",
- "license": "MIT",
- "dependencies": {
- "@types/node": "*"
- }
- },
"node_modules/@types/yargs": {
"version": "17.0.35",
"resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.35.tgz",
@@ -18390,9 +18999,6 @@
"cpu": [
"arm64"
],
- "libc": [
- "glibc"
- ],
"license": "MIT",
"optional": true,
"os": [
@@ -18406,9 +19012,6 @@
"cpu": [
"arm64"
],
- "libc": [
- "musl"
- ],
"license": "MIT",
"optional": true,
"os": [
@@ -18422,9 +19025,6 @@
"cpu": [
"loong64"
],
- "libc": [
- "glibc"
- ],
"license": "MIT",
"optional": true,
"os": [
@@ -18438,9 +19038,6 @@
"cpu": [
"loong64"
],
- "libc": [
- "musl"
- ],
"license": "MIT",
"optional": true,
"os": [
@@ -18454,9 +19051,6 @@
"cpu": [
"ppc64"
],
- "libc": [
- "glibc"
- ],
"license": "MIT",
"optional": true,
"os": [
@@ -18470,9 +19064,6 @@
"cpu": [
"riscv64"
],
- "libc": [
- "glibc"
- ],
"license": "MIT",
"optional": true,
"os": [
@@ -18486,9 +19077,6 @@
"cpu": [
"riscv64"
],
- "libc": [
- "musl"
- ],
"license": "MIT",
"optional": true,
"os": [
@@ -18502,9 +19090,6 @@
"cpu": [
"s390x"
],
- "libc": [
- "glibc"
- ],
"license": "MIT",
"optional": true,
"os": [
@@ -18518,9 +19103,6 @@
"cpu": [
"x64"
],
- "libc": [
- "glibc"
- ],
"license": "MIT",
"optional": true,
"os": [
@@ -18534,9 +19116,6 @@
"cpu": [
"x64"
],
- "libc": [
- "musl"
- ],
"license": "MIT",
"optional": true,
"os": [
@@ -18618,6 +19197,7 @@
"resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz",
"integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@webassemblyjs/helper-numbers": "1.13.2",
"@webassemblyjs/helper-wasm-bytecode": "1.13.2"
@@ -18627,25 +19207,29 @@
"version": "1.13.2",
"resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz",
"integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==",
- "license": "MIT"
+ "license": "MIT",
+ "peer": true
},
"node_modules/@webassemblyjs/helper-api-error": {
"version": "1.13.2",
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz",
"integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==",
- "license": "MIT"
+ "license": "MIT",
+ "peer": true
},
"node_modules/@webassemblyjs/helper-buffer": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz",
"integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==",
- "license": "MIT"
+ "license": "MIT",
+ "peer": true
},
"node_modules/@webassemblyjs/helper-numbers": {
"version": "1.13.2",
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz",
"integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@webassemblyjs/floating-point-hex-parser": "1.13.2",
"@webassemblyjs/helper-api-error": "1.13.2",
@@ -18656,13 +19240,15 @@
"version": "1.13.2",
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz",
"integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==",
- "license": "MIT"
+ "license": "MIT",
+ "peer": true
},
"node_modules/@webassemblyjs/helper-wasm-section": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz",
"integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@webassemblyjs/ast": "1.14.1",
"@webassemblyjs/helper-buffer": "1.14.1",
@@ -18675,6 +19261,7 @@
"resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz",
"integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@xtuc/ieee754": "^1.2.0"
}
@@ -18684,6 +19271,7 @@
"resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz",
"integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==",
"license": "Apache-2.0",
+ "peer": true,
"dependencies": {
"@xtuc/long": "4.2.2"
}
@@ -18692,13 +19280,15 @@
"version": "1.13.2",
"resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz",
"integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==",
- "license": "MIT"
+ "license": "MIT",
+ "peer": true
},
"node_modules/@webassemblyjs/wasm-edit": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz",
"integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@webassemblyjs/ast": "1.14.1",
"@webassemblyjs/helper-buffer": "1.14.1",
@@ -18715,6 +19305,7 @@
"resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz",
"integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@webassemblyjs/ast": "1.14.1",
"@webassemblyjs/helper-wasm-bytecode": "1.13.2",
@@ -18728,6 +19319,7 @@
"resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz",
"integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@webassemblyjs/ast": "1.14.1",
"@webassemblyjs/helper-buffer": "1.14.1",
@@ -18740,6 +19332,7 @@
"resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz",
"integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@webassemblyjs/ast": "1.14.1",
"@webassemblyjs/helper-api-error": "1.13.2",
@@ -18754,6 +19347,7 @@
"resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz",
"integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@webassemblyjs/ast": "1.14.1",
"@xtuc/long": "4.2.2"
@@ -18763,13 +19357,15 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
"integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
- "license": "BSD-3-Clause"
+ "license": "BSD-3-Clause",
+ "peer": true
},
"node_modules/@xtuc/long": {
"version": "4.2.2",
"resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
"integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
- "license": "Apache-2.0"
+ "license": "Apache-2.0",
+ "peer": true
},
"node_modules/abab": {
"version": "2.0.6",
@@ -18784,40 +19380,6 @@
"integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
"license": "ISC"
},
- "node_modules/abort-controller": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
- "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
- "license": "MIT",
- "dependencies": {
- "event-target-shim": "^5.0.0"
- },
- "engines": {
- "node": ">=6.5"
- }
- },
- "node_modules/accepts": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
- "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
- "license": "MIT",
- "dependencies": {
- "mime-types": "~2.1.34",
- "negotiator": "0.6.3"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/accepts/node_modules/negotiator": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
- "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
"node_modules/acorn": {
"version": "8.17.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.17.0.tgz",
@@ -18845,6 +19407,7 @@
"resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz",
"integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==",
"license": "MIT",
+ "peer": true,
"engines": {
"node": ">=10.13.0"
},
@@ -18915,6 +19478,7 @@
"resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz",
"integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"ajv": "^8.0.0"
},
@@ -18932,6 +19496,7 @@
"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz",
"integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"fast-deep-equal": "^3.1.3",
"fast-uri": "^3.0.1",
@@ -18947,7 +19512,8 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
- "license": "MIT"
+ "license": "MIT",
+ "peer": true
},
"node_modules/ajv-keywords": {
"version": "3.5.2",
@@ -18958,12 +19524,6 @@
"ajv": "^6.9.1"
}
},
- "node_modules/anser": {
- "version": "2.3.5",
- "resolved": "https://registry.npmjs.org/anser/-/anser-2.3.5.tgz",
- "integrity": "sha512-vcZjxvvVoxTeR5XBNJB38oTu/7eDCZlwdz32N1eNgpyPF7j/Z7Idf+CUwQOkKKpJ7RJyjxgLHCM7vdIK0iCNMQ==",
- "license": "MIT"
- },
"node_modules/ansi-escapes": {
"version": "4.3.2",
"resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
@@ -18979,18 +19539,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/ansi-html-community": {
- "version": "0.0.8",
- "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz",
- "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==",
- "engines": [
- "node >= 0.8.0"
- ],
- "license": "Apache-2.0",
- "bin": {
- "ansi-html": "bin/ansi-html"
- }
- },
"node_modules/ansi-regex": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
@@ -19081,12 +19629,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/array-flatten": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
- "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==",
- "license": "MIT"
- },
"node_modules/array-includes": {
"version": "3.1.9",
"resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz",
@@ -19207,50 +19749,6 @@
"integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==",
"license": "MIT"
},
- "node_modules/asn1.js": {
- "version": "4.10.1",
- "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz",
- "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==",
- "license": "MIT",
- "dependencies": {
- "bn.js": "^4.0.0",
- "inherits": "^2.0.1",
- "minimalistic-assert": "^1.0.0"
- }
- },
- "node_modules/asn1.js/node_modules/bn.js": {
- "version": "4.12.4",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.4.tgz",
- "integrity": "sha512-njR1b+ixG2ufvL9Zn9JGneW+b5GV6jqpYyPPpg4QVt723b5kJPGUczkUyWEH9BwEA74UakJZ43I4FDLBF7ci0g==",
- "license": "MIT"
- },
- "node_modules/asn1js": {
- "version": "3.0.10",
- "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.10.tgz",
- "integrity": "sha512-S2s3aOytiKdFRdulw2qPE51MzjzVOisppcVv7jVFR+Kw0kxwvFrDcYA0h7Ndqbmj0HkMIXYWaoj7fli8kgx1eg==",
- "license": "BSD-3-Clause",
- "dependencies": {
- "pvtsutils": "^1.3.6",
- "pvutils": "^1.1.5",
- "tslib": "^2.8.1"
- },
- "engines": {
- "node": ">=12.0.0"
- }
- },
- "node_modules/assert": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz",
- "integrity": "sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==",
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.2",
- "is-nan": "^1.3.2",
- "object-is": "^1.1.5",
- "object.assign": "^4.1.4",
- "util": "^0.12.5"
- }
- },
"node_modules/async-function": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz",
@@ -19316,6 +19814,7 @@
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
"integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
+ "dev": true,
"license": "MIT",
"dependencies": {
"possible-typed-array-names": "^1.0.0"
@@ -19379,31 +19878,6 @@
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/babel-loader": {
- "version": "10.1.1",
- "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-10.1.1.tgz",
- "integrity": "sha512-JwKSzk2kjIe7mgPK+/lyZ2QAaJcpahNAdM+hgR2HI8D0OJVkdj8Rl6J3kaLYki9pwF7P2iWnD8qVv80Lq1ABtg==",
- "license": "MIT",
- "dependencies": {
- "find-up": "^5.0.0"
- },
- "engines": {
- "node": "^18.20.0 || ^20.10.0 || >=22.0.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.12.0 || ^8.0.0-beta.1",
- "@rspack/core": "^1.0.0 || ^2.0.0-0",
- "webpack": ">=5.61.0"
- },
- "peerDependenciesMeta": {
- "@rspack/core": {
- "optional": true
- },
- "webpack": {
- "optional": true
- }
- }
- },
"node_modules/babel-plugin-dev-expression": {
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/babel-plugin-dev-expression/-/babel-plugin-dev-expression-0.2.3.tgz",
@@ -19581,26 +20055,6 @@
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
"license": "MIT"
},
- "node_modules/base64-js": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
- "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT"
- },
"node_modules/baseline-browser-mapping": {
"version": "2.10.42",
"resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.42.tgz",
@@ -19613,21 +20067,6 @@
"node": ">=6.0.0"
}
},
- "node_modules/batch": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz",
- "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==",
- "license": "MIT"
- },
- "node_modules/big.js": {
- "version": "5.2.2",
- "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
- "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
- "license": "MIT",
- "engines": {
- "node": "*"
- }
- },
"node_modules/binary-extensions": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
@@ -19640,79 +20079,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/bn.js": {
- "version": "5.2.4",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.4.tgz",
- "integrity": "sha512-QL7sb18rJ1PbdsKsqPA0guxL563vIMwRHgzNrW/uzQuRGN1Cjqd/wonUBAVqHox9KwzHA6vCbM0lXx3k4iQMow==",
- "license": "MIT"
- },
- "node_modules/body-parser": {
- "version": "1.20.5",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.5.tgz",
- "integrity": "sha512-3grm+/2tUOvu2cjJkvsIxrv/wVpfXQW4PsQHYm7yk4vfpu7Ekl6nEsYBoJUL6qDwZUx8wUhQ8tR2qz+ad9c9OA==",
- "license": "MIT",
- "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.1",
- "iconv-lite": "~0.4.24",
- "on-finished": "~2.4.1",
- "qs": "~6.15.1",
- "raw-body": "~2.5.3",
- "type-is": "~1.6.18",
- "unpipe": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8",
- "npm": "1.2.8000 || >= 1.4.16"
- }
- },
- "node_modules/body-parser/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "license": "MIT",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/body-parser/node_modules/iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "license": "MIT",
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/body-parser/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "license": "MIT"
- },
- "node_modules/bonjour-service": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.4.2.tgz",
- "integrity": "sha512-lMskhnsW70yWHr4PhPeh2rvaIkLSaDpp+nmtbXBZaNKTXwxL73QOkW6HhbzqTImXjevn9TreGT4GACGBCGP9nQ==",
- "license": "MIT",
- "dependencies": {
- "fast-deep-equal": "^3.1.3",
- "multicast-dns": "^7.2.5"
- }
- },
- "node_modules/boolbase": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
- "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
- "license": "ISC"
- },
"node_modules/brace-expansion": {
"version": "1.1.15",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.15.tgz",
@@ -19735,134 +20101,6 @@
"node": ">=8"
}
},
- "node_modules/brorand": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
- "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==",
- "license": "MIT"
- },
- "node_modules/browserify-aes": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
- "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
- "license": "MIT",
- "dependencies": {
- "buffer-xor": "^1.0.3",
- "cipher-base": "^1.0.0",
- "create-hash": "^1.1.0",
- "evp_bytestokey": "^1.0.3",
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
- }
- },
- "node_modules/browserify-cipher": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz",
- "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==",
- "license": "MIT",
- "dependencies": {
- "browserify-aes": "^1.0.4",
- "browserify-des": "^1.0.0",
- "evp_bytestokey": "^1.0.0"
- }
- },
- "node_modules/browserify-des": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz",
- "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==",
- "license": "MIT",
- "dependencies": {
- "cipher-base": "^1.0.1",
- "des.js": "^1.0.0",
- "inherits": "^2.0.1",
- "safe-buffer": "^5.1.2"
- }
- },
- "node_modules/browserify-rsa": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.1.tgz",
- "integrity": "sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ==",
- "license": "MIT",
- "dependencies": {
- "bn.js": "^5.2.1",
- "randombytes": "^2.1.0",
- "safe-buffer": "^5.2.1"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/browserify-sign": {
- "version": "4.2.6",
- "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.6.tgz",
- "integrity": "sha512-sd+Q65fjlWCYWtZKXiKfrUc8d+4jtp/8f0W2NkwzLtoW4bI6UDnWusLWIurHnmurW0XShIRxpwiOX4EoPtXUAg==",
- "license": "ISC",
- "dependencies": {
- "bn.js": "^5.2.3",
- "browserify-rsa": "^4.1.1",
- "create-hash": "^1.2.0",
- "create-hmac": "^1.1.7",
- "elliptic": "^6.6.1",
- "inherits": "^2.0.4",
- "parse-asn1": "^5.1.9",
- "readable-stream": "^2.3.8",
- "safe-buffer": "^5.2.1"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/browserify-sign/node_modules/isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
- "license": "MIT"
- },
- "node_modules/browserify-sign/node_modules/readable-stream": {
- "version": "2.3.8",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
- "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
- "license": "MIT",
- "dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
- }
- },
- "node_modules/browserify-sign/node_modules/readable-stream/node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "license": "MIT"
- },
- "node_modules/browserify-sign/node_modules/string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "license": "MIT",
- "dependencies": {
- "safe-buffer": "~5.1.0"
- }
- },
- "node_modules/browserify-sign/node_modules/string_decoder/node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "license": "MIT"
- },
- "node_modules/browserify-zlib": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
- "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
- "license": "MIT",
- "dependencies": {
- "pako": "~1.0.5"
- }
- },
"node_modules/browserslist": {
"version": "4.28.5",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.5.tgz",
@@ -19905,79 +20143,50 @@
"node-int64": "^0.4.0"
}
},
- "node_modules/buffer": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
- "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.2.1"
- }
- },
"node_modules/buffer-from": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
"integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
"license": "MIT"
},
- "node_modules/buffer-xor": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
- "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==",
- "license": "MIT"
- },
- "node_modules/builtin-status-codes": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
- "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==",
- "license": "MIT"
- },
- "node_modules/bundle-name": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz",
- "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==",
+ "node_modules/bun": {
+ "version": "1.3.14",
+ "resolved": "https://registry.npmjs.org/bun/-/bun-1.3.14.tgz",
+ "integrity": "sha512-aB6GVd42x1Y5ie1K16SF+oLGtgSkwX9hgoDdIW88pjvfTccU8F1vfpoOt34QLv0dZ1v3XimtaxPlZUG81Gx9Zg==",
+ "cpu": [
+ "arm64",
+ "x64"
+ ],
+ "hasInstallScript": true,
"license": "MIT",
- "dependencies": {
- "run-applescript": "^7.0.0"
- },
- "engines": {
- "node": ">=18"
+ "os": [
+ "darwin",
+ "linux",
+ "android",
+ "freebsd",
+ "win32"
+ ],
+ "bin": {
+ "bun": "bin/bun.exe",
+ "bunx": "bin/bunx.exe"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/bytes": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
- "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/bytestreamjs": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/bytestreamjs/-/bytestreamjs-2.0.1.tgz",
- "integrity": "sha512-U1Z/ob71V/bXfVABvNr/Kumf5VyeQRBEm6Txb0PQ6S7V5GpBM3w4Cbqz/xPDicR5tN0uvDifng8C+5qECeGwyQ==",
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=6.0.0"
+ "optionalDependencies": {
+ "@oven/bun-darwin-aarch64": "1.3.14",
+ "@oven/bun-darwin-x64": "1.3.14",
+ "@oven/bun-darwin-x64-baseline": "1.3.14",
+ "@oven/bun-freebsd-aarch64": "1.3.14",
+ "@oven/bun-freebsd-x64": "1.3.14",
+ "@oven/bun-linux-aarch64": "1.3.14",
+ "@oven/bun-linux-aarch64-android": "1.3.14",
+ "@oven/bun-linux-aarch64-musl": "1.3.14",
+ "@oven/bun-linux-x64": "1.3.14",
+ "@oven/bun-linux-x64-android": "1.3.14",
+ "@oven/bun-linux-x64-baseline": "1.3.14",
+ "@oven/bun-linux-x64-musl": "1.3.14",
+ "@oven/bun-linux-x64-musl-baseline": "1.3.14",
+ "@oven/bun-windows-aarch64": "1.3.14",
+ "@oven/bun-windows-x64": "1.3.14",
+ "@oven/bun-windows-x64-baseline": "1.3.14"
}
},
"node_modules/call-bind": {
@@ -20036,16 +20245,6 @@
"node": ">=6"
}
},
- "node_modules/camel-case": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz",
- "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==",
- "license": "MIT",
- "dependencies": {
- "pascal-case": "^3.1.2",
- "tslib": "^2.0.3"
- }
- },
"node_modules/camelcase": {
"version": "5.3.1",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
@@ -20055,18 +20254,6 @@
"node": ">=6"
}
},
- "node_modules/caniuse-api": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz",
- "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==",
- "license": "MIT",
- "dependencies": {
- "browserslist": "^4.0.0",
- "caniuse-lite": "^1.0.0",
- "lodash.memoize": "^4.1.2",
- "lodash.uniq": "^4.5.0"
- }
- },
"node_modules/caniuse-lite": {
"version": "1.0.30001803",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001803.tgz",
@@ -20087,15 +20274,6 @@
],
"license": "CC-BY-4.0"
},
- "node_modules/case-sensitive-paths-webpack-plugin": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz",
- "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==",
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/chalk": {
"version": "5.6.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz",
@@ -20167,6 +20345,7 @@
"resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz",
"integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==",
"license": "MIT",
+ "peer": true,
"engines": {
"node": ">=6.0"
}
@@ -20186,47 +20365,12 @@
"node": ">=8"
}
},
- "node_modules/cipher-base": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.7.tgz",
- "integrity": "sha512-Mz9QMT5fJe7bKI7MH31UilT5cEK5EHHRCccw/YRFsRY47AuNgaV6HY3rscp0/I4Q+tTW/5zoqpSeRRI54TkDWA==",
- "license": "MIT",
- "dependencies": {
- "inherits": "^2.0.4",
- "safe-buffer": "^5.2.1",
- "to-buffer": "^1.2.2"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
"node_modules/cjs-module-lexer": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-2.2.0.tgz",
"integrity": "sha512-4bHTS2YuzUvtoLjdy+98ykbNB5jS0+07EvFNXerqZQJ89F7DI6ET7OQo/HJuW6K0aVsKA9hj9/RVb2kQVOrPDQ==",
"license": "MIT"
},
- "node_modules/clean-css": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz",
- "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==",
- "license": "MIT",
- "dependencies": {
- "source-map": "~0.6.0"
- },
- "engines": {
- "node": ">= 10.0"
- }
- },
- "node_modules/clean-css/node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/cliui": {
"version": "8.0.1",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
@@ -20287,12 +20431,6 @@
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"license": "MIT"
},
- "node_modules/colorette": {
- "version": "2.0.20",
- "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz",
- "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==",
- "license": "MIT"
- },
"node_modules/combined-stream": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
@@ -20305,128 +20443,18 @@
"node": ">= 0.8"
}
},
- "node_modules/commander": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
- "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
- "license": "MIT",
- "engines": {
- "node": ">= 12"
- }
- },
- "node_modules/compressible": {
- "version": "2.0.18",
- "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz",
- "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==",
- "license": "MIT",
- "dependencies": {
- "mime-db": ">= 1.43.0 < 2"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/compression": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.1.tgz",
- "integrity": "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==",
- "license": "MIT",
- "dependencies": {
- "bytes": "3.1.2",
- "compressible": "~2.0.18",
- "debug": "2.6.9",
- "negotiator": "~0.6.4",
- "on-headers": "~1.1.0",
- "safe-buffer": "5.2.1",
- "vary": "~1.1.2"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/compression/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "license": "MIT",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/compression/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "license": "MIT"
- },
"node_modules/concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
"license": "MIT"
},
- "node_modules/connect-history-api-fallback": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz",
- "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==",
- "license": "MIT",
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/console-browserify": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz",
- "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA=="
- },
- "node_modules/constants-browserify": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
- "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==",
- "license": "MIT"
- },
- "node_modules/content-disposition": {
- "version": "0.5.4",
- "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
- "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
- "license": "MIT",
- "dependencies": {
- "safe-buffer": "5.2.1"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/content-type": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
- "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
"node_modules/convert-source-map": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
"integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
"license": "MIT"
},
- "node_modules/cookie": {
- "version": "0.7.2",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz",
- "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/cookie-signature": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz",
- "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==",
- "license": "MIT"
- },
"node_modules/copy-anything": {
"version": "3.0.5",
"resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-3.0.5.tgz",
@@ -20467,23 +20495,6 @@
"url": "https://opencollective.com/core-js"
}
},
- "node_modules/core-js-pure": {
- "version": "3.49.0",
- "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.49.0.tgz",
- "integrity": "sha512-XM4RFka59xATyJv/cS3O3Kml72hQXUeGRuuTmMYFxwzc9/7C8OYTaIR/Ji+Yt8DXzsFLNhat15cE/JP15HrCgw==",
- "hasInstallScript": true,
- "license": "MIT",
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/core-js"
- }
- },
- "node_modules/core-util-is": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
- "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
- "license": "MIT"
- },
"node_modules/cosmiconfig": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz",
@@ -20500,49 +20511,6 @@
"node": ">=8"
}
},
- "node_modules/create-ecdh": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz",
- "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==",
- "license": "MIT",
- "dependencies": {
- "bn.js": "^4.1.0",
- "elliptic": "^6.5.3"
- }
- },
- "node_modules/create-ecdh/node_modules/bn.js": {
- "version": "4.12.4",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.4.tgz",
- "integrity": "sha512-njR1b+ixG2ufvL9Zn9JGneW+b5GV6jqpYyPPpg4QVt723b5kJPGUczkUyWEH9BwEA74UakJZ43I4FDLBF7ci0g==",
- "license": "MIT"
- },
- "node_modules/create-hash": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
- "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
- "license": "MIT",
- "dependencies": {
- "cipher-base": "^1.0.1",
- "inherits": "^2.0.1",
- "md5.js": "^1.3.4",
- "ripemd160": "^2.0.1",
- "sha.js": "^2.4.0"
- }
- },
- "node_modules/create-hmac": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
- "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
- "license": "MIT",
- "dependencies": {
- "cipher-base": "^1.0.3",
- "create-hash": "^1.1.0",
- "inherits": "^2.0.1",
- "ripemd160": "^2.0.0",
- "safe-buffer": "^5.0.1",
- "sha.js": "^2.4.8"
- }
- },
"node_modules/cross-spawn": {
"version": "7.0.6",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
@@ -20557,32 +20525,6 @@
"node": ">= 8"
}
},
- "node_modules/crypto-browserify": {
- "version": "3.12.1",
- "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.1.tgz",
- "integrity": "sha512-r4ESw/IlusD17lgQi1O20Fa3qNnsckR126TdUuBgAu7GBYSIPvdNyONd3Zrxh0xCwA4+6w/TDArBPsMvhur+KQ==",
- "license": "MIT",
- "dependencies": {
- "browserify-cipher": "^1.0.1",
- "browserify-sign": "^4.2.3",
- "create-ecdh": "^4.0.4",
- "create-hash": "^1.2.0",
- "create-hmac": "^1.1.7",
- "diffie-hellman": "^5.0.3",
- "hash-base": "~3.0.4",
- "inherits": "^2.0.4",
- "pbkdf2": "^3.1.2",
- "public-encrypt": "^4.0.3",
- "randombytes": "^2.1.0",
- "randomfill": "^1.0.4"
- },
- "engines": {
- "node": ">= 0.10"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/css-blank-pseudo": {
"version": "8.0.1",
"resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-8.0.1.tgz",
@@ -20608,18 +20550,6 @@
"postcss": "^8.4"
}
},
- "node_modules/css-declaration-sorter": {
- "version": "7.4.0",
- "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.4.0.tgz",
- "integrity": "sha512-LTuzjPoyA2vMGKKcaOqKSp7Ub2eGrNfKiZH4LpezxpNrsICGCSFvsQOI29psISxNZtaXibkC2CXzrQ5enMeGGw==",
- "license": "ISC",
- "engines": {
- "node": "^14 || ^16 || >=18"
- },
- "peerDependencies": {
- "postcss": "^8.0.9"
- }
- },
"node_modules/css-has-pseudo": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-8.0.0.tgz",
@@ -20647,85 +20577,6 @@
"postcss": "^8.4"
}
},
- "node_modules/css-loader": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-7.1.4.tgz",
- "integrity": "sha512-vv3J9tlOl04WjiMvHQI/9tmIrCxVrj6PFbHemBB1iihpeRbi/I4h033eoFIhwxBBqLhI0KYFS7yvynBFhIZfTw==",
- "license": "MIT",
- "dependencies": {
- "icss-utils": "^5.1.0",
- "postcss": "^8.4.40",
- "postcss-modules-extract-imports": "^3.1.0",
- "postcss-modules-local-by-default": "^4.0.5",
- "postcss-modules-scope": "^3.2.0",
- "postcss-modules-values": "^4.0.0",
- "postcss-value-parser": "^4.2.0",
- "semver": "^7.6.3"
- },
- "engines": {
- "node": ">= 18.12.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "@rspack/core": "0.x || ^1.0.0 || ^2.0.0-0",
- "webpack": "^5.27.0"
- },
- "peerDependenciesMeta": {
- "@rspack/core": {
- "optional": true
- },
- "webpack": {
- "optional": true
- }
- }
- },
- "node_modules/css-minimizer-webpack-plugin": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-8.0.0.tgz",
- "integrity": "sha512-9bEpzHs8gEq6/cbEj418jXL/YWjBUD2YTLLk905Npt2JODqnRITin0+So5Vx4Dp5vyi2Lpt9pp2QHzQ7fdxNrw==",
- "license": "MIT",
- "dependencies": {
- "@jridgewell/trace-mapping": "^0.3.25",
- "cssnano": "^7.0.4",
- "jest-worker": "^30.0.5",
- "postcss": "^8.4.40",
- "schema-utils": "^4.2.0",
- "serialize-javascript": "^7.0.3"
- },
- "engines": {
- "node": ">= 20.9.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "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
- }
- }
- },
"node_modules/css-prefers-color-scheme": {
"version": "11.0.0",
"resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-11.0.0.tgz",
@@ -20748,47 +20599,6 @@
"postcss": "^8.4"
}
},
- "node_modules/css-select": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz",
- "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==",
- "license": "BSD-2-Clause",
- "dependencies": {
- "boolbase": "^1.0.0",
- "css-what": "^6.0.1",
- "domhandler": "^4.3.1",
- "domutils": "^2.8.0",
- "nth-check": "^2.0.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/fb55"
- }
- },
- "node_modules/css-tree": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.2.1.tgz",
- "integrity": "sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==",
- "license": "MIT",
- "dependencies": {
- "mdn-data": "2.27.1",
- "source-map-js": "^1.2.1"
- },
- "engines": {
- "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
- }
- },
- "node_modules/css-what": {
- "version": "6.2.2",
- "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz",
- "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==",
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">= 6"
- },
- "funding": {
- "url": "https://github.com/sponsors/fb55"
- }
- },
"node_modules/css.escape": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz",
@@ -20823,115 +20633,6 @@
"node": ">=4"
}
},
- "node_modules/cssnano": {
- "version": "7.1.9",
- "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-7.1.9.tgz",
- "integrity": "sha512-uPR75+5Dk/WJ/YSPR1/YDHdwMM9c5FsaARljfKWgeCKLKOtJ0we21xy/RcCjn53fZnD/f6yYEIZ8pu18+GnbNQ==",
- "license": "MIT",
- "dependencies": {
- "cssnano-preset-default": "^7.0.17",
- "lilconfig": "^3.1.3"
- },
- "engines": {
- "node": "^18.12.0 || ^20.9.0 || >=22.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/cssnano"
- },
- "peerDependencies": {
- "postcss": "^8.5.13"
- }
- },
- "node_modules/cssnano-preset-default": {
- "version": "7.0.17",
- "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-7.0.17.tgz",
- "integrity": "sha512-11qO63A+czwguQFJCaTdICvbaxn0pJzz/XghLlv+OT7WyToDxAMR0Xb3/26/l0y0hQJywwNbj/SLSQlGBHE1OA==",
- "license": "MIT",
- "dependencies": {
- "browserslist": "^4.28.2",
- "css-declaration-sorter": "^7.2.0",
- "cssnano-utils": "^5.0.3",
- "postcss-calc": "^10.1.1",
- "postcss-colormin": "^7.0.10",
- "postcss-convert-values": "^7.0.12",
- "postcss-discard-comments": "^7.0.8",
- "postcss-discard-duplicates": "^7.0.4",
- "postcss-discard-empty": "^7.0.3",
- "postcss-discard-overridden": "^7.0.3",
- "postcss-merge-longhand": "^7.0.7",
- "postcss-merge-rules": "^7.0.11",
- "postcss-minify-font-values": "^7.0.3",
- "postcss-minify-gradients": "^7.0.5",
- "postcss-minify-params": "^7.0.9",
- "postcss-minify-selectors": "^7.1.2",
- "postcss-normalize-charset": "^7.0.3",
- "postcss-normalize-display-values": "^7.0.3",
- "postcss-normalize-positions": "^7.0.4",
- "postcss-normalize-repeat-style": "^7.0.4",
- "postcss-normalize-string": "^7.0.3",
- "postcss-normalize-timing-functions": "^7.0.3",
- "postcss-normalize-unicode": "^7.0.9",
- "postcss-normalize-url": "^7.0.3",
- "postcss-normalize-whitespace": "^7.0.3",
- "postcss-ordered-values": "^7.0.4",
- "postcss-reduce-initial": "^7.0.9",
- "postcss-reduce-transforms": "^7.0.3",
- "postcss-svgo": "^7.1.3",
- "postcss-unique-selectors": "^7.0.7"
- },
- "engines": {
- "node": "^18.12.0 || ^20.9.0 || >=22.0"
- },
- "peerDependencies": {
- "postcss": "^8.5.13"
- }
- },
- "node_modules/cssnano-utils": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-5.0.3.tgz",
- "integrity": "sha512-ynIREMICLxkxm7e9bCR9sh75s4Q5drICi0ua1yxo5jH2XPBqSKkl4dOh4EbFqtUmnTMhRffHgYL0EKKkMjtJTg==",
- "license": "MIT",
- "engines": {
- "node": "^18.12.0 || ^20.9.0 || >=22.0"
- },
- "peerDependencies": {
- "postcss": "^8.5.13"
- }
- },
- "node_modules/csso": {
- "version": "5.0.5",
- "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz",
- "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==",
- "license": "MIT",
- "dependencies": {
- "css-tree": "~2.2.0"
- },
- "engines": {
- "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0",
- "npm": ">=7.0.0"
- }
- },
- "node_modules/csso/node_modules/css-tree": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz",
- "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==",
- "license": "MIT",
- "dependencies": {
- "mdn-data": "2.0.28",
- "source-map-js": "^1.0.1"
- },
- "engines": {
- "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0",
- "npm": ">=7.0.0"
- }
- },
- "node_modules/csso/node_modules/mdn-data": {
- "version": "2.0.28",
- "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz",
- "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==",
- "license": "CC0-1.0"
- },
"node_modules/cssom": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz",
@@ -21086,34 +20787,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/default-browser": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.5.0.tgz",
- "integrity": "sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==",
- "license": "MIT",
- "dependencies": {
- "bundle-name": "^4.1.0",
- "default-browser-id": "^5.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/default-browser-id": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.1.tgz",
- "integrity": "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==",
- "license": "MIT",
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/define-data-property": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
@@ -21166,15 +20839,6 @@
"node": ">=0.4.0"
}
},
- "node_modules/depd": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
- "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/dequal": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
@@ -21184,24 +20848,14 @@
"node": ">=6"
}
},
- "node_modules/des.js": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz",
- "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==",
- "license": "MIT",
- "dependencies": {
- "inherits": "^2.0.1",
- "minimalistic-assert": "^1.0.0"
- }
- },
- "node_modules/destroy": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
- "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
- "license": "MIT",
+ "node_modules/detect-libc": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
+ "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
+ "license": "Apache-2.0",
+ "optional": true,
"engines": {
- "node": ">= 0.8",
- "npm": "1.2.8000 || >= 1.4.16"
+ "node": ">=8"
}
},
"node_modules/detect-newline": {
@@ -21213,12 +20867,6 @@
"node": ">=8"
}
},
- "node_modules/detect-node": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz",
- "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==",
- "license": "MIT"
- },
"node_modules/detect-port-alt": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz",
@@ -21261,23 +20909,6 @@
"wrappy": "1"
}
},
- "node_modules/diffie-hellman": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
- "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
- "license": "MIT",
- "dependencies": {
- "bn.js": "^4.1.0",
- "miller-rabin": "^4.0.0",
- "randombytes": "^2.0.0"
- }
- },
- "node_modules/diffie-hellman/node_modules/bn.js": {
- "version": "4.12.4",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.4.tgz",
- "integrity": "sha512-njR1b+ixG2ufvL9Zn9JGneW+b5GV6jqpYyPPpg4QVt723b5kJPGUczkUyWEH9BwEA74UakJZ43I4FDLBF7ci0g==",
- "license": "MIT"
- },
"node_modules/dir-glob": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
@@ -21290,18 +20921,6 @@
"node": ">=8"
}
},
- "node_modules/dns-packet": {
- "version": "5.6.1",
- "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz",
- "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==",
- "license": "MIT",
- "dependencies": {
- "@leichtgewicht/ip-codec": "^2.0.1"
- },
- "engines": {
- "node": ">=6"
- }
- },
"node_modules/doctrine": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
@@ -21322,62 +20941,6 @@
"license": "MIT",
"peer": true
},
- "node_modules/dom-converter": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz",
- "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==",
- "license": "MIT",
- "dependencies": {
- "utila": "~0.4"
- }
- },
- "node_modules/dom-serializer": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
- "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
- "license": "MIT",
- "dependencies": {
- "domelementtype": "^2.0.1",
- "domhandler": "^4.2.0",
- "entities": "^2.0.0"
- },
- "funding": {
- "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
- }
- },
- "node_modules/dom-serializer/node_modules/entities": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
- "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
- "license": "BSD-2-Clause",
- "funding": {
- "url": "https://github.com/fb55/entities?sponsor=1"
- }
- },
- "node_modules/domain-browser": {
- "version": "5.7.0",
- "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-5.7.0.tgz",
- "integrity": "sha512-edTFu0M/7wO1pXY6GDxVNVW086uqwWYIHP98txhcPyV995X21JIH2DtYp33sQJOupYoXKe9RwTw2Ya2vWaquTQ==",
- "license": "Artistic-2.0",
- "engines": {
- "node": ">=4"
- },
- "funding": {
- "url": "https://bevry.me/fund"
- }
- },
- "node_modules/domelementtype": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
- "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/fb55"
- }
- ],
- "license": "BSD-2-Clause"
- },
"node_modules/domexception": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz",
@@ -21391,45 +20954,6 @@
"node": ">=12"
}
},
- "node_modules/domhandler": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz",
- "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
- "license": "BSD-2-Clause",
- "dependencies": {
- "domelementtype": "^2.2.0"
- },
- "engines": {
- "node": ">= 4"
- },
- "funding": {
- "url": "https://github.com/fb55/domhandler?sponsor=1"
- }
- },
- "node_modules/domutils": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
- "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
- "license": "BSD-2-Clause",
- "dependencies": {
- "dom-serializer": "^1.0.1",
- "domelementtype": "^2.2.0",
- "domhandler": "^4.2.0"
- },
- "funding": {
- "url": "https://github.com/fb55/domutils?sponsor=1"
- }
- },
- "node_modules/dot-case": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz",
- "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==",
- "license": "MIT",
- "dependencies": {
- "no-case": "^3.0.4",
- "tslib": "^2.0.3"
- }
- },
"node_modules/dotenv": {
"version": "17.4.2",
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.4.2.tgz",
@@ -21483,39 +21007,12 @@
"integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
"license": "MIT"
},
- "node_modules/ee-first": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
- "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
- "license": "MIT"
- },
"node_modules/electron-to-chromium": {
"version": "1.5.388",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.388.tgz",
"integrity": "sha512-Pl/aJaqOOxYxda3vcx1IKSJimwYXHDkEnGn0F+kG2EE68dDtx2uCinaS+Vih8Z91B9t8CSAbiF/HKyWcnXjhzw==",
"license": "ISC"
},
- "node_modules/elliptic": {
- "version": "6.6.1",
- "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz",
- "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==",
- "license": "MIT",
- "dependencies": {
- "bn.js": "^4.11.9",
- "brorand": "^1.1.0",
- "hash.js": "^1.0.0",
- "hmac-drbg": "^1.0.1",
- "inherits": "^2.0.4",
- "minimalistic-assert": "^1.0.1",
- "minimalistic-crypto-utils": "^1.0.1"
- }
- },
- "node_modules/elliptic/node_modules/bn.js": {
- "version": "4.12.4",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.4.tgz",
- "integrity": "sha512-njR1b+ixG2ufvL9Zn9JGneW+b5GV6jqpYyPPpg4QVt723b5kJPGUczkUyWEH9BwEA74UakJZ43I4FDLBF7ci0g==",
- "license": "MIT"
- },
"node_modules/emittery": {
"version": "0.13.1",
"resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz",
@@ -21534,29 +21031,12 @@
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
"license": "MIT"
},
- "node_modules/emojis-list": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
- "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
- "license": "MIT",
- "engines": {
- "node": ">= 4"
- }
- },
- "node_modules/encodeurl": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
- "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/enhanced-resolve": {
"version": "5.24.2",
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.24.2.tgz",
"integrity": "sha512-rpsZEGT1jFuve6QlpyRp9ckQ+kN61hvF9BzCPyMdaKTm8UJce96KBn3sorXOFXlzjPrs3Vc4T1NsSroZ3PxlFw==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"graceful-fs": "^4.2.4",
"tapable": "^2.3.3"
@@ -21577,15 +21057,6 @@
"url": "https://github.com/fb55/entities?sponsor=1"
}
},
- "node_modules/env-paths": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
- "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
"node_modules/environment": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz",
@@ -21620,15 +21091,6 @@
"is-arrayish": "^0.2.1"
}
},
- "node_modules/error-stack-parser": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz",
- "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==",
- "license": "MIT",
- "dependencies": {
- "stackframe": "^1.3.4"
- }
- },
"node_modules/es-abstract": {
"version": "1.24.2",
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.2.tgz",
@@ -21739,7 +21201,8 @@
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.3.0.tgz",
"integrity": "sha512-KLdwQm2NvGLDkQDCGvmiQrhkd0JbMzXthwQAUgWjQuQdBLFa3eiBP5arXZyA+f8x+x7OXgud6bq2rxjGtHV2tw==",
- "license": "MIT"
+ "license": "MIT",
+ "peer": true
},
"node_modules/es-object-atoms": {
"version": "1.1.2",
@@ -21811,12 +21274,6 @@
"node": ">=6"
}
},
- "node_modules/escape-html": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
- "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
- "license": "MIT"
- },
"node_modules/escape-string-regexp": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
@@ -28004,29 +27461,6 @@
"url": "https://opencollective.com/eslint"
}
},
- "node_modules/eslint-webpack-plugin": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-6.0.0.tgz",
- "integrity": "sha512-x9m9cH0Rw0RNJB/utP9AMGzmuXg/yLP/FCHSVSfsyjQUyetXN4g1BaIqxkj1i3mVX48aOys0bsVt63LLfh6oYg==",
- "license": "MIT",
- "dependencies": {
- "@types/eslint": "^9.6.1",
- "micromatch": "^4.0.8",
- "normalize-path": "^3.0.0",
- "schema-utils": "^4.3.3"
- },
- "engines": {
- "node": ">= 20.9.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "eslint": "^9.0.0 || ^10.0.0",
- "webpack": "^5.0.0"
- }
- },
"node_modules/eslint/node_modules/ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
@@ -28130,49 +27564,16 @@
"node": ">=0.10.0"
}
},
- "node_modules/etag": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
- "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/event-target-shim": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
- "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/eventemitter3": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
- "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
- "license": "MIT"
- },
"node_modules/events": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
"integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
"license": "MIT",
+ "peer": true,
"engines": {
"node": ">=0.8.x"
}
},
- "node_modules/evp_bytestokey": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
- "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
- "license": "MIT",
- "dependencies": {
- "md5.js": "^1.3.4",
- "safe-buffer": "^5.1.1"
- }
- },
"node_modules/execa": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
@@ -28336,83 +27737,6 @@
"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
- "node_modules/expose-loader": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/expose-loader/-/expose-loader-5.0.1.tgz",
- "integrity": "sha512-5YPZuszN/eWND/B+xuq5nIpb/l5TV1HYmdO6SubYtHv+HenVw9/6bn33Mm5reY8DNid7AVtbARvyUD34edfCtg==",
- "license": "MIT",
- "engines": {
- "node": ">= 18.12.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "webpack": "^5.0.0"
- }
- },
- "node_modules/express": {
- "version": "4.22.2",
- "resolved": "https://registry.npmjs.org/express/-/express-4.22.2.tgz",
- "integrity": "sha512-IuL+Elrou2ZvCFHs18/CIzy2Nzvo25nZ1/D2eIZlz7c+QUayAcYoiM2BthCjs+EBHVpjYjcuLDAiCWgeIX3X1Q==",
- "license": "MIT",
- "dependencies": {
- "accepts": "~1.3.8",
- "array-flatten": "1.1.1",
- "body-parser": "~1.20.5",
- "content-disposition": "~0.5.4",
- "content-type": "~1.0.4",
- "cookie": "~0.7.1",
- "cookie-signature": "~1.0.6",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "encodeurl": "~2.0.0",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "finalhandler": "~1.3.1",
- "fresh": "~0.5.2",
- "http-errors": "~2.0.0",
- "merge-descriptors": "1.0.3",
- "methods": "~1.1.2",
- "on-finished": "~2.4.1",
- "parseurl": "~1.3.3",
- "path-to-regexp": "~0.1.12",
- "proxy-addr": "~2.0.7",
- "qs": "~6.15.1",
- "range-parser": "~1.2.1",
- "safe-buffer": "5.2.1",
- "send": "~0.19.0",
- "serve-static": "~1.16.2",
- "setprototypeof": "1.2.0",
- "statuses": "~2.0.1",
- "type-is": "~1.6.18",
- "utils-merge": "1.0.1",
- "vary": "~1.1.2"
- },
- "engines": {
- "node": ">= 0.10.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/express"
- }
- },
- "node_modules/express/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "license": "MIT",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/express/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "license": "MIT"
- },
"node_modules/fast-deep-equal": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
@@ -28480,7 +27804,8 @@
"url": "https://opencollective.com/fastify"
}
],
- "license": "BSD-3-Clause"
+ "license": "BSD-3-Clause",
+ "peer": true
},
"node_modules/fastq": {
"version": "1.20.1",
@@ -28491,18 +27816,6 @@
"reusify": "^1.0.4"
}
},
- "node_modules/faye-websocket": {
- "version": "0.11.4",
- "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz",
- "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==",
- "license": "Apache-2.0",
- "dependencies": {
- "websocket-driver": ">=0.5.1"
- },
- "engines": {
- "node": ">=0.8.0"
- }
- },
"node_modules/fb-watchman": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz",
@@ -28524,44 +27837,6 @@
"node": ">=16.0.0"
}
},
- "node_modules/file-loader": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz",
- "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==",
- "license": "MIT",
- "dependencies": {
- "loader-utils": "^2.0.0",
- "schema-utils": "^3.0.0"
- },
- "engines": {
- "node": ">= 10.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "webpack": "^4.0.0 || ^5.0.0"
- }
- },
- "node_modules/file-loader/node_modules/schema-utils": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
- "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
- "license": "MIT",
- "dependencies": {
- "@types/json-schema": "^7.0.8",
- "ajv": "^6.12.5",
- "ajv-keywords": "^3.5.2"
- },
- "engines": {
- "node": ">= 10.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- }
- },
"node_modules/filesize": {
"version": "11.0.19",
"resolved": "https://registry.npmjs.org/filesize/-/filesize-11.0.19.tgz",
@@ -28583,39 +27858,6 @@
"node": ">=8"
}
},
- "node_modules/finalhandler": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz",
- "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==",
- "license": "MIT",
- "dependencies": {
- "debug": "2.6.9",
- "encodeurl": "~2.0.0",
- "escape-html": "~1.0.3",
- "on-finished": "~2.4.1",
- "parseurl": "~1.3.3",
- "statuses": "~2.0.2",
- "unpipe": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/finalhandler/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "license": "MIT",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/finalhandler/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "license": "MIT"
- },
"node_modules/find-up": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
@@ -28651,30 +27893,11 @@
"integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==",
"license": "ISC"
},
- "node_modules/follow-redirects": {
- "version": "1.16.0",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz",
- "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==",
- "funding": [
- {
- "type": "individual",
- "url": "https://github.com/sponsors/RubenVerborgh"
- }
- ],
- "license": "MIT",
- "engines": {
- "node": ">=4.0"
- },
- "peerDependenciesMeta": {
- "debug": {
- "optional": true
- }
- }
- },
"node_modules/for-each": {
"version": "0.3.5",
"resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz",
"integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==",
+ "dev": true,
"license": "MIT",
"dependencies": {
"is-callable": "^1.2.7"
@@ -28730,15 +27953,6 @@
"node": ">= 6"
}
},
- "node_modules/forwarded": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
- "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
"node_modules/fraction.js": {
"version": "5.3.4",
"resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz",
@@ -28752,15 +27966,6 @@
"url": "https://github.com/sponsors/rawify"
}
},
- "node_modules/fresh": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
- "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
"node_modules/fs-extra": {
"version": "11.3.6",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.6.tgz",
@@ -28848,11 +28053,30 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz",
"integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==",
+ "dev": true,
"license": "MIT",
"engines": {
"node": ">= 0.4"
}
},
+ "node_modules/generic-names": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/generic-names/-/generic-names-4.0.0.tgz",
+ "integrity": "sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A==",
+ "license": "MIT",
+ "dependencies": {
+ "loader-utils": "^3.2.0"
+ }
+ },
+ "node_modules/generic-names/node_modules/loader-utils": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz",
+ "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 12.13.0"
+ }
+ },
"node_modules/gensync": {
"version": "1.0.0-beta.2",
"resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
@@ -28976,22 +28200,6 @@
"node": ">=10.13.0"
}
},
- "node_modules/glob-to-regex.js": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/glob-to-regex.js/-/glob-to-regex.js-1.2.0.tgz",
- "integrity": "sha512-QMwlOQKU/IzqMUOAZWubUOT8Qft+Y0KQWnX9nK3ch0CJg0tTp4TvGZsTfudYKv2NzoQSyPcnA6TYeIQ3jGichQ==",
- "license": "Apache-2.0",
- "engines": {
- "node": ">=10.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/streamich"
- },
- "peerDependencies": {
- "tslib": "2"
- }
- },
"node_modules/glob/node_modules/balanced-match": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz",
@@ -29149,12 +28357,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/handle-thing": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz",
- "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==",
- "license": "MIT"
- },
"node_modules/harmony-reflect": {
"version": "1.6.2",
"resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz",
@@ -29238,29 +28440,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/hash-base": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.5.tgz",
- "integrity": "sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg==",
- "license": "MIT",
- "dependencies": {
- "inherits": "^2.0.4",
- "safe-buffer": "^5.2.1"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/hash.js": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
- "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
- "license": "MIT",
- "dependencies": {
- "inherits": "^2.0.3",
- "minimalistic-assert": "^1.0.1"
- }
- },
"node_modules/hasown": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz",
@@ -29273,80 +28452,12 @@
"node": ">= 0.4"
}
},
- "node_modules/he": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
- "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
- "license": "MIT",
- "bin": {
- "he": "bin/he"
- }
- },
- "node_modules/hmac-drbg": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
- "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==",
- "license": "MIT",
- "dependencies": {
- "hash.js": "^1.0.3",
- "minimalistic-assert": "^1.0.0",
- "minimalistic-crypto-utils": "^1.0.1"
- }
- },
"node_modules/hosted-git-info": {
"version": "2.8.9",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
"integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
"license": "ISC"
},
- "node_modules/hpack.js": {
- "version": "2.1.6",
- "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz",
- "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==",
- "license": "MIT",
- "dependencies": {
- "inherits": "^2.0.1",
- "obuf": "^1.0.0",
- "readable-stream": "^2.0.1",
- "wbuf": "^1.1.0"
- }
- },
- "node_modules/hpack.js/node_modules/isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
- "license": "MIT"
- },
- "node_modules/hpack.js/node_modules/readable-stream": {
- "version": "2.3.8",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
- "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
- "license": "MIT",
- "dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
- }
- },
- "node_modules/hpack.js/node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "license": "MIT"
- },
- "node_modules/hpack.js/node_modules/string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "license": "MIT",
- "dependencies": {
- "safe-buffer": "~5.1.0"
- }
- },
"node_modules/html-encoding-sniffer": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz",
@@ -29359,155 +28470,12 @@
"node": ">=12"
}
},
- "node_modules/html-entities": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.6.0.tgz",
- "integrity": "sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/mdevils"
- },
- {
- "type": "patreon",
- "url": "https://patreon.com/mdevils"
- }
- ],
- "license": "MIT"
- },
"node_modules/html-escaper": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
"integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
"license": "MIT"
},
- "node_modules/html-minifier-terser": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz",
- "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==",
- "license": "MIT",
- "dependencies": {
- "camel-case": "^4.1.2",
- "clean-css": "^5.2.2",
- "commander": "^8.3.0",
- "he": "^1.2.0",
- "param-case": "^3.0.4",
- "relateurl": "^0.2.7",
- "terser": "^5.10.0"
- },
- "bin": {
- "html-minifier-terser": "cli.js"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/html-webpack-plugin": {
- "version": "5.6.7",
- "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.7.tgz",
- "integrity": "sha512-md+vXtdCAe60s1k6AU3dUyMJnDxUyQAwfwPKoLisvgUF1IXjtlLsk2se54+qfL9Mdm26bbwvjJybpNx48NKRLw==",
- "license": "MIT",
- "dependencies": {
- "@types/html-minifier-terser": "^6.0.0",
- "html-minifier-terser": "^6.0.2",
- "lodash": "^4.17.21",
- "pretty-error": "^4.0.0",
- "tapable": "^2.0.0"
- },
- "engines": {
- "node": ">=10.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/html-webpack-plugin"
- },
- "peerDependencies": {
- "@rspack/core": "0.x || 1.x",
- "webpack": "^5.20.0"
- },
- "peerDependenciesMeta": {
- "@rspack/core": {
- "optional": true
- },
- "webpack": {
- "optional": true
- }
- }
- },
- "node_modules/htmlparser2": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz",
- "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==",
- "funding": [
- "https://github.com/fb55/htmlparser2?sponsor=1",
- {
- "type": "github",
- "url": "https://github.com/sponsors/fb55"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "domelementtype": "^2.0.1",
- "domhandler": "^4.0.0",
- "domutils": "^2.5.2",
- "entities": "^2.0.0"
- }
- },
- "node_modules/htmlparser2/node_modules/entities": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
- "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
- "license": "BSD-2-Clause",
- "funding": {
- "url": "https://github.com/fb55/entities?sponsor=1"
- }
- },
- "node_modules/http-deceiver": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz",
- "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==",
- "license": "MIT"
- },
- "node_modules/http-errors": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz",
- "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==",
- "license": "MIT",
- "dependencies": {
- "depd": "~2.0.0",
- "inherits": "~2.0.4",
- "setprototypeof": "~1.2.0",
- "statuses": "~2.0.2",
- "toidentifier": "~1.0.1"
- },
- "engines": {
- "node": ">= 0.8"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/express"
- }
- },
- "node_modules/http-parser-js": {
- "version": "0.5.10",
- "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz",
- "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==",
- "license": "MIT"
- },
- "node_modules/http-proxy": {
- "version": "1.18.1",
- "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz",
- "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==",
- "license": "MIT",
- "dependencies": {
- "eventemitter3": "^4.0.0",
- "follow-redirects": "^1.0.0",
- "requires-port": "^1.0.0"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
"node_modules/http-proxy-agent": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz",
@@ -29522,36 +28490,6 @@
"node": ">= 6"
}
},
- "node_modules/http-proxy-middleware": {
- "version": "2.0.10",
- "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.10.tgz",
- "integrity": "sha512-RKzRWNPxUZqbuk3BC5mGVJbBnWgr+diEnjJexIOytFbBzDy88Fbh/YvBr3DsNrl1jYAfjWfpATEv0NO35FDuPQ==",
- "license": "MIT",
- "dependencies": {
- "@types/http-proxy": "^1.17.8",
- "http-proxy": "^1.18.1",
- "is-glob": "^4.0.1",
- "is-plain-obj": "^3.0.0",
- "micromatch": "^4.0.2"
- },
- "engines": {
- "node": ">=12.0.0"
- },
- "peerDependencies": {
- "@types/express": "^4.17.13"
- },
- "peerDependenciesMeta": {
- "@types/express": {
- "optional": true
- }
- }
- },
- "node_modules/https-browserify": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
- "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==",
- "license": "MIT"
- },
"node_modules/https-proxy-agent": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
@@ -29574,15 +28512,6 @@
"node": ">=10.17.0"
}
},
- "node_modules/hyperdyperid": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz",
- "integrity": "sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==",
- "license": "MIT",
- "engines": {
- "node": ">=10.18"
- }
- },
"node_modules/iconv-lite": {
"version": "0.6.3",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
@@ -29619,26 +28548,6 @@
"node": ">=4"
}
},
- "node_modules/ieee754": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
- "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "BSD-3-Clause"
- },
"node_modules/ignore": {
"version": "5.3.2",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
@@ -29671,6 +28580,12 @@
"url": "https://opencollective.com/immer"
}
},
+ "node_modules/immutable": {
+ "version": "5.1.9",
+ "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.9.tgz",
+ "integrity": "sha512-m8nVez3rwrgmWxtLMt1ZYXB2Lv7OKYn/disyxAlSDYAlKSlFoPPfIAmAM/M5xqL4m4C/wAPw7S2/CNaUii1Hxg==",
+ "license": "MIT"
+ },
"node_modules/import-fresh": {
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz",
@@ -29771,31 +28686,6 @@
"node": ">= 0.4"
}
},
- "node_modules/ipaddr.js": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.4.0.tgz",
- "integrity": "sha512-9VGk3HGanVE6JoZXHiCpnGy5X0jYDnN4EA4lntFPj+1vIWlFhIylq2CrrCOJH9EAhc5CYhq18F2Av2tgoAPsYQ==",
- "license": "MIT",
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/is-arguments": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz",
- "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==",
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.2",
- "has-tostringtag": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/is-array-buffer": {
"version": "3.0.5",
"resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz",
@@ -29889,6 +28779,7 @@
"version": "1.2.7",
"resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
"integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
+ "dev": true,
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -30025,6 +28916,7 @@
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz",
"integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==",
+ "dev": true,
"license": "MIT",
"dependencies": {
"call-bound": "^1.0.4",
@@ -30052,39 +28944,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/is-inside-container": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz",
- "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==",
- "license": "MIT",
- "dependencies": {
- "is-docker": "^3.0.0"
- },
- "bin": {
- "is-inside-container": "cli.js"
- },
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/is-inside-container/node_modules/is-docker": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz",
- "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==",
- "license": "MIT",
- "bin": {
- "is-docker": "cli.js"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/is-map": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz",
@@ -30098,22 +28957,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-nan": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz",
- "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==",
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.0",
- "define-properties": "^1.1.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/is-negative-zero": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz",
@@ -30127,18 +28970,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-network-error": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.3.2.tgz",
- "integrity": "sha512-PhBY86zaxNZUuWP6h13Vu5oFe0XY6/UlKzQnYFELzGVHygP3MxmvTfYSG7GN3aIab/iWudSMgjSnG9Dq+nHrgA==",
- "license": "MIT",
- "engines": {
- "node": ">=16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/is-number": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
@@ -30165,18 +28996,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-plain-obj": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz",
- "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==",
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/is-potential-custom-element-name": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
@@ -30187,6 +29006,7 @@
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz",
"integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==",
+ "dev": true,
"license": "MIT",
"dependencies": {
"call-bound": "^1.0.2",
@@ -30290,6 +29110,7 @@
"version": "1.1.15",
"resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz",
"integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==",
+ "dev": true,
"license": "MIT",
"dependencies": {
"which-typed-array": "^1.1.16"
@@ -30387,6 +29208,7 @@
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
"integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
+ "dev": true,
"license": "MIT"
},
"node_modules/isexe": {
@@ -33700,6 +32522,8 @@
"resolved": "https://registry.npmjs.org/jiti/-/jiti-2.7.0.tgz",
"integrity": "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==",
"license": "MIT",
+ "optional": true,
+ "peer": true,
"bin": {
"jiti": "lib/jiti-cli.mjs"
}
@@ -33855,16 +32679,6 @@
"node": ">=6"
}
},
- "node_modules/launch-editor": {
- "version": "2.14.1",
- "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.14.1.tgz",
- "integrity": "sha512-QWBrQsMpH7gPr965dsKD/3cKWiNoTjpATQf++Xq63N6sKRGMwlVXz41O1IZTMfZQgBctD/K5Zt06+/I6pP6+HA==",
- "license": "MIT",
- "dependencies": {
- "picocolors": "^1.1.1",
- "shell-quote": "^1.8.4"
- }
- },
"node_modules/less": {
"version": "4.6.7",
"resolved": "https://registry.npmjs.org/less/-/less-4.6.7.tgz",
@@ -33890,32 +32704,6 @@
"source-map": "~0.6.0"
}
},
- "node_modules/less-loader": {
- "version": "12.3.3",
- "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-12.3.3.tgz",
- "integrity": "sha512-F0+ErFFDj3Pt+nVrCN6VlEGEzocv9s7x/aR9v2riI+WM83UAfTYBDBjGPJnT55lBLR6JSI4fmWblt+aA2JN6/w==",
- "license": "MIT",
- "engines": {
- "node": ">= 18.12.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "@rspack/core": "0.x || ^1.0.0 || ^2.0.0-0",
- "less": "^3.5.0 || ^4.0.0",
- "webpack": "^5.0.0"
- },
- "peerDependenciesMeta": {
- "@rspack/core": {
- "optional": true
- },
- "webpack": {
- "optional": true
- }
- }
- },
"node_modules/less-plugin-npm-import": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/less-plugin-npm-import/-/less-plugin-npm-import-2.1.0.tgz",
@@ -34089,18 +32877,6 @@
"node": ">=4"
}
},
- "node_modules/lilconfig": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz",
- "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==",
- "license": "MIT",
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/antonk52"
- }
- },
"node_modules/lines-and-columns": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
@@ -34112,6 +32888,7 @@
"resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.2.tgz",
"integrity": "sha512-DFEqQ3ihfS9blba08cLfYf1NRAIEm+dDjic073DRDc3/JspI/8wYmtDsHwd3+4hwvdxSK7PGaElfTmm0awWJ4w==",
"license": "MIT",
+ "peer": true,
"engines": {
"node": ">=6.11.5"
},
@@ -34120,20 +32897,6 @@
"url": "https://opencollective.com/webpack"
}
},
- "node_modules/loader-utils": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
- "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
- "license": "MIT",
- "dependencies": {
- "big.js": "^5.2.2",
- "emojis-list": "^3.0.0",
- "json5": "^2.1.2"
- },
- "engines": {
- "node": ">=8.9.0"
- }
- },
"node_modules/locate-path": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
@@ -34149,10 +32912,10 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/lodash": {
- "version": "4.18.1",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz",
- "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==",
+ "node_modules/lodash.camelcase": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
+ "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==",
"license": "MIT"
},
"node_modules/lodash.debounce": {
@@ -34161,33 +32924,12 @@
"integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==",
"license": "MIT"
},
- "node_modules/lodash.memoize": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
- "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==",
- "license": "MIT"
- },
"node_modules/lodash.merge": {
"version": "4.6.2",
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
"integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
"license": "MIT"
},
- "node_modules/lodash.uniq": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
- "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==",
- "license": "MIT"
- },
- "node_modules/lower-case": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
- "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
- "license": "MIT",
- "dependencies": {
- "tslib": "^2.0.3"
- }
- },
"node_modules/lru-cache": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
@@ -34240,70 +32982,6 @@
"node": ">= 0.4"
}
},
- "node_modules/md5.js": {
- "version": "1.3.5",
- "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
- "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
- "license": "MIT",
- "dependencies": {
- "hash-base": "^3.0.0",
- "inherits": "^2.0.1",
- "safe-buffer": "^5.1.2"
- }
- },
- "node_modules/mdn-data": {
- "version": "2.27.1",
- "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.27.1.tgz",
- "integrity": "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==",
- "license": "CC0-1.0"
- },
- "node_modules/media-typer": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
- "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/memfs": {
- "version": "4.58.0",
- "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.58.0.tgz",
- "integrity": "sha512-0n6CDBqIT/eGrbWdDVNkLjasjupnEpOFjFOtXrS5p6EYYXGXBn5ZIMLetBlVdQYpP0hGK2MEOgYAC0/+NOr91w==",
- "license": "Apache-2.0",
- "dependencies": {
- "@jsonjoy.com/fs-core": "4.58.0",
- "@jsonjoy.com/fs-fsa": "4.58.0",
- "@jsonjoy.com/fs-node": "4.58.0",
- "@jsonjoy.com/fs-node-builtins": "4.58.0",
- "@jsonjoy.com/fs-node-to-fsa": "4.58.0",
- "@jsonjoy.com/fs-node-utils": "4.58.0",
- "@jsonjoy.com/fs-print": "4.58.0",
- "@jsonjoy.com/fs-snapshot": "4.58.0",
- "@jsonjoy.com/json-pack": "^1.11.0",
- "@jsonjoy.com/util": "^1.9.0",
- "glob-to-regex.js": "^1.0.1",
- "thingies": "^2.5.0",
- "tree-dump": "^1.0.3",
- "tslib": "^2.0.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/streamich"
- },
- "peerDependencies": {
- "tslib": "2"
- }
- },
- "node_modules/merge-descriptors": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz",
- "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==",
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/merge-stream": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
@@ -34319,15 +32997,6 @@
"node": ">= 8"
}
},
- "node_modules/methods": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
- "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
"node_modules/micromatch": {
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
@@ -34353,30 +33022,12 @@
"url": "https://github.com/sponsors/jonschlinkert"
}
},
- "node_modules/miller-rabin": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz",
- "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
- "license": "MIT",
- "dependencies": {
- "bn.js": "^4.0.0",
- "brorand": "^1.0.1"
- },
- "bin": {
- "miller-rabin": "bin/miller-rabin"
- }
- },
- "node_modules/miller-rabin/node_modules/bn.js": {
- "version": "4.12.4",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.4.tgz",
- "integrity": "sha512-njR1b+ixG2ufvL9Zn9JGneW+b5GV6jqpYyPPpg4QVt723b5kJPGUczkUyWEH9BwEA74UakJZ43I4FDLBF7ci0g==",
- "license": "MIT"
- },
"node_modules/mime": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
"integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
"license": "MIT",
+ "optional": true,
"bin": {
"mime": "cli.js"
},
@@ -34423,38 +33074,6 @@
"node": ">=4"
}
},
- "node_modules/mini-css-extract-plugin": {
- "version": "2.10.2",
- "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.10.2.tgz",
- "integrity": "sha512-AOSS0IdEB95ayVkxn5oGzNQwqAi2J0Jb/kKm43t7H73s8+f5873g0yuj0PNvK4dO75mu5DHg4nlgp4k6Kga8eg==",
- "license": "MIT",
- "dependencies": {
- "schema-utils": "^4.0.0",
- "tapable": "^2.2.1"
- },
- "engines": {
- "node": ">= 12.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "webpack": "^5.0.0"
- }
- },
- "node_modules/minimalistic-assert": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
- "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
- "license": "ISC"
- },
- "node_modules/minimalistic-crypto-utils": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
- "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==",
- "license": "MIT"
- },
"node_modules/minimatch": {
"version": "3.1.5",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
@@ -34481,6 +33100,7 @@
"resolved": "https://registry.npmjs.org/minimizer-webpack-plugin/-/minimizer-webpack-plugin-5.6.1.tgz",
"integrity": "sha512-DoeAZz8Q1C1znwsUzej1fdoi4jCf7/+Em27ouLqfK/+3m8G+D7yDhUwrc3CNhjSzGUN1kn7Iv4sWmjflQHenpw==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@jridgewell/trace-mapping": "^0.3.25",
"jest-worker": "^27.4.5",
@@ -34541,6 +33161,7 @@
"resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
"integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@types/node": "*",
"merge-stream": "^2.0.0",
@@ -34555,6 +33176,7 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
"integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -34604,19 +33226,6 @@
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
"license": "MIT"
},
- "node_modules/multicast-dns": {
- "version": "7.2.5",
- "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz",
- "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==",
- "license": "MIT",
- "dependencies": {
- "dns-packet": "^5.2.2",
- "thunky": "^1.0.2"
- },
- "bin": {
- "multicast-dns": "cli.js"
- }
- },
"node_modules/nanoid": {
"version": "3.3.15",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.15.tgz",
@@ -34673,30 +33282,19 @@
"node": ">= 4.4.x"
}
},
- "node_modules/negotiator": {
- "version": "0.6.4",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz",
- "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
"node_modules/neo-async": {
"version": "2.6.2",
"resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
"integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
- "license": "MIT"
+ "license": "MIT",
+ "peer": true
},
- "node_modules/no-case": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
- "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
+ "node_modules/node-addon-api": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz",
+ "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==",
"license": "MIT",
- "dependencies": {
- "lower-case": "^2.0.2",
- "tslib": "^2.0.3"
- }
+ "optional": true
},
"node_modules/node-exports-info": {
"version": "1.6.2",
@@ -34733,56 +33331,6 @@
"integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==",
"license": "MIT"
},
- "node_modules/node-polyfill-webpack-plugin": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/node-polyfill-webpack-plugin/-/node-polyfill-webpack-plugin-4.0.0.tgz",
- "integrity": "sha512-WLk77vLpbcpmTekRj6s6vYxk30XoyaY5MDZ4+9g8OaKoG3Ij+TjOqhpQjVUlfDZBPBgpNATDltaQkzuXSnnkwg==",
- "license": "MIT",
- "dependencies": {
- "assert": "^2.1.0",
- "browserify-zlib": "^0.2.0",
- "buffer": "^6.0.3",
- "console-browserify": "^1.2.0",
- "constants-browserify": "^1.0.0",
- "crypto-browserify": "^3.12.0",
- "domain-browser": "^5.7.0",
- "events": "^3.3.0",
- "https-browserify": "^1.0.0",
- "os-browserify": "^0.3.0",
- "path-browserify": "^1.0.1",
- "process": "^0.11.10",
- "punycode": "^2.3.1",
- "querystring-es3": "^0.2.1",
- "readable-stream": "^4.5.2",
- "stream-browserify": "^3.0.0",
- "stream-http": "^3.2.0",
- "string_decoder": "^1.3.0",
- "timers-browserify": "^2.0.12",
- "tty-browserify": "^0.0.1",
- "type-fest": "^4.18.2",
- "url": "^0.11.3",
- "util": "^0.12.5",
- "vm-browserify": "^1.1.2"
- },
- "engines": {
- "node": ">=14"
- },
- "peerDependencies": {
- "webpack": ">=5"
- }
- },
- "node_modules/node-polyfill-webpack-plugin/node_modules/type-fest": {
- "version": "4.41.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz",
- "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==",
- "license": "(MIT OR CC0-1.0)",
- "engines": {
- "node": ">=16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/node-releases": {
"version": "2.0.50",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.50.tgz",
@@ -34853,18 +33401,6 @@
"node": ">=8"
}
},
- "node_modules/nth-check": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
- "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
- "license": "BSD-2-Clause",
- "dependencies": {
- "boolbase": "^1.0.0"
- },
- "funding": {
- "url": "https://github.com/fb55/nth-check?sponsor=1"
- }
- },
"node_modules/nwsapi": {
"version": "2.2.24",
"resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.24.tgz",
@@ -34875,6 +33411,7 @@
"version": "1.13.4",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
"integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==",
+ "dev": true,
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -34883,22 +33420,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/object-is": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz",
- "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==",
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "define-properties": "^1.2.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/object-keys": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
@@ -34997,33 +33518,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/obuf": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz",
- "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==",
- "license": "MIT"
- },
- "node_modules/on-finished": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
- "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
- "license": "MIT",
- "dependencies": {
- "ee-first": "1.1.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/on-headers": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz",
- "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
@@ -35082,12 +33576,6 @@
"node": ">= 0.8.0"
}
},
- "node_modules/os-browserify": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
- "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==",
- "license": "MIT"
- },
"node_modules/os-homedir": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
@@ -35165,23 +33653,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/p-retry": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.2.1.tgz",
- "integrity": "sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==",
- "license": "MIT",
- "dependencies": {
- "@types/retry": "0.12.2",
- "is-network-error": "^1.0.0",
- "retry": "^0.13.1"
- },
- "engines": {
- "node": ">=16.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/p-try": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
@@ -35197,22 +33668,6 @@
"integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
"license": "BlueOak-1.0.0"
},
- "node_modules/pako": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
- "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
- "license": "(MIT AND Zlib)"
- },
- "node_modules/param-case": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz",
- "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==",
- "license": "MIT",
- "dependencies": {
- "dot-case": "^3.0.4",
- "tslib": "^2.0.3"
- }
- },
"node_modules/parent-module": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
@@ -35225,22 +33680,6 @@
"node": ">=6"
}
},
- "node_modules/parse-asn1": {
- "version": "5.1.9",
- "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.9.tgz",
- "integrity": "sha512-fIYNuZ/HastSb80baGOuPRo1O9cf4baWw5WsAp7dBuUzeTD/BoaG8sVTdlPFksBE2lF21dN+A1AnrpIjSWqHHg==",
- "license": "ISC",
- "dependencies": {
- "asn1.js": "^4.10.1",
- "browserify-aes": "^1.2.0",
- "evp_bytestokey": "^1.0.3",
- "pbkdf2": "^3.1.5",
- "safe-buffer": "^5.2.1"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
"node_modules/parse-json": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
@@ -35280,31 +33719,6 @@
"url": "https://github.com/inikulin/parse5?sponsor=1"
}
},
- "node_modules/parseurl": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
- "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/pascal-case": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz",
- "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==",
- "license": "MIT",
- "dependencies": {
- "no-case": "^3.0.4",
- "tslib": "^2.0.3"
- }
- },
- "node_modules/path-browserify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz",
- "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==",
- "license": "MIT"
- },
"node_modules/path-exists": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
@@ -35363,12 +33777,6 @@
"node": "20 || >=22"
}
},
- "node_modules/path-to-regexp": {
- "version": "0.1.13",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.13.tgz",
- "integrity": "sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==",
- "license": "MIT"
- },
"node_modules/path-type": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
@@ -35378,23 +33786,6 @@
"node": ">=8"
}
},
- "node_modules/pbkdf2": {
- "version": "3.1.6",
- "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.6.tgz",
- "integrity": "sha512-BT6eelPB1EyGHo8pC0o9Bl6k6SYVhKO1jEbd3lcTrtr7XHdjP8BW1YpfCV3G9Kwkxgattk+S5q2/RvuttCsS1g==",
- "license": "MIT",
- "dependencies": {
- "create-hash": "^1.2.0",
- "create-hmac": "^1.1.7",
- "ripemd160": "^2.0.3",
- "safe-buffer": "^5.2.1",
- "sha.js": "^2.4.12",
- "to-buffer": "^1.2.2"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
"node_modules/picocolors": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
@@ -35559,27 +33950,11 @@
"node": ">=4"
}
},
- "node_modules/pkijs": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/pkijs/-/pkijs-3.4.0.tgz",
- "integrity": "sha512-emEcLuomt2j03vxD54giVB4SxTjnsqkU692xZOZXHDVoYyypEm+b3jpiTcc+Cf+myooc+/Ly0z01jqeNHVgJGw==",
- "license": "BSD-3-Clause",
- "dependencies": {
- "@noble/hashes": "1.4.0",
- "asn1js": "^3.0.6",
- "bytestreamjs": "^2.0.1",
- "pvtsutils": "^1.3.6",
- "pvutils": "^1.1.3",
- "tslib": "^2.8.1"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
"node_modules/possible-typed-array-names": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz",
"integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==",
+ "dev": true,
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -35661,22 +34036,6 @@
"postcss": "^8.4"
}
},
- "node_modules/postcss-calc": {
- "version": "10.1.1",
- "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-10.1.1.tgz",
- "integrity": "sha512-NYEsLHh8DgG/PRH2+G9BTuUdtf9ViS+vdoQ0YA5OQdGsfN4ztiwtDWNtBl9EKeqNMFnIu8IKZ0cLxEQ5r5KVMw==",
- "license": "MIT",
- "dependencies": {
- "postcss-selector-parser": "^7.0.0",
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^18.12 || ^20.9 || >=22.0"
- },
- "peerDependencies": {
- "postcss": "^8.4.38"
- }
- },
"node_modules/postcss-clamp": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz",
@@ -35773,40 +34132,6 @@
"postcss": "^8.4"
}
},
- "node_modules/postcss-colormin": {
- "version": "7.0.10",
- "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-7.0.10.tgz",
- "integrity": "sha512-yFr6JezOolHLta/buLE71VKPh2mXursp4saVe98/ol8ZnEWhL+racShqPKlvd/DKWLre/39B6HhcMXf7RZ3hxg==",
- "license": "MIT",
- "dependencies": {
- "@colordx/core": "^5.4.3",
- "browserslist": "^4.28.2",
- "caniuse-api": "^3.0.0",
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^18.12.0 || ^20.9.0 || >=22.0"
- },
- "peerDependencies": {
- "postcss": "^8.5.13"
- }
- },
- "node_modules/postcss-convert-values": {
- "version": "7.0.12",
- "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-7.0.12.tgz",
- "integrity": "sha512-xurKu5qqk4viR3Cp3p4xBR4KfnZm4w4ys6+UBwBmeuBSNkH7+DtLnYOYnOffgtE4yx8sH9S1VZ6RAAvROXzP2Q==",
- "license": "MIT",
- "dependencies": {
- "browserslist": "^4.28.2",
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^18.12.0 || ^20.9.0 || >=22.0"
- },
- "peerDependencies": {
- "postcss": "^8.5.13"
- }
- },
"node_modules/postcss-custom-media": {
"version": "12.0.1",
"resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-12.0.1.tgz",
@@ -35917,57 +34242,6 @@
"postcss": "^8.4"
}
},
- "node_modules/postcss-discard-comments": {
- "version": "7.0.8",
- "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-7.0.8.tgz",
- "integrity": "sha512-CvvS5S9WrXblFXCEJ9nVo+4z+eA7zSC7Z88V1HEJuwlQhlFnYTIjg1xJY+BCUiG2bvICap2tXii4mP22BD108Q==",
- "license": "MIT",
- "dependencies": {
- "postcss-selector-parser": "^7.1.1"
- },
- "engines": {
- "node": "^18.12.0 || ^20.9.0 || >=22.0"
- },
- "peerDependencies": {
- "postcss": "^8.5.13"
- }
- },
- "node_modules/postcss-discard-duplicates": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-7.0.4.tgz",
- "integrity": "sha512-VBNn1+EuMZkeGVVtz0gRfbNGtx9IFgAsAV+E2pHtXPrp4qfGBkhTIiAuE/wrb+Y6Pakg9NewAlfTpYIFAWODtw==",
- "license": "MIT",
- "engines": {
- "node": "^18.12.0 || ^20.9.0 || >=22.0"
- },
- "peerDependencies": {
- "postcss": "^8.5.13"
- }
- },
- "node_modules/postcss-discard-empty": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-7.0.3.tgz",
- "integrity": "sha512-M2pyjQCU+/7cMHVtL6bKTHjv0lZnPLMpicgr67Dlth7AbuV9gjVTtUqaRwn6Pp6BwSDspUzhz8SaUrRykJU5Dw==",
- "license": "MIT",
- "engines": {
- "node": "^18.12.0 || ^20.9.0 || >=22.0"
- },
- "peerDependencies": {
- "postcss": "^8.5.13"
- }
- },
- "node_modules/postcss-discard-overridden": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-7.0.3.tgz",
- "integrity": "sha512-aNovXo9UsZuRNLzHJtp13lHIvinDPfiXBPePpXkSjCbgp++iU2FqE+YxvjIsg6EdyPZsASFbfu+JcBFVsErXIQ==",
- "license": "MIT",
- "engines": {
- "node": "^18.12.0 || ^20.9.0 || >=22.0"
- },
- "peerDependencies": {
- "postcss": "^8.5.13"
- }
- },
"node_modules/postcss-double-position-gradients": {
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-7.0.2.tgz",
@@ -36140,91 +34414,6 @@
"postcss": "^8.4"
}
},
- "node_modules/postcss-loader": {
- "version": "8.2.1",
- "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-8.2.1.tgz",
- "integrity": "sha512-k98jtRzthjj3f76MYTs9JTpRqV1RaaMhEU0Lpw9OTmQZQdppg4B30VZ74BojuBHt3F4KyubHJoXCMUeM8Bqeow==",
- "license": "MIT",
- "dependencies": {
- "cosmiconfig": "^9.0.0",
- "jiti": "^2.5.1",
- "semver": "^7.6.2"
- },
- "engines": {
- "node": ">= 18.12.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "@rspack/core": "0.x || ^1.0.0 || ^2.0.0-0",
- "postcss": "^7.0.0 || ^8.0.1",
- "webpack": "^5.0.0"
- },
- "peerDependenciesMeta": {
- "@rspack/core": {
- "optional": true
- },
- "webpack": {
- "optional": true
- }
- }
- },
- "node_modules/postcss-loader/node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "license": "Python-2.0"
- },
- "node_modules/postcss-loader/node_modules/cosmiconfig": {
- "version": "9.0.2",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.2.tgz",
- "integrity": "sha512-gtTZxTDau1wL7Y7zifc2dd8jHSK/k6BTx/2Xp/BpdlAdnlYWFVt7qhJqgwi7637yRwRQ3qL4ZidbB4I8tA5VOg==",
- "license": "MIT",
- "dependencies": {
- "env-paths": "^2.2.1",
- "import-fresh": "^3.3.0",
- "js-yaml": "^4.1.0",
- "parse-json": "^5.2.0"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/d-fischer"
- },
- "peerDependencies": {
- "typescript": ">=4.9.5"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/postcss-loader/node_modules/js-yaml": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.0.tgz",
- "integrity": "sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/puzrin"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/nodeca"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "argparse": "^2.0.1"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
"node_modules/postcss-logical": {
"version": "9.0.0",
"resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-9.0.0.tgz",
@@ -36250,105 +34439,23 @@
"postcss": "^8.4"
}
},
- "node_modules/postcss-merge-longhand": {
- "version": "7.0.7",
- "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-7.0.7.tgz",
- "integrity": "sha512-b3mfYUxR388u5Pt0HPcVIUtUDn/k15UfTY9M+ORW+meCR6JLNxoZffiYvXyOYQoRYQNZyX/UFkMCM/mNHxe1qA==",
- "license": "MIT",
- "dependencies": {
- "postcss-value-parser": "^4.2.0",
- "stylehacks": "^7.0.11"
- },
- "engines": {
- "node": "^18.12.0 || ^20.9.0 || >=22.0"
- },
- "peerDependencies": {
- "postcss": "^8.5.13"
- }
- },
- "node_modules/postcss-merge-rules": {
- "version": "7.0.11",
- "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-7.0.11.tgz",
- "integrity": "sha512-SJUPM18g2BmPhf8BVlbwqWz4aK3pLu6u6xjfwEzra7xL6IBR10sUaiB++EzqcVfadPHrKBSMlNdP+XieykhI+Q==",
- "license": "MIT",
- "dependencies": {
- "browserslist": "^4.28.2",
- "caniuse-api": "^3.0.0",
- "cssnano-utils": "^5.0.3",
- "postcss-selector-parser": "^7.1.1"
- },
- "engines": {
- "node": "^18.12.0 || ^20.9.0 || >=22.0"
- },
- "peerDependencies": {
- "postcss": "^8.5.13"
- }
- },
- "node_modules/postcss-minify-font-values": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-7.0.3.tgz",
- "integrity": "sha512-yilG/VOaNI74IylQvAQQxm3/wZVBkXyYUqNUAdxqwtbWUXPsbK1q8Ms0mL83v+f8YicgcyfYCRZtWACUdYajpA==",
- "license": "MIT",
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^18.12.0 || ^20.9.0 || >=22.0"
- },
- "peerDependencies": {
- "postcss": "^8.5.13"
- }
- },
- "node_modules/postcss-minify-gradients": {
- "version": "7.0.5",
- "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-7.0.5.tgz",
- "integrity": "sha512-YraROyQRg3BI1+Hg8E05B/JPdnTm8EDSVu4P2BxdM+CRiOyfmou809+chGIqo6fQqwjPGQ947nbGncSjmTU1WQ==",
- "license": "MIT",
- "dependencies": {
- "@colordx/core": "^5.4.3",
- "cssnano-utils": "^5.0.3",
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^18.12.0 || ^20.9.0 || >=22.0"
- },
- "peerDependencies": {
- "postcss": "^8.5.13"
- }
- },
- "node_modules/postcss-minify-params": {
- "version": "7.0.9",
- "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-7.0.9.tgz",
- "integrity": "sha512-R8itbB8BhlpoYyBm1ou0dD+vJnQ3F6adQipR4UnkCHUwlo+S9WXJaDRg1RHjC8YVAtIdrQzSWvJl40HnGDTKjA==",
- "license": "MIT",
- "dependencies": {
- "browserslist": "^4.28.2",
- "cssnano-utils": "^5.0.3",
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^18.12.0 || ^20.9.0 || >=22.0"
- },
- "peerDependencies": {
- "postcss": "^8.5.13"
- }
- },
- "node_modules/postcss-minify-selectors": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-7.1.2.tgz",
- "integrity": "sha512-aQtrEWKwqafNlExcKHQvPGsXR2+vlUqqJtf5XsCQcgsSb5PL4wlujWBYDJuWsP4UnQX1YHDHU8qRlD+1PzTQ+Q==",
+ "node_modules/postcss-modules": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-modules/-/postcss-modules-6.0.1.tgz",
+ "integrity": "sha512-zyo2sAkVvuZFFy0gc2+4O+xar5dYlaVy/ebO24KT0ftk/iJevSNyPyQellsBLlnccwh7f6V6Y4GvuKRYToNgpQ==",
"license": "MIT",
"dependencies": {
- "browserslist": "^4.28.1",
- "caniuse-api": "^3.0.0",
- "cssesc": "^3.0.0",
- "postcss-selector-parser": "^7.1.1"
- },
- "engines": {
- "node": "^18.12.0 || ^20.9.0 || >=22.0"
+ "generic-names": "^4.0.0",
+ "icss-utils": "^5.1.0",
+ "lodash.camelcase": "^4.3.0",
+ "postcss-modules-extract-imports": "^3.1.0",
+ "postcss-modules-local-by-default": "^4.0.5",
+ "postcss-modules-scope": "^3.2.0",
+ "postcss-modules-values": "^4.0.0",
+ "string-hash": "^1.1.3"
},
"peerDependencies": {
- "postcss": "^8.5.13"
+ "postcss": "^8.0.0"
}
},
"node_modules/postcss-modules-extract-imports": {
@@ -36455,139 +34562,6 @@
"postcss": ">= 8"
}
},
- "node_modules/postcss-normalize-charset": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-7.0.3.tgz",
- "integrity": "sha512-NoBfZu8PR4c2NlmjvrqQTzCzLY79hwcSRgNQ3ZiNK0ABzf9kYKloE/jNj+/8GQY1wsm8pRRgANk6ydLH8cwo0Q==",
- "license": "MIT",
- "engines": {
- "node": "^18.12.0 || ^20.9.0 || >=22.0"
- },
- "peerDependencies": {
- "postcss": "^8.5.13"
- }
- },
- "node_modules/postcss-normalize-display-values": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-7.0.3.tgz",
- "integrity": "sha512-ldsCX0QIt05pKIOobZtVQ48wXJecr+czw4+e1/YjVhLMqslShgpVxgPtI2CefURR8oyVoYaU/l829MMwExDMLw==",
- "license": "MIT",
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^18.12.0 || ^20.9.0 || >=22.0"
- },
- "peerDependencies": {
- "postcss": "^8.5.13"
- }
- },
- "node_modules/postcss-normalize-positions": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-7.0.4.tgz",
- "integrity": "sha512-VEvlpeGd3Ju1Hqa/oN4jaP3+ms4laYwkEL9N9u+B6k54PZjXbW1n6wI+aVprf1BQXlCYpS5+1pl/7/vHiKgARg==",
- "license": "MIT",
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^18.12.0 || ^20.9.0 || >=22.0"
- },
- "peerDependencies": {
- "postcss": "^8.5.13"
- }
- },
- "node_modules/postcss-normalize-repeat-style": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-7.0.4.tgz",
- "integrity": "sha512-6mPKlY/8cSaDHxX502wERADarJsccwlky6yIrOapHH2ZgfoKAV94SbiTKfKEs4EEpdazuc3J72WsqeYk7hp9+Q==",
- "license": "MIT",
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^18.12.0 || ^20.9.0 || >=22.0"
- },
- "peerDependencies": {
- "postcss": "^8.5.13"
- }
- },
- "node_modules/postcss-normalize-string": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-7.0.3.tgz",
- "integrity": "sha512-HnEQPUchi1eznmDKEYrKUTqrprEq97SrpUYClgUkv7V2zRODD9DFoUsYU+m9ZOetmD5ku7fEMZB/lwy8IT6xVQ==",
- "license": "MIT",
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^18.12.0 || ^20.9.0 || >=22.0"
- },
- "peerDependencies": {
- "postcss": "^8.5.13"
- }
- },
- "node_modules/postcss-normalize-timing-functions": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-7.0.3.tgz",
- "integrity": "sha512-zmEzHdvpZBZu0OKlbJSfgASQvaayyAoVuWtvyr34IJ/LyS+DaOKvvR3EvFJ9RWWtNIx+CMvO125OVophaxNYew==",
- "license": "MIT",
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^18.12.0 || ^20.9.0 || >=22.0"
- },
- "peerDependencies": {
- "postcss": "^8.5.13"
- }
- },
- "node_modules/postcss-normalize-unicode": {
- "version": "7.0.9",
- "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-7.0.9.tgz",
- "integrity": "sha512-DRAdWfeh/TjmhLJsw91vdiWCnUod9iwvM7xyS02/nF/sLsCR3A8l3pztrSUrWG8DSBqfX7yEk9FM0USaVJ2mSg==",
- "license": "MIT",
- "dependencies": {
- "browserslist": "^4.28.2",
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^18.12.0 || ^20.9.0 || >=22.0"
- },
- "peerDependencies": {
- "postcss": "^8.5.13"
- }
- },
- "node_modules/postcss-normalize-url": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-7.0.3.tgz",
- "integrity": "sha512-CL93wmloq5qsffmFv+bw24MIRbmhHrp53qoh1LDAb/5TtjWEXI/np4xcP/Gw9oWCb2XyWnqHYLDUwiKRoJBA1Q==",
- "license": "MIT",
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^18.12.0 || ^20.9.0 || >=22.0"
- },
- "peerDependencies": {
- "postcss": "^8.5.13"
- }
- },
- "node_modules/postcss-normalize-whitespace": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-7.0.3.tgz",
- "integrity": "sha512-FdHjjn+Ht5Z2ZRjNOmeCbNq6lq09sUYKpmlF/Aq0XjVNSLTL6fmHlA/3swN2wP2caY9GV/tjSDcIIyS7aN7W0A==",
- "license": "MIT",
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^18.12.0 || ^20.9.0 || >=22.0"
- },
- "peerDependencies": {
- "postcss": "^8.5.13"
- }
- },
"node_modules/postcss-opacity-percentage": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-3.0.0.tgz",
@@ -36610,22 +34584,6 @@
"postcss": "^8.4"
}
},
- "node_modules/postcss-ordered-values": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-7.0.4.tgz",
- "integrity": "sha512-nubSi49hDHQk4E8KIj+IbLY8Bg+8OcSUEhgyolgM+atnOvXjV7EjaR6bac4YGZoFyPa9mWoAF3EaYbWdFkKqVg==",
- "license": "MIT",
- "dependencies": {
- "cssnano-utils": "^5.0.3",
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^18.12.0 || ^20.9.0 || >=22.0"
- },
- "peerDependencies": {
- "postcss": "^8.5.13"
- }
- },
"node_modules/postcss-overflow-shorthand": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-7.0.0.tgz",
@@ -36809,37 +34767,6 @@
"postcss": "^8.4"
}
},
- "node_modules/postcss-reduce-initial": {
- "version": "7.0.9",
- "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-7.0.9.tgz",
- "integrity": "sha512-ztTNPdIxXTxtBcG03E9u8v44M4ElXbMIRT7pf2onlquGula0Y83nKKxqM22FA/hMgkfCjN7ohevkVlaNwI8iOQ==",
- "license": "MIT",
- "dependencies": {
- "browserslist": "^4.28.2",
- "caniuse-api": "^3.0.0"
- },
- "engines": {
- "node": "^18.12.0 || ^20.9.0 || >=22.0"
- },
- "peerDependencies": {
- "postcss": "^8.5.13"
- }
- },
- "node_modules/postcss-reduce-transforms": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-7.0.3.tgz",
- "integrity": "sha512-FXsnN9ZwcZTT8Yf8cAHA8qIGUXcX6WfLd9JoYhrdDfmvsVhhfqkkv7m4AC3rwFOfz+GzkUa87OCKF9dUcicd+g==",
- "license": "MIT",
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^18.12.0 || ^20.9.0 || >=22.0"
- },
- "peerDependencies": {
- "postcss": "^8.5.13"
- }
- },
"node_modules/postcss-replace-overflow-wrap": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz",
@@ -36902,37 +34829,6 @@
"node": ">=4"
}
},
- "node_modules/postcss-svgo": {
- "version": "7.1.3",
- "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-7.1.3.tgz",
- "integrity": "sha512-2QfoFOYMcj8lwcVEf9WeTlkVIAm7u2QvOEhMzkQU3KUhhGX/l8hVV9EtjMv4iq3E9iI3OeeMN0YoMLbGusuigw==",
- "license": "MIT",
- "dependencies": {
- "postcss-value-parser": "^4.2.0",
- "svgo": "^4.0.1"
- },
- "engines": {
- "node": "^18.12.0 || ^20.9.0 || >= 18"
- },
- "peerDependencies": {
- "postcss": "^8.5.13"
- }
- },
- "node_modules/postcss-unique-selectors": {
- "version": "7.0.7",
- "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-7.0.7.tgz",
- "integrity": "sha512-d+sCkaRnSefghOUdH8CMJZV9yUQhj2ojpe8Nw/lA+LV1UOfeleGkLTl6XdCFFSai9UJ+DJPb69FFuqthXYsY8w==",
- "license": "MIT",
- "dependencies": {
- "postcss-selector-parser": "^7.1.1"
- },
- "engines": {
- "node": "^18.12.0 || ^20.9.0 || >=22.0"
- },
- "peerDependencies": {
- "postcss": "^8.5.13"
- }
- },
"node_modules/postcss-value-parser": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
@@ -36994,16 +34890,6 @@
"node": ">=6.0.0"
}
},
- "node_modules/pretty-error": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz",
- "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==",
- "license": "MIT",
- "dependencies": {
- "lodash": "^4.17.20",
- "renderkid": "^3.0.0"
- }
- },
"node_modules/pretty-format": {
"version": "27.5.1",
"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz",
@@ -37026,21 +34912,6 @@
"license": "MIT",
"peer": true
},
- "node_modules/process": {
- "version": "0.11.10",
- "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
- "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6.0"
- }
- },
- "node_modules/process-nextick-args": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
- "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
- "license": "MIT"
- },
"node_modules/promise": {
"version": "7.0.4",
"resolved": "https://registry.npmjs.org/promise/-/promise-7.0.4.tgz",
@@ -37063,28 +34934,6 @@
"node": ">= 6"
}
},
- "node_modules/proxy-addr": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
- "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
- "license": "MIT",
- "dependencies": {
- "forwarded": "0.2.0",
- "ipaddr.js": "1.9.1"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/proxy-addr/node_modules/ipaddr.js": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
- "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.10"
- }
- },
"node_modules/prr": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
@@ -37104,26 +34953,6 @@
"url": "https://github.com/sponsors/lupomontero"
}
},
- "node_modules/public-encrypt": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz",
- "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==",
- "license": "MIT",
- "dependencies": {
- "bn.js": "^4.1.0",
- "browserify-rsa": "^4.0.0",
- "create-hash": "^1.1.0",
- "parse-asn1": "^5.0.0",
- "randombytes": "^2.0.1",
- "safe-buffer": "^5.1.2"
- }
- },
- "node_modules/public-encrypt/node_modules/bn.js": {
- "version": "4.12.4",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.4.tgz",
- "integrity": "sha512-njR1b+ixG2ufvL9Zn9JGneW+b5GV6jqpYyPPpg4QVt723b5kJPGUczkUyWEH9BwEA74UakJZ43I4FDLBF7ci0g==",
- "license": "MIT"
- },
"node_modules/punycode": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
@@ -37149,48 +34978,6 @@
],
"license": "MIT"
},
- "node_modules/pvtsutils": {
- "version": "1.3.6",
- "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.6.tgz",
- "integrity": "sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==",
- "license": "MIT",
- "dependencies": {
- "tslib": "^2.8.1"
- }
- },
- "node_modules/pvutils": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.5.tgz",
- "integrity": "sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA==",
- "license": "MIT",
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/qs": {
- "version": "6.15.3",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.3.tgz",
- "integrity": "sha512-O9gl3zCl5h5blw1KGUzQKhA5oUXSl8rwUIM5o0S3nCXMliSvy5Dzx7/DJcI+SwgICv+IneSZwhBh1oSyEHA71A==",
- "license": "BSD-3-Clause",
- "dependencies": {
- "es-define-property": "^1.0.1",
- "side-channel": "^1.1.1"
- },
- "engines": {
- "node": ">=0.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/querystring-es3": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
- "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==",
- "engines": {
- "node": ">=0.4.x"
- }
- },
"node_modules/querystringify": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
@@ -37223,61 +35010,6 @@
"integrity": "sha512-twwRO/ilhlG/FIgYeKGFqyHhoEhqgnKVkcmqMKi2r524gz3ZbDTcyFt38E9xjJI2vT+KbRNHVbnJ/e0I25Azwg==",
"license": "MIT"
},
- "node_modules/randombytes": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
- "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
- "license": "MIT",
- "dependencies": {
- "safe-buffer": "^5.1.0"
- }
- },
- "node_modules/randomfill": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz",
- "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==",
- "license": "MIT",
- "dependencies": {
- "randombytes": "^2.0.5",
- "safe-buffer": "^5.1.0"
- }
- },
- "node_modules/range-parser": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
- "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/raw-body": {
- "version": "2.5.3",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz",
- "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==",
- "license": "MIT",
- "dependencies": {
- "bytes": "~3.1.2",
- "http-errors": "~2.0.1",
- "iconv-lite": "~0.4.24",
- "unpipe": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/raw-body/node_modules/iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "license": "MIT",
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/react": {
"version": "19.2.7",
"resolved": "https://registry.npmjs.org/react/-/react-19.2.7.tgz",
@@ -37618,22 +35350,6 @@
"url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/readable-stream": {
- "version": "4.7.0",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz",
- "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==",
- "license": "MIT",
- "dependencies": {
- "abort-controller": "^3.0.0",
- "buffer": "^6.0.3",
- "events": "^3.3.0",
- "process": "^0.11.10",
- "string_decoder": "^1.3.0"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- }
- },
"node_modules/readdir-scoped-modules": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz",
@@ -37696,12 +35412,6 @@
"node": ">=8"
}
},
- "node_modules/reflect-metadata": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz",
- "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==",
- "license": "Apache-2.0"
- },
"node_modules/reflect.getprototypeof": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz",
@@ -37799,40 +35509,6 @@
"regjsparser": "bin/parser"
}
},
- "node_modules/relateurl": {
- "version": "0.2.7",
- "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz",
- "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/renderkid": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz",
- "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==",
- "license": "MIT",
- "dependencies": {
- "css-select": "^4.1.3",
- "dom-converter": "^0.2.0",
- "htmlparser2": "^6.1.0",
- "lodash": "^4.17.21",
- "strip-ansi": "^6.0.1"
- }
- },
- "node_modules/renderkid/node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/require-directory": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
@@ -37847,6 +35523,7 @@
"resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
"integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
"license": "MIT",
+ "peer": true,
"engines": {
"node": ">=0.10.0"
}
@@ -37908,15 +35585,6 @@
"node": ">=8"
}
},
- "node_modules/retry": {
- "version": "0.13.1",
- "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz",
- "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==",
- "license": "MIT",
- "engines": {
- "node": ">= 4"
- }
- },
"node_modules/reusify": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
@@ -37927,88 +35595,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/ripemd160": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.3.tgz",
- "integrity": "sha512-5Di9UC0+8h1L6ZD2d7awM7E/T4uA1fJRlx6zk/NvdCCVEoAnFqvHmCuNeIKoCeIixBX/q8uM+6ycDvF8woqosA==",
- "license": "MIT",
- "dependencies": {
- "hash-base": "^3.1.2",
- "inherits": "^2.0.4"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/ripemd160/node_modules/hash-base": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.2.tgz",
- "integrity": "sha512-Bb33KbowVTIj5s7Ked1OsqHUeCpz//tPwR+E2zJgJKo9Z5XolZ9b6bdUgjmYlwnWhoOQKoTd1TYToZGn5mAYOg==",
- "license": "MIT",
- "dependencies": {
- "inherits": "^2.0.4",
- "readable-stream": "^2.3.8",
- "safe-buffer": "^5.2.1",
- "to-buffer": "^1.2.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/ripemd160/node_modules/isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
- "license": "MIT"
- },
- "node_modules/ripemd160/node_modules/readable-stream": {
- "version": "2.3.8",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
- "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
- "license": "MIT",
- "dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
- }
- },
- "node_modules/ripemd160/node_modules/readable-stream/node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "license": "MIT"
- },
- "node_modules/ripemd160/node_modules/string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "license": "MIT",
- "dependencies": {
- "safe-buffer": "~5.1.0"
- }
- },
- "node_modules/ripemd160/node_modules/string_decoder/node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "license": "MIT"
- },
- "node_modules/run-applescript": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz",
- "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==",
- "license": "MIT",
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/run-parallel": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
@@ -38052,26 +35638,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT"
- },
"node_modules/safe-push-apply": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz",
@@ -38093,6 +35659,7 @@
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz",
"integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==",
+ "dev": true,
"license": "MIT",
"dependencies": {
"call-bound": "^1.0.2",
@@ -38118,44 +35685,52 @@
"integrity": "sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA==",
"license": "CC0-1.0"
},
- "node_modules/sass-loader": {
- "version": "16.0.8",
- "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.8.tgz",
- "integrity": "sha512-hcov4ZwZJIGbEuyNr9EmiTmZueyrxSToE6GOzoZnq5JM7ecRO7ttyvilPn+VmRsqiP16+VYZzVnGZj/hzZgKBA==",
+ "node_modules/sass": {
+ "version": "1.101.0",
+ "resolved": "https://registry.npmjs.org/sass/-/sass-1.101.0.tgz",
+ "integrity": "sha512-OL3GoQyoUdDt843DpVmDO6y2k1sc5IhUDSpu8XucEI+35neq5QivZ1iuegnpraEVTJXlQGK1gl27zKcTLEPbQw==",
"license": "MIT",
"dependencies": {
- "neo-async": "^2.6.2"
+ "chokidar": "^5.0.0",
+ "immutable": "^5.1.5",
+ "source-map-js": ">=0.6.2 <2.0.0"
+ },
+ "bin": {
+ "sass": "sass.js"
},
"engines": {
- "node": ">= 18.12.0"
+ "node": ">=20.19.0"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
+ "optionalDependencies": {
+ "@parcel/watcher": "^2.4.1"
+ }
+ },
+ "node_modules/sass/node_modules/chokidar": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz",
+ "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==",
+ "license": "MIT",
+ "dependencies": {
+ "readdirp": "^5.0.0"
},
- "peerDependencies": {
- "@rspack/core": "0.x || ^1.0.0 || ^2.0.0-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"
+ "engines": {
+ "node": ">= 20.19.0"
},
- "peerDependenciesMeta": {
- "@rspack/core": {
- "optional": true
- },
- "node-sass": {
- "optional": true
- },
- "sass": {
- "optional": true
- },
- "sass-embedded": {
- "optional": true
- },
- "webpack": {
- "optional": true
- }
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/sass/node_modules/readdirp": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz",
+ "integrity": "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 20.19.0"
+ },
+ "funding": {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
}
},
"node_modules/sax": {
@@ -38163,6 +35738,7 @@
"resolved": "https://registry.npmjs.org/sax/-/sax-1.6.0.tgz",
"integrity": "sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==",
"license": "BlueOak-1.0.0",
+ "optional": true,
"engines": {
"node": ">=11.0.0"
}
@@ -38190,6 +35766,7 @@
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz",
"integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@types/json-schema": "^7.0.9",
"ajv": "^8.9.0",
@@ -38209,6 +35786,7 @@
"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz",
"integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"fast-deep-equal": "^3.1.3",
"fast-uri": "^3.0.1",
@@ -38225,6 +35803,7 @@
"resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
"integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"fast-deep-equal": "^3.1.3"
},
@@ -38236,26 +35815,8 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
- "license": "MIT"
- },
- "node_modules/select-hose": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
- "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==",
- "license": "MIT"
- },
- "node_modules/selfsigned": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-5.5.0.tgz",
- "integrity": "sha512-ftnu3TW4+3eBfLRFnDEkzGxSF/10BJBkaLJuBHZX0kiPS7bRdlpZGu6YGt4KngMkdTwJE6MbjavFpqHvqVt+Ew==",
"license": "MIT",
- "dependencies": {
- "@peculiar/x509": "^1.14.2",
- "pkijs": "^3.3.3"
- },
- "engines": {
- "node": ">=18"
- }
+ "peer": true
},
"node_modules/semver": {
"version": "7.8.5",
@@ -38269,140 +35830,6 @@
"node": ">=10"
}
},
- "node_modules/send": {
- "version": "0.19.2",
- "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz",
- "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==",
- "license": "MIT",
- "dependencies": {
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "encodeurl": "~2.0.0",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "fresh": "~0.5.2",
- "http-errors": "~2.0.1",
- "mime": "1.6.0",
- "ms": "2.1.3",
- "on-finished": "~2.4.1",
- "range-parser": "~1.2.1",
- "statuses": "~2.0.2"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/send/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "license": "MIT",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/send/node_modules/debug/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "license": "MIT"
- },
- "node_modules/serialize-javascript": {
- "version": "7.0.7",
- "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-7.0.7.tgz",
- "integrity": "sha512-YAy8Od6KV+uuwUuU50np8fGB/Aues6Y0nAhA9y/hId74PlKUcme4pXcBD46NWKr1Q4osN/iseZ17YqO1XfmI8g==",
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=20.0.0"
- }
- },
- "node_modules/serve-index": {
- "version": "1.9.2",
- "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.2.tgz",
- "integrity": "sha512-KDj11HScOaLmrPxl70KYNW1PksP4Nb/CLL2yvC+Qd2kHMPEEpfc4Re2e4FOay+bC/+XQl/7zAcWON3JVo5v3KQ==",
- "license": "MIT",
- "dependencies": {
- "accepts": "~1.3.8",
- "batch": "0.6.1",
- "debug": "2.6.9",
- "escape-html": "~1.0.3",
- "http-errors": "~1.8.0",
- "mime-types": "~2.1.35",
- "parseurl": "~1.3.3"
- },
- "engines": {
- "node": ">= 0.8.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/express"
- }
- },
- "node_modules/serve-index/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "license": "MIT",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/serve-index/node_modules/depd": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
- "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/serve-index/node_modules/http-errors": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz",
- "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==",
- "license": "MIT",
- "dependencies": {
- "depd": "~1.1.2",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": ">= 1.5.0 < 2",
- "toidentifier": "1.0.1"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/serve-index/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "license": "MIT"
- },
- "node_modules/serve-index/node_modules/statuses": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
- "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/serve-static": {
- "version": "1.16.3",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz",
- "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==",
- "license": "MIT",
- "dependencies": {
- "encodeurl": "~2.0.0",
- "escape-html": "~1.0.3",
- "parseurl": "~1.3.3",
- "send": "~0.19.1"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
"node_modules/set-function-length": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
@@ -38451,38 +35878,6 @@
"node": ">= 0.4"
}
},
- "node_modules/setimmediate": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
- "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==",
- "license": "MIT"
- },
- "node_modules/setprototypeof": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
- "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
- "license": "ISC"
- },
- "node_modules/sha.js": {
- "version": "2.4.12",
- "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.12.tgz",
- "integrity": "sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w==",
- "license": "(MIT AND BSD-3-Clause)",
- "dependencies": {
- "inherits": "^2.0.4",
- "safe-buffer": "^5.2.1",
- "to-buffer": "^1.2.0"
- },
- "bin": {
- "sha.js": "bin.js"
- },
- "engines": {
- "node": ">= 0.10"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/shebang-command": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
@@ -38520,6 +35915,7 @@
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.1.tgz",
"integrity": "sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==",
+ "dev": true,
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
@@ -38539,6 +35935,7 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz",
"integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==",
+ "dev": true,
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
@@ -38555,6 +35952,7 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
"integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
+ "dev": true,
"license": "MIT",
"dependencies": {
"call-bound": "^1.0.2",
@@ -38573,6 +35971,7 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
"integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
+ "dev": true,
"license": "MIT",
"dependencies": {
"call-bound": "^1.0.2",
@@ -38618,26 +36017,6 @@
"node": "*"
}
},
- "node_modules/sockjs": {
- "version": "0.3.24",
- "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz",
- "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==",
- "license": "MIT",
- "dependencies": {
- "faye-websocket": "^0.11.3",
- "uuid": "^8.3.2",
- "websocket-driver": "^0.7.4"
- }
- },
- "node_modules/source-map": {
- "version": "0.7.6",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz",
- "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==",
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">= 12"
- }
- },
"node_modules/source-map-js": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
@@ -38647,26 +36026,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/source-map-loader": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-5.0.0.tgz",
- "integrity": "sha512-k2Dur7CbSLcAH73sBcIkV5xjPV4SzqO1NJ7+XaQl8if3VODDUj3FNchNGpqgJSKbvUfJuhVdv8K2Eu8/TNl2eA==",
- "license": "MIT",
- "dependencies": {
- "iconv-lite": "^0.6.3",
- "source-map-js": "^1.0.2"
- },
- "engines": {
- "node": ">= 18.12.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "webpack": "^5.72.1"
- }
- },
"node_modules/source-map-support": {
"version": "0.5.13",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz",
@@ -38746,50 +36105,6 @@
"spdx-ranges": "^2.0.0"
}
},
- "node_modules/spdy": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz",
- "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==",
- "license": "MIT",
- "dependencies": {
- "debug": "^4.1.0",
- "handle-thing": "^2.0.0",
- "http-deceiver": "^1.2.7",
- "select-hose": "^2.0.0",
- "spdy-transport": "^3.0.0"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/spdy-transport": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz",
- "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==",
- "license": "MIT",
- "dependencies": {
- "debug": "^4.1.0",
- "detect-node": "^2.0.4",
- "hpack.js": "^2.1.6",
- "obuf": "^1.1.2",
- "readable-stream": "^3.0.6",
- "wbuf": "^1.7.3"
- }
- },
- "node_modules/spdy-transport/node_modules/readable-stream": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
- "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
- "license": "MIT",
- "dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
"node_modules/sprintf-js": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
@@ -38817,21 +36132,6 @@
"node": ">=8"
}
},
- "node_modules/stackframe": {
- "version": "1.3.4",
- "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz",
- "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==",
- "license": "MIT"
- },
- "node_modules/statuses": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz",
- "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/stop-iteration-iterator": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz",
@@ -38846,64 +36146,11 @@
"node": ">= 0.4"
}
},
- "node_modules/stream-browserify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz",
- "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==",
- "license": "MIT",
- "dependencies": {
- "inherits": "~2.0.4",
- "readable-stream": "^3.5.0"
- }
- },
- "node_modules/stream-browserify/node_modules/readable-stream": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
- "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
- "license": "MIT",
- "dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/stream-http": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz",
- "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==",
- "license": "MIT",
- "dependencies": {
- "builtin-status-codes": "^3.0.0",
- "inherits": "^2.0.4",
- "readable-stream": "^3.6.0",
- "xtend": "^4.0.2"
- }
- },
- "node_modules/stream-http/node_modules/readable-stream": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
- "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
- "license": "MIT",
- "dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/string_decoder": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
- "license": "MIT",
- "dependencies": {
- "safe-buffer": "~5.2.0"
- }
+ "node_modules/string-hash": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz",
+ "integrity": "sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==",
+ "license": "CC0-1.0"
},
"node_modules/string-length": {
"version": "4.0.2",
@@ -39125,38 +36372,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/style-loader": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-4.0.0.tgz",
- "integrity": "sha512-1V4WqhhZZgjVAVJyt7TdDPZoPBPNHbekX4fWnCJL1yQukhCeZhJySUL+gL9y6sNdN95uEOS83Y55SqHcP7MzLA==",
- "license": "MIT",
- "engines": {
- "node": ">= 18.12.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "webpack": "^5.27.0"
- }
- },
- "node_modules/stylehacks": {
- "version": "7.0.11",
- "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-7.0.11.tgz",
- "integrity": "sha512-iODNfhXVLqc5LADs+Y6Oh5wJuK5ZcHbVng8aiK3y9pjMQdc5hLrBW0eFU6FtnpNrE6PoEg/MmFTU4waotj5WNg==",
- "license": "MIT",
- "dependencies": {
- "browserslist": "^4.28.2",
- "postcss-selector-parser": "^7.1.1"
- },
- "engines": {
- "node": "^18.12.0 || ^20.9.0 || >=22.0"
- },
- "peerDependencies": {
- "postcss": "^8.5.13"
- }
- },
"node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -39181,111 +36396,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/svgo": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/svgo/-/svgo-4.0.1.tgz",
- "integrity": "sha512-XDpWUOPC6FEibaLzjfe0ucaV0YrOjYotGJO1WpF0Zd+n6ZGEQUsSugaoLq9QkEZtAfQIxT42UChcssDVPP3+/w==",
- "license": "MIT",
- "dependencies": {
- "commander": "^11.1.0",
- "css-select": "^5.1.0",
- "css-tree": "^3.0.1",
- "css-what": "^6.1.0",
- "csso": "^5.0.5",
- "picocolors": "^1.1.1",
- "sax": "^1.5.0"
- },
- "bin": {
- "svgo": "bin/svgo.js"
- },
- "engines": {
- "node": ">=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/svgo"
- }
- },
- "node_modules/svgo/node_modules/commander": {
- "version": "11.1.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz",
- "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==",
- "license": "MIT",
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/svgo/node_modules/css-select": {
- "version": "5.2.2",
- "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz",
- "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==",
- "license": "BSD-2-Clause",
- "dependencies": {
- "boolbase": "^1.0.0",
- "css-what": "^6.1.0",
- "domhandler": "^5.0.2",
- "domutils": "^3.0.1",
- "nth-check": "^2.0.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/fb55"
- }
- },
- "node_modules/svgo/node_modules/dom-serializer": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
- "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
- "license": "MIT",
- "dependencies": {
- "domelementtype": "^2.3.0",
- "domhandler": "^5.0.2",
- "entities": "^4.2.0"
- },
- "funding": {
- "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
- }
- },
- "node_modules/svgo/node_modules/domhandler": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
- "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
- "license": "BSD-2-Clause",
- "dependencies": {
- "domelementtype": "^2.3.0"
- },
- "engines": {
- "node": ">= 4"
- },
- "funding": {
- "url": "https://github.com/fb55/domhandler?sponsor=1"
- }
- },
- "node_modules/svgo/node_modules/domutils": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz",
- "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==",
- "license": "BSD-2-Clause",
- "dependencies": {
- "dom-serializer": "^2.0.0",
- "domelementtype": "^2.3.0",
- "domhandler": "^5.0.3"
- },
- "funding": {
- "url": "https://github.com/fb55/domutils?sponsor=1"
- }
- },
- "node_modules/svgo/node_modules/entities": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
- "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=0.12"
- },
- "funding": {
- "url": "https://github.com/fb55/entities?sponsor=1"
- }
- },
"node_modules/symbol-tree": {
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
@@ -39312,6 +36422,7 @@
"resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz",
"integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==",
"license": "MIT",
+ "peer": true,
"engines": {
"node": ">=6"
},
@@ -39350,6 +36461,7 @@
"resolved": "https://registry.npmjs.org/terser/-/terser-5.48.0.tgz",
"integrity": "sha512-J/9An6vs9Us6wKRriSFXBWdRZapREHqFzdNUKk0pmu804EMR6dr6winwo7e5JDxN4xahxQsuysyYFwlwj4XN/Q==",
"license": "BSD-2-Clause",
+ "peer": true,
"dependencies": {
"@jridgewell/source-map": "^0.3.3",
"acorn": "^8.15.0",
@@ -39363,106 +36475,19 @@
"node": ">=10"
}
},
- "node_modules/terser-webpack-plugin": {
- "version": "5.6.1",
- "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.6.1.tgz",
- "integrity": "sha512-201R5j+sJpK8nFWwKVyNfZot8FaJbLZDq5evriVzbV1wDtSXDjRUDRfJzHpAaxFDMEhsZL1QkeqM61wgsS3KaQ==",
- "license": "MIT",
- "dependencies": {
- "@jridgewell/trace-mapping": "^0.3.25",
- "jest-worker": "^27.4.5",
- "schema-utils": "^4.3.0",
- "terser": "^5.31.1"
- },
- "engines": {
- "node": ">= 10.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "webpack": "^5.1.0"
- },
- "peerDependenciesMeta": {
- "@minify-html/node": {
- "optional": true
- },
- "@swc/core": {
- "optional": true
- },
- "@swc/css": {
- "optional": true
- },
- "@swc/html": {
- "optional": true
- },
- "clean-css": {
- "optional": true
- },
- "cssnano": {
- "optional": true
- },
- "csso": {
- "optional": true
- },
- "esbuild": {
- "optional": true
- },
- "html-minifier-terser": {
- "optional": true
- },
- "lightningcss": {
- "optional": true
- },
- "postcss": {
- "optional": true
- },
- "uglify-js": {
- "optional": true
- }
- }
- },
- "node_modules/terser-webpack-plugin/node_modules/jest-worker": {
- "version": "27.5.1",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
- "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
- "license": "MIT",
- "dependencies": {
- "@types/node": "*",
- "merge-stream": "^2.0.0",
- "supports-color": "^8.0.0"
- },
- "engines": {
- "node": ">= 10.13.0"
- }
- },
- "node_modules/terser-webpack-plugin/node_modules/supports-color": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
- "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/supports-color?sponsor=1"
- }
- },
"node_modules/terser/node_modules/commander": {
"version": "2.20.3",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
- "license": "MIT"
+ "license": "MIT",
+ "peer": true
},
"node_modules/terser/node_modules/source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"license": "BSD-3-Clause",
+ "peer": true,
"engines": {
"node": ">=0.10.0"
}
@@ -39472,6 +36497,7 @@
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
"integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"buffer-from": "^1.0.0",
"source-map": "^0.6.0"
@@ -39518,60 +36544,12 @@
"integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
"license": "MIT"
},
- "node_modules/thingies": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/thingies/-/thingies-2.6.0.tgz",
- "integrity": "sha512-rMHRjmlFLM1R96UYPvpmnc3LYtdFrT33JIB7L9hetGue1qAPfn1N2LJeEjxUSidu1Iku+haLZXDuEXUHNGO/lg==",
- "license": "MIT",
- "engines": {
- "node": ">=10.18"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/streamich"
- },
- "peerDependencies": {
- "tslib": "^2"
- }
- },
- "node_modules/thunky": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz",
- "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==",
- "license": "MIT"
- },
- "node_modules/timers-browserify": {
- "version": "2.0.12",
- "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz",
- "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==",
- "license": "MIT",
- "dependencies": {
- "setimmediate": "^1.0.4"
- },
- "engines": {
- "node": ">=0.6.0"
- }
- },
"node_modules/tmpl": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
"integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==",
"license": "BSD-3-Clause"
},
- "node_modules/to-buffer": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.2.2.tgz",
- "integrity": "sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==",
- "license": "MIT",
- "dependencies": {
- "isarray": "^2.0.5",
- "safe-buffer": "^5.2.1",
- "typed-array-buffer": "^1.0.3"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
"node_modules/to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -39584,15 +36562,6 @@
"node": ">=8.0"
}
},
- "node_modules/toidentifier": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
- "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
- "license": "MIT",
- "engines": {
- "node": ">=0.6"
- }
- },
"node_modules/tough-cookie": {
"version": "4.1.4",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz",
@@ -39629,22 +36598,6 @@
"node": ">=12"
}
},
- "node_modules/tree-dump": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.1.0.tgz",
- "integrity": "sha512-rMuvhU4MCDbcbnleZTFezWsaZXRFemSqAM+7jPnzUl1fo9w3YEKOxAeui0fz3OI4EU4hf23iyA7uQRVko+UaBA==",
- "license": "Apache-2.0",
- "engines": {
- "node": ">=10.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/streamich"
- },
- "peerDependencies": {
- "tslib": "2"
- }
- },
"node_modules/treeify": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/treeify/-/treeify-1.1.0.tgz",
@@ -39694,31 +36647,8 @@
"version": "2.8.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
- "license": "0BSD"
- },
- "node_modules/tsyringe": {
- "version": "4.10.0",
- "resolved": "https://registry.npmjs.org/tsyringe/-/tsyringe-4.10.0.tgz",
- "integrity": "sha512-axr3IdNuVIxnaK5XGEUFTu3YmAQ6lllgrvqfEoR16g/HGnYY/6We4oWENtAnzK6/LpJ2ur9PAb80RBt7/U4ugw==",
- "license": "MIT",
- "dependencies": {
- "tslib": "^1.9.3"
- },
- "engines": {
- "node": ">= 6.0.0"
- }
- },
- "node_modules/tsyringe/node_modules/tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "license": "0BSD"
- },
- "node_modules/tty-browserify": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz",
- "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==",
- "license": "MIT"
+ "license": "0BSD",
+ "optional": true
},
"node_modules/type-check": {
"version": "0.4.0",
@@ -39753,23 +36683,11 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/type-is": {
- "version": "1.6.18",
- "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
- "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
- "license": "MIT",
- "dependencies": {
- "media-typer": "0.3.0",
- "mime-types": "~2.1.24"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
"node_modules/typed-array-buffer": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz",
"integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==",
+ "dev": true,
"license": "MIT",
"dependencies": {
"call-bound": "^1.0.3",
@@ -39917,15 +36835,6 @@
"node": ">= 10.0.0"
}
},
- "node_modules/unpipe": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
- "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/unrs-resolver": {
"version": "1.12.2",
"resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.12.2.tgz",
@@ -40002,19 +36911,6 @@
"punycode": "^2.1.0"
}
},
- "node_modules/url": {
- "version": "0.11.4",
- "resolved": "https://registry.npmjs.org/url/-/url-0.11.4.tgz",
- "integrity": "sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==",
- "license": "MIT",
- "dependencies": {
- "punycode": "^1.4.1",
- "qs": "^6.12.3"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
"node_modules/url-parse": {
"version": "1.5.10",
"resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz",
@@ -40025,25 +36921,6 @@
"requires-port": "^1.0.0"
}
},
- "node_modules/url/node_modules/punycode": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
- "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==",
- "license": "MIT"
- },
- "node_modules/util": {
- "version": "0.12.5",
- "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz",
- "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==",
- "license": "MIT",
- "dependencies": {
- "inherits": "^2.0.3",
- "is-arguments": "^1.0.4",
- "is-generator-function": "^1.0.7",
- "is-typed-array": "^1.1.3",
- "which-typed-array": "^1.1.2"
- }
- },
"node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
@@ -40056,31 +36933,6 @@
"integrity": "sha512-mLs5zAK+ctllYBj+iAQvlDCwoxU/WDOUaJkcFudeiAX6OajC6BKXJUa9a+tbtkC11dz2Ufb7h0lyvIOVn4LADA==",
"license": "MIT"
},
- "node_modules/utila": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz",
- "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==",
- "license": "MIT"
- },
- "node_modules/utils-merge": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
- "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.4.0"
- }
- },
- "node_modules/uuid": {
- "version": "8.3.2",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
- "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
- "deprecated": "uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).",
- "license": "MIT",
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
"node_modules/v8-to-istanbul": {
"version": "9.3.0",
"resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz",
@@ -40114,21 +36966,6 @@
"node": "^20.17.0 || >=22.9.0"
}
},
- "node_modules/vary": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
- "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/vm-browserify": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz",
- "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==",
- "license": "MIT"
- },
"node_modules/w3c-xmlserializer": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz",
@@ -40155,6 +36992,7 @@
"resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.2.tgz",
"integrity": "sha512-6i/00NBjP4yGPs+caKSyRfpTF/8Torsu0MOW3mMzIbhgISFder8i7xbqgHlLMwJrdiN8ndBV3UA1/AfzPSr+jg==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"graceful-fs": "^4.1.2"
},
@@ -40162,15 +37000,6 @@
"node": ">=10.13.0"
}
},
- "node_modules/wbuf": {
- "version": "1.7.3",
- "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz",
- "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==",
- "license": "MIT",
- "dependencies": {
- "minimalistic-assert": "^1.0.0"
- }
- },
"node_modules/webidl-conversions": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
@@ -40185,6 +37014,7 @@
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.108.4.tgz",
"integrity": "sha512-yur8LyJoeiWh47dErD+Ok7vlbmDsJ3UbbRPAoxbGJ54WpE2y5yVo5G/inUzujnYgw3tPmBRdn+G7PoxXaYC33w==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@types/estree": "^1.0.8",
"@types/json-schema": "^7.0.15",
@@ -40225,152 +37055,12 @@
}
}
},
- "node_modules/webpack-dev-middleware": {
- "version": "7.4.5",
- "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-7.4.5.tgz",
- "integrity": "sha512-uxQ6YqGdE4hgDKNf7hUiPXOdtkXvBJXrfEGYSx7P7LC8hnUYGK70X6xQXUvXeNyBDDcsiQXpG2m3G9vxowaEuA==",
- "license": "MIT",
- "dependencies": {
- "colorette": "^2.0.10",
- "memfs": "^4.43.1",
- "mime-types": "^3.0.1",
- "on-finished": "^2.4.1",
- "range-parser": "^1.2.1",
- "schema-utils": "^4.0.0"
- },
- "engines": {
- "node": ">= 18.12.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "webpack": "^5.0.0"
- },
- "peerDependenciesMeta": {
- "webpack": {
- "optional": true
- }
- }
- },
- "node_modules/webpack-dev-middleware/node_modules/mime-db": {
- "version": "1.54.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz",
- "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/webpack-dev-middleware/node_modules/mime-types": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz",
- "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==",
- "license": "MIT",
- "dependencies": {
- "mime-db": "^1.54.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/express"
- }
- },
- "node_modules/webpack-dev-server": {
- "version": "5.2.6",
- "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.2.6.tgz",
- "integrity": "sha512-HNLRmamRvVavZQ+avceZifmv8hmdUjg43t6MI4SqJDwFdW7RPQwH5vzGhDRZSX59SgfbeHhLnq3g+uooWo7pVw==",
- "license": "MIT",
- "dependencies": {
- "@types/bonjour": "^3.5.13",
- "@types/connect-history-api-fallback": "^1.5.4",
- "@types/express": "^4.17.25",
- "@types/express-serve-static-core": "^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.10",
- "compression": "^1.8.1",
- "connect-history-api-fallback": "^2.0.0",
- "express": "^4.22.1",
- "graceful-fs": "^4.2.6",
- "http-proxy-middleware": "^2.0.9",
- "ipaddr.js": "^2.1.0",
- "launch-editor": "^2.14.1",
- "open": "^10.0.3",
- "p-retry": "^6.2.0",
- "schema-utils": "^4.2.0",
- "selfsigned": "^5.5.0",
- "serve-index": "^1.9.1",
- "sockjs": "^0.3.24",
- "spdy": "^4.0.2",
- "webpack-dev-middleware": "^7.4.2",
- "ws": "^8.18.0"
- },
- "bin": {
- "webpack-dev-server": "bin/webpack-dev-server.js"
- },
- "engines": {
- "node": ">= 18.12.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "webpack": "^5.0.0"
- },
- "peerDependenciesMeta": {
- "webpack": {
- "optional": true
- },
- "webpack-cli": {
- "optional": true
- }
- }
- },
- "node_modules/webpack-dev-server/node_modules/define-lazy-prop": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz",
- "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==",
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/webpack-dev-server/node_modules/open": {
- "version": "10.2.0",
- "resolved": "https://registry.npmjs.org/open/-/open-10.2.0.tgz",
- "integrity": "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==",
- "license": "MIT",
- "dependencies": {
- "default-browser": "^5.2.1",
- "define-lazy-prop": "^3.0.0",
- "is-inside-container": "^1.0.0",
- "wsl-utils": "^0.1.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/webpack-sources": {
"version": "3.5.1",
"resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.5.1.tgz",
"integrity": "sha512-jyuiGJdtvY434z5bUZrjz67v76/ePNvFZTp9Mdz29IlH4+GPsgyGjiv0fKI+M7BdkU6ADjulUcKAd3tUK3WlEw==",
"license": "MIT",
+ "peer": true,
"engines": {
"node": ">=10.13.0"
}
@@ -40380,6 +37070,7 @@
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
"integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
"license": "BSD-2-Clause",
+ "peer": true,
"dependencies": {
"esrecurse": "^4.3.0",
"estraverse": "^4.1.1"
@@ -40393,6 +37084,7 @@
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
"integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
"license": "BSD-2-Clause",
+ "peer": true,
"engines": {
"node": ">=4.0"
}
@@ -40402,33 +37094,11 @@
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz",
"integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==",
"license": "MIT",
+ "peer": true,
"engines": {
"node": ">= 0.6"
}
},
- "node_modules/websocket-driver": {
- "version": "0.7.5",
- "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.5.tgz",
- "integrity": "sha512-ZL2+3c7kMBdIRCMz6l8jQMHyGVxj+UL+xVk74Ombiciboca8rHa15L86B19E5oh1pL9Ii/uj54gtsIrZGMo6zA==",
- "license": "Apache-2.0",
- "dependencies": {
- "http-parser-js": ">=0.5.1",
- "safe-buffer": ">=5.1.0",
- "websocket-extensions": ">=0.1.1"
- },
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/websocket-extensions": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz",
- "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==",
- "license": "Apache-2.0",
- "engines": {
- "node": ">=0.8.0"
- }
- },
"node_modules/whatwg-encoding": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz",
@@ -40550,6 +37220,7 @@
"version": "1.1.22",
"resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.22.tgz",
"integrity": "sha512-fvO4ExWMFsqyhG3AiPAObMuY1lxaqgYcxbc49CNdWDDECOJNgQyvsOWVwbZc+qf3rzRtxojBK+CMEv0Ld5CYpw==",
+ "dev": true,
"license": "MIT",
"dependencies": {
"available-typed-arrays": "^1.0.7",
@@ -40717,36 +37388,6 @@
}
}
},
- "node_modules/wsl-utils": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.1.0.tgz",
- "integrity": "sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==",
- "license": "MIT",
- "dependencies": {
- "is-wsl": "^3.1.0"
- },
- "engines": {
- "node": ">=18"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/wsl-utils/node_modules/is-wsl": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.1.tgz",
- "integrity": "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==",
- "license": "MIT",
- "dependencies": {
- "is-inside-container": "^1.0.0"
- },
- "engines": {
- "node": ">=16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/xml-name-validator": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz",
@@ -40762,15 +37403,6 @@
"integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==",
"license": "MIT"
},
- "node_modules/xtend": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
- "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
- "license": "MIT",
- "engines": {
- "node": ">=0.4"
- }
- },
"node_modules/y18n": {
"version": "5.0.8",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
diff --git a/package.json b/package.json
index d492bb41..1c42dea6 100644
--- a/package.json
+++ b/package.json
@@ -14,14 +14,15 @@
"enact": "./bin/enact.js"
},
"engines": {
- "node": "^20.12.0 || ^22.0.0 || >=24.0.0"
+ "node": "^20.12.0 || ^22.0.0 || >=24.0.0",
+ "bun": ">=1.3.0"
},
"publishConfig": {
"access": "public"
},
"scripts": {
- "lint": "enact lint --strict",
- "fix": "enact lint --strict --fix"
+ "lint": "eslint .",
+ "fix": "eslint . --fix"
},
"prettier": {
"printWidth": 120,
@@ -43,51 +44,41 @@
"upupdowndownleftrightleftrightbastart"
],
"dependencies": {
+ "@babel/core": "^7.29.0",
"@babel/plugin-transform-modules-commonjs": "^7.29.7",
"@daltontan/postcss-import-json": "^1.1.1",
"@enact/dev-utils": "^7.0.5",
"@enact/template-limestone": "1.0.0",
- "@pmmmwh/react-refresh-webpack-plugin": "^0.6.2",
"@testing-library/jest-dom": "^6.9.1",
"@testing-library/react": "^16.3.2",
"@testing-library/user-event": "^14.6.1",
"babel-jest": "^30.4.1",
- "babel-loader": "^10.1.1",
"babel-plugin-dynamic-import-node": "^2.3.3",
"babel-plugin-transform-rename-import": "^2.3.0",
"babel-preset-enact": "^0.1.17",
- "case-sensitive-paths-webpack-plugin": "^2.4.0",
+ "bun": "^1.3.14",
"chalk": "^5.6.2",
"core-js": "3.22.8",
"cross-spawn": "^7.0.6",
- "css-loader": "^7.1.4",
- "css-minimizer-webpack-plugin": "^8.0.0",
"dotenv": "^17.4.2",
"dotenv-expand": "^13.0.0",
"eslint": "^9.39.4",
"eslint-config-enact": "^5.1.2",
- "eslint-webpack-plugin": "^6.0.0",
- "expose-loader": "^5.0.1",
- "file-loader": "^6.2.0",
"filesize": "^11.0.19",
"fs-extra": "^11.3.6",
"glob": "^13.0.6",
"global-modules": "^2.0.0",
- "html-webpack-plugin": "^5.6.7",
"identity-obj-proxy": "^3.0.0",
"jest": "~30.3.0",
"jest-environment-jsdom": "29.7.0",
"jest-watch-typeahead": "^3.0.1",
"less": "^4.6.7",
- "less-loader": "^12.3.2",
"less-plugin-npm-import": "^2.1.0",
"license-checker": "^25.0.1",
- "mini-css-extract-plugin": "^2.10.2",
"minimist": "^1.2.8",
- "node-polyfill-webpack-plugin": "4.0.0",
"postcss": "^8.5.16",
"postcss-flexbugs-fixes": "^5.0.2",
- "postcss-loader": "^8.2.1",
+ "postcss-modules": "^6.0.1",
"postcss-normalize": "^13.0.1",
"postcss-preset-env": "^11.3.2",
"postcss-resolution-independence": "^1.1.11",
@@ -100,16 +91,11 @@
"react-test-renderer": "^19.2.7",
"resolution-independence": "^1.0.0",
"resolve": "^1.22.12",
- "sass-loader": "^16.0.7",
+ "sass": "^1.101.0",
"semver": "^7.8.5",
- "source-map-loader": "^5.0.0",
"strip-ansi": "^7.2.0",
- "style-loader": "^4.0.0",
"tar": "^7.5.19",
- "terser-webpack-plugin": "^5.6.1",
- "validate-npm-package-name": "^7.0.2",
- "webpack": "^5.108.4",
- "webpack-dev-server": "^5.2.5"
+ "validate-npm-package-name": "^7.0.2"
},
"optionalDependencies": {
"fsevents": "^2.3.3"
@@ -132,4 +118,4 @@
"globals": "^17.7.0",
"prettier": "^3.9.4"
}
-}
\ No newline at end of file
+}