diff --git a/CORTEXIDE_CODEBASE_GUIDE.md b/CORTEXIDE_CODEBASE_GUIDE.md index b2e9d2110b4..b164ff4fa51 100644 --- a/CORTEXIDE_CODEBASE_GUIDE.md +++ b/CORTEXIDE_CODEBASE_GUIDE.md @@ -7,7 +7,7 @@ This guide orients you to key areas changed or added for CortexIDE. - Linux packaging: `resources/linux/cortex.desktop`, `cortex-url-handler.desktop`, `cortex.appdata.xml` - Provider configs: `resources/provider-config.example.json` - LLM wiring: `src/vs/workbench/contrib/cortexide/*/llm*` (providers, settings, services) -- Settings UI: `src/vs/workbench/contrib/cortexide/browser/voidSettingsPane.ts` +- Settings UI: `src/vs/workbench/contrib/cortexide/browser/cortexideSettingsPane.ts` - Chat and sidebar: `src/vs/workbench/contrib/cortexide/browser/sidebar*` Note: Some internal identifiers may still use the `void` namespace in type names and interfaces for backward compatibility, but the folder structure uses `cortexide`. diff --git a/build/gulpfile.compile.js b/build/gulpfile.compile.js index 0c0a024c8fc..36c167c02e0 100644 --- a/build/gulpfile.compile.js +++ b/build/gulpfile.compile.js @@ -11,6 +11,56 @@ const util = require('./lib/util'); const date = require('./lib/date'); const task = require('./lib/task'); const compilation = require('./lib/compilation'); +const { execSync } = require('child_process'); +const path = require('path'); + +/** + * Task to build React components for production + */ +const buildReactTask = task.define('build-react', () => { + return new Promise((resolve, reject) => { + try { + const reactBuildPath = path.join(__dirname, '../src/vs/workbench/contrib/cortexide/browser/react'); + // allow-any-unicode-next-line + console.log('🔨 Building React components...'); + execSync('node build.js', { + cwd: reactBuildPath, + stdio: 'inherit' + }); + // allow-any-unicode-next-line + console.log('✅ React components built successfully'); + resolve(); + } catch (error) { + // allow-any-unicode-next-line + console.error('❌ Error building React components:', error); + reject(error); + } + }); +}); + +/** + * Task to verify React build files exist after compilation + */ +const verifyReactBuildTask = task.define('verify-react-build', () => { + const fs = require('fs'); + const path = require('path'); + const reactOutPath = path.join(__dirname, '../out-build/vs/workbench/contrib/cortexide/browser/react/out'); + + if (!fs.existsSync(reactOutPath)) { + throw new Error(`React build output directory does not exist: ${reactOutPath}`); + } + + const files = fs.readdirSync(reactOutPath); + const jsFiles = files.filter(f => f.endsWith('.js')); + + if (jsFiles.length === 0) { + throw new Error(`No React build files found in ${reactOutPath}. Expected at least one .js file.`); + } + + // allow-any-unicode-next-line + console.log(`✅ Verified ${jsFiles.length} React build files exist in out-build/`); + return Promise.resolve(); +}); /** * @param {boolean} disableMangle @@ -20,7 +70,9 @@ function makeCompileBuildTask(disableMangle) { util.rimraf('out-build'), date.writeISODate('out-build'), compilation.compileApiProposalNamesTask, - compilation.compileTask('src', 'out-build', true, { disableMangle }) + buildReactTask, // Build React components before compiling + compilation.compileTask('src', 'out-build', true, { disableMangle }), + verifyReactBuildTask // Verify React files are preserved after compilation ); } diff --git a/build/gulpfile.reh.js b/build/gulpfile.reh.js index 10b7b44b5ec..080fa30282a 100644 --- a/build/gulpfile.reh.js +++ b/build/gulpfile.reh.js @@ -156,9 +156,16 @@ function getNodeChecksum(expectedName) { function extractAlpinefromDocker(nodeVersion, platform, arch) { const imageName = arch === 'arm64' ? 'arm64v8/node' : 'node'; - log(`Downloading node.js ${nodeVersion} ${platform} ${arch} from docker image ${imageName}`); - const contents = cp.execSync(`docker run --rm ${imageName}:${nodeVersion}-alpine /bin/sh -c 'cat \`which node\`'`, { maxBuffer: 100 * 1024 * 1024, encoding: 'buffer' }); - return es.readArray([new File({ path: 'node', contents, stat: { mode: parseInt('755', 8) } })]); + const imageTag = `${imageName}:${nodeVersion}-alpine`; + log(`Downloading node.js ${nodeVersion} ${platform} ${arch} from docker image ${imageTag}`); + try { + // Use double quotes for the shell command and properly escape the which command + const contents = cp.execSync(`docker run --rm "${imageTag}" /bin/sh -c "cat \\$(which node)"`, { maxBuffer: 100 * 1024 * 1024, encoding: 'buffer' }); + return es.readArray([new File({ path: 'node', contents, stat: { mode: parseInt('755', 8) } })]); + } catch (error) { + log.error(`Failed to extract Node.js from Docker image ${imageTag}: ${error.message}`); + throw new Error(`Docker command failed: ${error.message}`); + } } const { nodeVersion, internalNodeVersion } = getNodeVersion(); @@ -231,6 +238,19 @@ function nodejs(platform, arch) { .pipe(rename('node.exe')); case 'darwin': case 'linux': + // Handle alternative architectures that may not have official Node.js builds + if (arch === 'riscv64' && product.nodejsRepository === 'https://nodejs.org') { + // Try unofficial builds site for riscv64 + const unofficialUrl = process.env['VSCODE_NODEJS_SITE'] || 'https://unofficial-builds.nodejs.org'; + log(`Attempting to download Node.js from ${unofficialUrl} for ${arch}...`); + return fetchUrls(`/download/release/v${nodeVersion}/node-v${nodeVersion}-linux-${arch}.tar.gz`, { + base: unofficialUrl, + checksumSha256 + }).pipe(flatmap(stream => stream.pipe(gunzip()).pipe(untar()))) + .pipe(filter('**/node')) + .pipe(util.setExecutableBit('**')) + .pipe(rename('node')); + } return (product.nodejsRepository !== 'https://nodejs.org' ? fetchGithub(product.nodejsRepository, { version: `${nodeVersion}-${internalNodeVersion}`, name: expectedName, checksumSha256 }) : fetchUrls(`/dist/v${nodeVersion}/node-v${nodeVersion}-${platform}-${arch}.tar.gz`, { base: 'https://nodejs.org', checksumSha256 }) diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js index 027b2d34487..eb4ae2d250c 100644 --- a/build/gulpfile.vscode.js +++ b/build/gulpfile.vscode.js @@ -100,7 +100,10 @@ const vscodeResourceIncludes = [ 'out-build/vs/editor/common/languages/highlights/*.scm', // Tree Sitter injection queries - 'out-build/vs/editor/common/languages/injections/*.scm' + 'out-build/vs/editor/common/languages/injections/*.scm', + + // React components (Cortexide) + 'out-build/vs/workbench/contrib/cortexide/browser/react/out/**' ]; const vscodeResources = [ @@ -122,6 +125,36 @@ const bootstrapEntryPoints = [ 'out-build/bootstrap-fork.js' ]; +/** + * Task to verify React build files exist after bundling + */ +const verifyReactFilesAfterBundleTask = task.define('verify-react-files-after-bundle', () => { + const fs = require('fs'); + const path = require('path'); + const reactOutPath = path.join(__dirname, '../out-vscode/vs/workbench/contrib/cortexide/browser/react/out'); + + if (!fs.existsSync(reactOutPath)) { + // allow-any-unicode-next-line + console.error(`❌ React build output directory does not exist: ${reactOutPath}`); + console.error('React files were not copied during bundling. This will cause a blank screen!'); + throw new Error(`React build output directory does not exist: ${reactOutPath}`); + } + + const files = fs.readdirSync(reactOutPath); + const jsFiles = files.filter(f => f.endsWith('.js')); + + if (jsFiles.length === 0) { + // allow-any-unicode-next-line + console.error(`❌ No React build files found in ${reactOutPath}`); + console.error('React files were not copied during bundling. This will cause a blank screen!'); + throw new Error(`No React build files found in ${reactOutPath}. Expected at least one .js file.`); + } + + // allow-any-unicode-next-line + console.log(`✅ Verified ${jsFiles.length} React build files exist in out-vscode/ after bundling`); + return Promise.resolve(); +}); + const bundleVSCodeTask = task.define('bundle-vscode', task.series( util.rimraf('out-vscode'), // Optimize: bundles source files automatically based on @@ -141,15 +174,48 @@ const bundleVSCodeTask = task.define('bundle-vscode', task.series( skipTSBoilerplateRemoval: entryPoint => entryPoint === 'vs/code/electron-browser/workbench/workbench' } } - ) + ), + verifyReactFilesAfterBundleTask // Verify React files are present after bundling )); gulp.task(bundleVSCodeTask); const sourceMappingURLBase = `https://main.vscode-cdn.net/sourcemaps/${commit}`; + +/** + * Task to verify React build files exist after minification + */ +const verifyReactFilesAfterMinifyTask = task.define('verify-react-files-after-minify', () => { + const fs = require('fs'); + const path = require('path'); + const reactOutPath = path.join(__dirname, '../out-vscode-min/vs/workbench/contrib/cortexide/browser/react/out'); + + if (!fs.existsSync(reactOutPath)) { + // allow-any-unicode-next-line + console.error(`❌ React build output directory does not exist: ${reactOutPath}`); + console.error('This will cause a blank screen in the packaged app!'); + throw new Error(`React build output directory does not exist: ${reactOutPath}`); + } + + const files = fs.readdirSync(reactOutPath); + const jsFiles = files.filter(f => f.endsWith('.js')); + + if (jsFiles.length === 0) { + // allow-any-unicode-next-line + console.error(`❌ No React build files found in ${reactOutPath}`); + console.error('This will cause a blank screen in the packaged app!'); + throw new Error(`No React build files found in ${reactOutPath}. Expected at least one .js file.`); + } + + // allow-any-unicode-next-line + console.log(`✅ Verified ${jsFiles.length} React build files exist in out-vscode-min/`); + return Promise.resolve(); +}); + const minifyVSCodeTask = task.define('minify-vscode', task.series( bundleVSCodeTask, util.rimraf('out-vscode-min'), - optimize.minifyTask('out-vscode', `${sourceMappingURLBase}/core`) + optimize.minifyTask('out-vscode', `${sourceMappingURLBase}/core`), + verifyReactFilesAfterMinifyTask // Verify React files are present after minification )); gulp.task(minifyVSCodeTask); diff --git a/build/gulpfile.vscode.win32.js b/build/gulpfile.vscode.win32.js index 9207df5a44b..0ff14a1abd3 100644 --- a/build/gulpfile.vscode.win32.js +++ b/build/gulpfile.vscode.win32.js @@ -75,6 +75,33 @@ function buildWin32Setup(arch, target) { const outputPath = setupDir(arch, target); fs.mkdirSync(outputPath, { recursive: true }); + // CRITICAL: Verify executable exists before creating installer. + // Some upstream builds may still emit Code.exe/Void.exe instead of CortexIDE.exe. + // Fall back to whatever executable actually exists so the installer launch step never breaks. + let exeBasename = product.nameShort; + let expectedExePath = path.join(sourcePath, `${exeBasename}.exe`); + if (!fs.existsSync(expectedExePath)) { + const executableCandidates = fs.readdirSync(sourcePath) + .filter(file => file.toLowerCase().endsWith('.exe')) + .filter(file => { + const lower = file.toLowerCase(); + return lower !== 'inno_updater.exe' && !lower.includes('tunnel') && !lower.includes('server'); + }); + + if (executableCandidates.length === 0) { + const errorMsg = `ERROR: Executable not found at expected path: ${expectedExePath}\n` + + `and no other *.exe files were located in ${sourcePath}. ` + + `This will cause "CreateProcess failed; code 2" errors during installation.`; + console.error(errorMsg); + return cb(new Error(errorMsg)); + } + + exeBasename = path.basename(executableCandidates[0], '.exe'); + expectedExePath = path.join(sourcePath, `${exeBasename}.exe`); + console.warn(`⚠️ ${product.nameShort}.exe not found. Using detected executable "${exeBasename}.exe" instead.`); + } + console.log(`✓ Executable verified: ${expectedExePath}`); + const originalProductJsonPath = path.join(sourcePath, 'resources/app/product.json'); const productJsonPath = path.join(outputPath, 'product.json'); const productJson = JSON.parse(fs.readFileSync(originalProductJsonPath, 'utf8')); @@ -82,14 +109,16 @@ function buildWin32Setup(arch, target) { fs.writeFileSync(productJsonPath, JSON.stringify(productJson, undefined, '\t')); const quality = product.quality || 'dev'; + const dirName = product.win32DirName || product.nameShort || exeBasename; + const definitions = { NameLong: product.nameLong, NameShort: product.nameShort, - DirName: product.win32DirName, + DirName: dirName, Version: pkg.version, RawVersion: pkg.version.replace(/-\w+$/, ''), NameVersion: product.win32NameVersion + (target === 'user' ? ' (User)' : ''), - ExeBasename: product.nameShort, + ExeBasename: exeBasename, RegValueName: product.win32RegValueName, ShellNameShort: product.win32ShellNameShort, AppMutex: product.win32MutexName, diff --git a/build/lib/extensions.js.patched b/build/lib/extensions.js.patched new file mode 100644 index 00000000000..b1759f75ad7 --- /dev/null +++ b/build/lib/extensions.js.patched @@ -0,0 +1 @@ +utf8 \ No newline at end of file diff --git a/build/lib/extensions.ts b/build/lib/extensions.ts index 4779ddba03a..57b66f48cec 100644 --- a/build/lib/extensions.ts +++ b/build/lib/extensions.ts @@ -9,6 +9,7 @@ import cp from 'child_process'; import glob from 'glob'; import gulp from 'gulp'; import path from 'path'; +import { pathToFileURL } from 'url'; import crypto from 'crypto'; import { Stream } from 'stream'; import File from 'vinyl'; @@ -93,116 +94,143 @@ function fromLocalWebpack(extensionPath: string, webpackConfigFileName: string, const webpack = require('webpack'); const webpackGulp = require('webpack-stream'); const result = es.through(); - - const packagedDependencies: string[] = []; + let packagedDependencies: string[] = []; const packageJsonConfig = require(path.join(extensionPath, 'package.json')); - if (packageJsonConfig.dependencies) { - const webpackRootConfig = require(path.join(extensionPath, webpackConfigFileName)).default; - for (const key in webpackRootConfig.externals) { - if (key in packageJsonConfig.dependencies) { - packagedDependencies.push(key); + + (async () => { + try { + if (packageJsonConfig.dependencies) { + const webpackRootConfig = await loadWebpackConfigModule(path.join(extensionPath, webpackConfigFileName)); + if (webpackRootConfig && webpackRootConfig.externals) { + for (const key in webpackRootConfig.externals) { + if (key in packageJsonConfig.dependencies) { + packagedDependencies.push(key); + } + } + } } - } - } - // TODO: add prune support based on packagedDependencies to vsce.PackageManager.Npm similar - // to vsce.PackageManager.Yarn. - // A static analysis showed there are no webpack externals that are dependencies of the current - // local extensions so we can use the vsce.PackageManager.None config to ignore dependencies list - // as a temporary workaround. - vsce.listFiles({ cwd: extensionPath, packageManager: vsce.PackageManager.None, packagedDependencies }).then(fileNames => { - const files = fileNames - .map(fileName => path.join(extensionPath, fileName)) - .map(filePath => new File({ - path: filePath, - stat: fs.statSync(filePath), - base: extensionPath, - contents: fs.createReadStream(filePath) - })); + // TODO: add prune support based on packagedDependencies to vsce.PackageManager.Npm similar + // to vsce.PackageManager.Yarn. + // A static analysis showed there are no webpack externals that are dependencies of the current + // local extensions so we can use the vsce.PackageManager.None config to ignore dependencies list + // as a temporary workaround. + const fileNames = await vsce.listFiles({ cwd: extensionPath, packageManager: vsce.PackageManager.None, packagedDependencies }); + const files = fileNames + .map(fileName => path.join(extensionPath, fileName)) + .map(filePath => new File({ + path: filePath, + stat: fs.statSync(filePath), + base: extensionPath, + contents: fs.createReadStream(filePath) + })); - // check for a webpack configuration files, then invoke webpack - // and merge its output with the files stream. - const webpackConfigLocations = (glob.sync( - path.join(extensionPath, '**', webpackConfigFileName), - { ignore: ['**/node_modules'] } - )); + // check for a webpack configuration files, then invoke webpack + // and merge its output with the files stream. + const webpackConfigLocations = (glob.sync( + path.join(extensionPath, '**', webpackConfigFileName), + { ignore: ['**/node_modules'] } + )); - const webpackStreams = webpackConfigLocations.flatMap(webpackConfigPath => { + const webpackStreamGroups = await Promise.all(webpackConfigLocations.map(async webpackConfigPath => { - const webpackDone = (err: any, stats: any) => { - fancyLog(`Bundled extension: ${ansiColors.yellow(path.join(path.basename(extensionPath), path.relative(extensionPath, webpackConfigPath)))}...`); - if (err) { - result.emit('error', err); - } - const { compilation } = stats; - if (compilation.errors.length > 0) { - result.emit('error', compilation.errors.join('\n')); - } - if (compilation.warnings.length > 0) { - result.emit('error', compilation.warnings.join('\n')); - } - }; - - const exportedConfig = require(webpackConfigPath).default; - return (Array.isArray(exportedConfig) ? exportedConfig : [exportedConfig]).map(config => { - const webpackConfig = { - ...config, - ...{ mode: 'production' } + const webpackDone = (err: any, stats: any) => { + fancyLog(`Bundled extension: ${ansiColors.yellow(path.join(path.basename(extensionPath), path.relative(extensionPath, webpackConfigPath)))}...`); + if (err) { + result.emit('error', err); + } + const { compilation } = stats; + if (compilation.errors.length > 0) { + result.emit('error', compilation.errors.join('\n')); + } + if (compilation.warnings.length > 0) { + result.emit('error', compilation.warnings.join('\n')); + } }; - if (disableMangle) { - if (Array.isArray(config.module.rules)) { - for (const rule of config.module.rules) { - if (Array.isArray(rule.use)) { - for (const use of rule.use) { - if (String(use.loader).endsWith('mangle-loader.js')) { - use.options.disabled = true; + + const exportedConfig = await loadWebpackConfigModule(webpackConfigPath); + const configs = Array.isArray(exportedConfig) ? exportedConfig : [exportedConfig]; + return configs.map(config => { + const webpackConfig = { + ...config, + ...{ mode: 'production' } + }; + if (disableMangle) { + if (Array.isArray(config.module.rules)) { + for (const rule of config.module.rules) { + if (Array.isArray(rule.use)) { + for (const use of rule.use) { + if (String(use.loader).endsWith('mangle-loader.js')) { + use.options.disabled = true; + } } } } } } - } - const relativeOutputPath = path.relative(extensionPath, webpackConfig.output.path); - - return webpackGulp(webpackConfig, webpack, webpackDone) - .pipe(es.through(function (data) { - data.stat = data.stat || {}; - data.base = extensionPath; - this.emit('data', data); - })) - .pipe(es.through(function (data: File) { - // source map handling: - // * rewrite sourceMappingURL - // * save to disk so that upload-task picks this up - if (path.extname(data.basename) === '.js') { - const contents = (data.contents).toString('utf8'); - data.contents = Buffer.from(contents.replace(/\n\/\/# sourceMappingURL=(.*)$/gm, function (_m, g1) { - return `\n//# sourceMappingURL=${sourceMappingURLBase}/extensions/${path.basename(extensionPath)}/${relativeOutputPath}/${g1}`; - }), 'utf8'); - } + const relativeOutputPath = path.relative(extensionPath, webpackConfig.output.path); + + return webpackGulp(webpackConfig, webpack, webpackDone) + .pipe(es.through(function (data) { + data.stat = data.stat || {}; + data.base = extensionPath; + this.emit('data', data); + })) + .pipe(es.through(function (data: File) { + // source map handling: + // * rewrite sourceMappingURL + // * save to disk so that upload-task picks this up + if (path.extname(data.basename) === '.js') { + const contents = (data.contents).toString('utf8'); + data.contents = Buffer.from(contents.replace(/\n\/\/# sourceMappingURL=(.*)$/gm, function (_m, g1) { + return `\n//# sourceMappingURL=${sourceMappingURLBase}/extensions/${path.basename(extensionPath)}/${relativeOutputPath}/${g1}`; + }), 'utf8'); + } - this.emit('data', data); - })); - }); - }); + this.emit('data', data); + })); + }); + })); - es.merge(...webpackStreams, es.readArray(files)) - // .pipe(es.through(function (data) { - // // debug - // console.log('out', data.path, data.contents.length); - // this.emit('data', data); - // })) - .pipe(result); - - }).catch(err => { - console.error(extensionPath); - console.error(packagedDependencies); - result.emit('error', err); - }); + const webpackStreams = ([]).concat(...webpackStreamGroups); + + es.merge(...webpackStreams, es.readArray(files)) + // .pipe(es.through(function (data) { + // // debug + // console.log('out', data.path, data.contents.length); + // this.emit('data', data); + // })) + .pipe(result); + } catch (err) { + console.error(extensionPath); + console.error(packagedDependencies); + result.emit('error', err); + } + })(); return result.pipe(createStatsStream(path.basename(extensionPath))); } +async function loadWebpackConfigModule(webpackConfigPath: string): Promise { + let resolvedPath = webpackConfigPath; + if (resolvedPath.endsWith('.js')) { + const mjsPath = resolvedPath.replace(/\.js$/, '.mjs'); + try { + const srcStat = fs.statSync(resolvedPath); + const destStat = fs.existsSync(mjsPath) ? fs.statSync(mjsPath) : undefined; + if (!destStat || srcStat.mtimeMs > destStat.mtimeMs) { + fs.copyFileSync(resolvedPath, mjsPath); + } + } catch (error) { + // ignore copy errors, fallback to original path + } + resolvedPath = mjsPath; + } + + const module = await import(pathToFileURL(path.resolve(resolvedPath)).href); + return (module && Object.prototype.hasOwnProperty.call(module, 'default')) ? module.default : module; +} + function fromLocalNormal(extensionPath: string): Stream { const vsce = require('@vscode/vsce') as typeof import('@vscode/vsce'); const result = es.through(); diff --git a/build/linux/debian/install-sysroot.ts b/build/linux/debian/install-sysroot.ts index 4b7ebd1b846..99817966c27 100644 --- a/build/linux/debian/install-sysroot.ts +++ b/build/linux/debian/install-sysroot.ts @@ -87,8 +87,18 @@ async function fetchUrl(options: IFetchOptions, retries = 10, retryDelay = 1000) if (response.ok && (response.status >= 200 && response.status < 300)) { console.log(`Fetch completed: Status ${response.status}.`); const contents = Buffer.from(await response.arrayBuffer()); - const asset = JSON.parse(contents.toString()).assets.find((a: { name: string }) => a.name === options.assetName); + const assets = JSON.parse(contents.toString()).assets; + const asset = assets.find((a: { name: string }) => a.name === options.assetName); if (!asset) { + // Check if this is a non-critical architecture (ppc64le, riscv64, etc.) + const nonCriticalArchs = ['ppc64le', 'riscv64', 'loong64', 's390x']; + const isNonCritical = nonCriticalArchs.some(arch => options.assetName.includes(arch)); + if (isNonCritical) { + console.warn(`Warning: Asset ${options.assetName} not found in release. This architecture may not be fully supported.`); + console.warn(`Available assets: ${assets.map((a: { name: string }) => a.name).join(', ')}`); + // Return undefined to indicate the asset is missing but not critical + return undefined; + } throw new Error(`Could not find asset in release of Microsoft/vscode-linux-build-agent @ ${version}`); } console.log(`Found asset ${options.assetName} @ ${asset.url}.`); @@ -172,11 +182,19 @@ export async function getVSCodeSysroot(arch: DebianArchString, isMusl: boolean = console.log(`Installing ${arch} root image: ${sysroot}`); fs.rmSync(sysroot, { recursive: true, force: true }); fs.mkdirSync(sysroot, { recursive: true }); - await fetchUrl({ + const fetchResult = await fetchUrl({ checksumSha256, assetName: expectedName, dest: sysroot }); + // If fetchUrl returns undefined, it means the asset is missing (non-critical architecture) + if (fetchResult === undefined) { + console.warn(`Warning: Could not install sysroot for ${arch}. Build may fail or have limited functionality.`); + // Create a minimal directory structure to prevent further errors + fs.mkdirSync(path.join(sysroot, triple, triple, 'sysroot'), { recursive: true }); + fs.writeFileSync(stamp, `${expectedName}.missing`); + return result; + } fs.writeFileSync(stamp, expectedName); return result; } diff --git a/build/win32/code.iss b/build/win32/code.iss index a67faad1726..8c9fe4d4449 100644 --- a/build/win32/code.iss +++ b/build/win32/code.iss @@ -107,8 +107,11 @@ Name: "{autodesktop}\{#NameLong}"; Filename: "{app}\{#ExeBasename}.exe"; Tasks: Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#NameLong}"; Filename: "{app}\{#ExeBasename}.exe"; Tasks: quicklaunchicon; AppUserModelID: "{#AppUserId}" [Run] -Filename: "{app}\{#ExeBasename}.exe"; Description: "{cm:LaunchProgram,{#NameLong}}"; Tasks: runcode; Flags: nowait postinstall; Check: ShouldRunAfterUpdate -Filename: "{app}\{#ExeBasename}.exe"; Description: "{cm:LaunchProgram,{#NameLong}}"; Flags: nowait postinstall; Check: WizardNotSilent +; Automatically install Visual C++ Redistributables if not already installed (silent, no user interaction) +Filename: "powershell.exe"; Parameters: "-NoLogo -NoProfile -NonInteractive -WindowStyle Hidden -ExecutionPolicy Bypass -Command ""$url='https://aka.ms/vs/17/release/vc_redist.x64.exe'; $out='{tmp}\vc_redist.x64.exe'; if (-not (Test-Path $out)) { [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; Invoke-WebRequest -Uri $url -OutFile $out -UseBasicParsing }; Start-Process -FilePath $out -ArgumentList '/install','/quiet','/norestart' -Wait -NoNewWindow"""; StatusMsg: "Installing Visual C++ Redistributables..."; Check: not IsVCRedistInstalled() and IsX64Arch(); Flags: runhidden waituntilterminated +Filename: "powershell.exe"; Parameters: "-NoLogo -NoProfile -NonInteractive -WindowStyle Hidden -ExecutionPolicy Bypass -Command ""$url='https://aka.ms/vs/17/release/vc_redist.arm64.exe'; $out='{tmp}\vc_redist.arm64.exe'; if (-not (Test-Path $out)) { [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; Invoke-WebRequest -Uri $url -OutFile $out -UseBasicParsing }; Start-Process -FilePath $out -ArgumentList '/install','/quiet','/norestart' -Wait -NoNewWindow"""; StatusMsg: "Installing Visual C++ Redistributables..."; Check: not IsVCRedistInstalled() and IsArm64Arch(); Flags: runhidden waituntilterminated +Filename: "{app}\{#ExeBasename}.exe"; Description: "{cm:LaunchProgram,{#NameLong}}"; Tasks: runcode; Flags: nowait postinstall skipifdoesntexist; Check: ShouldRunAfterUpdate() and ExecutableExists() +Filename: "{app}\{#ExeBasename}.exe"; Description: "{cm:LaunchProgram,{#NameLong}}"; Flags: nowait postinstall skipifdoesntexist; Check: (not WizardSilent()) and ExecutableExists() [Registry] #if "user" == InstallTarget @@ -1304,6 +1307,48 @@ begin Result := not IsBackgroundUpdate(); end; +// Helper functions to check architecture at runtime +function IsX64Arch(): Boolean; +begin + #if "x64" == Arch + Result := True; + #else + Result := False; + #endif +end; + +function IsArm64Arch(): Boolean; +begin + #if "arm64" == Arch + Result := True; + #else + Result := False; + #endif +end; + +// Check if Visual C++ Redistributables are installed +function IsVCRedistInstalled(): Boolean; +var + Version: String; +begin + Result := False; + // Check for Visual C++ 2015-2022 Redistributable (x64) + #if "x64" == Arch + if RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\VisualStudio\14.0\VC\Runtimes\x64', 'Version', Version) or + RegQueryStringValue(HKLM, 'SOFTWARE\WOW6432Node\Microsoft\VisualStudio\14.0\VC\Runtimes\x64', 'Version', Version) then begin + Result := True; + end; + #endif + // Check for Visual C++ 2015-2022 Redistributable (ARM64) + #if "arm64" == Arch + if RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\VisualStudio\14.0\VC\Runtimes\ARM64', 'Version', Version) or + RegQueryStringValue(HKLM, 'SOFTWARE\WOW6432Node\Microsoft\VisualStudio\14.0\VC\Runtimes\ARM64', 'Version', Version) then begin + Result := True; + end; + #endif +end; + + // Don't allow installing conflicting architectures function InitializeSetup(): Boolean; var @@ -1432,6 +1477,44 @@ begin Result := True; end; +// Verify that the executable file exists before trying to launch it +// This prevents "CreateProcess failed; code 2" errors +function ExecutableExists(): Boolean; +var + ExePath: String; +begin + ExePath := ExpandConstant('{app}\{#ExeBasename}.exe'); + Log('Checking for executable at: ' + ExePath); + Result := FileExists(ExePath); + if not Result then + begin + Log('Warning: Executable not found at: ' + ExePath); + // Wait a bit for file system to sync after installation + Sleep(500); + Result := FileExists(ExePath); + if Result then + Log('Executable found after retry') + else + begin + Log('Error: Executable still not found after retry at: ' + ExePath); + Log('Install directory contents:'); + // Log directory contents for debugging + if DirExists(ExpandConstant('{app}')) then + Log(' {app} directory exists') + else + Log(' {app} directory does not exist'); + end; + end + else + Log('Executable verified at: ' + ExePath); +end; + +// Combined check for launching executable after installation +function ShouldLaunchAfterInstall(): Boolean; +begin + Result := (not WizardSilent()) and ExecutableExists(); +end; + function IsWindows11OrLater(): Boolean; begin Result := (GetWindowsVersion >= $0A0055F0); @@ -1530,9 +1613,27 @@ procedure CurStepChanged(CurStep: TSetupStep); var UpdateResultCode: Integer; StartServiceResultCode: Integer; + ExePath: String; begin if CurStep = ssPostInstall then begin + // Verify executable exists after installation + ExePath := ExpandConstant('{app}\{#ExeBasename}.exe'); + if not FileExists(ExePath) then + begin + Log('ERROR: Executable not found after installation at: ' + ExePath); + Log('This will cause "CreateProcess failed; code 2" error when trying to launch.'); + // Try to find the actual executable name + // This is a fallback in case the executable has a different name + if FileExists(ExpandConstant('{app}\{#ApplicationName}.exe')) then + Log('Found alternative executable: {#ApplicationName}.exe') + else + Log('No alternative executable found either.'); + end + else + begin + Log('Executable verified at: ' + ExePath); + end; #ifdef AppxPackageName // Remove the old context menu registry keys for insiders if QualityIsInsiders() and WizardIsTaskSelected('addcontextmenufiles') then begin diff --git a/extensions/github/tsconfig.json b/extensions/github/tsconfig.json index 63a4cd931d9..f52e554090c 100644 --- a/extensions/github/tsconfig.json +++ b/extensions/github/tsconfig.json @@ -6,6 +6,7 @@ "outDir": "./out", "skipLibCheck": true, "allowSyntheticDefaultImports": false, + "ignoreDeprecations": "6.0", "typeRoots": [ "./node_modules/@types" ] diff --git a/extensions/open-remote-ssh/package.json b/extensions/open-remote-ssh/package.json index 0c9965fb4ae..fbbd9149f60 100644 --- a/extensions/open-remote-ssh/package.json +++ b/extensions/open-remote-ssh/package.json @@ -72,7 +72,7 @@ "type": "string", "description": "The URL from where the vscode server will be downloaded. You can use the following variables and they will be replaced dynamically:\n- ${quality}: vscode server quality, e.g. stable or insiders\n- ${version}: vscode server version, e.g. 1.69.0\n- ${commit}: vscode server release commit\n- ${arch}: vscode server arch, e.g. x64, armhf, arm64\n- ${release}: release number", "scope": "application", - "default": "https://github.com/cortexide/cortexide/releases/download/${version}/cortexide-reh-${os}-${arch}-${version}.tar.gz" + "default": "https://github.com/opencortexide/cortexide/releases/download/${version}/cortexide-reh-${os}-${arch}-${version}.tar.gz" }, "remote.SSH.remotePlatform": { "type": "object", diff --git a/package-lock.json b/package-lock.json index 1ee004e078b..59b76945b7c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -66,8 +66,8 @@ "openai": "^4.96.0", "pdfjs-dist": "^5.4.394", "posthog-node": "^4.14.0", - "react": "^19.1.0", - "react-dom": "^19.1.0", + "react": "19.2.0", + "react-dom": "19.2.0", "react-tooltip": "^5.28.1", "tas-client-umd": "0.2.0", "undici": "^7.9.0", @@ -238,12 +238,6 @@ "undici-types": "~5.26.4" } }, - "node_modules/@anthropic-ai/sdk/node_modules/form-data-encoder": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.2.tgz", - "integrity": "sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==", - "license": "MIT" - }, "node_modules/@anthropic-ai/sdk/node_modules/undici-types": { "version": "5.26.5", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", @@ -251,36 +245,38 @@ "license": "MIT" }, "node_modules/@azure-rest/ai-translation-text": { - "version": "1.0.0-beta.1", - "resolved": "https://registry.npmjs.org/@azure-rest/ai-translation-text/-/ai-translation-text-1.0.0-beta.1.tgz", - "integrity": "sha512-h1xDrmVRbk6eAAqTHxy9Npv543cWteqgop15sVXBQhadOwzHoREn+UqMCzNfvL6/AjiInUlwNSaNQK1ANgobLA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@azure-rest/ai-translation-text/-/ai-translation-text-1.0.1.tgz", + "integrity": "sha512-lUs1FfBXjik6EReUEYP1ogkhaSPHZdUV+EB215y7uejuyHgG1RXD2aLsqXQrluZwXcLMdN+bTzxylKBc5xDhgQ==", "dev": true, + "license": "MIT", "dependencies": { - "@azure-rest/core-client": "^1.1.0", - "@azure/core-auth": "^1.3.0", - "@azure/core-rest-pipeline": "^1.8.0", - "@azure/logger": "^1.0.0", - "tslib": "^2.2.0" + "@azure-rest/core-client": "^2.3.1", + "@azure/core-auth": "^1.9.0", + "@azure/core-rest-pipeline": "^1.18.0", + "@azure/logger": "^1.1.4", + "tslib": "^2.8.1" }, "engines": { - "node": ">=14.0.0" + "node": ">=18.0.0" } }, "node_modules/@azure-rest/core-client": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@azure-rest/core-client/-/core-client-1.4.0.tgz", - "integrity": "sha512-ozTDPBVUDR5eOnMIwhggbnVmOrka4fXCs8n8mvUo4WLLc38kki6bAOByDoVZZPz/pZy2jMt2kwfpvy/UjALj6w==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@azure-rest/core-client/-/core-client-2.5.1.tgz", + "integrity": "sha512-EHaOXW0RYDKS5CFffnixdyRPak5ytiCtU7uXDcP/uiY+A6jFRwNGzzJBiznkCzvi5EYpY+YWinieqHb0oY916A==", "dev": true, + "license": "MIT", "dependencies": { - "@azure/abort-controller": "^2.0.0", - "@azure/core-auth": "^1.3.0", - "@azure/core-rest-pipeline": "^1.5.0", - "@azure/core-tracing": "^1.0.1", - "@azure/core-util": "^1.0.0", + "@azure/abort-controller": "^2.1.2", + "@azure/core-auth": "^1.10.0", + "@azure/core-rest-pipeline": "^1.22.0", + "@azure/core-tracing": "^1.3.0", + "@typespec/ts-http-runtime": "^0.3.0", "tslib": "^2.6.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=20.0.0" } }, "node_modules/@azure/abort-controller": { @@ -288,6 +284,7 @@ "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz", "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^2.6.2" }, @@ -295,239 +292,204 @@ "node": ">=18.0.0" } }, - "node_modules/@azure/core-asynciterator-polyfill": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@azure/core-asynciterator-polyfill/-/core-asynciterator-polyfill-1.0.0.tgz", - "integrity": "sha512-kmv8CGrPfN9SwMwrkiBK9VTQYxdFQEGe0BmQk+M8io56P9KNzpAxcWE/1fxJj7uouwN4kXF0BHW8DNlgx+wtCg==", - "dev": true - }, "node_modules/@azure/core-auth": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.7.2.tgz", - "integrity": "sha512-Igm/S3fDYmnMq1uKS38Ae1/m37B3zigdlZw+kocwEhh5GjyKjPrXKO2J6rzpC1wAxrNil/jX9BJRqBshyjnF3g==", + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.10.1.tgz", + "integrity": "sha512-ykRMW8PjVAn+RS6ww5cmK9U2CyH9p4Q88YJwvUslfuMmN98w/2rdGRLPqJYObapBCdzBVeDgYWdJnFPFb7qzpg==", "dev": true, + "license": "MIT", "dependencies": { - "@azure/abort-controller": "^2.0.0", - "@azure/core-util": "^1.1.0", + "@azure/abort-controller": "^2.1.2", + "@azure/core-util": "^1.13.0", "tslib": "^2.6.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=20.0.0" } }, - "node_modules/@azure/core-http": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@azure/core-http/-/core-http-2.3.2.tgz", - "integrity": "sha512-Z4dfbglV9kNZO177CNx4bo5ekFuYwwsvjLiKdZI4r84bYGv3irrbQz7JC3/rUfFH2l4T/W6OFleJaa2X0IaQqw==", - "deprecated": "This package is no longer supported. Please migrate to use @azure/core-rest-pipeline", + "node_modules/@azure/core-client": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@azure/core-client/-/core-client-1.10.1.tgz", + "integrity": "sha512-Nh5PhEOeY6PrnxNPsEHRr9eimxLwgLlpmguQaHKBinFYA/RU9+kOYVOQqOrTsCL+KSxrLLl1gD8Dk5BFW/7l/w==", "dev": true, "license": "MIT", "dependencies": { - "@azure/abort-controller": "^1.0.0", - "@azure/core-auth": "^1.3.0", - "@azure/core-tracing": "1.0.0-preview.13", - "@azure/core-util": "^1.1.1", - "@azure/logger": "^1.0.0", - "@types/node-fetch": "^2.5.0", - "@types/tunnel": "^0.0.3", - "form-data": "^4.0.0", - "node-fetch": "^2.6.7", - "process": "^0.11.10", - "tough-cookie": "^4.0.0", - "tslib": "^2.2.0", - "tunnel": "^0.0.6", - "uuid": "^8.3.0", - "xml2js": "^0.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@azure/core-http/node_modules/@azure/abort-controller": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-1.0.4.tgz", - "integrity": "sha512-lNUmDRVGpanCsiUN3NWxFTdwmdFI53xwhkTFfHDGTYk46ca7Ind3nanJc+U6Zj9Tv+9nTCWRBscWEW1DyKOpTw==", - "dev": true, - "dependencies": { - "tslib": "^2.0.0" + "@azure/abort-controller": "^2.1.2", + "@azure/core-auth": "^1.10.0", + "@azure/core-rest-pipeline": "^1.22.0", + "@azure/core-tracing": "^1.3.0", + "@azure/core-util": "^1.13.0", + "@azure/logger": "^1.3.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=8.0.0" + "node": ">=20.0.0" } }, - "node_modules/@azure/core-http/node_modules/@azure/core-tracing": { - "version": "1.0.0-preview.13", - "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.0.0-preview.13.tgz", - "integrity": "sha512-KxDlhXyMlh2Jhj2ykX6vNEU0Vou4nHr025KoSEiz7cS3BNiHNaZcdECk/DmLkEB0as5T7b/TpRcehJ5yV6NeXQ==", + "node_modules/@azure/core-http-compat": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@azure/core-http-compat/-/core-http-compat-2.3.1.tgz", + "integrity": "sha512-az9BkXND3/d5VgdRRQVkiJb2gOmDU8Qcq4GvjtBmDICNiQ9udFmDk4ZpSB5Qq1OmtDJGlQAfBaS4palFsazQ5g==", "dev": true, + "license": "MIT", "dependencies": { - "@opentelemetry/api": "^1.0.1", - "tslib": "^2.2.0" + "@azure/abort-controller": "^2.1.2", + "@azure/core-client": "^1.10.0", + "@azure/core-rest-pipeline": "^1.22.0" }, "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@azure/core-http/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==", - "dev": true, - "bin": { - "uuid": "dist/bin/uuid" + "node": ">=20.0.0" } }, "node_modules/@azure/core-lro": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@azure/core-lro/-/core-lro-2.2.1.tgz", - "integrity": "sha512-HE6PBl+mlKa0eBsLwusHqAqjLc5n9ByxeDo3Hz4kF3B1hqHvRkBr4oMgoT6tX7Hc3q97KfDctDUon7EhvoeHPA==", + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/@azure/core-lro/-/core-lro-2.7.2.tgz", + "integrity": "sha512-0YIpccoX8m/k00O7mDDMdJpbr6mf1yWo2dfmxt5A8XVZVVMz2SSKaEbMCeJRvgQ0IaSlqhjT47p4hVIRRy90xw==", "dev": true, + "license": "MIT", "dependencies": { - "@azure/abort-controller": "^1.0.0", - "@azure/core-tracing": "1.0.0-preview.13", + "@azure/abort-controller": "^2.0.0", + "@azure/core-util": "^1.2.0", "@azure/logger": "^1.0.0", - "tslib": "^2.2.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@azure/core-lro/node_modules/@azure/abort-controller": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-1.0.4.tgz", - "integrity": "sha512-lNUmDRVGpanCsiUN3NWxFTdwmdFI53xwhkTFfHDGTYk46ca7Ind3nanJc+U6Zj9Tv+9nTCWRBscWEW1DyKOpTw==", - "dev": true, - "dependencies": { - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@azure/core-lro/node_modules/@azure/core-tracing": { - "version": "1.0.0-preview.13", - "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.0.0-preview.13.tgz", - "integrity": "sha512-KxDlhXyMlh2Jhj2ykX6vNEU0Vou4nHr025KoSEiz7cS3BNiHNaZcdECk/DmLkEB0as5T7b/TpRcehJ5yV6NeXQ==", - "dev": true, - "dependencies": { - "@opentelemetry/api": "^1.0.1", - "tslib": "^2.2.0" + "tslib": "^2.6.2" }, "engines": { - "node": ">=12.0.0" + "node": ">=18.0.0" } }, "node_modules/@azure/core-paging": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@azure/core-paging/-/core-paging-1.2.0.tgz", - "integrity": "sha512-ZX1bCjm/MjKPCN6kQD/9GJErYSoKA8YWp6YWoo5EIzcTWlSBLXu3gNaBTUl8usGl+UShiKo7b4Gdy1NSTIlpZg==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@azure/core-paging/-/core-paging-1.6.2.tgz", + "integrity": "sha512-YKWi9YuCU04B55h25cnOYZHxXYtEvQEbKST5vqRga7hWY9ydd3FZHdeQF8pyh+acWZvppw13M/LMGx0LABUVMA==", "dev": true, + "license": "MIT", "dependencies": { - "@azure/core-asynciterator-polyfill": "^1.0.0", - "tslib": "^2.2.0" + "tslib": "^2.6.2" }, "engines": { - "node": ">=12.0.0" + "node": ">=18.0.0" } }, "node_modules/@azure/core-rest-pipeline": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.16.0.tgz", - "integrity": "sha512-CeuTvsXxCUmEuxH5g/aceuSl6w2EugvNHKAtKKVdiX915EjJJxAwfzNNWZreNnbxHZ2fi0zaM6wwS23x2JVqSQ==", + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.22.2.tgz", + "integrity": "sha512-MzHym+wOi8CLUlKCQu12de0nwcq9k9Kuv43j4Wa++CsCpJwps2eeBQwD2Bu8snkxTtDKDx4GwjuR9E8yC8LNrg==", "dev": true, + "license": "MIT", "dependencies": { - "@azure/abort-controller": "^2.0.0", - "@azure/core-auth": "^1.4.0", - "@azure/core-tracing": "^1.0.1", - "@azure/core-util": "^1.9.0", - "@azure/logger": "^1.0.0", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.0", + "@azure/abort-controller": "^2.1.2", + "@azure/core-auth": "^1.10.0", + "@azure/core-tracing": "^1.3.0", + "@azure/core-util": "^1.13.0", + "@azure/logger": "^1.3.0", + "@typespec/ts-http-runtime": "^0.3.0", "tslib": "^2.6.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=20.0.0" } }, "node_modules/@azure/core-tracing": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.1.2.tgz", - "integrity": "sha512-dawW9ifvWAWmUm9/h+/UQ2jrdvjCJ7VJEuCJ6XVNudzcOwm53BFZH4Q845vjfgoUAM8ZxokvVNxNxAITc502YA==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.3.1.tgz", + "integrity": "sha512-9MWKevR7Hz8kNzzPLfX4EAtGM2b8mr50HPDBvio96bURP/9C+HjdH3sBlLSNNrvRAr5/k/svoH457gB5IKpmwQ==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^2.6.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=20.0.0" } }, "node_modules/@azure/core-util": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.9.0.tgz", - "integrity": "sha512-AfalUQ1ZppaKuxPPMsFEUdX6GZPB3d9paR9d/TTL7Ow2De8cJaC7ibi7kWVlFAVPCYo31OcnGymc0R89DX8Oaw==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.13.1.tgz", + "integrity": "sha512-XPArKLzsvl0Hf0CaGyKHUyVgF7oDnhKoP85Xv6M4StF/1AhfORhZudHtOyf2s+FcbuQ9dPRAjB8J2KvRRMUK2A==", "dev": true, + "license": "MIT", "dependencies": { - "@azure/abort-controller": "^2.0.0", + "@azure/abort-controller": "^2.1.2", + "@typespec/ts-http-runtime": "^0.3.0", "tslib": "^2.6.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=20.0.0" } }, - "node_modules/@azure/logger": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.0.3.tgz", - "integrity": "sha512-aK4s3Xxjrx3daZr3VylxejK3vG5ExXck5WOHDJ8in/k9AqlfIyFMMT1uG7u8mNjX+QRILTIn0/Xgschfh/dQ9g==", + "node_modules/@azure/core-xml": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@azure/core-xml/-/core-xml-1.5.0.tgz", + "integrity": "sha512-D/sdlJBMJfx7gqoj66PKVmhDDaU6TKA49ptcolxdas29X7AfvLTmfAGLjAcIMBK7UZ2o4lygHIqVckOlQU3xWw==", "dev": true, + "license": "MIT", "dependencies": { - "tslib": "^2.2.0" + "fast-xml-parser": "^5.0.7", + "tslib": "^2.8.1" }, "engines": { - "node": ">=12.0.0" + "node": ">=20.0.0" } }, - "node_modules/@azure/storage-blob": { - "version": "12.8.0", - "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.8.0.tgz", - "integrity": "sha512-c8+Wz19xauW0bGkTCoqZH4dYfbtBniPiGiRQOn1ca6G5jsjr4azwaTk9gwjVY8r3vY2Taf95eivLzipfIfiS4A==", + "node_modules/@azure/logger": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.3.0.tgz", + "integrity": "sha512-fCqPIfOcLE+CGqGPd66c8bZpwAji98tZ4JI9i/mlTNTlsIWslCfpg48s/ypyLxZTump5sypjrKn2/kY7q8oAbA==", "dev": true, + "license": "MIT", "dependencies": { - "@azure/abort-controller": "^1.0.0", - "@azure/core-http": "^2.0.0", - "@azure/core-lro": "^2.2.0", - "@azure/core-paging": "^1.1.1", - "@azure/core-tracing": "1.0.0-preview.13", - "@azure/logger": "^1.0.0", - "events": "^3.0.0", - "tslib": "^2.2.0" + "@typespec/ts-http-runtime": "^0.3.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=12.0.0" + "node": ">=20.0.0" } }, - "node_modules/@azure/storage-blob/node_modules/@azure/abort-controller": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-1.0.4.tgz", - "integrity": "sha512-lNUmDRVGpanCsiUN3NWxFTdwmdFI53xwhkTFfHDGTYk46ca7Ind3nanJc+U6Zj9Tv+9nTCWRBscWEW1DyKOpTw==", + "node_modules/@azure/storage-blob": { + "version": "12.29.1", + "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.29.1.tgz", + "integrity": "sha512-7ktyY0rfTM0vo7HvtK6E3UvYnI9qfd6Oz6z/+92VhGRveWng3kJwMKeUpqmW/NmwcDNbxHpSlldG+vsUnRFnBg==", "dev": true, + "license": "MIT", "dependencies": { - "tslib": "^2.0.0" + "@azure/abort-controller": "^2.1.2", + "@azure/core-auth": "^1.9.0", + "@azure/core-client": "^1.9.3", + "@azure/core-http-compat": "^2.2.0", + "@azure/core-lro": "^2.2.0", + "@azure/core-paging": "^1.6.2", + "@azure/core-rest-pipeline": "^1.19.1", + "@azure/core-tracing": "^1.2.0", + "@azure/core-util": "^1.11.0", + "@azure/core-xml": "^1.4.5", + "@azure/logger": "^1.1.4", + "@azure/storage-common": "^12.1.1", + "events": "^3.0.0", + "tslib": "^2.8.1" }, "engines": { - "node": ">=8.0.0" + "node": ">=20.0.0" } }, - "node_modules/@azure/storage-blob/node_modules/@azure/core-tracing": { - "version": "1.0.0-preview.13", - "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.0.0-preview.13.tgz", - "integrity": "sha512-KxDlhXyMlh2Jhj2ykX6vNEU0Vou4nHr025KoSEiz7cS3BNiHNaZcdECk/DmLkEB0as5T7b/TpRcehJ5yV6NeXQ==", + "node_modules/@azure/storage-common": { + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/@azure/storage-common/-/storage-common-12.1.1.tgz", + "integrity": "sha512-eIOH1pqFwI6UmVNnDQvmFeSg0XppuzDLFeUNO/Xht7ODAzRLgGDh7h550pSxoA+lPDxBl1+D2m/KG3jWzCUjTg==", "dev": true, + "license": "MIT", "dependencies": { - "@opentelemetry/api": "^1.0.1", - "tslib": "^2.2.0" + "@azure/abort-controller": "^2.1.2", + "@azure/core-auth": "^1.9.0", + "@azure/core-http-compat": "^2.2.0", + "@azure/core-rest-pipeline": "^1.19.1", + "@azure/core-tracing": "^1.2.0", + "@azure/core-util": "^1.11.0", + "@azure/logger": "^1.1.4", + "events": "^3.3.0", + "tslib": "^2.8.1" }, "engines": { - "node": ">=12.0.0" + "node": ">=20.0.0" } }, "node_modules/@babel/code-frame": { @@ -598,6 +560,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -1020,7 +983,8 @@ "version": "0.2.3", "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@c4312/eventsource-umd": { "version": "3.0.5", @@ -1039,6 +1003,7 @@ "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "0.3.9" }, @@ -1051,6 +1016,7 @@ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -1103,85 +1069,47 @@ } }, "node_modules/@discoveryjs/json-ext": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.3.tgz", - "integrity": "sha512-Fxt+AfXgjMoin2maPIYzFZnQjAXjAL0PHscM5pRTtatFqB+vZxAM9tLp2Optnuw3QOQC40jTNeGYFOMvyf7v9g==", + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.0.0" } }, "node_modules/@electron/get": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@electron/get/-/get-2.0.2.tgz", - "integrity": "sha512-eFZVFoRXb3GFGd7Ak7W4+6jBl9wBtiZ4AaYOse97ej6mKj5tkyO0dUnUChs1IhJZtx1BENo4/p4WUTXpi6vT+g==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@electron/get/-/get-4.0.2.tgz", + "integrity": "sha512-n9fRt/nzzOOZdDtTP3kT6GVdo0ro9FgMKCoS520kQMIiKBhpGmPny6yK/lER3tOCKr+wLYW1O25D9oI6ZinwCA==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.1.1", - "env-paths": "^2.2.0", - "fs-extra": "^8.1.0", - "got": "^11.8.5", + "env-paths": "^3.0.0", + "got": "^14.4.5", + "graceful-fs": "^4.2.11", "progress": "^2.0.3", - "semver": "^6.2.0", + "semver": "^7.6.3", "sumchecker": "^3.0.1" }, "engines": { - "node": ">=12" + "node": ">=22.12.0" }, "optionalDependencies": { "global-agent": "^3.0.0" } }, - "node_modules/@electron/get/node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/@electron/get/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, "node_modules/@electron/get/node_modules/progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.4.0" } }, - "node_modules/@electron/get/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@electron/get/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, "node_modules/@emnapi/runtime": { "version": "1.7.1", "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.7.1.tgz", @@ -1194,17 +1122,20 @@ } }, "node_modules/@es-joy/jsdoccomment": { - "version": "0.48.0", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.48.0.tgz", - "integrity": "sha512-G6QUWIcC+KvSwXNsJyDTHvqUdNoAVJPPgkc3+Uk4WBKqZvoXhlvazOgm9aL0HwihJLQf0l+tOE2UFzXBqCqgDw==", + "version": "0.50.2", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.50.2.tgz", + "integrity": "sha512-YAdE/IJSpwbOTiaURNCKECdAwqrJuFiZhylmesBcIRawtYKnBR2wxPhoIewMg+Yu+QuYvHfJNReWpoxGBKOChA==", "dev": true, + "license": "MIT", "dependencies": { + "@types/estree": "^1.0.6", + "@typescript-eslint/types": "^8.11.0", "comment-parser": "1.4.1", "esquery": "^1.6.0", "jsdoc-type-pratt-parser": "~4.1.0" }, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/@esbuild/aix-ppc64": { @@ -1668,10 +1599,23 @@ "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "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==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/@eslint-community/regexpp": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", - "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", "dev": true, "license": "MIT", "engines": { @@ -1679,13 +1623,13 @@ } }, "node_modules/@eslint/config-array": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.0.tgz", - "integrity": "sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==", + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.1.tgz", + "integrity": "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/object-schema": "^2.1.6", + "@eslint/object-schema": "^2.1.7", "debug": "^4.3.1", "minimatch": "^3.1.2" }, @@ -1694,19 +1638,22 @@ } }, "node_modules/@eslint/config-helpers": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.1.tgz", - "integrity": "sha512-xR93k9WhrDYpXHORXpxVL5oHj3Era7wo6k/Wd8/IsQNnZUTzkGS29lyn3nAT05v6ltUuTFVCCYDEGfy2Or/sPA==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", + "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", "dev": true, "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0" + }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@eslint/core": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.2.tgz", - "integrity": "sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==", + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", + "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -1765,9 +1712,9 @@ "license": "MIT" }, "node_modules/@eslint/js": { - "version": "9.36.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.36.0.tgz", - "integrity": "sha512-uhCbYtYynH30iZErszX78U+nR3pJU3RHGQ57NXy5QupD4SBVwDeU8TNBy+MjMngc1UyIW9noKqsRqfjQTBU2dw==", + "version": "9.39.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.1.tgz", + "integrity": "sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw==", "dev": true, "license": "MIT", "engines": { @@ -1778,9 +1725,9 @@ } }, "node_modules/@eslint/object-schema": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", - "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", + "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==", "dev": true, "license": "Apache-2.0", "engines": { @@ -1788,13 +1735,13 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.5.tgz", - "integrity": "sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", + "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^0.15.2", + "@eslint/core": "^0.17.0", "levn": "^0.4.1" }, "engines": { @@ -1874,6 +1821,7 @@ "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/identity-map/-/identity-map-2.0.1.tgz", "integrity": "sha512-Tb+nSISZku+eQ4X1lAkevcQa+jknn/OVUgZ3XCxEKIsLsqYuPoJwJOPQeaOk75X3WPftb29GWY1eqE7GLsXb1Q==", "dev": true, + "license": "MIT", "dependencies": { "acorn": "^6.4.1", "normalize-path": "^3.0.0", @@ -1890,6 +1838,7 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -1901,13 +1850,15 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/@gulp-sourcemaps/identity-map/node_modules/postcss": { "version": "7.0.39", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, + "license": "MIT", "dependencies": { "picocolors": "^0.2.1", "source-map": "^0.6.1" @@ -1923,8 +1874,9 @@ "node_modules/@gulp-sourcemaps/map-sources": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz", - "integrity": "sha1-iQrnxdjId/bThIYCFazp1+yUW9o= sha512-o/EatdaGt8+x2qpb0vFLC/2Gug/xYPRXb6a+ET1wGYKozKN3krDWC/zZFZAtrzxJHuDL12mwdfEFKcKMNvc55A==", + "integrity": "sha512-o/EatdaGt8+x2qpb0vFLC/2Gug/xYPRXb6a+ET1wGYKozKN3krDWC/zZFZAtrzxJHuDL12mwdfEFKcKMNvc55A==", "dev": true, + "license": "MIT", "dependencies": { "normalize-path": "^2.0.1", "through2": "^2.0.3" @@ -1933,11 +1885,19 @@ "node": ">= 0.10" } }, + "node_modules/@gulp-sourcemaps/map-sources/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, "node_modules/@gulp-sourcemaps/map-sources/node_modules/normalize-path": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", "dev": true, + "license": "MIT", "dependencies": { "remove-trailing-separator": "^1.0.1" }, @@ -1946,10 +1906,11 @@ } }, "node_modules/@gulp-sourcemaps/map-sources/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -1960,11 +1921,29 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/@gulp-sourcemaps/map-sources/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==", + "dev": true, + "license": "MIT" + }, + "node_modules/@gulp-sourcemaps/map-sources/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/@gulp-sourcemaps/map-sources/node_modules/through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, + "license": "MIT", "dependencies": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" @@ -1999,6 +1978,7 @@ "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=12.22" }, @@ -2512,11 +2492,35 @@ "url": "https://opencollective.com/libvips" } }, + "node_modules/@isaacs/balanced-match": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz", + "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@isaacs/brace-expansion": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz", + "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@isaacs/balanced-match": "^4.0.1" + }, + "engines": { + "node": "20 || >=22" + } + }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -2530,10 +2534,11 @@ } }, "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -2542,10 +2547,11 @@ } }, "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -2557,13 +2563,15 @@ "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@isaacs/cliui/node_modules/string-width": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, + "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -2577,10 +2585,11 @@ } }, "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -2596,6 +2605,7 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -2613,6 +2623,7 @@ "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -2640,18 +2651,19 @@ } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/source-map": { - "version": "0.3.10", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.10.tgz", - "integrity": "sha512-0pPkgz9dY+bijgistcTTJ5mR+ocqRXLuhXHYdzoMmmoJ2C9S46RCm2GMUbatPEUK9Yjy26IrAy8D/M00lLkv+Q==", + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", "dev": true, "license": "MIT", "dependencies": { @@ -2677,11 +2689,19 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@keyv/serialize": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-1.1.1.tgz", + "integrity": "sha512-dXn3FZhPv0US+7dtJsIi2R+c7qWYiReoEh5zUntWCf4oSpMNib8FDhSoed6m3QyZdx5hK7iLFkYk3rNxwt8vTA==", + "dev": true, + "license": "MIT" + }, "node_modules/@koa/cors": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/@koa/cors/-/cors-5.0.0.tgz", "integrity": "sha512-x/iUDjcS90W69PryLDIMgFyV21YLTnG9zOpPXS7Bkt2b8AsY3zZsIpOLBkYr9fBcF3HbkKaER5hOBZLfpLgYNw==", "dev": true, + "license": "MIT", "dependencies": { "vary": "^1.1.2" }, @@ -2690,12 +2710,13 @@ } }, "node_modules/@koa/router": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@koa/router/-/router-13.1.0.tgz", - "integrity": "sha512-mNVu1nvkpSd8Q8gMebGbCkDWJ51ODetrFvLKYusej+V0ByD4btqHYnPIzTBLXnQMVUlm/oxVwqmWBY3zQfZilw==", + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/@koa/router/-/router-13.1.1.tgz", + "integrity": "sha512-JQEuMANYRVHs7lm7KY9PCIjkgJk73h4m4J+g2mkw2Vo1ugPZ17UJVqEH8F+HeAdjKz5do1OaLe7ArDz+z308gw==", "dev": true, "license": "MIT", "dependencies": { + "debug": "^4.4.1", "http-errors": "^2.0.0", "koa-compose": "^4.1.0", "path-to-regexp": "^6.3.0" @@ -2728,32 +2749,35 @@ } }, "node_modules/@microsoft/1ds-core-js": { - "version": "3.2.13", - "resolved": "https://registry.npmjs.org/@microsoft/1ds-core-js/-/1ds-core-js-3.2.13.tgz", - "integrity": "sha512-CluYTRWcEk0ObG5EWFNWhs87e2qchJUn0p2D21ZUa3PWojPZfPSBs4//WIE0MYV8Qg1Hdif2ZTwlM7TbYUjfAg==", + "version": "3.2.18", + "resolved": "https://registry.npmjs.org/@microsoft/1ds-core-js/-/1ds-core-js-3.2.18.tgz", + "integrity": "sha512-ytlFv3dfb8OGqvbZP8tSIlNvn3QNYxdsF0k6ikRMWSr6CmBxBi1sliaxc2Q5KuYOuaeWkd8WRm25Rx/UtHcyMg==", + "license": "MIT", "dependencies": { - "@microsoft/applicationinsights-core-js": "2.8.15", + "@microsoft/applicationinsights-core-js": "2.8.18", "@microsoft/applicationinsights-shims": "^2.0.2", - "@microsoft/dynamicproto-js": "^1.1.7" + "@microsoft/dynamicproto-js": "^1.1.11" } }, "node_modules/@microsoft/1ds-post-js": { - "version": "3.2.13", - "resolved": "https://registry.npmjs.org/@microsoft/1ds-post-js/-/1ds-post-js-3.2.13.tgz", - "integrity": "sha512-HgS574fdD19Bo2vPguyznL4eDw7Pcm1cVNpvbvBLWiW3x4e1FCQ3VMXChWnAxCae8Hb0XqlA2sz332ZobBavTA==", + "version": "3.2.18", + "resolved": "https://registry.npmjs.org/@microsoft/1ds-post-js/-/1ds-post-js-3.2.18.tgz", + "integrity": "sha512-Tzjcja4SMyws3UP58kD2edFPNb7BJtx5uCgwf/PWXwDyfbUY1/crsTQdEyR98wy/vorvLDZdQlcL++VMChfYnQ==", + "license": "MIT", "dependencies": { - "@microsoft/1ds-core-js": "3.2.13", + "@microsoft/1ds-core-js": "3.2.18", "@microsoft/applicationinsights-shims": "^2.0.2", - "@microsoft/dynamicproto-js": "^1.1.7" + "@microsoft/dynamicproto-js": "^1.1.11" } }, "node_modules/@microsoft/applicationinsights-core-js": { - "version": "2.8.15", - "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-core-js/-/applicationinsights-core-js-2.8.15.tgz", - "integrity": "sha512-yYAs9MyjGr2YijQdUSN9mVgT1ijI1FPMgcffpaPmYbHAVbQmF7bXudrBWHxmLzJlwl5rfep+Zgjli2e67lwUqQ==", + "version": "2.8.18", + "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-core-js/-/applicationinsights-core-js-2.8.18.tgz", + "integrity": "sha512-yPHRZFLpnEO0uSgFPM1BLMRRwjoten9YBbn4pJRbCT4PigLnj748knmWsMwXIdcehtkRTYz78kPYa/LWP7nvmA==", + "license": "MIT", "dependencies": { "@microsoft/applicationinsights-shims": "2.0.2", - "@microsoft/dynamicproto-js": "^1.1.9" + "@microsoft/dynamicproto-js": "^1.1.11" }, "peerDependencies": { "tslib": "*" @@ -2762,12 +2786,14 @@ "node_modules/@microsoft/applicationinsights-shims": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-shims/-/applicationinsights-shims-2.0.2.tgz", - "integrity": "sha512-PoHEgsnmcqruLNHZ/amACqdJ6YYQpED0KSRe6J7gIJTtpZC1FfFU9b1fmDKDKtFoUSrPzEh1qzO3kmRZP0betg==" + "integrity": "sha512-PoHEgsnmcqruLNHZ/amACqdJ6YYQpED0KSRe6J7gIJTtpZC1FfFU9b1fmDKDKtFoUSrPzEh1qzO3kmRZP0betg==", + "license": "MIT" }, "node_modules/@microsoft/dynamicproto-js": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/@microsoft/dynamicproto-js/-/dynamicproto-js-1.1.9.tgz", - "integrity": "sha512-n1VPsljTSkthsAFYdiWfC+DKzK2WwcRp83Y1YAqdX552BstvsDjft9YXppjUzp11BPsapDoO1LDgrDB0XVsfNQ==" + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/@microsoft/dynamicproto-js/-/dynamicproto-js-1.1.11.tgz", + "integrity": "sha512-gNw9z9LbqLV+WadZ6/MMrWwO3e0LuoUH1wve/1iPsBNbgqeVCiB0EZFNNj2lysxS2gkqoF9hmyVaG3MoM1BkxA==", + "license": "MIT" }, "node_modules/@mistralai/mistralai": { "version": "1.10.0", @@ -2810,23 +2836,6 @@ } } }, - "node_modules/@modelcontextprotocol/sdk/node_modules/ajv-formats": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", - "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", - "license": "MIT", - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, "node_modules/@napi-rs/canvas": { "version": "0.1.82", "resolved": "https://registry.npmjs.org/@napi-rs/canvas/-/canvas-0.1.82.tgz", @@ -3160,6 +3169,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -3173,6 +3183,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } @@ -3182,6 +3193,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -3201,17 +3213,17 @@ } }, "node_modules/@octokit/core": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-7.0.3.tgz", - "integrity": "sha512-oNXsh2ywth5aowwIa7RKtawnkdH6LgU1ztfP9AIUCQCvzysB+WeU8o2kyyosDPwBZutPpjZDKPQGIzzrfTWweQ==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-7.0.6.tgz", + "integrity": "sha512-DhGl4xMVFGVIyMwswXeyzdL4uXD5OGILGX5N8Y+f6W7LhC1Ze2poSNrkF/fedpVDHEEZ+PHFW0vL14I+mm8K3Q==", "dev": true, "license": "MIT", "dependencies": { "@octokit/auth-token": "^6.0.0", - "@octokit/graphql": "^9.0.1", - "@octokit/request": "^10.0.2", - "@octokit/request-error": "^7.0.0", - "@octokit/types": "^14.0.0", + "@octokit/graphql": "^9.0.3", + "@octokit/request": "^10.0.6", + "@octokit/request-error": "^7.0.2", + "@octokit/types": "^16.0.0", "before-after-hook": "^4.0.0", "universal-user-agent": "^7.0.0" }, @@ -3220,13 +3232,13 @@ } }, "node_modules/@octokit/endpoint": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-11.0.0.tgz", - "integrity": "sha512-hoYicJZaqISMAI3JfaDr1qMNi48OctWuOih1m80bkYow/ayPw6Jj52tqWJ6GEoFTk1gBqfanSoI1iY99Z5+ekQ==", + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-11.0.2.tgz", + "integrity": "sha512-4zCpzP1fWc7QlqunZ5bSEjxc6yLAlRTnDwKtgXfcI/FxxGoqedDG8V2+xJ60bV2kODqcGB+nATdtap/XYq2NZQ==", "dev": true, "license": "MIT", "dependencies": { - "@octokit/types": "^14.0.0", + "@octokit/types": "^16.0.0", "universal-user-agent": "^7.0.2" }, "engines": { @@ -3234,14 +3246,14 @@ } }, "node_modules/@octokit/graphql": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-9.0.1.tgz", - "integrity": "sha512-j1nQNU1ZxNFx2ZtKmL4sMrs4egy5h65OMDmSbVyuCzjOcwsHq6EaYjOTGXPQxgfiN8dJ4CriYHk6zF050WEULg==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-9.0.3.tgz", + "integrity": "sha512-grAEuupr/C1rALFnXTv6ZQhFuL1D8G5y8CN04RgrO4FIPMrtm+mcZzFG7dcBm+nq+1ppNixu+Jd78aeJOYxlGA==", "dev": true, "license": "MIT", "dependencies": { - "@octokit/request": "^10.0.2", - "@octokit/types": "^14.0.0", + "@octokit/request": "^10.0.6", + "@octokit/types": "^16.0.0", "universal-user-agent": "^7.0.0" }, "engines": { @@ -3249,20 +3261,20 @@ } }, "node_modules/@octokit/openapi-types": { - "version": "25.1.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-25.1.0.tgz", - "integrity": "sha512-idsIggNXUKkk0+BExUn1dQ92sfysJrje03Q0bv0e+KPLrvyqZF8MnBpFz8UNfYDwB3Ie7Z0TByjWfzxt7vseaA==", + "version": "27.0.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-27.0.0.tgz", + "integrity": "sha512-whrdktVs1h6gtR+09+QsNk2+FO+49j6ga1c55YZudfEG+oKJVvJLQi3zkOm5JjiUXAagWK2tI2kTGKJ2Ys7MGA==", "dev": true, "license": "MIT" }, "node_modules/@octokit/plugin-paginate-rest": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-13.1.1.tgz", - "integrity": "sha512-q9iQGlZlxAVNRN2jDNskJW/Cafy7/XE52wjZ5TTvyhyOD904Cvx//DNyoO3J/MXJ0ve3rPoNWKEg5iZrisQSuw==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-14.0.0.tgz", + "integrity": "sha512-fNVRE7ufJiAA3XUrha2omTA39M6IXIc6GIZLvlbsm8QOQCYvpq/LkMNGyFlB1d8hTDzsAXa3OKtybdMAYsV/fw==", "dev": true, "license": "MIT", "dependencies": { - "@octokit/types": "^14.1.0" + "@octokit/types": "^16.0.0" }, "engines": { "node": ">= 20" @@ -3285,13 +3297,13 @@ } }, "node_modules/@octokit/plugin-rest-endpoint-methods": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-16.0.0.tgz", - "integrity": "sha512-kJVUQk6/dx/gRNLWUnAWKFs1kVPn5O5CYZyssyEoNYaFedqZxsfYs7DwI3d67hGz4qOwaJ1dpm07hOAD1BXx6g==", + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-17.0.0.tgz", + "integrity": "sha512-B5yCyIlOJFPqUUeiD0cnBJwWJO8lkJs5d8+ze9QDP6SvfiXSz1BF+91+0MeI1d2yxgOhU/O+CvtiZ9jSkHhFAw==", "dev": true, "license": "MIT", "dependencies": { - "@octokit/types": "^14.1.0" + "@octokit/types": "^16.0.0" }, "engines": { "node": ">= 20" @@ -3301,15 +3313,15 @@ } }, "node_modules/@octokit/request": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-10.0.3.tgz", - "integrity": "sha512-V6jhKokg35vk098iBqp2FBKunk3kMTXlmq+PtbV9Gl3TfskWlebSofU9uunVKhUN7xl+0+i5vt0TGTG8/p/7HA==", + "version": "10.0.7", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-10.0.7.tgz", + "integrity": "sha512-v93h0i1yu4idj8qFPZwjehoJx4j3Ntn+JhXsdJrG9pYaX6j/XRz2RmasMUHtNgQD39nrv/VwTWSqK0RNXR8upA==", "dev": true, "license": "MIT", "dependencies": { - "@octokit/endpoint": "^11.0.0", - "@octokit/request-error": "^7.0.0", - "@octokit/types": "^14.0.0", + "@octokit/endpoint": "^11.0.2", + "@octokit/request-error": "^7.0.2", + "@octokit/types": "^16.0.0", "fast-content-type-parse": "^3.0.0", "universal-user-agent": "^7.0.2" }, @@ -3318,57 +3330,55 @@ } }, "node_modules/@octokit/request-error": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-7.0.0.tgz", - "integrity": "sha512-KRA7VTGdVyJlh0cP5Tf94hTiYVVqmt2f3I6mnimmaVz4UG3gQV/k4mDJlJv3X67iX6rmN7gSHCF8ssqeMnmhZg==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-7.1.0.tgz", + "integrity": "sha512-KMQIfq5sOPpkQYajXHwnhjCC0slzCNScLHs9JafXc4RAJI+9f+jNDlBNaIMTvazOPLgb4BnlhGJOTbnN0wIjPw==", "dev": true, "license": "MIT", "dependencies": { - "@octokit/types": "^14.0.0" + "@octokit/types": "^16.0.0" }, "engines": { "node": ">= 20" } }, "node_modules/@octokit/rest": { - "version": "22.0.0", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-22.0.0.tgz", - "integrity": "sha512-z6tmTu9BTnw51jYGulxrlernpsQYXpui1RK21vmXn8yF5bp6iX16yfTtJYGK5Mh1qDkvDOmp2n8sRMcQmR8jiA==", + "version": "22.0.1", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-22.0.1.tgz", + "integrity": "sha512-Jzbhzl3CEexhnivb1iQ0KJ7s5vvjMWcmRtq5aUsKmKDrRW6z3r84ngmiFKFvpZjpiU/9/S6ITPFRpn5s/3uQJw==", "dev": true, "license": "MIT", "dependencies": { - "@octokit/core": "^7.0.2", - "@octokit/plugin-paginate-rest": "^13.0.1", + "@octokit/core": "^7.0.6", + "@octokit/plugin-paginate-rest": "^14.0.0", "@octokit/plugin-request-log": "^6.0.0", - "@octokit/plugin-rest-endpoint-methods": "^16.0.0" + "@octokit/plugin-rest-endpoint-methods": "^17.0.0" }, "engines": { "node": ">= 20" } }, "node_modules/@octokit/types": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-14.1.0.tgz", - "integrity": "sha512-1y6DgTy8Jomcpu33N+p5w58l6xyt55Ar2I91RPiIA0xCJBXyUAhXCcmZaDWSANiha7R9a6qJJ2CRomGPZ6f46g==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-16.0.0.tgz", + "integrity": "sha512-sKq+9r1Mm4efXW1FCk7hFSeJo4QKreL/tTbR0rz/qx/r1Oa2VV83LTA/H/MuCOX7uCIJmQVRKBcbmWoySjAnSg==", "dev": true, "license": "MIT", "dependencies": { - "@octokit/openapi-types": "^25.1.0" + "@octokit/openapi-types": "^27.0.0" } }, - "node_modules/@opentelemetry/api": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.0.3.tgz", - "integrity": "sha512-puWxACExDe9nxbBB3lOymQFrLYml2dVOrd7USiVRnSbgXE+KwBu+HxFvxrzfqsiSda9IWsXJG1ef7C1O2/GmKQ==", + "node_modules/@one-ini/wasm": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@one-ini/wasm/-/wasm-0.1.1.tgz", + "integrity": "sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==", "dev": true, - "engines": { - "node": ">=8.0.0" - } + "license": "MIT" }, "node_modules/@parcel/watcher": { "version": "2.5.1", "resolved": "git+ssh://git@github.com/parcel-bundler/watcher.git#1ca032aa8339260a8a3bcf825c3a1a71e3e43542", - "integrity": "sha512-Z0lk8pM5vwuOJU6pfheRXHrOpQYIIEnVl/z8DY6370D4+ZnrOTvFa5BUdf3pGxahT5ILbPWwQSm2Wthy4q1OTg==", + "integrity": "sha512-/HDK5D9Oa1ymveUV3zxRcegbHO7XsVU+1jjnWecoFugJmORIY6csRhuN1oqJ0NKp0xJ7Y3nzCVCgsTtUhsp7qQ==", "hasInstallScript": true, "license": "MIT", "dependencies": { @@ -3390,32 +3400,21 @@ "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "dev": true, + "license": "MIT", "optional": true, "engines": { "node": ">=14" } }, - "node_modules/@pkgr/core": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", - "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/unts" - } - }, "node_modules/@playwright/browser-chromium": { - "version": "1.47.2", - "resolved": "https://registry.npmjs.org/@playwright/browser-chromium/-/browser-chromium-1.47.2.tgz", - "integrity": "sha512-tsk9bLcGzIu4k4xI2ixlwDrdJhMqCalUCsSj7TRI8VuvK7cLiJIa5SR0dprKbX+wkku/JMR4EN6g9DMHvfna+Q==", + "version": "1.56.1", + "resolved": "https://registry.npmjs.org/@playwright/browser-chromium/-/browser-chromium-1.56.1.tgz", + "integrity": "sha512-n4xzZpOn4qOtZJylpIn8co2QDoWczfJ068sEeky3EE5Vvy+lHX2J3WAcC4MbXzcpfoBee1lJm8JtXuLZ9HBCBA==", "dev": true, "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { - "playwright-core": "1.47.2" + "playwright-core": "1.56.1" }, "engines": { "node": ">=18" @@ -3438,9 +3437,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.53.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.2.tgz", - "integrity": "sha512-yDPzwsgiFO26RJA4nZo8I+xqzh7sJTZIWQOxn+/XOdPE31lAvLIYCKqjV+lNH/vxE2L2iH3plKxDCRK6i+CwhA==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.3.tgz", + "integrity": "sha512-mRSi+4cBjrRLoaal2PnqH82Wqyb+d3HsPUN/W+WslCXsZsyHa9ZeQQX/pQsZaVIWDkPcpV6jJ+3KLbTbgnwv8w==", "cpu": [ "arm" ], @@ -3452,9 +3451,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.53.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.53.2.tgz", - "integrity": "sha512-k8FontTxIE7b0/OGKeSN5B6j25EuppBcWM33Z19JoVT7UTXFSo3D9CdU39wGTeb29NO3XxpMNauh09B+Ibw+9g==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.53.3.tgz", + "integrity": "sha512-CbDGaMpdE9sh7sCmTrTUyllhrg65t6SwhjlMJsLr+J8YjFuPmCEjbBSx4Z/e4SmDyH3aB5hGaJUP2ltV/vcs4w==", "cpu": [ "arm64" ], @@ -3466,9 +3465,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.53.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.53.2.tgz", - "integrity": "sha512-A6s4gJpomNBtJ2yioj8bflM2oogDwzUiMl2yNJ2v9E7++sHrSrsQ29fOfn5DM/iCzpWcebNYEdXpaK4tr2RhfQ==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.53.3.tgz", + "integrity": "sha512-Nr7SlQeqIBpOV6BHHGZgYBuSdanCXuw09hon14MGOLGmXAFYjx1wNvquVPmpZnl0tLjg25dEdr4IQ6GgyToCUA==", "cpu": [ "arm64" ], @@ -3480,9 +3479,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.53.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.53.2.tgz", - "integrity": "sha512-e6XqVmXlHrBlG56obu9gDRPW3O3hLxpwHpLsBJvuI8qqnsrtSZ9ERoWUXtPOkY8c78WghyPHZdmPhHLWNdAGEw==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.53.3.tgz", + "integrity": "sha512-DZ8N4CSNfl965CmPktJ8oBnfYr3F8dTTNBQkRlffnUarJ2ohudQD17sZBa097J8xhQ26AwhHJ5mvUyQW8ddTsQ==", "cpu": [ "x64" ], @@ -3494,9 +3493,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.53.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.53.2.tgz", - "integrity": "sha512-v0E9lJW8VsrwPux5Qe5CwmH/CF/2mQs6xU1MF3nmUxmZUCHazCjLgYvToOk+YuuUqLQBio1qkkREhxhc656ViA==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.53.3.tgz", + "integrity": "sha512-yMTrCrK92aGyi7GuDNtGn2sNW+Gdb4vErx4t3Gv/Tr+1zRb8ax4z8GWVRfr3Jw8zJWvpGHNpss3vVlbF58DZ4w==", "cpu": [ "arm64" ], @@ -3508,9 +3507,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.53.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.53.2.tgz", - "integrity": "sha512-ClAmAPx3ZCHtp6ysl4XEhWU69GUB1D+s7G9YjHGhIGCSrsg00nEGRRZHmINYxkdoJehde8VIsDC5t9C0gb6yqA==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.53.3.tgz", + "integrity": "sha512-lMfF8X7QhdQzseM6XaX0vbno2m3hlyZFhwcndRMw8fbAGUGL3WFMBdK0hbUBIUYcEcMhVLr1SIamDeuLBnXS+Q==", "cpu": [ "x64" ], @@ -3522,9 +3521,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.53.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.53.2.tgz", - "integrity": "sha512-EPlb95nUsz6Dd9Qy13fI5kUPXNSljaG9FiJ4YUGU1O/Q77i5DYFW5KR8g1OzTcdZUqQQ1KdDqsTohdFVwCwjqg==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.53.3.tgz", + "integrity": "sha512-k9oD15soC/Ln6d2Wv/JOFPzZXIAIFLp6B+i14KhxAfnq76ajt0EhYc5YPeX6W1xJkAdItcVT+JhKl1QZh44/qw==", "cpu": [ "arm" ], @@ -3536,9 +3535,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.53.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.53.2.tgz", - "integrity": "sha512-BOmnVW+khAUX+YZvNfa0tGTEMVVEerOxN0pDk2E6N6DsEIa2Ctj48FOMfNDdrwinocKaC7YXUZ1pHlKpnkja/Q==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.53.3.tgz", + "integrity": "sha512-vTNlKq+N6CK/8UktsrFuc+/7NlEYVxgaEgRXVUVK258Z5ymho29skzW1sutgYjqNnquGwVUObAaxae8rZ6YMhg==", "cpu": [ "arm" ], @@ -3550,9 +3549,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.53.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.53.2.tgz", - "integrity": "sha512-Xt2byDZ+6OVNuREgBXr4+CZDJtrVso5woFtpKdGPhpTPHcNG7D8YXeQzpNbFRxzTVqJf7kvPMCub/pcGUWgBjA==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.53.3.tgz", + "integrity": "sha512-RGrFLWgMhSxRs/EWJMIFM1O5Mzuz3Xy3/mnxJp/5cVhZ2XoCAxJnmNsEyeMJtpK+wu0FJFWz+QF4mjCA7AUQ3w==", "cpu": [ "arm64" ], @@ -3564,9 +3563,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.53.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.53.2.tgz", - "integrity": "sha512-+LdZSldy/I9N8+klim/Y1HsKbJ3BbInHav5qE9Iy77dtHC/pibw1SR/fXlWyAk0ThnpRKoODwnAuSjqxFRDHUQ==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.53.3.tgz", + "integrity": "sha512-kASyvfBEWYPEwe0Qv4nfu6pNkITLTb32p4yTgzFCocHnJLAHs+9LjUu9ONIhvfT/5lv4YS5muBHyuV84epBo/A==", "cpu": [ "arm64" ], @@ -3578,9 +3577,9 @@ ] }, "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.53.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.53.2.tgz", - "integrity": "sha512-8ms8sjmyc1jWJS6WdNSA23rEfdjWB30LH8Wqj0Cqvv7qSHnvw6kgMMXRdop6hkmGPlyYBdRPkjJnj3KCUHV/uQ==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.53.3.tgz", + "integrity": "sha512-JiuKcp2teLJwQ7vkJ95EwESWkNRFJD7TQgYmCnrPtlu50b4XvT5MOmurWNrCj3IFdyjBQ5p9vnrX4JM6I8OE7g==", "cpu": [ "loong64" ], @@ -3592,9 +3591,9 @@ ] }, "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.53.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.53.2.tgz", - "integrity": "sha512-3HRQLUQbpBDMmzoxPJYd3W6vrVHOo2cVW8RUo87Xz0JPJcBLBr5kZ1pGcQAhdZgX9VV7NbGNipah1omKKe23/g==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.53.3.tgz", + "integrity": "sha512-EoGSa8nd6d3T7zLuqdojxC20oBfNT8nexBbB/rkxgKj5T5vhpAQKKnD+h3UkoMuTyXkP5jTjK/ccNRmQrPNDuw==", "cpu": [ "ppc64" ], @@ -3606,9 +3605,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.53.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.53.2.tgz", - "integrity": "sha512-fMjKi+ojnmIvhk34gZP94vjogXNNUKMEYs+EDaB/5TG/wUkoeua7p7VCHnE6T2Tx+iaghAqQX8teQzcvrYpaQA==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.53.3.tgz", + "integrity": "sha512-4s+Wped2IHXHPnAEbIB0YWBv7SDohqxobiiPA1FIWZpX+w9o2i4LezzH/NkFUl8LRci/8udci6cLq+jJQlh+0g==", "cpu": [ "riscv64" ], @@ -3620,9 +3619,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.53.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.53.2.tgz", - "integrity": "sha512-XuGFGU+VwUUV5kLvoAdi0Wz5Xbh2SrjIxCtZj6Wq8MDp4bflb/+ThZsVxokM7n0pcbkEr2h5/pzqzDYI7cCgLQ==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.53.3.tgz", + "integrity": "sha512-68k2g7+0vs2u9CxDt5ktXTngsxOQkSEV/xBbwlqYcUrAVh6P9EgMZvFsnHy4SEiUl46Xf0IObWVbMvPrr2gw8A==", "cpu": [ "riscv64" ], @@ -3634,9 +3633,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.53.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.53.2.tgz", - "integrity": "sha512-w6yjZF0P+NGzWR3AXWX9zc0DNEGdtvykB03uhonSHMRa+oWA6novflo2WaJr6JZakG2ucsyb+rvhrKac6NIy+w==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.53.3.tgz", + "integrity": "sha512-VYsFMpULAz87ZW6BVYw3I6sWesGpsP9OPcyKe8ofdg9LHxSbRMd7zrVrr5xi/3kMZtpWL/wC+UIJWJYVX5uTKg==", "cpu": [ "s390x" ], @@ -3648,9 +3647,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.53.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.53.2.tgz", - "integrity": "sha512-yo8d6tdfdeBArzC7T/PnHd7OypfI9cbuZzPnzLJIyKYFhAQ8SvlkKtKBMbXDxe1h03Rcr7u++nFS7tqXz87Gtw==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.53.3.tgz", + "integrity": "sha512-3EhFi1FU6YL8HTUJZ51imGJWEX//ajQPfqWLI3BQq4TlvHy4X0MOr5q3D2Zof/ka0d5FNdPwZXm3Yyib/UEd+w==", "cpu": [ "x64" ], @@ -3662,9 +3661,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.53.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.53.2.tgz", - "integrity": "sha512-ah59c1YkCxKExPP8O9PwOvs+XRLKwh/mV+3YdKqQ5AMQ0r4M4ZDuOrpWkUaqO7fzAHdINzV9tEVu8vNw48z0lA==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.53.3.tgz", + "integrity": "sha512-eoROhjcc6HbZCJr+tvVT8X4fW3/5g/WkGvvmwz/88sDtSJzO7r/blvoBDgISDiCjDRZmHpwud7h+6Q9JxFwq1Q==", "cpu": [ "x64" ], @@ -3676,9 +3675,9 @@ ] }, "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.53.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.53.2.tgz", - "integrity": "sha512-4VEd19Wmhr+Zy7hbUsFZ6YXEiP48hE//KPLCSVNY5RMGX2/7HZ+QkN55a3atM1C/BZCGIgqN+xrVgtdak2S9+A==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.53.3.tgz", + "integrity": "sha512-OueLAWgrNSPGAdUdIjSWXw+u/02BRTcnfw9PN41D2vq/JSEPnJnVuBgw18VkN8wcd4fjUs+jFHVM4t9+kBSNLw==", "cpu": [ "arm64" ], @@ -3690,9 +3689,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.53.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.53.2.tgz", - "integrity": "sha512-IlbHFYc/pQCgew/d5fslcy1KEaYVCJ44G8pajugd8VoOEI8ODhtb/j8XMhLpwHCMB3yk2J07ctup10gpw2nyMA==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.53.3.tgz", + "integrity": "sha512-GOFuKpsxR/whszbF/bzydebLiXIHSgsEUp6M0JI8dWvi+fFa1TD6YQa4aSZHtpmh2/uAlj/Dy+nmby3TJ3pkTw==", "cpu": [ "arm64" ], @@ -3704,9 +3703,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.53.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.53.2.tgz", - "integrity": "sha512-lNlPEGgdUfSzdCWU176ku/dQRnA7W+Gp8d+cWv73jYrb8uT7HTVVxq62DUYxjbaByuf1Yk0RIIAbDzp+CnOTFg==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.53.3.tgz", + "integrity": "sha512-iah+THLcBJdpfZ1TstDFbKNznlzoxa8fmnFYK4V67HvmuNYkVdAywJSoteUszvBQ9/HqN2+9AZghbajMsFT+oA==", "cpu": [ "ia32" ], @@ -3718,9 +3717,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.53.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.53.2.tgz", - "integrity": "sha512-S6YojNVrHybQis2lYov1sd+uj7K0Q05NxHcGktuMMdIQ2VixGwAfbJ23NnlvvVV1bdpR2m5MsNBViHJKcA4ADw==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.53.3.tgz", + "integrity": "sha512-J9QDiOIZlZLdcot5NXEepDkstocktoVjkaKUtqzgzpt2yWjGlbYiKyp05rWwk4nypbYUNoFAztEgixoLaSETkg==", "cpu": [ "x64" ], @@ -3732,9 +3731,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.53.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.53.2.tgz", - "integrity": "sha512-k+/Rkcyx//P6fetPoLMb8pBeqJBNGx81uuf7iljX9++yNBVRDQgD04L+SVXmXmh5ZP4/WOp4mWF0kmi06PW2tA==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.53.3.tgz", + "integrity": "sha512-UhTd8u31dXadv0MopwGgNOBpUVROFKWVQgAg5N1ESyCz8AuBcMqm4AuTjrwgQKGDfoFuz02EuMRHQIw/frmYKQ==", "cpu": [ "x64" ], @@ -3753,40 +3752,44 @@ "license": "MIT" }, "node_modules/@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-7.1.1.tgz", + "integrity": "sha512-rO92VvpgMc3kfiTjGT52LEtJ8Yc5kCWhZjLQ3LwlA4pSgPpQO7bVpYXParOD8Jwf+cVQECJo3yP/4I8aZtUQTQ==", "dev": true, + "license": "MIT", "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/sindresorhus/is?sponsor=1" } }, "node_modules/@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "type-detect": "4.0.8" } }, "node_modules/@sinonjs/fake-timers": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", - "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", + "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@sinonjs/commons": "^1.7.0" } }, "node_modules/@sinonjs/samsam": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.0.2.tgz", - "integrity": "sha512-jxPRPp9n93ci7b8hMfJOFDPRLFYadN6FSpeROFTR4UNF4i5b+EK6m4QXPO46BDhFgRy1JuS87zAnFOzCUwMJcQ==", + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.3.tgz", + "integrity": "sha512-nhOb2dWPeb1sd3IQXL/dVPnKHDOAFfvichtBf4xV00/rU1QbPCQqKMbvIheIjqwVjh7qIgf2AHTHi391yMOMpQ==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@sinonjs/commons": "^1.6.0", "lodash.get": "^4.4.2", @@ -3794,20 +3797,22 @@ } }, "node_modules/@sinonjs/text-encoding": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", - "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", - "dev": true + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.3.tgz", + "integrity": "sha512-DE427ROAphMQzU4ENbliGYrBSYPXF+TtLg9S8vzeA+OF4ZKzoDdzfL8sxuMUGS/lgRhM6j1URSk9ghf7Xo1tyA==", + "dev": true, + "license": "(Unlicense OR Apache-2.0)" }, "node_modules/@stylistic/eslint-plugin-ts": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-ts/-/eslint-plugin-ts-2.8.0.tgz", - "integrity": "sha512-VukJqkRlC2psLKoIHJ+4R3ZxLJfWeizGGX+X5ZxunjXo4MbxRNtwu5UvXuerABg4s2RV6Z3LFTdm0WvI4+RAMQ==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-ts/-/eslint-plugin-ts-2.13.0.tgz", + "integrity": "sha512-nooe1oTwz60T4wQhZ+5u0/GAu3ygkKF9vPPZeRn/meG71ntQ0EZXVOKEonluAYl/+CV2T+nN0dknHa4evAW13Q==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/utils": "^8.4.0", - "eslint-visitor-keys": "^4.0.0", - "espree": "^10.1.0" + "@typescript-eslint/utils": "^8.13.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3816,18 +3821,6 @@ "eslint": ">=8.40.0" } }, - "node_modules/@stylistic/eslint-plugin-ts/node_modules/eslint-visitor-keys": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.1.0.tgz", - "integrity": "sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==", - "dev": true, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, "node_modules/@swc/helpers": { "version": "0.5.15", "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", @@ -3843,6 +3836,7 @@ "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", "dev": true, + "license": "MIT", "dependencies": { "defer-to-connect": "^2.0.0" }, @@ -3863,20 +3857,6 @@ "tailwindcss": ">=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1" } }, - "node_modules/@tailwindcss/typography/node_modules/postcss-selector-parser": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", - "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", - "dev": true, - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@thisismanta/pessimist": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@thisismanta/pessimist/-/pessimist-1.2.0.tgz", @@ -3894,6 +3874,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-3.0.0.tgz", "integrity": "sha512-OAdBVB7rlwvLD+DiecSAyVKzKVmSfXbouCyM5I6wHGi4MGXIyFqErg1IvyJ7PI1e+GYZuZh7cCHV/c4LA8SKMw==", + "license": "MIT", "engines": { "node": ">= 10" } @@ -3903,19 +3884,20 @@ "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", "dev": true, + "license": "ISC", "engines": { "node": ">=10.13.0" } }, "node_modules/@ts-morph/common": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.20.0.tgz", - "integrity": "sha512-7uKjByfbPpwuzkstL3L5MQyuXPSKdoNG93Fmi2JoDcTf3pEP731JdRFAduRVkOs8oqxPsXKA+ScrWkdQ8t/I+Q==", + "version": "0.26.1", + "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.26.1.tgz", + "integrity": "sha512-Sn28TGl/4cFpcM+jwsH1wLncYq3FtN/BIpem+HOygfBWPT5pAeS5dB4VFVzV8FbnOKHpDLZmvAl4AjPEev5idA==", "dev": true, + "license": "MIT", "dependencies": { - "fast-glob": "^3.2.12", - "minimatch": "^7.4.3", - "mkdirp": "^2.1.6", + "fast-glob": "^3.3.2", + "minimatch": "^9.0.4", "path-browserify": "^1.0.1" } }, @@ -3930,64 +3912,55 @@ } }, "node_modules/@ts-morph/common/node_modules/minimatch": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", - "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@ts-morph/common/node_modules/mkdirp": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-2.1.6.tgz", - "integrity": "sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==", - "dev": true, - "bin": { - "mkdirp": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "dev": true + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.12.tgz", + "integrity": "sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ==", + "dev": true, + "license": "MIT" }, "node_modules/@tsconfig/node12": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@tsconfig/node14": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@tsconfig/node16": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", - "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", - "dev": true + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true, + "license": "MIT" }, "node_modules/@types/cacheable-request": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", "dev": true, + "license": "MIT", "dependencies": { "@types/http-cache-semantics": "*", "@types/keyv": "^3.1.4", @@ -3995,23 +3968,19 @@ "@types/responselike": "^1.0.0" } }, - "node_modules/@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", - "dev": true - }, "node_modules/@types/cookie": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.3.3.tgz", "integrity": "sha512-LKVP3cgXBT9RYj+t+9FDKwS5tdI+rPBXaNSkma7hvqy35lc7mAokC2zsqWJH0LaqIt3B962nuYI77hsJoT1gow==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/debug": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.9.tgz", - "integrity": "sha512-8Hz50m2eoS56ldRlepxSBa6PWEVCtzUo/92HgLc2qTMnotJNIm7xP+UZhyWoYsyOdd5dxZ+NZLb24rsKyFs2ow==", + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/ms": "*" } @@ -4028,6 +3997,7 @@ "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", "dev": true, + "license": "MIT", "dependencies": { "@types/estree": "*", "@types/json-schema": "*" @@ -4055,13 +4025,15 @@ "version": "1.20.4", "resolved": "https://registry.npmjs.org/@types/expect/-/expect-1.20.4.tgz", "integrity": "sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "@types/minimatch": "*", @@ -4069,13 +4041,14 @@ } }, "node_modules/@types/gulp-svgmin": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@types/gulp-svgmin/-/gulp-svgmin-1.2.1.tgz", - "integrity": "sha512-qT/Y+C2uWJZoGw4oAjuJGZk+ImmTrx+QZbMGSzf8a1absW3wztrmMPvCF64pdogATDVUSPQDLzPWAFeIxylJTA==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@types/gulp-svgmin/-/gulp-svgmin-1.2.5.tgz", + "integrity": "sha512-Vp5rfl/6xG2H9ipXdJrox+H3ymWKrG0iuyxdYTfJpEizzFsCGLD9VygWZ/UfYvPb3KuS787ZYhD3EveIQgmXuw==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*", - "@types/svgo": "^1", + "@types/svgo": "1", "@types/vinyl": "*" } }, @@ -4087,10 +4060,11 @@ "license": "MIT" }, "node_modules/@types/http-proxy-agent": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/http-proxy-agent/-/http-proxy-agent-2.0.1.tgz", - "integrity": "sha512-dgsgbsgI3t+ZkdzF9H19uBaLsurIZJJjJsVpj4mCLp8B6YghQ7jVwyqhaL0PcVtuC3nOi0ZBhAi2Dd9jCUwdFA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@types/http-proxy-agent/-/http-proxy-agent-2.0.2.tgz", + "integrity": "sha512-2S6IuBRhqUnH1/AUx9k8KWtY3Esg4eqri946MnxTG5HwehF1S5mqLln8fcyMiuQkY72p2gH3W+rIPqp5li0LyQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -4099,41 +4073,47 @@ "version": "2.0.6", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", - "dev": true + "dev": true, + "license": "MIT" }, "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==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/kerberos": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/kerberos/-/kerberos-1.1.2.tgz", - "integrity": "sha512-cLixfcXjdj7qohLasmC1G4fh+en4e4g7mFZiG38D+K9rS9BRKFlq1JH5dGkQzICckbu4wM+RcwSa4VRHlBg7Rg==", - "dev": true + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@types/kerberos/-/kerberos-1.1.5.tgz", + "integrity": "sha512-eljovuC0f1+6a4R8CSGwlP8P7OGygDoYJ4Yo0PtKYN4NOQEOkLH7tCQ3humCMz3lsGd0hOTyyjxHP+S3N/KtFg==", + "dev": true, + "license": "MIT" }, "node_modules/@types/keyv": { "version": "3.1.4", "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", "dev": true, + "license": "MIT", "optional": true }, "node_modules/@types/minimist": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.1.tgz", - "integrity": "sha512-fZQQafSREFyuZcdWFAExYjBiCL7AUCdgsk80iO0q4yihYYdcIiH28CcuPTGFgLOCC8RlW49GSQxdHwZP+I7CNg==", - "dev": true + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==", + "dev": true, + "license": "MIT" }, "node_modules/@types/mocha": { "version": "10.0.10", @@ -4143,15 +4123,16 @@ "license": "MIT" }, "node_modules/@types/ms": { - "version": "0.7.32", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.32.tgz", - "integrity": "sha512-xPSg0jm4mqgEkNhowKgZFBNtwoEwF6gJ4Dhww+GFpm3IgtNseHQZ5IqdNwnquZEoANxyDAKDRAdVo4Z72VvD/g==", - "dev": true + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "dev": true, + "license": "MIT" }, "node_modules/@types/node": { - "version": "22.18.13", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.18.13.tgz", - "integrity": "sha512-Bo45YKIjnmFtv6I1TuC8AaHBbqXtIo+Om5fE4QiU1Tj8QR/qt+8O3BAtOimG5IFmwaWiPmB3Mv3jtYzBA4Us2A==", + "version": "22.19.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.1.tgz", + "integrity": "sha512-LCCV0HdSZZZb34qifBsyWlUmok6W7ouER+oQIGBScS8EsZsQbrtFTUrDX4hOl+CS6p7cnNC4td+qrSVGSCTUfQ==", "license": "MIT", "dependencies": { "undici-types": "~6.21.0" @@ -4168,13 +4149,13 @@ } }, "node_modules/@types/react": { - "version": "19.2.5", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.5.tgz", - "integrity": "sha512-keKxkZMqnDicuvFoJbzrhbtdLSPhj/rZThDlKWCDbgXmUg0rEUFtRssDXKYmtXluZlIqiC5VqkCgRwzuyLHKHw==", + "version": "19.2.6", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.6.tgz", + "integrity": "sha512-p/jUvulfgU7oKtj6Xpk8cA2Y1xKTtICGpJYeJXz2YVO2UcvjQgeRMLDGfDeqeRW2Ta+0QNFwcc8X3GH8SxZz6w==", "dev": true, "license": "MIT", "dependencies": { - "csstype": "^3.0.2" + "csstype": "^3.2.2" } }, "node_modules/@types/react-dom": { @@ -4188,42 +4169,54 @@ } }, "node_modules/@types/responselike": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", - "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", + "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/semver": { - "version": "7.5.8", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", - "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==" + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==", + "license": "MIT" }, "node_modules/@types/sinon": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-10.0.2.tgz", - "integrity": "sha512-BHn8Bpkapj8Wdfxvh2jWIUoaYB/9/XhsL0oOvBfRagJtKlSl9NWPcFOz2lRukI9szwGxFtYZCTejJSqsGDbdmw==", + "version": "10.0.20", + "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-10.0.20.tgz", + "integrity": "sha512-2APKKruFNCAZgx3daAyACGzWuJ028VVCUDk6o2rw/Z4PXT0ogwdV4KUegW0MwVs0Zu59auPXbbuBJHF12Sx1Eg==", "dev": true, + "license": "MIT", "dependencies": { - "@sinonjs/fake-timers": "^7.1.0" + "@types/sinonjs__fake-timers": "*" } }, "node_modules/@types/sinon-test": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@types/sinon-test/-/sinon-test-2.4.2.tgz", - "integrity": "sha512-3BX9mk5+o//Xzs5N4bFYxPT+QlPLrqbyNfDWkIGtk9pVIp2Nl8ctsIGXsY3F01DsCd1Zlin3FqAk6V5XqkCyJA==", + "version": "2.4.7", + "resolved": "https://registry.npmjs.org/@types/sinon-test/-/sinon-test-2.4.7.tgz", + "integrity": "sha512-65eD6l9NBsFDGT5XIJQ605Qmk1sRcY9GFWj+BDmKPdDY1mMnPFr3dVOkMmm9CmAeZCREFJbDKsILVeqyIxH+5Q==", "dev": true, + "license": "MIT", "dependencies": { "@types/sinon": "*" } }, + "node_modules/@types/sinonjs__fake-timers": { + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-15.0.1.tgz", + "integrity": "sha512-Ko2tjWJq8oozHzHV+reuvS5KYIRAokHnGbDwGh/J64LntgpbuylF74ipEL24HCyRjf9FOlBiBHWBR1RlVKsI1w==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/svgo": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/@types/svgo/-/svgo-1.3.6.tgz", "integrity": "sha512-AZU7vQcy/4WFEuwnwsNsJnFwupIpbllH1++LXScN6uxT1Z4zPzdrWG97w4/I7eFKFTvfy/bHFStWjdBAg2Vjug==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/trusted-types": { "version": "2.0.7", @@ -4232,36 +4225,30 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/tunnel": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/@types/tunnel/-/tunnel-0.0.3.tgz", - "integrity": "sha512-sOUTGn6h1SfQ+gbgqC364jLFBw2lnFqkgF3q0WovEHRLMrVD1sd5aufqi/aJObLekJO+Aq5z646U4Oxy6shXMA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/vinyl": { "version": "2.0.12", "resolved": "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.12.tgz", "integrity": "sha512-Sr2fYMBUVGYq8kj3UthXFAu5UN6ZW+rYr4NACjZQJvHvj+c8lYv0CahmZ2P/r7iUkN44gGUBwqxZkrKXYPb7cw==", "dev": true, + "license": "MIT", "dependencies": { "@types/expect": "^1.20.4", "@types/node": "*" } }, "node_modules/@types/vscode-notebook-renderer": { - "version": "1.72.0", - "resolved": "https://registry.npmjs.org/@types/vscode-notebook-renderer/-/vscode-notebook-renderer-1.72.0.tgz", - "integrity": "sha512-5iTjb39DpLn03ULUwrDR3L2Dy59RV4blSUHy0oLdQuIY11PhgWO4mXIcoFS0VxY1GZQ4IcjSf3ooT2Jrrcahnw==", - "dev": true + "version": "1.72.4", + "resolved": "https://registry.npmjs.org/@types/vscode-notebook-renderer/-/vscode-notebook-renderer-1.72.4.tgz", + "integrity": "sha512-bdKO41c6Dc24pH/O/eM/jqfCwGH4zc76o/g/6Gt1y/eg/bvvqP2/VpbV+Sa5Te2sZekFRcbYnSSFTKo3wcVGUg==", + "dev": true, + "license": "MIT" }, "node_modules/@types/webpack": { "version": "5.28.5", "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-5.28.5.tgz", "integrity": "sha512-wR87cgvxj3p6D0Crt1r5avwqffqPXUkNlnQ1mjU93G7gCuFjufZR4I6j8cz5g1F1tTYpfOOFvly+cmIQwL9wvw==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*", "tapable": "^2.2.0", @@ -4279,44 +4266,48 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/@types/windows-foreground-love/-/windows-foreground-love-0.3.0.tgz", "integrity": "sha512-tFUVA/fiofNqOh6lZlymvQiQYPY+cZXZPR9mn9wN6/KS8uwx0zgH4Ij/jmFyRYr+x+DGZWEIeknS2BMi7FZJAQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/winreg": { - "version": "1.2.30", - "resolved": "https://registry.npmjs.org/@types/winreg/-/winreg-1.2.30.tgz", - "integrity": "sha1-kdZxDlNtNFucmwF8V0z2qNpkxRg= sha512-c4m/hnOI1j34i8hXlkZzelE6SXfOqaTWhBp0UgBuwmpiafh22OpsE261Rlg//agZtQHIY5cMgbkX8bnthUFrmA==", - "dev": true + "version": "1.2.36", + "resolved": "https://registry.npmjs.org/@types/winreg/-/winreg-1.2.36.tgz", + "integrity": "sha512-DtafHy5A8hbaosXrbr7YdjQZaqVewXmiasRS5J4tYMzt3s1gkh40ixpxgVFfKiQ0JIYetTJABat47v9cpr/sQg==", + "dev": true, + "license": "MIT" }, "node_modules/@types/yauzl": { "version": "2.10.3", "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/yazl": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@types/yazl/-/yazl-2.4.2.tgz", - "integrity": "sha512-T+9JH8O2guEjXNxqmybzQ92mJUh2oCwDDMSSimZSe1P+pceZiFROZLYmcbqkzV5EUwz6VwcKXCO2S2yUpra6XQ==", + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/@types/yazl/-/yazl-2.4.6.tgz", + "integrity": "sha512-/ifFjQtcKaoZOjl5NNCQRR0fAKafB3Foxd7J/WvFPTMea46zekapcR30uzkwIkKAAuq5T6d0dkwz754RFH27hg==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.45.0.tgz", - "integrity": "sha512-HC3y9CVuevvWCl/oyZuI47dOeDF9ztdMEfMH8/DW/Mhwa9cCLnK1oD7JoTVGW/u7kFzNZUKUoyJEqkaJh5y3Wg==", + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.47.0.tgz", + "integrity": "sha512-fe0rz9WJQ5t2iaLfdbDc9T80GJy0AeO453q8C3YCilnGozvOyCG5t+EZtg7j7D88+c3FipfP/x+wzGnh1xp8ZA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.45.0", - "@typescript-eslint/type-utils": "8.45.0", - "@typescript-eslint/utils": "8.45.0", - "@typescript-eslint/visitor-keys": "8.45.0", + "@typescript-eslint/scope-manager": "8.47.0", + "@typescript-eslint/type-utils": "8.47.0", + "@typescript-eslint/utils": "8.47.0", + "@typescript-eslint/visitor-keys": "8.47.0", "graphemer": "^1.4.0", "ignore": "^7.0.0", "natural-compare": "^1.4.0", @@ -4330,7 +4321,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.45.0", + "@typescript-eslint/parser": "^8.47.0", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } @@ -4346,16 +4337,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.45.0.tgz", - "integrity": "sha512-TGf22kon8KW+DeKaUmOibKWktRY8b2NSAZNdtWh798COm1NWx8+xJ6iFBtk3IvLdv6+LGLJLRlyhrhEDZWargQ==", + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.47.0.tgz", + "integrity": "sha512-lJi3PfxVmo0AkEY93ecfN+r8SofEqZNGByvHAI3GBLrvt1Cw6H5k1IM02nSzu0RfUafr2EvFSw0wAsZgubNplQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.45.0", - "@typescript-eslint/types": "8.45.0", - "@typescript-eslint/typescript-estree": "8.45.0", - "@typescript-eslint/visitor-keys": "8.45.0", + "@typescript-eslint/scope-manager": "8.47.0", + "@typescript-eslint/types": "8.47.0", + "@typescript-eslint/typescript-estree": "8.47.0", + "@typescript-eslint/visitor-keys": "8.47.0", "debug": "^4.3.4" }, "engines": { @@ -4371,14 +4362,14 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.45.0.tgz", - "integrity": "sha512-3pcVHwMG/iA8afdGLMuTibGR7pDsn9RjDev6CCB+naRsSYs2pns5QbinF4Xqw6YC/Sj3lMrm/Im0eMfaa61WUg==", + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.47.0.tgz", + "integrity": "sha512-2X4BX8hUeB5JcA1TQJ7GjcgulXQ+5UkNb0DL8gHsHUHdFoiCTJoYLTpib3LtSDPZsRET5ygN4qqIWrHyYIKERA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.45.0", - "@typescript-eslint/types": "^8.45.0", + "@typescript-eslint/tsconfig-utils": "^8.47.0", + "@typescript-eslint/types": "^8.47.0", "debug": "^4.3.4" }, "engines": { @@ -4393,14 +4384,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.45.0.tgz", - "integrity": "sha512-clmm8XSNj/1dGvJeO6VGH7EUSeA0FMs+5au/u3lrA3KfG8iJ4u8ym9/j2tTEoacAffdW1TVUzXO30W1JTJS7dA==", + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.47.0.tgz", + "integrity": "sha512-a0TTJk4HXMkfpFkL9/WaGTNuv7JWfFTQFJd6zS9dVAjKsojmv9HT55xzbEpnZoY+VUb+YXLMp+ihMLz/UlZfDg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.45.0", - "@typescript-eslint/visitor-keys": "8.45.0" + "@typescript-eslint/types": "8.47.0", + "@typescript-eslint/visitor-keys": "8.47.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -4411,9 +4402,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.45.0.tgz", - "integrity": "sha512-aFdr+c37sc+jqNMGhH+ajxPXwjv9UtFZk79k8pLoJ6p4y0snmYpPA52GuWHgt2ZF4gRRW6odsEj41uZLojDt5w==", + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.47.0.tgz", + "integrity": "sha512-ybUAvjy4ZCL11uryalkKxuT3w3sXJAuWhOoGS3T/Wu+iUu1tGJmk5ytSY8gbdACNARmcYEB0COksD2j6hfGK2g==", "dev": true, "license": "MIT", "engines": { @@ -4428,15 +4419,15 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.45.0.tgz", - "integrity": "sha512-bpjepLlHceKgyMEPglAeULX1vixJDgaKocp0RVJ5u4wLJIMNuKtUXIczpJCPcn2waII0yuvks/5m5/h3ZQKs0A==", + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.47.0.tgz", + "integrity": "sha512-QC9RiCmZ2HmIdCEvhd1aJELBlD93ErziOXXlHEZyuBo3tBiAZieya0HLIxp+DoDWlsQqDawyKuNEhORyku+P8A==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.45.0", - "@typescript-eslint/typescript-estree": "8.45.0", - "@typescript-eslint/utils": "8.45.0", + "@typescript-eslint/types": "8.47.0", + "@typescript-eslint/typescript-estree": "8.47.0", + "@typescript-eslint/utils": "8.47.0", "debug": "^4.3.4", "ts-api-utils": "^2.1.0" }, @@ -4453,9 +4444,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.45.0.tgz", - "integrity": "sha512-WugXLuOIq67BMgQInIxxnsSyRLFxdkJEJu8r4ngLR56q/4Q5LrbfkFRH27vMTjxEK8Pyz7QfzuZe/G15qQnVRA==", + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.47.0.tgz", + "integrity": "sha512-nHAE6bMKsizhA2uuYZbEbmp5z2UpffNrPEqiKIeN7VsV6UY/roxanWfoRrf6x/k9+Obf+GQdkm0nPU+vnMXo9A==", "dev": true, "license": "MIT", "engines": { @@ -4467,16 +4458,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.45.0.tgz", - "integrity": "sha512-GfE1NfVbLam6XQ0LcERKwdTTPlLvHvXXhOeUGC1OXi4eQBoyy1iVsW+uzJ/J9jtCz6/7GCQ9MtrQ0fml/jWCnA==", + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.47.0.tgz", + "integrity": "sha512-k6ti9UepJf5NpzCjH31hQNLHQWupTRPhZ+KFF8WtTuTpy7uHPfeg2NM7cP27aCGajoEplxJDFVCEm9TGPYyiVg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.45.0", - "@typescript-eslint/tsconfig-utils": "8.45.0", - "@typescript-eslint/types": "8.45.0", - "@typescript-eslint/visitor-keys": "8.45.0", + "@typescript-eslint/project-service": "8.47.0", + "@typescript-eslint/tsconfig-utils": "8.47.0", + "@typescript-eslint/types": "8.47.0", + "@typescript-eslint/visitor-keys": "8.47.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -4522,16 +4513,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.45.0.tgz", - "integrity": "sha512-bxi1ht+tLYg4+XV2knz/F7RVhU0k6VrSMc9sb8DQ6fyCTrGQLHfo7lDtN0QJjZjKkLA2ThrKuCdHEvLReqtIGg==", + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.47.0.tgz", + "integrity": "sha512-g7XrNf25iL4TJOiPqatNuaChyqt49a/onq5YsJ9+hXeugK+41LVg7AxikMfM02PC6jbNtZLCJj6AUcQXJS/jGQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.7.0", - "@typescript-eslint/scope-manager": "8.45.0", - "@typescript-eslint/types": "8.45.0", - "@typescript-eslint/typescript-estree": "8.45.0" + "@typescript-eslint/scope-manager": "8.47.0", + "@typescript-eslint/types": "8.47.0", + "@typescript-eslint/typescript-estree": "8.47.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -4546,13 +4537,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.45.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.45.0.tgz", - "integrity": "sha512-qsaFBA3e09MIDAGFUrTk+dzqtfv1XPVz8t8d1f0ybTzrCY7BKiMC5cjrl1O/P7UmHsNyW90EYSkU/ZWpmXelag==", + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.47.0.tgz", + "integrity": "sha512-SIV3/6eftCy1bNzCQoPmbWsRLujS8t5iDIZ4spZOBHqrM+yfX2ogg8Tt3PDTAVKw3sSCiUgg30uOAvK2r9zGjQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.45.0", + "@typescript-eslint/types": "8.47.0", "eslint-visitor-keys": "^4.2.1" }, "engines": { @@ -4563,42 +4554,29 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "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==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, "node_modules/@typescript/native-preview": { - "version": "7.0.0-dev.20251027.1", - "resolved": "https://registry.npmjs.org/@typescript/native-preview/-/native-preview-7.0.0-dev.20251027.1.tgz", - "integrity": "sha512-djbOSIm8Or967wMuO209ydMp2nq34hEulah1EhjUsLSqLplsbOk8RSOyVJJphU+CMP33rULDcnDAzvylU8Tq9Q==", + "version": "7.0.0-dev.20251123.1", + "resolved": "https://registry.npmjs.org/@typescript/native-preview/-/native-preview-7.0.0-dev.20251123.1.tgz", + "integrity": "sha512-6RhDqHTom3N4QMxZYiWXxaye2bDdsVgbsPcW7J3bMCp5LVATi3KP2zYk2SZpZLJVQ0es5E/6FHLk5Gyjeb0Jzw==", "dev": true, "license": "Apache-2.0", "bin": { "tsgo": "bin/tsgo.js" }, "optionalDependencies": { - "@typescript/native-preview-darwin-arm64": "7.0.0-dev.20251027.1", - "@typescript/native-preview-darwin-x64": "7.0.0-dev.20251027.1", - "@typescript/native-preview-linux-arm": "7.0.0-dev.20251027.1", - "@typescript/native-preview-linux-arm64": "7.0.0-dev.20251027.1", - "@typescript/native-preview-linux-x64": "7.0.0-dev.20251027.1", - "@typescript/native-preview-win32-arm64": "7.0.0-dev.20251027.1", - "@typescript/native-preview-win32-x64": "7.0.0-dev.20251027.1" + "@typescript/native-preview-darwin-arm64": "7.0.0-dev.20251123.1", + "@typescript/native-preview-darwin-x64": "7.0.0-dev.20251123.1", + "@typescript/native-preview-linux-arm": "7.0.0-dev.20251123.1", + "@typescript/native-preview-linux-arm64": "7.0.0-dev.20251123.1", + "@typescript/native-preview-linux-x64": "7.0.0-dev.20251123.1", + "@typescript/native-preview-win32-arm64": "7.0.0-dev.20251123.1", + "@typescript/native-preview-win32-x64": "7.0.0-dev.20251123.1" } }, "node_modules/@typescript/native-preview-darwin-arm64": { - "version": "7.0.0-dev.20251027.1", - "resolved": "https://registry.npmjs.org/@typescript/native-preview-darwin-arm64/-/native-preview-darwin-arm64-7.0.0-dev.20251027.1.tgz", - "integrity": "sha512-4Nysrmep6Z4C722nQF07XkEk22qyI2/vCfvfPSlhOxpJJcIFAroxSkSH7Qy8EDZWhNer9D4CMTYX9q5I8B75lQ==", + "version": "7.0.0-dev.20251123.1", + "resolved": "https://registry.npmjs.org/@typescript/native-preview-darwin-arm64/-/native-preview-darwin-arm64-7.0.0-dev.20251123.1.tgz", + "integrity": "sha512-Fr9BVEIPCapAt+nEi+tOV0tOCYG39/cNjeULPmqj07YvxhDpkU73rMShnbrXguY5Pprgi570ks5S8MI45YePIw==", "cpu": [ "arm64" ], @@ -4610,9 +4588,9 @@ ] }, "node_modules/@typescript/native-preview-darwin-x64": { - "version": "7.0.0-dev.20251027.1", - "resolved": "https://registry.npmjs.org/@typescript/native-preview-darwin-x64/-/native-preview-darwin-x64-7.0.0-dev.20251027.1.tgz", - "integrity": "sha512-WvHLb6Mry214ZTuhfvv6fP1FLgYZ4oTw55+B2hTAo/O6qq9KX3OW90dvFYSMJKPhgvWR5B9tIEcMkIXGjxfv1w==", + "version": "7.0.0-dev.20251123.1", + "resolved": "https://registry.npmjs.org/@typescript/native-preview-darwin-x64/-/native-preview-darwin-x64-7.0.0-dev.20251123.1.tgz", + "integrity": "sha512-FH9IRdvFqxPyez9k775jK00ms7d9+X3m2Kc3LcAUV3Hiwxlzfs/Q06WWDeQV20WkVHr78hxcZGlIeqt1yGZC5Q==", "cpu": [ "x64" ], @@ -4624,9 +4602,9 @@ ] }, "node_modules/@typescript/native-preview-linux-arm": { - "version": "7.0.0-dev.20251027.1", - "resolved": "https://registry.npmjs.org/@typescript/native-preview-linux-arm/-/native-preview-linux-arm-7.0.0-dev.20251027.1.tgz", - "integrity": "sha512-epAynE0qbU9nuPwaOgr9N6WANoYAdwhyteNB+PG2qRWYoFDYPXSgParjO1FAkY0uMt88QaS6vQ6ZglInHsxvXQ==", + "version": "7.0.0-dev.20251123.1", + "resolved": "https://registry.npmjs.org/@typescript/native-preview-linux-arm/-/native-preview-linux-arm-7.0.0-dev.20251123.1.tgz", + "integrity": "sha512-ty7UBZwyAZUrSmVBavOnQ+nQia/oB3BfY3LOZW4xyfSGEhNQQFebZMlUqTh+rD4W+zsgOAa7+TGLB7HT9mHyQg==", "cpu": [ "arm" ], @@ -4638,9 +4616,9 @@ ] }, "node_modules/@typescript/native-preview-linux-arm64": { - "version": "7.0.0-dev.20251027.1", - "resolved": "https://registry.npmjs.org/@typescript/native-preview-linux-arm64/-/native-preview-linux-arm64-7.0.0-dev.20251027.1.tgz", - "integrity": "sha512-CNbTvppx8wsoRS3g4RcpDapRp4tNYp1eu+94HmtKT7ch3RJOliKIhAa/8odXIrkqnT+kc0wrQCzFiICMW4YieQ==", + "version": "7.0.0-dev.20251123.1", + "resolved": "https://registry.npmjs.org/@typescript/native-preview-linux-arm64/-/native-preview-linux-arm64-7.0.0-dev.20251123.1.tgz", + "integrity": "sha512-eHfHopS+hcoHD49bg0IIg5SYVGk4Ljq8aFZRko83LUv9vN8Zs8DBmQL6APgs3triIQMEONjqArh6v9YkpOmjHA==", "cpu": [ "arm64" ], @@ -4652,9 +4630,9 @@ ] }, "node_modules/@typescript/native-preview-linux-x64": { - "version": "7.0.0-dev.20251027.1", - "resolved": "https://registry.npmjs.org/@typescript/native-preview-linux-x64/-/native-preview-linux-x64-7.0.0-dev.20251027.1.tgz", - "integrity": "sha512-lzSUTdWYfKvsQJPQF/BtYil1Xmzn0f3jpgk8/4uVg4NQeDtzW0J3ceWl2lw1TuGnhISq2dwyupjKJfLQhe4AVQ==", + "version": "7.0.0-dev.20251123.1", + "resolved": "https://registry.npmjs.org/@typescript/native-preview-linux-x64/-/native-preview-linux-x64-7.0.0-dev.20251123.1.tgz", + "integrity": "sha512-Z3H+XSRrhpbhZnmeyDbqGZ4mDkxG54QO1ZIxPGRyhurBwTjdMiEI8SeCVXA54KwSgM1oeAKZS765DN7+9WTI7A==", "cpu": [ "x64" ], @@ -4666,9 +4644,9 @@ ] }, "node_modules/@typescript/native-preview-win32-arm64": { - "version": "7.0.0-dev.20251027.1", - "resolved": "https://registry.npmjs.org/@typescript/native-preview-win32-arm64/-/native-preview-win32-arm64-7.0.0-dev.20251027.1.tgz", - "integrity": "sha512-K9K8t3HW/35ejgVJALPW9Fqo0PHOxh1/ir01C8r5qbhIdPQqwGlBHAGwLzrfH0ZF1R2nR2X4T+z+gB8tLULsow==", + "version": "7.0.0-dev.20251123.1", + "resolved": "https://registry.npmjs.org/@typescript/native-preview-win32-arm64/-/native-preview-win32-arm64-7.0.0-dev.20251123.1.tgz", + "integrity": "sha512-K89G2e7r/vNkeJkR1QdxZwc7WWxsjqmi4TJCrppS7gkXCcLXHmFcSInKn4T5ewfjLe2yrGoLPtAoitP/5f23pQ==", "cpu": [ "arm64" ], @@ -4680,9 +4658,9 @@ ] }, "node_modules/@typescript/native-preview-win32-x64": { - "version": "7.0.0-dev.20251027.1", - "resolved": "https://registry.npmjs.org/@typescript/native-preview-win32-x64/-/native-preview-win32-x64-7.0.0-dev.20251027.1.tgz", - "integrity": "sha512-n7hb7ZjAEgoNBWYSt87+eMtSK2h6Xl9NWUd2ocw3Znz/tw8lwpUaG35FVd/Aj72kT1/5kiCBlM+7MxA214KGiw==", + "version": "7.0.0-dev.20251123.1", + "resolved": "https://registry.npmjs.org/@typescript/native-preview-win32-x64/-/native-preview-win32-x64-7.0.0-dev.20251123.1.tgz", + "integrity": "sha512-Z++8epMjd5Ptz/BihxXbEUjyqPo6x0kPkNbQT8QRSCovyGhm6KST9itEYCvD5ta1J0c5EqAJL5c8krjOHeNwGQ==", "cpu": [ "x64" ], @@ -4693,11 +4671,27 @@ "win32" ] }, + "node_modules/@typespec/ts-http-runtime": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@typespec/ts-http-runtime/-/ts-http-runtime-0.3.2.tgz", + "integrity": "sha512-IlqQ/Gv22xUC1r/WQm4StLkYQmaaTsXAhUVsNE0+xiyf0yRFiH5++q78U3bw6bLKDCTmh0uqKB9eG9+Bt75Dkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, "node_modules/@vscode/deviceid": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@vscode/deviceid/-/deviceid-0.1.1.tgz", - "integrity": "sha512-ErpoMeKKNYAkR1IT3zxB5RtiTqEECdh8fxggupWvzuxpTAX77hwOI2NdJ7um+vupnXRBZVx4ugo0+dVHJWUkag==", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@vscode/deviceid/-/deviceid-0.1.2.tgz", + "integrity": "sha512-QZsbcKGd5JMBVoKIVT+HD9o8YWWqcmKRNWvR3qWj3iXuDo8fKaZXY3k3ZGMdOAK36fCgL0zGTDkt9vWmeBwNvQ==", "hasInstallScript": true, + "license": "MIT", "dependencies": { "fs-extra": "^11.2.0", "uuid": "^9.0.1" @@ -4732,235 +4726,14 @@ "node": ">=22" } }, - "node_modules/@vscode/gulp-electron/node_modules/@electron/get": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@electron/get/-/get-4.0.1.tgz", - "integrity": "sha512-fTMFb/ZiK6xQace5YZlhT+vNR08ogat9SqpvwpaC9vD6hgx7ouz9cdcrSrFuNji4823Jmmy90/CDhJq0I4vRFA==", + "node_modules/@vscode/gulp-electron/node_modules/gulp-rename": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-1.2.2.tgz", + "integrity": "sha512-qhfUlYwq5zIP4cpRjx+np2vZVnr0xCRQrF3RsGel8uqL47Gu3yjmllSfnvJyl/39zYuxS68e1nnxImbm7388vw==", "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.1.1", - "env-paths": "^3.0.0", - "got": "^14.4.5", - "graceful-fs": "^4.2.11", - "progress": "^2.0.3", - "semver": "^7.6.3", - "sumchecker": "^3.0.1" - }, - "engines": { - "node": ">=22.12.0" - }, - "optionalDependencies": { - "global-agent": "^3.0.0" - } - }, - "node_modules/@vscode/gulp-electron/node_modules/@electron/get/node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/@vscode/gulp-electron/node_modules/@sindresorhus/is": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-7.0.2.tgz", - "integrity": "sha512-d9xRovfKNz1SKieM0qJdO+PQonjnnIfSNWfHYnBSJ9hkjm0ZPw6HlxscDXYstp3z+7V2GOFHc+J0CYrYTjqCJw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/@vscode/gulp-electron/node_modules/@szmarczak/http-timer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", - "dev": true, - "license": "MIT", - "dependencies": { - "defer-to-connect": "^2.0.1" - }, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/@vscode/gulp-electron/node_modules/cacheable-lookup": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", - "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.16" - } - }, - "node_modules/@vscode/gulp-electron/node_modules/cacheable-request": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-12.0.1.tgz", - "integrity": "sha512-Yo9wGIQUaAfIbk+qY0X4cDQgCosecfBe3V9NSyeY4qPC2SAkbCS4Xj79VP8WOzitpJUZKc/wsRCYF5ariDIwkg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/http-cache-semantics": "^4.0.4", - "get-stream": "^9.0.1", - "http-cache-semantics": "^4.1.1", - "keyv": "^4.5.4", - "mimic-response": "^4.0.0", - "normalize-url": "^8.0.1", - "responselike": "^3.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@vscode/gulp-electron/node_modules/env-paths": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-3.0.0.tgz", - "integrity": "sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@vscode/gulp-electron/node_modules/get-stream": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", - "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@sec-ant/readable-stream": "^0.4.1", - "is-stream": "^4.0.1" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@vscode/gulp-electron/node_modules/got": { - "version": "14.4.7", - "resolved": "https://registry.npmjs.org/got/-/got-14.4.7.tgz", - "integrity": "sha512-DI8zV1231tqiGzOiOzQWDhsBmncFW7oQDH6Zgy6pDPrqJuVZMtoSgPLLsBZQj8Jg4JFfwoOsDA8NGtLQLnIx2g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@sindresorhus/is": "^7.0.1", - "@szmarczak/http-timer": "^5.0.1", - "cacheable-lookup": "^7.0.0", - "cacheable-request": "^12.0.1", - "decompress-response": "^6.0.0", - "form-data-encoder": "^4.0.2", - "http2-wrapper": "^2.2.1", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^4.0.1", - "responselike": "^3.0.0", - "type-fest": "^4.26.1" - }, - "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/@vscode/gulp-electron/node_modules/http2-wrapper": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", - "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.2.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "node_modules/@vscode/gulp-electron/node_modules/is-stream": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", - "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@vscode/gulp-electron/node_modules/lowercase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@vscode/gulp-electron/node_modules/mimic-response": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", - "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@vscode/gulp-electron/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/@vscode/gulp-electron/node_modules/normalize-url": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.2.tgz", - "integrity": "sha512-Ee/R3SyN4BuynXcnTaekmaVdbDAEiNrHqjQIA37mHU8G9pf7aaAD4ZX3XjBLo6rsdcxA/gtkcNYZLt30ACgynw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@vscode/gulp-electron/node_modules/p-cancelable": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-4.0.1.tgz", - "integrity": "sha512-wBowNApzd45EIKdO1LaU+LrMBwAcjfPaYtVzV3lmfM3gf8Z4CHZsiIqlM8TZZ8okYvh5A1cP6gTfCRQtwUpaUg==", - "dev": true, - "license": "MIT", "engines": { - "node": ">=14.16" + "node": ">=0.10.0", + "npm": ">=1.2.10" } }, "node_modules/@vscode/gulp-electron/node_modules/rcedit": { @@ -4976,22 +4749,6 @@ "node": ">= 14.0.0" } }, - "node_modules/@vscode/gulp-electron/node_modules/responselike": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", - "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", - "dev": true, - "license": "MIT", - "dependencies": { - "lowercase-keys": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@vscode/iconv-lite-umd": { "version": "0.7.1", "resolved": "https://registry.npmjs.org/@vscode/iconv-lite-umd/-/iconv-lite-umd-0.7.1.tgz", @@ -5003,6 +4760,7 @@ "resolved": "https://registry.npmjs.org/@vscode/l10n-dev/-/l10n-dev-0.0.35.tgz", "integrity": "sha512-s6uzBXsVDSL69Z85HSqpc5dfKswQkeucY8L00t1TWzGalw7wkLQUKMRwuzqTq+AMwQKrRd7Po14cMoTcd11iDw==", "dev": true, + "license": "MIT", "dependencies": { "@azure-rest/ai-translation-text": "^1.0.0-beta.1", "debug": "^4.3.4", @@ -5030,32 +4788,32 @@ } }, "node_modules/@vscode/l10n-dev/node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", "dev": true, + "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/@vscode/l10n-dev/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -5066,10 +4824,20 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/@vscode/l10n-dev/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/@vscode/policy-watcher": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@vscode/policy-watcher/-/policy-watcher-1.3.2.tgz", - "integrity": "sha512-fmNPYysU2ioH99uCaBPiRblEZSnir5cTmc7w91hAxAoYoGpHt2PZPxT5eIOn7FGmPOsjLdQcd6fduFJGYVD4Mw==", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@vscode/policy-watcher/-/policy-watcher-1.3.4.tgz", + "integrity": "sha512-BEr1G/zUDybqqu83u81sJSNYYtwB8NzDRdVD4nuy+8/5qmDVdQ7PBA6alb0uz3op9hz5UkFfFn7fxaIT8ZVzcQ==", "hasInstallScript": true, "license": "MIT", "dependencies": { @@ -5078,9 +4846,9 @@ } }, "node_modules/@vscode/policy-watcher/node_modules/node-addon-api": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.2.0.tgz", - "integrity": "sha512-qnyuI2ROiCkye42n9Tj5aX1ns7rzj6n7zW1XReSnLSL9v/vbLeR6fJq6PU27YU/ICfYw6W7Ouk/N7cysWu/hlw==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.5.0.tgz", + "integrity": "sha512-/bRZty2mXUIFY/xU5HLvveNHlswNJej+RnxBjOMkidWfwZzgTbPG1E3K5TOxRLOR+5hX7bSofy8yf1hZevMS8A==", "license": "MIT", "engines": { "node": "^18 || ^20 || >= 21" @@ -5108,9 +4876,9 @@ } }, "node_modules/@vscode/ripgrep": { - "version": "1.15.14", - "resolved": "https://registry.npmjs.org/@vscode/ripgrep/-/ripgrep-1.15.14.tgz", - "integrity": "sha512-/G1UJPYlm+trBWQ6cMO3sv6b8D1+G16WaJH1/DSqw32JOVlzgZbLkDxRyzIpTpv30AcYGMkCf5tUqGlW6HbDWw==", + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/@vscode/ripgrep/-/ripgrep-1.17.0.tgz", + "integrity": "sha512-mBRKm+ASPkUcw4o9aAgfbusIu6H4Sdhw09bjeP1YOBFTJEZAnrnk6WZwzv8NEjgC82f7ILvhmb1WIElSugea6g==", "hasInstallScript": true, "license": "MIT", "dependencies": { @@ -5122,16 +4890,17 @@ "node_modules/@vscode/ripgrep/node_modules/yauzl": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "license": "MIT", "dependencies": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" } }, "node_modules/@vscode/spdlog": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/@vscode/spdlog/-/spdlog-0.15.2.tgz", - "integrity": "sha512-8RQ7JEs81x5IFONYGtFhYtaF2a3IPtNtgMdp+MFLxTDokJQBAVittx0//EN38BYhlzeVqEPgusRsOA8Yulaysg==", + "version": "0.15.3", + "resolved": "https://registry.npmjs.org/@vscode/spdlog/-/spdlog-0.15.3.tgz", + "integrity": "sha512-a5SE9kNpkVYpfmmVrEXt3/jzG+kswDBkHJQC0ntaMUY43GyElKcrLQ6pfVvFDLv/YKRa9I7QTl35TG9QbUsN0Q==", "hasInstallScript": true, "license": "MIT", "dependencies": { @@ -5140,6 +4909,27 @@ "node-addon-api": "7.1.0" } }, + "node_modules/@vscode/spdlog/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@vscode/spdlog/node_modules/node-addon-api": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.0.tgz", + "integrity": "sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==", + "license": "MIT", + "engines": { + "node": "^16 || ^18 || >= 20" + } + }, "node_modules/@vscode/sqlite3": { "version": "5.1.8-vscode", "resolved": "https://registry.npmjs.org/@vscode/sqlite3/-/sqlite3-5.1.8-vscode.tgz", @@ -5152,9 +4942,9 @@ } }, "node_modules/@vscode/sqlite3/node_modules/node-addon-api": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.2.0.tgz", - "integrity": "sha512-qnyuI2ROiCkye42n9Tj5aX1ns7rzj6n7zW1XReSnLSL9v/vbLeR6fJq6PU27YU/ICfYw6W7Ouk/N7cysWu/hlw==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.5.0.tgz", + "integrity": "sha512-/bRZty2mXUIFY/xU5HLvveNHlswNJej+RnxBjOMkidWfwZzgTbPG1E3K5TOxRLOR+5hX7bSofy8yf1hZevMS8A==", "license": "MIT", "engines": { "node": "^18 || ^20 || >= 21" @@ -5163,17 +4953,19 @@ "node_modules/@vscode/sudo-prompt": { "version": "9.3.1", "resolved": "https://registry.npmjs.org/@vscode/sudo-prompt/-/sudo-prompt-9.3.1.tgz", - "integrity": "sha512-9ORTwwS74VaTn38tNbQhsA5U44zkJfcb0BdTSyyG6frP4e8KMtHuTXYmwefe5dpL8XB1aGSIVTaLjD3BbWb5iA==" + "integrity": "sha512-9ORTwwS74VaTn38tNbQhsA5U44zkJfcb0BdTSyyG6frP4e8KMtHuTXYmwefe5dpL8XB1aGSIVTaLjD3BbWb5iA==", + "license": "MIT" }, "node_modules/@vscode/telemetry-extractor": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/@vscode/telemetry-extractor/-/telemetry-extractor-1.10.2.tgz", - "integrity": "sha512-hn+KDSwIRj7LzDSFd9HALkc80UY1g16nQgWztHml+nxAZU3Hw/EoWEEDxOncvDYq9YcV+tX/cVHrVjbNL2Dg0g==", + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/@vscode/telemetry-extractor/-/telemetry-extractor-1.18.0.tgz", + "integrity": "sha512-bj/+tFpdgZHCynotGY/4FxF9rqmLL1geuLyitLkRfiS2BN89B7WQ14g2Q+B7ZOg5G8ZcLIOjnF0p5JNO2HE4hQ==", "dev": true, + "license": "MIT", "dependencies": { - "@vscode/ripgrep": "^1.15.9", - "command-line-args": "^5.2.1", - "ts-morph": "^19.0.0" + "@vscode/ripgrep": "^1.15.10", + "command-line-args": "^6.0.1", + "ts-morph": "^25.0.1" }, "bin": { "vscode-telemetry-extractor": "out/extractor.js" @@ -5184,6 +4976,7 @@ "resolved": "https://registry.npmjs.org/@vscode/test-cli/-/test-cli-0.0.6.tgz", "integrity": "sha512-4i61OUv5PQr3GxhHOuUgHdgBDfIO/kXTPCsEyFiMaY4SOqQTgkTmyZLagHehjOgCfsXdcrJa3zgQ7zoc+Dh6hQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/mocha": "^10.0.2", "c8": "^9.1.0", @@ -5210,32 +5003,32 @@ } }, "node_modules/@vscode/test-cli/node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", "dev": true, + "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/@vscode/test-cli/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -5246,16 +5039,27 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/@vscode/test-cli/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/@vscode/test-electron": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@vscode/test-electron/-/test-electron-2.4.0.tgz", - "integrity": "sha512-yojuDFEjohx6Jb+x949JRNtSn6Wk2FAh4MldLE3ck9cfvCqzwxF32QsNy1T9Oe4oT+ZfFcg0uPUCajJzOmPlTA==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/@vscode/test-electron/-/test-electron-2.5.2.tgz", + "integrity": "sha512-8ukpxv4wYe0iWMRQU18jhzJOHkeGKbnw7xWRX3Zw1WJA4cEKbHcmmLPdPrPtL6rhDcrlCZN+xKRpv09n4gRHYg==", "dev": true, + "license": "MIT", "dependencies": { "http-proxy-agent": "^7.0.2", - "https-proxy-agent": "^7.0.4", + "https-proxy-agent": "^7.0.5", "jszip": "^3.10.1", - "ora": "^7.0.1", + "ora": "^8.1.0", "semver": "^7.6.2" }, "engines": { @@ -5292,25 +5096,16 @@ "node": ">=16" } }, - "node_modules/@vscode/test-web/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, "node_modules/@vscode/test-web/node_modules/glob": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz", - "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.1.0.tgz", + "integrity": "sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^4.0.1", - "minimatch": "^10.0.0", + "foreground-child": "^3.3.1", + "jackspeak": "^4.1.1", + "minimatch": "^10.1.1", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^2.0.0" @@ -5326,10 +5121,11 @@ } }, "node_modules/@vscode/test-web/node_modules/jackspeak": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.1.tgz", - "integrity": "sha512-cub8rahkh0Q/bw1+GxP7aeSe29hHHn2V4m29nnDlvCdlgU+3UGxkZp7Z53jLUdpX3jdTO0nJZUDl3xvbWc2Xog==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.1.1.tgz", + "integrity": "sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, @@ -5338,27 +5134,26 @@ }, "funding": { "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" } }, "node_modules/@vscode/test-web/node_modules/lru-cache": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.1.tgz", - "integrity": "sha512-CgeuL5uom6j/ZVrg7G/+1IXqRY8JXX4Hghfy5YE0EhoYQWvndP1kufu58cmZLNIDKnRhZrXfdS9urVWx98AipQ==", + "version": "11.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.2.tgz", + "integrity": "sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==", "dev": true, + "license": "ISC", "engines": { "node": "20 || >=22" } }, "node_modules/@vscode/test-web/node_modules/minimatch": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", - "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.1.tgz", + "integrity": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { - "brace-expansion": "^2.0.1" + "@isaacs/brace-expansion": "^5.0.0" }, "engines": { "node": "20 || >=22" @@ -5372,15 +5167,17 @@ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, + "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } }, "node_modules/@vscode/test-web/node_modules/path-scurry": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", - "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.1.tgz", + "integrity": "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^11.0.0", "minipass": "^7.1.2" @@ -5402,12 +5199,14 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/@vscode/v8-heap-parser/-/v8-heap-parser-0.1.0.tgz", "integrity": "sha512-3EvQak7EIOLyIGz+IP9qSwRmP08ZRWgTeoRgAXPVkkDXZ8riqJ7LDtkgx++uHBiJ3MUaSdlUYPZcLFFw7E6zGg==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/@vscode/vscode-languagedetection": { "version": "1.0.21", "resolved": "https://registry.npmjs.org/@vscode/vscode-languagedetection/-/vscode-languagedetection-1.0.21.tgz", "integrity": "sha512-zSUH9HYCw5qsCtd7b31yqkpaCU6jhtkKLkvOOA8yTrIRfBSOFb8PPhgmMicD7B/m+t4PwOJXzU1XDtrM9Fd3/g==", + "license": "MIT", "bin": { "vscode-languagedetection": "cli/index.js" } @@ -5417,6 +5216,7 @@ "resolved": "https://registry.npmjs.org/@vscode/vscode-perf/-/vscode-perf-0.0.19.tgz", "integrity": "sha512-E/I0S+71K3Jo4kiMYbeKM8mUG3K8cHlj5MFVfPYVAvlp7KuIZTM914E7osp+jx8XgMLN6fChxnFmntm1GtVrKA==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.x", "commander": "^9.4.0", @@ -5432,6 +5232,27 @@ "node": ">= 16" } }, + "node_modules/@vscode/vscode-perf/node_modules/node-fetch": { + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.8.tgz", + "integrity": "sha512-RZ6dBYuj8dRSfxpUSu+NsdF1dpPpluJxwOp+6IoDp/sH2QNDSvurYsAa+F1WxY2RjA1iP93xhcsUoYbF2XBqVg==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, "node_modules/@vscode/windows-ca-certs": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/@vscode/windows-ca-certs/-/windows-ca-certs-0.3.3.tgz", @@ -5447,9 +5268,9 @@ } }, "node_modules/@vscode/windows-ca-certs/node_modules/node-addon-api": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.2.0.tgz", - "integrity": "sha512-qnyuI2ROiCkye42n9Tj5aX1ns7rzj6n7zW1XReSnLSL9v/vbLeR6fJq6PU27YU/ICfYw6W7Ouk/N7cysWu/hlw==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.5.0.tgz", + "integrity": "sha512-/bRZty2mXUIFY/xU5HLvveNHlswNJej+RnxBjOMkidWfwZzgTbPG1E3K5TOxRLOR+5hX7bSofy8yf1hZevMS8A==", "license": "MIT", "optional": true, "engines": { @@ -5461,25 +5282,46 @@ "resolved": "https://registry.npmjs.org/@vscode/windows-mutex/-/windows-mutex-0.5.0.tgz", "integrity": "sha512-iD29L9AUscpn07aAvhP2QuhrXzuKc1iQpPF6u7ybtvRbR+o+RotfbuKqqF1RDlDDrJZkL+3AZTy4D01U4nEe5A==", "hasInstallScript": true, + "license": "MIT", "dependencies": { "bindings": "^1.5.0", "node-addon-api": "7.1.0" } }, + "node_modules/@vscode/windows-mutex/node_modules/node-addon-api": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.0.tgz", + "integrity": "sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==", + "license": "MIT", + "engines": { + "node": "^16 || ^18 || >= 20" + } + }, "node_modules/@vscode/windows-process-tree": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/@vscode/windows-process-tree/-/windows-process-tree-0.6.0.tgz", "integrity": "sha512-7/DjBKKUtlmKNiAet2GRbdvfjgMKmfBeWVClIgONv8aqxGnaKca5N85eIDxh6rLMy2hKvFqIIsqgxs1Q26TWwg==", "hasInstallScript": true, + "license": "MIT", "dependencies": { "node-addon-api": "7.1.0" } }, + "node_modules/@vscode/windows-process-tree/node_modules/node-addon-api": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.0.tgz", + "integrity": "sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==", + "license": "MIT", + "engines": { + "node": "^16 || ^18 || >= 20" + } + }, "node_modules/@vscode/windows-registry": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@vscode/windows-registry/-/windows-registry-1.1.0.tgz", "integrity": "sha512-5AZzuWJpGscyiMOed0IuyEwt6iKmV5Us7zuwCDCFYMIq7tsvooO9BUiciywsvuthGz6UG4LSpeDeCxvgMVhnIw==", - "hasInstallScript": true + "hasInstallScript": true, + "license": "MIT" }, "node_modules/@webassemblyjs/ast": { "version": "1.14.1", @@ -5643,16 +5485,18 @@ } }, "node_modules/@webgpu/types": { - "version": "0.1.44", - "resolved": "https://registry.npmjs.org/@webgpu/types/-/types-0.1.44.tgz", - "integrity": "sha512-JDpYJN5E/asw84LTYhKyvPpxGnD+bAKPtpW9Ilurf7cZpxaTbxkQcGwOd7jgB9BPBrTYQ+32ufo4HiuomTjHNQ==", - "dev": true + "version": "0.1.66", + "resolved": "https://registry.npmjs.org/@webgpu/types/-/types-0.1.66.tgz", + "integrity": "sha512-YA2hLrwLpDsRueNDXIMqN9NTzD6bCDkuXbOSe0heS+f8YE8usA6Gbv1prj81pzVHrbaAma7zObnIC+I6/sXJgA==", + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/@webpack-cli/configtest": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz", "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.15.0" }, @@ -5666,6 +5510,7 @@ "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz", "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.15.0" }, @@ -5679,6 +5524,7 @@ "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz", "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.15.0" }, @@ -5692,31 +5538,41 @@ } } }, + "node_modules/@xmldom/xmldom": { + "version": "0.8.11", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.11.tgz", + "integrity": "sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/@xterm/addon-clipboard": { - "version": "0.2.0-beta.119", - "resolved": "https://registry.npmjs.org/@xterm/addon-clipboard/-/addon-clipboard-0.2.0-beta.119.tgz", - "integrity": "sha512-yWmCpGuTvSaIeEfdSijdf8K8qRAYuEGnKkaJZ6er+cOzdmGHBNzyBDKKeyins0aV2j4CGKPDiWHQF5+qGzZDGw==", + "version": "0.2.0-beta.123", + "resolved": "https://registry.npmjs.org/@xterm/addon-clipboard/-/addon-clipboard-0.2.0-beta.123.tgz", + "integrity": "sha512-gMlaxEpToN5CThRVf0+zf8m69PHd+y/o/IgEmMMEquFWddl58QDxG2cBdiJRwYMq7K23KdtJasitYE80Ygn88Q==", "license": "MIT", "dependencies": { "js-base64": "^3.7.5" }, "peerDependencies": { - "@xterm/xterm": "^5.6.0-beta.136" + "@xterm/xterm": "^5.6.0-beta.140" } }, "node_modules/@xterm/addon-image": { - "version": "0.9.0-beta.136", - "resolved": "https://registry.npmjs.org/@xterm/addon-image/-/addon-image-0.9.0-beta.136.tgz", - "integrity": "sha512-syWhqpFMAcQ1+US0JjFzj0ORokj8hkz2VgXcCCbTfO0cDtpSYYxMNLaY2fpL459rnOFB4olI9Nf9PZdonmBPDw==", + "version": "0.9.0-beta.140", + "resolved": "https://registry.npmjs.org/@xterm/addon-image/-/addon-image-0.9.0-beta.140.tgz", + "integrity": "sha512-9FG1ke2lAkDqvw7K/BY/UCjwF1OS3ME6s+FBpBQIMIA+Bhexm8TjhvYjQMK1aJgX39Y6vvmWflbiC4Xz20H38w==", "license": "MIT", "peerDependencies": { - "@xterm/xterm": "^5.6.0-beta.136" + "@xterm/xterm": "^5.6.0-beta.140" } }, "node_modules/@xterm/addon-ligatures": { - "version": "0.10.0-beta.136", - "resolved": "https://registry.npmjs.org/@xterm/addon-ligatures/-/addon-ligatures-0.10.0-beta.136.tgz", - "integrity": "sha512-WkvL7BVdoqpNf8QsH4n37Pu7jEZTiJ+OD4FmLMVavw0euhgG18zzJKNKIYRuKcddR52dT/Q8TrspVJofpL98GQ==", + "version": "0.10.0-beta.140", + "resolved": "https://registry.npmjs.org/@xterm/addon-ligatures/-/addon-ligatures-0.10.0-beta.140.tgz", + "integrity": "sha512-ps/M90wXHEec8nQ8UJXNLccrJGRADKLVcw4F81DPgzdTNLe4iPcGZ5ASFIB1WZkSO0k28nTes7uAPLGjvWS4ig==", "license": "MIT", "dependencies": { "font-finder": "^1.1.0", @@ -5726,65 +5582,71 @@ "node": ">8.0.0" }, "peerDependencies": { - "@xterm/xterm": "^5.6.0-beta.136" + "@xterm/xterm": "^5.6.0-beta.140" } }, "node_modules/@xterm/addon-progress": { - "version": "0.2.0-beta.42", - "resolved": "https://registry.npmjs.org/@xterm/addon-progress/-/addon-progress-0.2.0-beta.42.tgz", - "integrity": "sha512-C5w7y6rwSUdRcEiJHFnB2qJI/6DBOi/fJAvTmIpmNZE60cVnrLUuyLmXh6aKbSQ44J6W3PrD5xthb8re3UVUOw==", + "version": "0.2.0-beta.46", + "resolved": "https://registry.npmjs.org/@xterm/addon-progress/-/addon-progress-0.2.0-beta.46.tgz", + "integrity": "sha512-dCSAu0LfBLlKRBLH1KIkvgExaINfdz5QA1k1fwpuB6HT0nBzRyxOJE8YvH0MKgumSoekSwmJymO8g1oohIbwOA==", "license": "MIT", "peerDependencies": { - "@xterm/xterm": "^5.6.0-beta.136" + "@xterm/xterm": "^5.6.0-beta.140" } }, "node_modules/@xterm/addon-search": { - "version": "0.16.0-beta.136", - "resolved": "https://registry.npmjs.org/@xterm/addon-search/-/addon-search-0.16.0-beta.136.tgz", - "integrity": "sha512-Y2T/ShQBelmOGy7lup3VEfFF/yXeNkkMXqhGftmjzmwSA+eylFW+92vczMSrckTW++EFvVLR/L5jMXiSw0qOWQ==", + "version": "0.16.0-beta.140", + "resolved": "https://registry.npmjs.org/@xterm/addon-search/-/addon-search-0.16.0-beta.140.tgz", + "integrity": "sha512-HhoIXMKX/uqCazRRiT/0QWFcnKVJ5/GgUDYFM/FMSW/OILzsnu/PAsp2FyNAzjI6pruH32WmnLIRbxeaUv4z7A==", "license": "MIT", "peerDependencies": { - "@xterm/xterm": "^5.6.0-beta.136" + "@xterm/xterm": "^5.6.0-beta.140" } }, "node_modules/@xterm/addon-serialize": { - "version": "0.14.0-beta.136", - "resolved": "https://registry.npmjs.org/@xterm/addon-serialize/-/addon-serialize-0.14.0-beta.136.tgz", - "integrity": "sha512-ursvqITzhZrBQT8XsbOyAQJJKohv33NEm6ToLtMZUmPurBG6KXlVZ9LAPs2YpCBqkifLktSE1GdsofJCpADWuA==", + "version": "0.14.0-beta.140", + "resolved": "https://registry.npmjs.org/@xterm/addon-serialize/-/addon-serialize-0.14.0-beta.140.tgz", + "integrity": "sha512-HpQ+r/L1uvfZPCVzrxzwMlOcFaMFg0pvrmow/1ZBpYwJellOgPtvYA9pgS4dCSatv0S7hCgUnqb0eLEnzaX7ig==", "license": "MIT", "peerDependencies": { - "@xterm/xterm": "^5.6.0-beta.136" + "@xterm/xterm": "^5.6.0-beta.140" } }, "node_modules/@xterm/addon-unicode11": { - "version": "0.9.0-beta.136", - "resolved": "https://registry.npmjs.org/@xterm/addon-unicode11/-/addon-unicode11-0.9.0-beta.136.tgz", - "integrity": "sha512-RwtNbON1uNndrtPCM6qMMElTTpxs7ZLRQVbSm4/BMW6GAt6AbW1RAqwoxMRhbz7VVTux/c3HcKfj3SI1MhqSOw==", + "version": "0.9.0-beta.140", + "resolved": "https://registry.npmjs.org/@xterm/addon-unicode11/-/addon-unicode11-0.9.0-beta.140.tgz", + "integrity": "sha512-sfpw89by14QzAe7rlmOy8Y/BYtHBpIlsNeCyumwTw0zIs7BvbUx0UQSGDyOzOaimujWEhrXiJLT4siC/mVYu3A==", "license": "MIT", "peerDependencies": { - "@xterm/xterm": "^5.6.0-beta.136" + "@xterm/xterm": "^5.6.0-beta.140" } }, "node_modules/@xterm/addon-webgl": { - "version": "0.19.0-beta.136", - "resolved": "https://registry.npmjs.org/@xterm/addon-webgl/-/addon-webgl-0.19.0-beta.136.tgz", - "integrity": "sha512-MzVlFKrlgJjKQ6T4/TuamvlvR2FFDvxAPY90lo9u4899k7NNif+M8bBdNea3+bsPMU3fKLhGHoTp0+8MjskaeA==", + "version": "0.19.0-beta.140", + "resolved": "https://registry.npmjs.org/@xterm/addon-webgl/-/addon-webgl-0.19.0-beta.140.tgz", + "integrity": "sha512-CV10uRnoAUeAKOYES+0/Mh6IPEhtIH+agC1J3PCCL6y9TAnXN67YQMziG18FYn8cTQYgeSpsXx/Q+suBCGbfkA==", "license": "MIT", "peerDependencies": { - "@xterm/xterm": "^5.6.0-beta.136" + "@xterm/xterm": "^5.6.0-beta.140" } }, "node_modules/@xterm/headless": { - "version": "5.6.0-beta.136", - "resolved": "https://registry.npmjs.org/@xterm/headless/-/headless-5.6.0-beta.136.tgz", - "integrity": "sha512-3irueWS6Ei+XlTMCuh6ZWj1tBnVvjitDtD4PN+v81RKjaCNO/QN9abGTHQx+651GP291ESwY8ocKThSoQ9yklw==", - "license": "MIT" + "version": "5.6.0-beta.140", + "resolved": "https://registry.npmjs.org/@xterm/headless/-/headless-5.6.0-beta.140.tgz", + "integrity": "sha512-gPXOQQ1pepFt6+9gsKWfKFDMATFUbU754SsL0CzAsgKzNSHbu+2vvF2sFXWuMvY8aqMg+mq4nmNaDgyls4/SYA==", + "license": "MIT", + "workspaces": [ + "addons/*" + ] }, "node_modules/@xterm/xterm": { - "version": "5.6.0-beta.136", - "resolved": "https://registry.npmjs.org/@xterm/xterm/-/xterm-5.6.0-beta.136.tgz", - "integrity": "sha512-cOWfdbPUYjV8qJY0yg/HdJBiq/hl8J2NRma563crQbSveDpuiiKV+T+ZVeGKQ2YZztLCz6h+kox6J7LQcPtpiQ==", - "license": "MIT" + "version": "5.6.0-beta.140", + "resolved": "https://registry.npmjs.org/@xterm/xterm/-/xterm-5.6.0-beta.140.tgz", + "integrity": "sha512-zqMxdVN+kEoKoCySae+uHIkJhYYifr2GG2KIiU/WvCLSTpr28aRzzsajNvaWj+2jVts20QXOMfHeHZsggDETmA==", + "license": "MIT", + "workspaces": [ + "addons/*" + ] }, "node_modules/@xtuc/ieee754": { "version": "1.2.0", @@ -5801,10 +5663,14 @@ "license": "Apache-2.0" }, "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", + "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } }, "node_modules/abort-controller": { "version": "3.0.0", @@ -5819,13 +5685,13 @@ } }, "node_modules/accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "dev": true, + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", + "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", + "license": "MIT", "dependencies": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" }, "engines": { "node": ">= 0.6" @@ -5845,9 +5711,9 @@ } }, "node_modules/acorn-import-phases": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.3.tgz", - "integrity": "sha512-jtKLnfoOzm28PazuQ4dVBcE9Jeo6ha1GAJvq3N0LlNOszmTfx+wSycBehn+FN0RnyeR77IBxN/qVYMw0Rlj0Xw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz", + "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==", "dev": true, "license": "MIT", "engines": { @@ -5862,26 +5728,29 @@ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, + "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.11.0" + }, "engines": { "node": ">=0.4.0" } }, "node_modules/agent-base": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", - "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", - "dependencies": { - "debug": "^4.3.4" - }, + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "license": "MIT", "engines": { "node": ">= 14" } @@ -5915,10 +5784,10 @@ } }, "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dev": true, + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "license": "MIT", "dependencies": { "ajv": "^8.0.0" }, @@ -5932,28 +5801,34 @@ } }, "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, "peerDependencies": { - "ajv": "^6.9.1" + "ajv": "^8.8.2" } }, "node_modules/amdefine": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==", + "integrity": "sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==", "dev": true, + "license": "BSD-3-Clause OR MIT", "engines": { "node": ">=0.4.2" } }, "node_modules/ansi-colors": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", - "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -5961,8 +5836,9 @@ "node_modules/ansi-cyan": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/ansi-cyan/-/ansi-cyan-0.1.1.tgz", - "integrity": "sha1-U4rlKK+JgvKK4w2G8vF0VtJgmHM= sha512-eCjan3AVo/SxZ0/MyIYRtkpxIu/H3xZN7URr1vXVrISxeyz8fUFz0FJziamK4sS8I+t35y4rHg1b2PklyBe/7A==", + "integrity": "sha512-eCjan3AVo/SxZ0/MyIYRtkpxIu/H3xZN7URr1vXVrISxeyz8fUFz0FJziamK4sS8I+t35y4rHg1b2PklyBe/7A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-wrap": "0.1.0" }, @@ -5973,8 +5849,9 @@ "node_modules/ansi-gray": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", - "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE= sha512-HrgGIZUl8h2EHuZaU9hTR/cU5nhKxpVE1V6kdGsQ8e4zirElJ5fvtfc8N7Q1oq1aatO275i8pUFUCpNWCAnVWw==", + "integrity": "sha512-HrgGIZUl8h2EHuZaU9hTR/cU5nhKxpVE1V6kdGsQ8e4zirElJ5fvtfc8N7Q1oq1aatO275i8pUFUCpNWCAnVWw==", "dev": true, + "license": "MIT", "dependencies": { "ansi-wrap": "0.1.0" }, @@ -5985,8 +5862,9 @@ "node_modules/ansi-red": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz", - "integrity": "sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw= sha512-ewaIr5y+9CUTGFwZfpECUbFlGcC0GCw1oqR9RI6h1gQCd9Aj2GxSckCnPsVJnmfMZbwFYE+leZGASgkWl06Jow==", + "integrity": "sha512-ewaIr5y+9CUTGFwZfpECUbFlGcC0GCw1oqR9RI6h1gQCd9Aj2GxSckCnPsVJnmfMZbwFYE+leZGASgkWl06Jow==", "dev": true, + "license": "MIT", "dependencies": { "ansi-wrap": "0.1.0" }, @@ -5999,17 +5877,18 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { - "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" }, "engines": { @@ -6022,8 +5901,9 @@ "node_modules/ansi-wrap": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768= sha512-ZyznvL8k/FZeQHr2T6LzcJ/+vBApDnMNZvfVFy3At0knswWd6rJ3/0Hhmpu8oqa6C92npmozs890sX9Dl6q+Qw==", + "integrity": "sha512-ZyznvL8k/FZeQHr2T6LzcJ/+vBApDnMNZvfVFy3At0knswWd6rJ3/0Hhmpu8oqa6C92npmozs890sX9Dl6q+Qw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -6031,14 +5911,16 @@ "node_modules/any-promise": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8= sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true, + "license": "MIT" }, "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, + "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -6050,8 +5932,9 @@ "node_modules/append-buffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", - "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE= sha512-WLbYiXzD3y/ATLZFufV/rZvWdZOs+Z/+5v1rBZ463Jn398pa6kcde27cvozYnBoxXblGZTFfoPpsaEw0orU5BA==", + "integrity": "sha512-WLbYiXzD3y/ATLZFufV/rZvWdZOs+Z/+5v1rBZ463Jn398pa6kcde27cvozYnBoxXblGZTFfoPpsaEw0orU5BA==", "dev": true, + "license": "MIT", "dependencies": { "buffer-equal": "^1.0.0" }, @@ -6062,35 +5945,40 @@ "node_modules/archy": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA= sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", - "dev": true + "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", + "dev": true, + "license": "MIT" }, "node_modules/are-docs-informative": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz", "integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==", "dev": true, + "license": "MIT", "engines": { "node": ">=14" } }, "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true, + "license": "MIT" }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "dev": true, + "license": "Python-2.0" }, "node_modules/arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -6098,8 +5986,9 @@ "node_modules/arr-filter": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", - "integrity": "sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4= sha512-A2BETWCqhsecSvCkWAeVBFLH6sXEUGASuzkpjL3GR1SlL/PWL6M3J8EAAld2Uubmh39tvkJTqC9LeLHCUKmFXA==", + "integrity": "sha512-A2BETWCqhsecSvCkWAeVBFLH6sXEUGASuzkpjL3GR1SlL/PWL6M3J8EAAld2Uubmh39tvkJTqC9LeLHCUKmFXA==", "dev": true, + "license": "MIT", "dependencies": { "make-iterator": "^1.0.0" }, @@ -6112,6 +6001,7 @@ "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -6119,8 +6009,9 @@ "node_modules/arr-map": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", - "integrity": "sha1-Onc0X/wc814qkYJWAfnljy4kysQ= sha512-tVqVTHt+Q5Xb09qRkbu+DidW1yYzz5izWS2Xm2yFm7qJnmUfz4HPzNxbHkdRJbz2lrqI7S+z17xNYdFcBBO8Hw==", + "integrity": "sha512-tVqVTHt+Q5Xb09qRkbu+DidW1yYzz5izWS2Xm2yFm7qJnmUfz4HPzNxbHkdRJbz2lrqI7S+z17xNYdFcBBO8Hw==", "dev": true, + "license": "MIT", "dependencies": { "make-iterator": "^1.0.0" }, @@ -6131,19 +6022,21 @@ "node_modules/arr-union": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", + "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", "dev": true, + "license": "MIT", "engines": { - "node": ">=6" + "node": ">=12.17" } }, "node_modules/array-buffer-byte-length": { @@ -6165,8 +6058,9 @@ "node_modules/array-differ": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", - "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE= sha512-LeZY+DZDRnvP7eMuQ6LHfCzUGxAAIViUBliK24P3hWXL6y4SortgR6Nim6xrkfSLlmH0+k+9NYNwVC2s53ZrYQ==", + "integrity": "sha512-LeZY+DZDRnvP7eMuQ6LHfCzUGxAAIViUBliK24P3hWXL6y4SortgR6Nim6xrkfSLlmH0+k+9NYNwVC2s53ZrYQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -6174,8 +6068,9 @@ "node_modules/array-each": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8= sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==", + "integrity": "sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -6205,8 +6100,9 @@ "node_modules/array-initial": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", - "integrity": "sha1-L6dLJnOTccOUe9enrcc74zSz15U= sha512-BC4Yl89vneCYfpLrs5JU2aAu9/a+xWbeKhvISg9PT7eWFB9UlRvI+rKEtk6mgxWr3dSkk9gQ8hCrdqt06NXPdw==", + "integrity": "sha512-BC4Yl89vneCYfpLrs5JU2aAu9/a+xWbeKhvISg9PT7eWFB9UlRvI+rKEtk6mgxWr3dSkk9gQ8hCrdqt06NXPdw==", "dev": true, + "license": "MIT", "dependencies": { "array-slice": "^1.0.0", "is-number": "^4.0.0" @@ -6220,6 +6116,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -6229,6 +6126,7 @@ "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^4.0.0" }, @@ -6241,6 +6139,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -6250,6 +6149,7 @@ "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -6259,6 +6159,7 @@ "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", "dev": true, + "license": "MIT", "dependencies": { "default-compare": "^1.0.0", "get-value": "^2.0.6", @@ -6268,11 +6169,25 @@ "node": ">=0.10.0" } }, + "node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/array-uniq": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -6280,8 +6195,9 @@ "node_modules/array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -6382,18 +6298,20 @@ "node_modules/arrify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/asar": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/asar/-/asar-3.0.3.tgz", - "integrity": "sha512-k7zd+KoR+n8pl71PvgElcoKHrVNiSXtw7odKbyNpmgKe7EGRF9Pnu3uLOukD37EvavKwVFxOUpqXTIZC5B5Pmw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/asar/-/asar-3.2.0.tgz", + "integrity": "sha512-COdw2ZQvKdFGFxXwX3oYh2/sOsJWJegrdJCGxnN4MZ7IULgRBp9P6665aqj9z1v9VwP4oP1hRBojRDQ//IGgAg==", "deprecated": "Please use @electron/asar moving forward. There is no API change, just a package name change", "dev": true, + "license": "MIT", "dependencies": { "chromium-pickle-js": "^0.2.0", "commander": "^5.0.0", @@ -6415,21 +6333,23 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 6" } }, "node_modules/asar/node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, @@ -6443,8 +6363,9 @@ "node_modules/assign-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -6454,6 +6375,7 @@ "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz", "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==", "dev": true, + "license": "MIT", "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.2", @@ -6465,10 +6387,17 @@ } }, "node_modules/async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "dev": true + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.6.tgz", + "integrity": "sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT" }, "node_modules/async-function": { "version": "1.0.0", @@ -6482,8 +6411,9 @@ "node_modules/async-settle": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", - "integrity": "sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs= sha512-VPXfB4Vk49z1LHHodrEQ6Xf7W4gg1w0dAPROHngx7qgDjqmIQ+fXmwgGXTW/ITLai0YLSvWepJOP9EVpMnEAcw==", + "integrity": "sha512-VPXfB4Vk49z1LHHodrEQ6Xf7W4gg1w0dAPROHngx7qgDjqmIQ+fXmwgGXTW/ITLai0YLSvWepJOP9EVpMnEAcw==", "dev": true, + "license": "MIT", "dependencies": { "async-done": "^1.2.2" }, @@ -6494,13 +6424,15 @@ "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k= sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" }, "node_modules/atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", "dev": true, + "license": "(MIT OR Apache-2.0)", "bin": { "atob": "bin/atob.js" }, @@ -6573,16 +6505,26 @@ } }, "node_modules/b4a": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz", - "integrity": "sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==", - "dev": true + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.7.3.tgz", + "integrity": "sha512-5Q2mfq2WfGuFp3uS//0s6baOJLMoVduPYVeNmDYxu5OUA1/cBfvr2RIS7vi62LdNj/urk1hfmj867I3qt6uZ7Q==", + "dev": true, + "license": "Apache-2.0", + "peerDependencies": { + "react-native-b4a": "*" + }, + "peerDependenciesMeta": { + "react-native-b4a": { + "optional": true + } + } }, "node_modules/bach": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", - "integrity": "sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA= sha512-bZOOfCb3gXBXbTFXq3OZtGR88LwGeJvzu6szttaIzymOTS4ZttBNOWSv7aLZja2EMycKtRYV0Oa8SNKH/zkxvg==", + "integrity": "sha512-bZOOfCb3gXBXbTFXq3OZtGR88LwGeJvzu6szttaIzymOTS4ZttBNOWSv7aLZja2EMycKtRYV0Oa8SNKH/zkxvg==", "dev": true, + "license": "MIT", "dependencies": { "arr-filter": "^1.1.1", "arr-flatten": "^1.0.1", @@ -6601,27 +6543,37 @@ "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" }, "node_modules/bare-events": { - "version": "2.5.4", - "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.4.tgz", - "integrity": "sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==", + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.8.2.tgz", + "integrity": "sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==", "dev": true, "license": "Apache-2.0", - "optional": true - }, - "node_modules/bare-fs": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.0.2.tgz", - "integrity": "sha512-S5mmkMesiduMqnz51Bfh0Et9EX0aTCJxhsI4bvzFFLs8Z1AV8RDHadfY5CyLwdoLHgXbNBEN1gQcbEtGwuvixw==", - "dev": true, + "peerDependencies": { + "bare-abort-controller": "*" + }, + "peerDependenciesMeta": { + "bare-abort-controller": { + "optional": true + } + } + }, + "node_modules/bare-fs": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.5.1.tgz", + "integrity": "sha512-zGUCsm3yv/ePt2PHNbVxjjn0nNB1MkIaR4wOCxJ2ig5pCf5cCVAYJXVhQg/3OhhJV6DB1ts7Hv0oUaElc2TPQg==", + "dev": true, "license": "Apache-2.0", "optional": true, "dependencies": { "bare-events": "^2.5.4", "bare-path": "^3.0.0", - "bare-stream": "^2.6.4" + "bare-stream": "^2.6.4", + "bare-url": "^2.2.2", + "fast-fifo": "^1.3.2" }, "engines": { "bare": ">=1.16.0" @@ -6636,9 +6588,9 @@ } }, "node_modules/bare-os": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.6.1.tgz", - "integrity": "sha512-uaIjxokhFidJP+bmmvKSgiMzj2sV5GPHaZVAIktcxcpCyBFFWO+YlikVAdhmUo2vYFvFhOXIAlldqV29L8126g==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.6.2.tgz", + "integrity": "sha512-T+V1+1srU2qYNBmJCXZkUY5vQ0B4FSlL3QDROnKQYOqeiQR8UbjNHlPa+TIbM4cuidiN9GaTaOZgSEgsvPbh5A==", "dev": true, "license": "Apache-2.0", "optional": true, @@ -6658,9 +6610,9 @@ } }, "node_modules/bare-stream": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.6.5.tgz", - "integrity": "sha512-jSmxKJNJmHySi6hC42zlZnq00rga4jjxcgNZjY9N5WlOe/iOoGRtdwGsHzQv2RlH2KOYMwGUXhf2zXd32BA9RA==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.7.0.tgz", + "integrity": "sha512-oyXQNicV1y8nc2aKffH+BUHFRXmx6VrPzlnaEvMhram0nPBrKcEdcyBg5r08D0i8VxngHFAiVyn1QKXpSG0B8A==", "dev": true, "license": "Apache-2.0", "optional": true, @@ -6680,11 +6632,23 @@ } } }, + "node_modules/bare-url": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.3.2.tgz", + "integrity": "sha512-ZMq4gd9ngV5aTMa5p9+UfY0b3skwhHELaDkhEHetMdX0LRkW9kzaym4oo/Eh+Ghm0CCDuMTsRIGM/ytUc1ZYmw==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "bare-path": "^3.0.0" + } + }, "node_modules/base": { "version": "0.11.2", "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "dev": true, + "license": "MIT", "dependencies": { "cache-base": "^1.0.1", "class-utils": "^0.3.5", @@ -6701,8 +6665,9 @@ "node_modules/base/node_modules/define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY= sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", "dev": true, + "license": "MIT", "dependencies": { "is-descriptor": "^1.0.0" }, @@ -6727,12 +6692,13 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/baseline-browser-mapping": { - "version": "2.8.28", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.28.tgz", - "integrity": "sha512-gYjt7OIqdM0PcttNYP2aVrr2G0bMALkBaoehD4BuRGjAOtipg0b6wHg1yNL+s5zSnLZZrGHOw4IrND8CD+3oIQ==", + "version": "2.8.31", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.31.tgz", + "integrity": "sha512-a28v2eWrrRWPpJSzxc+mKwm0ZtVx/G8SepdQZDArnXYU/XS+IF6mp8aB/4E+hH1tyGCoDo3KlUCdlSxGDsRkAw==", "dev": true, "license": "Apache-2.0", "bin": { @@ -6744,6 +6710,7 @@ "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "5.1.2" }, @@ -6751,6 +6718,13 @@ "node": ">= 0.8" } }, + "node_modules/basic-auth/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==", + "dev": true, + "license": "MIT" + }, "node_modules/before-after-hook": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-4.0.0.tgz", @@ -6763,6 +6737,7 @@ "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "dev": true, + "license": "MIT", "engines": { "node": "*" } @@ -6777,24 +6752,30 @@ } }, "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/binaryextensions": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-1.0.1.tgz", - "integrity": "sha1-HmN0iLNbWL2l9HdL+WpSEqjJB1U= sha512-xnG0l4K3ghM62rFzDi2jcNEuICl6uQ4NgvGpqQsY7HgW8gPDeAWGOxHI/k+qZfXfMANytzrArGNPXidaCwtbmA==", - "dev": true + "integrity": "sha512-xnG0l4K3ghM62rFzDi2jcNEuICl6uQ4NgvGpqQsY7HgW8gPDeAWGOxHI/k+qZfXfMANytzrArGNPXidaCwtbmA==", + "dev": true, + "license": "MIT" }, "node_modules/bindings": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "license": "MIT", "dependencies": { "file-uri-to-path": "1.0.0" } @@ -6803,6 +6784,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "license": "MIT", "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", @@ -6812,8 +6794,9 @@ "node_modules/block-stream": { "version": "0.0.9", "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo= sha512-OorbnJVPII4DuUKbjARAe8u8EfqOmkEEaSFIyoQ7OjTHn6kafxWl0wLgoZ2rXaYd7MyLcDaU4TmhfxtwgcccMQ==", + "integrity": "sha512-OorbnJVPII4DuUKbjARAe8u8EfqOmkEEaSFIyoQ7OjTHn6kafxWl0wLgoZ2rXaYd7MyLcDaU4TmhfxtwgcccMQ==", "dev": true, + "license": "ISC", "dependencies": { "inherits": "~2.0.0" }, @@ -6841,61 +6824,20 @@ "node": ">=18" } }, - "node_modules/body-parser/node_modules/media-typer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", - "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/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/body-parser/node_modules/mime-types": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", - "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", - "license": "MIT", - "dependencies": { - "mime-db": "^1.54.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/body-parser/node_modules/type-is": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", - "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==", - "license": "MIT", - "dependencies": { - "content-type": "^1.0.5", - "media-typer": "^1.1.0", - "mime-types": "^3.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24= sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true, + "license": "ISC" }, "node_modules/boolean": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.0.2.tgz", - "integrity": "sha512-RwywHlpCRc3/Wh81MiCKun4ydaIFyW5Ea6JbL6sRCVx5q5irDw7pMXBUFYF/jArQ6YrG36q0kpovc9P/Kd3I4g==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", "dev": true, + "license": "MIT", "optional": true }, "node_modules/brace-expansion": { @@ -6912,6 +6854,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", "dependencies": { "fill-range": "^7.1.1" }, @@ -6923,13 +6866,15 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/browserify-zlib": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", "integrity": "sha512-19OEpq7vWgsH6WkvkBJQDFvJS1uPcbFOQ4v9CU839dO+ZZXUZO6XpE6hNCqvlIIj+4fZvRiJ6DsAQ382GwiyTQ==", "dev": true, + "license": "MIT", "dependencies": { "pako": "~0.2.0" } @@ -6986,6 +6931,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -6994,18 +6940,23 @@ "node_modules/buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "license": "MIT", "engines": { "node": "*" } }, "node_modules/buffer-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", - "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74= sha512-tcBWO2Dl4e7Asr9hTGcpVrCe+F7DubpmqWCTbj4FHLmjqO2hIaC383acQubWtRJhdceqs5uBHs6Es+Sk//RKiQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.1.tgz", + "integrity": "sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.4.0" + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/buffer-equal-constant-time": { @@ -7018,7 +6969,8 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/bundle-name": { "version": "4.1.0", @@ -7051,10 +7003,24 @@ "esbuild": ">=0.18" } }, + "node_modules/byte-counter": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/byte-counter/-/byte-counter-0.1.0.tgz", + "integrity": "sha512-jheRLVMeUKrDBjVw2O5+k4EvR4t9wtxHL+bo/LxfkxsVeuGMy3a5SEGgXdAFA4FSzTrU8rQXQIrsZ3oBq5a0pQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + }, + "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" } @@ -7064,6 +7030,7 @@ "resolved": "https://registry.npmjs.org/c8/-/c8-9.1.0.tgz", "integrity": "sha512-mBWcT5iqNir1zIkzSPyI3NCR9EZCVI3WUD+AVO17MVWTSFNyUueXE82qTeampNtTr+ilN/5Ua3j24LgbCKjDVg==", "dev": true, + "license": "ISC", "dependencies": { "@bcoe/v8-coverage": "^0.2.3", "@istanbuljs/schema": "^0.1.3", @@ -7099,6 +7066,7 @@ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "dev": true, + "license": "MIT", "dependencies": { "collection-visit": "^1.0.0", "component-emitter": "^1.2.1", @@ -7119,6 +7087,7 @@ "resolved": "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz", "integrity": "sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==", "dev": true, + "license": "MIT", "dependencies": { "mime-types": "^2.1.18", "ylru": "^1.2.0" @@ -7127,31 +7096,96 @@ "node": ">= 6.0.0" } }, + "node_modules/cache-content-type/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cache-content-type/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", + "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", "dev": true, + "license": "MIT", "engines": { - "node": ">=10.6.0" + "node": ">=14.16" } }, "node_modules/cacheable-request": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", - "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "version": "13.0.15", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-13.0.15.tgz", + "integrity": "sha512-NjiSrjv37X73FmGGU5ec/M83vWQ6q1Ae3BFe+ABfdeeMy4LOMKYTpfEjrBnLedu43clKZtsYbKrHTIQE7vKq+A==", "dev": true, + "license": "MIT", "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" + "@types/http-cache-semantics": "^4.0.4", + "get-stream": "^9.0.1", + "http-cache-semantics": "^4.2.0", + "keyv": "^5.5.4", + "mimic-response": "^4.0.0", + "normalize-url": "^8.1.0", + "responselike": "^4.0.2" }, "engines": { - "node": ">=8" + "node": ">=18" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", + "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sec-ant/readable-stream": "^0.4.1", + "is-stream": "^4.0.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/is-stream": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", + "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/keyv": { + "version": "5.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.5.4.tgz", + "integrity": "sha512-eohl3hKTiVyD1ilYdw9T0OiB4hnjef89e3dMYKz+mVKDzj+5IteTseASUsOB+EU9Tf6VNTCjDePcP6wkDGmLKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@keyv/serialize": "^1.1.1" } }, "node_modules/call-bind": { @@ -7216,6 +7250,7 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -7247,9 +7282,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001755", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001755.tgz", - "integrity": "sha512-44V+Jm6ctPj7R52Na4TLi3Zri4dWUljJd+RDm+j8LtNCc/ihLCT+X1TzoOAkRETEWqjuLnh9581Tl80FvK7jVA==", + "version": "1.0.30001756", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001756.tgz", + "integrity": "sha512-4HnCNKbMLkLdhJz3TToeVWHSnfJvPaq6vu/eRP0Ahub/07n484XHhBF5AJoSGHdVrS8tKFauUQz8Bp9P7LVx7A==", "dev": true, "funding": [ { @@ -7272,6 +7307,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -7283,20 +7319,12 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/chalk/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/chalk/node_modules/supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -7309,21 +7337,17 @@ "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": "*" } }, "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], + "license": "MIT", "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -7336,6 +7360,9 @@ "engines": { "node": ">= 8.10.0" }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, "optionalDependencies": { "fsevents": "~2.3.2" } @@ -7344,14 +7371,16 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "license": "ISC", "engines": { "node": ">=10" } }, "node_modules/chrome-remote-interface": { - "version": "0.33.0", - "resolved": "https://registry.npmjs.org/chrome-remote-interface/-/chrome-remote-interface-0.33.0.tgz", - "integrity": "sha512-tv/SgeBfShXk43fwFpQ9wnS7mOCPzETnzDXTNxCb6TqKOiOeIfbrJz+2NAp8GmzwizpKa058wnU1Te7apONaYg==", + "version": "0.33.3", + "resolved": "https://registry.npmjs.org/chrome-remote-interface/-/chrome-remote-interface-0.33.3.tgz", + "integrity": "sha512-zNnn0prUL86Teru6UCAZ1yU1XeXljHl3gj7OrfPcarEfU62OUU4IujDPdTDW3dAWwRqN3ZMG/Chhkh2gPL/wiw==", + "license": "MIT", "dependencies": { "commander": "2.11.x", "ws": "^7.2.0" @@ -7363,12 +7392,14 @@ "node_modules/chrome-remote-interface/node_modules/commander": { "version": "2.11.0", "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", - "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==" + "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==", + "license": "MIT" }, "node_modules/chrome-remote-interface/node_modules/ws": { "version": "7.5.10", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "license": "MIT", "engines": { "node": ">=8.3.0" }, @@ -7386,40 +7417,35 @@ } }, "node_modules/chrome-trace-event": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", - "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, + "license": "MIT", "engines": { "node": ">=6.0" } }, - "node_modules/chrome-trace-event/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, "node_modules/chromium-pickle-js": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz", - "integrity": "sha1-BKEGZywYsIWrd02YPfo+oTjyIgU= sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw==", - "dev": true + "integrity": "sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw==", + "dev": true, + "license": "MIT" }, "node_modules/ci-info": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/class-utils": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "dev": true, + "license": "MIT", "dependencies": { "arr-union": "^3.1.0", "define-property": "^0.2.5", @@ -7433,8 +7459,9 @@ "node_modules/class-utils/node_modules/define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dev": true, + "license": "MIT", "dependencies": { "is-descriptor": "^0.1.0" }, @@ -7442,86 +7469,37 @@ "node": ">=0.10.0" } }, - "node_modules/class-utils/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "deprecated": "Please upgrade to v0.1.7", + "node_modules/class-utils/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", "dev": true, + "license": "MIT", "dependencies": { - "kind-of": "^3.0.2" + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, - "node_modules/class-utils/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "node_modules/classnames": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", + "license": "MIT" + }, + "node_modules/cli-cursor": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", "dev": true, + "license": "MIT", "dependencies": { - "is-buffer": "^1.1.5" + "restore-cursor": "^5.0.0" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "deprecated": "Please upgrade to v0.1.5", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/classnames": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", - "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", - "license": "MIT" - }, - "node_modules/cli-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", - "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", - "dev": true, - "dependencies": { - "restore-cursor": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -7532,6 +7510,7 @@ "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" }, @@ -7551,6 +7530,7 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -7564,13 +7544,15 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cliui/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -7583,8 +7565,9 @@ "node_modules/clone": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8" } @@ -7592,8 +7575,9 @@ "node_modules/clone-buffer": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg= sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==", + "integrity": "sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.10" } @@ -7603,6 +7587,7 @@ "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "dev": true, + "license": "MIT", "dependencies": { "is-plain-object": "^2.0.4", "kind-of": "^6.0.2", @@ -7617,6 +7602,7 @@ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, + "license": "MIT", "dependencies": { "isobject": "^3.0.1" }, @@ -7629,41 +7615,66 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", "dev": true, + "license": "MIT", "dependencies": { "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clone-response/node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" } }, "node_modules/clone-stats": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA= sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==", - "dev": true + "integrity": "sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==", + "dev": true, + "license": "MIT" }, "node_modules/cloneable-readable": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.1", "process-nextick-args": "^2.0.0", "readable-stream": "^2.3.5" } }, + "node_modules/cloneable-readable/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, "node_modules/cloneable-readable/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -7674,27 +7685,47 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/cloneable-readable/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==", + "dev": true, + "license": "MIT" + }, + "node_modules/cloneable-readable/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "dev": true, + "license": "MIT", "engines": { "iojs": ">= 1.0.0", "node": ">= 0.12.0" } }, "node_modules/code-block-writer": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-12.0.0.tgz", - "integrity": "sha512-q4dMFMlXtKR3XNBHyMHt/3pwYNA69EDk00lloMOaaUMKPUXBw6lpXtbu3MMVG6/uOihGnRDOlkyqsONEUj60+w==", - "dev": true + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-13.0.3.tgz", + "integrity": "sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==", + "dev": true, + "license": "MIT" }, "node_modules/code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", + "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -7702,8 +7733,9 @@ "node_modules/collection-map": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", - "integrity": "sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw= sha512-5D2XXSpkOnleOI21TG7p3T0bGAsZ/XknZpKBmGYyluO8pw4zA3K8ZlrBIbC4FXg3m6z/RNFiUFfT2sQK01+UHA==", + "integrity": "sha512-5D2XXSpkOnleOI21TG7p3T0bGAsZ/XknZpKBmGYyluO8pw4zA3K8ZlrBIbC4FXg3m6z/RNFiUFfT2sQK01+UHA==", "dev": true, + "license": "MIT", "dependencies": { "arr-map": "^2.0.2", "for-own": "^1.0.0", @@ -7716,8 +7748,9 @@ "node_modules/collection-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", + "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", "dev": true, + "license": "MIT", "dependencies": { "map-visit": "^1.0.0", "object-visit": "^1.0.0" @@ -7731,6 +7764,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -7742,13 +7776,15 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/color-support": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", "dev": true, + "license": "ISC", "bin": { "color-support": "bin.js" } @@ -7761,15 +7797,17 @@ "license": "MIT" }, "node_modules/colorette": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", - "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", - "dev": true + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true, + "license": "MIT" }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", "dependencies": { "delayed-stream": "~1.0.0" }, @@ -7777,27 +7815,28 @@ "node": ">= 0.8" } }, - "node_modules/combined-stream/node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk= sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/command-line-args": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", - "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-6.0.1.tgz", + "integrity": "sha512-Jr3eByUjqyK0qd8W0SGFW1nZwqCaNCtbXjRo2cRJC1OYxWl3MZ5t1US3jq+cO4sPavqgw4l9BMGX0CBe+trepg==", "dev": true, + "license": "MIT", "dependencies": { - "array-back": "^3.1.0", - "find-replace": "^3.0.0", + "array-back": "^6.2.2", + "find-replace": "^5.0.2", "lodash.camelcase": "^4.3.0", - "typical": "^4.0.0" + "typical": "^7.2.0" }, "engines": { - "node": ">=4.0.0" + "node": ">=12.20" + }, + "peerDependencies": { + "@75lb/nature": "latest" + }, + "peerDependenciesMeta": { + "@75lb/nature": { + "optional": true + } } }, "node_modules/commander": { @@ -7805,6 +7844,7 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || >=14" } @@ -7814,20 +7854,26 @@ "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.1.tgz", "integrity": "sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 12.0.0" } }, "node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" }, "node_modules/concat-stream": { "version": "1.6.2", @@ -7837,6 +7883,7 @@ "engines": [ "node >= 0.8" ], + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", @@ -7844,11 +7891,19 @@ "typedarray": "^0.0.6" } }, + "node_modules/concat-stream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, "node_modules/concat-stream/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -7859,6 +7914,23 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/concat-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==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-stream/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/confbox": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", @@ -7867,10 +7939,11 @@ "license": "MIT" }, "node_modules/config-chain": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", - "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", "dev": true, + "license": "MIT", "dependencies": { "ini": "^1.3.4", "proto-list": "~1.2.1" @@ -7887,58 +7960,39 @@ } }, "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==", - "dev": true, - "dependencies": { - "safe-buffer": "5.2.1" - }, + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.1.tgz", + "integrity": "sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q==", + "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "node_modules/content-disposition/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==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "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": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", "dev": true, - "dependencies": { - "safe-buffer": "~5.1.1" - } + "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" } @@ -7957,6 +8011,7 @@ "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.9.1.tgz", "integrity": "sha512-TG2hpqe4ELx54QER/S3HQ9SRVnQnGBtKUz5bLQWtYAQ+o6GpgMs6sYUvaiJjVxb+UXwhRhAEP3m7LbsIZ77Hmw==", "dev": true, + "license": "MIT", "dependencies": { "depd": "~2.0.0", "keygrip": "~1.1.0" @@ -7968,8 +8023,9 @@ "node_modules/copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", + "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -7979,6 +8035,7 @@ "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.5.tgz", "integrity": "sha512-XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw==", "dev": true, + "license": "MIT", "dependencies": { "each-props": "^1.3.2", "is-plain-object": "^5.0.0" @@ -7989,6 +8046,7 @@ "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", "dev": true, + "license": "MIT", "dependencies": { "fast-glob": "^3.2.11", "glob-parent": "^6.0.1", @@ -8013,6 +8071,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.3" }, @@ -8020,42 +8079,12 @@ "node": ">=10.13.0" } }, - "node_modules/copy-webpack-plugin/node_modules/globby": { - "version": "13.1.3", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.3.tgz", - "integrity": "sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw==", - "dev": true, - "dependencies": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.11", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/copy-webpack-plugin/node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", - "dev": true + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true, + "license": "MIT" }, "node_modules/cors": { "version": "2.8.5", @@ -8074,12 +8103,14 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -8148,6 +8179,7 @@ "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": "*" } @@ -8157,6 +8189,7 @@ "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.4", "source-map": "^0.6.1", @@ -8177,16 +8210,17 @@ } }, "node_modules/css-loader": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.9.1.tgz", - "integrity": "sha512-OzABOh0+26JKFdMzlK6PY1u5Zx8+Ck7CVRlcGNZoY9qwJjdfu2VWFuprTIpPW+Av5TZTVViYWcFQaEEQURLknQ==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz", + "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==", "dev": true, + "license": "MIT", "dependencies": { "icss-utils": "^5.1.0", "postcss": "^8.4.33", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.4", - "postcss-modules-scope": "^3.1.1", + "postcss-modules-extract-imports": "^3.1.0", + "postcss-modules-local-by-default": "^4.0.5", + "postcss-modules-scope": "^3.2.0", "postcss-modules-values": "^4.0.0", "postcss-value-parser": "^4.2.0", "semver": "^7.5.4" @@ -8199,14 +8233,24 @@ "url": "https://opencollective.com/webpack" }, "peerDependencies": { + "@rspack/core": "0.x || 1.x", "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } } }, "node_modules/css-select": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.1.0", @@ -8223,6 +8267,7 @@ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", "dev": true, + "license": "MIT", "dependencies": { "mdn-data": "2.0.14", "source-map": "^0.6.1" @@ -8232,10 +8277,11 @@ } }, "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">= 6" }, @@ -8248,6 +8294,7 @@ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true, + "license": "MIT", "bin": { "cssesc": "bin/cssesc" }, @@ -8339,6 +8386,7 @@ "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", "dev": true, + "license": "MIT", "dependencies": { "css-tree": "^1.1.2" }, @@ -8347,20 +8395,24 @@ } }, "node_modules/csstype": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.2.tgz", - "integrity": "sha512-D80T+tiqkd/8B0xNlbstWDG4x6aqVfO52+OlSUNIdkTvmNw0uQpJLeos2J/2XvpyidAFuTPmpad+tUxLndwj6g==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", "dev": true, "license": "MIT" }, "node_modules/d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.2.tgz", + "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==", "dev": true, + "license": "ISC", "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" + "es5-ext": "^0.10.64", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.12" } }, "node_modules/data-view-buffer": { @@ -8415,15 +8467,16 @@ } }, "node_modules/debounce": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.1.0.tgz", - "integrity": "sha512-ZQVKfRVlwRfD150ndzEK8M90ABT+Y/JQKs4Y7U4MXdpuoUkkrr4DwKbVux3YjylA5bUMUj0Nc3pMxPJX6N2QQQ==", - "dev": true + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", + "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", + "dev": true, + "license": "MIT" }, "node_modules/debug": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", - "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -8442,6 +8495,7 @@ "resolved": "https://registry.npmjs.org/debug-fabulous/-/debug-fabulous-1.1.0.tgz", "integrity": "sha512-GZqvGIgKNlUnHUPQhepnUZFIMoi3dgZKQBzKDeL2g7oJF9SNAji/AAu36dusFUas0O+pae74lNeoIPHqXWDkLg==", "dev": true, + "license": "MIT", "dependencies": { "debug": "3.X", "memoizee": "0.4.X", @@ -8453,6 +8507,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } @@ -8462,6 +8517,7 @@ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -8474,30 +8530,22 @@ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10" } }, "node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-10.0.0.tgz", + "integrity": "sha512-oj7KWToJuuxlPr7VV0vabvxEIiqNMo+q0NueIiL3XhtwC6FVOX7Hr1c0C4eD0bmf7Zr+S/dSf2xvkH3Ad6sU3Q==", + "dev": true, + "license": "MIT", "dependencies": { - "mimic-response": "^3.1.0" + "mimic-response": "^4.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decompress-response/node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "engines": { - "node": ">=10" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -8523,13 +8571,15 @@ "node_modules/deep-equal": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", - "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU= sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==", - "dev": true + "integrity": "sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==", + "dev": true, + "license": "MIT" }, "node_modules/deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "license": "MIT", "engines": { "node": ">=4.0.0" } @@ -8538,13 +8588,15 @@ "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==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/deepmerge": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-3.1.0.tgz", - "integrity": "sha512-/TnecbwXEdycfbsM2++O3eGiatEFHjjNciHEwJclM+T5Kd94qD1AP+2elP/Mq0L5b9VZJao5znR01Mz6eX8Seg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -8554,14 +8606,15 @@ "resolved": "https://registry.npmjs.org/deepmerge-json/-/deepmerge-json-1.5.0.tgz", "integrity": "sha512-jZRrDmBKjmGcqMFEUJ14FjMJwm05Qaked+1vxaALRtF0UAl7lPU8OLWXFxvoeg3jbQM249VPFVn8g2znaQkEtA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4.0.0" } }, "node_modules/default-browser": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz", - "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.4.0.tgz", + "integrity": "sha512-XDuvSq38Hr1MdN47EDvYtx3U0MTqpCEn+F6ft8z2vYDzMrvQhVp0ui9oQdqW3MvK3vqUETglt1tVGgjLuJ5izg==", "license": "MIT", "dependencies": { "bundle-name": "^4.1.0", @@ -8575,9 +8628,9 @@ } }, "node_modules/default-browser-id": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz", - "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==", + "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" @@ -8591,6 +8644,7 @@ "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", "dev": true, + "license": "MIT", "dependencies": { "kind-of": "^5.0.2" }, @@ -8601,8 +8655,9 @@ "node_modules/default-resolution": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", - "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ= sha512-2xaP6GiwVwOEbXCGoJ4ufgC76m8cj805jrghScewJC2ZDsb9U0b4BIrba+xt/Uytyd0HvQ6+WymSRTfnYj59GQ==", + "integrity": "sha512-2xaP6GiwVwOEbXCGoJ4ufgC76m8cj805jrghScewJC2ZDsb9U0b4BIrba+xt/Uytyd0HvQ6+WymSRTfnYj59GQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.10" } @@ -8612,6 +8667,7 @@ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } @@ -8620,6 +8676,7 @@ "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==", + "license": "MIT", "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", @@ -8666,6 +8723,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, + "license": "MIT", "dependencies": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" @@ -8675,10 +8733,10 @@ } }, "node_modules/delayed-stream": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.6.tgz", - "integrity": "sha1-omRst+w9XXd0YUZwp6Zd4MFz7bw= sha512-Si7mB08fdumvLNFddq3HQOoYf8BUxfITyZi+0RBn1sbojFm8c4gD1+3se7qVEji1uiVVLYE0Np0laaS9E+j6ag==", - "dev": true, + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", "engines": { "node": ">=0.4.0" } @@ -8686,13 +8744,15 @@ "node_modules/delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", - "dev": true + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "dev": true, + "license": "MIT" }, "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" } @@ -8702,6 +8762,7 @@ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8", "npm": "1.2.8000 || >= 1.4.16" @@ -8710,19 +8771,21 @@ "node_modules/detect-file": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==", + "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/detect-indent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz", - "integrity": "sha1-OHHMCmoALow+Wzz38zYmRnXwa50= sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", + "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", "dev": true, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/detect-libc": { @@ -8737,17 +8800,19 @@ "node_modules/detect-newline": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", - "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I= sha512-CwffZFvlJffUg9zZA0uqrjQayUTC8ob94pnr5sFwaVv3IOmkfUHcWH+jXaQK3askE51Cqe8/9Ql/0uXNwqZ8Zg==", + "integrity": "sha512-CwffZFvlJffUg9zZA0uqrjQayUTC8ob94pnr5sFwaVv3IOmkfUHcWH+jXaQK3askE51Cqe8/9Ql/0uXNwqZ8Zg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/detect-node": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", - "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", "dev": true, + "license": "MIT", "optional": true }, "node_modules/didyoumean": { @@ -8771,6 +8836,7 @@ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, + "license": "MIT", "dependencies": { "path-type": "^4.0.0" }, @@ -8802,6 +8868,7 @@ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", "dev": true, + "license": "MIT", "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.2", @@ -8821,13 +8888,15 @@ "type": "github", "url": "https://github.com/sponsors/fb55" } - ] + ], + "license": "BSD-2-Clause" }, "node_modules/domhandler": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "domelementtype": "^2.3.0" }, @@ -8839,10 +8908,11 @@ } }, "node_modules/domutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", - "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", @@ -8867,16 +8937,18 @@ } }, "node_modules/duplexer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", - "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E= sha512-sxNZ+ljy+RA1maXoUReeqBBpBC6RLKmg5ewzV+x+mSETmWNoKdZN6vcQjpFROemza23hGFskJtFNoUWUaQ+R4Q==", - "dev": true + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true, + "license": "MIT" }, "node_modules/duplexify": { "version": "3.7.1", "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", "dev": true, + "license": "MIT", "dependencies": { "end-of-stream": "^1.0.0", "inherits": "^2.0.1", @@ -8884,11 +8956,19 @@ "stream-shift": "^1.0.0" } }, + "node_modules/duplexify/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, "node_modules/duplexify/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -8899,11 +8979,29 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/duplexify/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==", + "dev": true, + "license": "MIT" + }, + "node_modules/duplexify/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/each-props": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", "dev": true, + "license": "MIT", "dependencies": { "is-plain-object": "^2.0.1", "object.defaults": "^1.1.0" @@ -8914,6 +9012,7 @@ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, + "license": "MIT", "dependencies": { "isobject": "^3.0.1" }, @@ -8925,7 +9024,8 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ecdsa-sig-formatter": { "version": "1.0.11", @@ -8937,117 +9037,375 @@ } }, "node_modules/editorconfig": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.2.tgz", - "integrity": "sha512-GWjSI19PVJAM9IZRGOS+YKI8LN+/sjkSjNyvxL5ucqP9/IqtYNXBaQ/6c/hkPNYQHyOHra2KoXZI/JVpuqwmcQ==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-1.0.4.tgz", + "integrity": "sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@one-ini/wasm": "0.1.1", + "commander": "^10.0.0", + "minimatch": "9.0.1", + "semver": "^7.5.3" + }, + "bin": { + "editorconfig": "bin/editorconfig" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/editorconfig/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/editorconfig/node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/editorconfig/node_modules/minimatch": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz", + "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/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": { + "version": "37.7.0", + "resolved": "https://registry.npmjs.org/electron/-/electron-37.7.0.tgz", + "integrity": "sha512-LBzvfrS0aalynOsnC11AD7zeoU8eOois090mzLpQM3K8yZ2N04i2ZW9qmHOTFLrXlKvrwRc7EbyQf1u8XHMl6Q==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@electron/get": "^2.0.0", + "@types/node": "^22.7.7", + "extract-zip": "^2.0.1" + }, + "bin": { + "electron": "cli.js" + }, + "engines": { + "node": ">= 12.20.55" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.259", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.259.tgz", + "integrity": "sha512-I+oLXgpEJzD6Cwuwt1gYjxsDmu/S/Kd41mmLA3O+/uH2pFRO/DvOjUyGozL8j3KeLV6WyZ7ssPwELMsXCcsJAQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/electron/node_modules/@electron/get": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@electron/get/-/get-2.0.3.tgz", + "integrity": "sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "got": "^11.8.5", + "progress": "^2.0.3", + "semver": "^6.2.0", + "sumchecker": "^3.0.1" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "global-agent": "^3.0.0" + } + }, + "node_modules/electron/node_modules/@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/electron/node_modules/cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.6.0" + } + }, + "node_modules/electron/node_modules/cacheable-request": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", + "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/electron/node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/electron/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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/electron/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/electron/node_modules/got": { + "version": "11.8.6", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", + "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=10.19.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/electron/node_modules/http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "node_modules/electron/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/electron/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/electron/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/electron/node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", "dev": true, - "dependencies": { - "@types/node": "^10.11.7", - "@types/semver": "^5.5.0", - "commander": "^2.19.0", - "lru-cache": "^4.1.3", - "semver": "^5.6.0", - "sigmund": "^1.0.1" + "license": "MIT", + "engines": { + "node": ">=10" }, - "bin": { - "editorconfig": "bin/editorconfig" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/editorconfig/node_modules/@types/node": { - "version": "10.17.60", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", - "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==", + "node_modules/electron/node_modules/p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", "dev": true, - "license": "MIT" - }, - "node_modules/editorconfig/node_modules/@types/semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-41qEJgBH/TWgo5NFSvBCJ1qkoi3Q6ONSF2avrHq1LVEZfYpdHmj0y9SuTK+u9ZhG1sYQKBL1AWXKyLWP4RaUoQ==", - "dev": true - }, - "node_modules/editorconfig/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==", - "dev": true + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "node_modules/editorconfig/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "node_modules/electron/node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true, - "bin": { - "semver": "bin/semver" + "license": "MIT", + "engines": { + "node": ">=0.4.0" } }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" - }, - "node_modules/electron": { - "version": "37.7.0", - "resolved": "https://registry.npmjs.org/electron/-/electron-37.7.0.tgz", - "integrity": "sha512-LBzvfrS0aalynOsnC11AD7zeoU8eOois090mzLpQM3K8yZ2N04i2ZW9qmHOTFLrXlKvrwRc7EbyQf1u8XHMl6Q==", + "node_modules/electron/node_modules/responselike": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", + "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", "dev": true, - "hasInstallScript": true, "license": "MIT", "dependencies": { - "@electron/get": "^2.0.0", - "@types/node": "^22.7.7", - "extract-zip": "^2.0.1" + "lowercase-keys": "^2.0.0" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/electron/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", "bin": { - "electron": "cli.js" - }, - "engines": { - "node": ">= 12.20.55" + "semver": "bin/semver.js" } }, - "node_modules/electron-to-chromium": { - "version": "1.5.254", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.254.tgz", - "integrity": "sha512-DcUsWpVhv9svsKRxnSCZ86SjD+sp32SGidNB37KpqXJncp1mfUgKbHvBomE89WJDbfVKw1mdv5+ikrvd43r+Bg==", + "node_modules/electron/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true, - "license": "ISC" + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } }, "node_modules/emoji-regex": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", - "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==", - "dev": true + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", + "dev": true, + "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==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "dev": true, + "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/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", + "license": "MIT", "dependencies": { "once": "^1.4.0" } }, "node_modules/enhanced-resolve": { - "version": "5.18.2", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.2.tgz", - "integrity": "sha512-6Jw4sE1maoRJo3q8MsSIn2onJFbLTOjY9hlx4DZXmOKvLRd1Ok2kXmAGXaafL2+ijsJZ1ClYbl/pmqr9+k4iUQ==", + "version": "5.18.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz", + "integrity": "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==", "dev": true, "license": "MIT", "dependencies": { @@ -9063,6 +9421,7 @@ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.12" }, @@ -9071,19 +9430,24 @@ } }, "node_modules/env-paths": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz", - "integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-3.0.0.tgz", + "integrity": "sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==", "dev": true, + "license": "MIT", "engines": { - "node": ">=6" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/envinfo": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", - "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.20.0.tgz", + "integrity": "sha512-+zUomDcLXsVkQ37vUqWBvQwLaLlj8eZPSi61llaEFAVBY5mhcXdaSw1pSJVl4yTYD5g/gEfpNl28YYk4IPvrrg==", "dev": true, + "license": "MIT", "bin": { "envinfo": "dist/cli.js" }, @@ -9096,6 +9460,7 @@ "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", "dev": true, + "license": "MIT", "dependencies": { "prr": "~1.0.1" }, @@ -9104,10 +9469,11 @@ } }, "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", "dev": true, + "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" } @@ -9193,6 +9559,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -9225,10 +9592,11 @@ } }, "node_modules/es-module-lexer": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", - "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", - "dev": true + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "dev": true, + "license": "MIT" }, "node_modules/es-object-atoms": { "version": "1.1.1", @@ -9287,11 +9655,12 @@ } }, "node_modules/es5-ext": { - "version": "0.10.63", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.63.tgz", - "integrity": "sha512-hUCZd2Byj/mNKjfP9jXrdVZ62B8KuA/VoK7X8nUh5qT+AxDmcbvZz041oDVZdbIN1qW6XY9VDNwzkvKnZvK2TQ==", + "version": "0.10.64", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", + "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", "dev": true, "hasInstallScript": true, + "license": "ISC", "dependencies": { "es6-iterator": "^2.0.3", "es6-symbol": "^3.1.3", @@ -9307,13 +9676,15 @@ "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", "dev": true, + "license": "MIT", "optional": true }, "node_modules/es6-iterator": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c= sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", "dev": true, + "license": "MIT", "dependencies": { "d": "1", "es5-ext": "^0.10.35", @@ -9321,13 +9692,17 @@ } }, "node_modules/es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz", + "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==", "dev": true, + "license": "ISC", "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" + "d": "^1.0.2", + "ext": "^1.7.0" + }, + "engines": { + "node": ">=0.12" } }, "node_modules/es6-weak-map": { @@ -9335,6 +9710,7 @@ "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", "dev": true, + "license": "ISC", "dependencies": { "d": "1", "es5-ext": "^0.10.46", @@ -9397,13 +9773,15 @@ "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==" + "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", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -9412,25 +9790,24 @@ } }, "node_modules/eslint": { - "version": "9.36.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.36.0.tgz", - "integrity": "sha512-hB4FIzXovouYzwzECDcUkJ4OcfOEkXTv2zRY6B9bkwjx/cprAq0uvm1nl7zvQ0/TsUk0zQiN4uPfJpB9m+rPMQ==", + "version": "9.39.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.1.tgz", + "integrity": "sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.21.0", - "@eslint/config-helpers": "^0.3.1", - "@eslint/core": "^0.15.2", + "@eslint/config-array": "^0.21.1", + "@eslint/config-helpers": "^0.4.2", + "@eslint/core": "^0.17.0", "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.36.0", - "@eslint/plugin-kit": "^0.3.5", + "@eslint/js": "9.39.1", + "@eslint/plugin-kit": "^0.4.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", - "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.6", @@ -9477,6 +9854,7 @@ "resolved": "https://registry.npmjs.org/eslint-formatter-compact/-/eslint-formatter-compact-8.40.0.tgz", "integrity": "sha512-cwGUs113TgmTQXecx5kfRjB7m0y2wkDLSadPTE2pK6M/wO4N8PjmUaoWOFNCP9MHgsiZwgqd5bZFnDCnszC56Q==", "dev": true, + "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } @@ -9486,27 +9864,28 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-header/-/eslint-plugin-header-3.1.1.tgz", "integrity": "sha512-9vlKxuJ4qf793CmeeSrZUvVClw6amtpghq3CuWcB5cUNnWHQhgcqy5eF8oVKFk1G3Y/CbchGfEaw3wiIJaNmVg==", "dev": true, + "license": "MIT", "peerDependencies": { "eslint": ">=7.7.0" } }, "node_modules/eslint-plugin-jsdoc": { - "version": "50.3.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-50.3.1.tgz", - "integrity": "sha512-SY9oUuTMr6aWoJggUS40LtMjsRzJPB5ZT7F432xZIHK3EfHF+8i48GbUBpwanrtlL9l1gILNTHK9o8gEhYLcKA==", + "version": "50.8.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-50.8.0.tgz", + "integrity": "sha512-UyGb5755LMFWPrZTEqqvTJ3urLz1iqj+bYOHFNag+sw3NvaMWP9K2z+uIn37XfNALmQLQyrBlJ5mkiVPL7ADEg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "@es-joy/jsdoccomment": "~0.48.0", + "@es-joy/jsdoccomment": "~0.50.2", "are-docs-informative": "^0.0.2", "comment-parser": "1.4.1", - "debug": "^4.3.6", + "debug": "^4.4.1", "escape-string-regexp": "^4.0.0", - "espree": "^10.1.0", + "espree": "^10.3.0", "esquery": "^1.6.0", - "parse-imports": "^2.1.1", - "semver": "^7.6.3", - "spdx-expression-parse": "^4.0.0", - "synckit": "^0.9.1" + "parse-imports-exports": "^0.2.4", + "semver": "^7.7.2", + "spdx-expression-parse": "^4.0.0" }, "engines": { "node": ">=18" @@ -9515,16 +9894,6 @@ "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" } }, - "node_modules/eslint-plugin-jsdoc/node_modules/spdx-expression-parse": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz", - "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==", - "dev": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, "node_modules/eslint-plugin-local": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/eslint-plugin-local/-/eslint-plugin-local-6.0.0.tgz", @@ -9575,23 +9944,6 @@ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" } }, - "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.5", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", - "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", - "license": "MIT", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/eslint-plugin-react/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -9619,12 +9971,13 @@ } }, "node_modules/eslint-visitor-keys": { - "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==", + "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==", "dev": true, + "license": "Apache-2.0", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -9647,24 +10000,12 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/eslint/node_modules/eslint-visitor-keys": { - "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==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, "node_modules/eslint/node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.3" }, @@ -9684,6 +10025,7 @@ "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", "dev": true, + "license": "ISC", "dependencies": { "d": "^1.0.1", "es5-ext": "^0.10.62", @@ -9694,12 +10036,6 @@ "node": ">=0.10" } }, - "node_modules/esniff/node_modules/type": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", - "dev": true - }, "node_modules/espree": { "version": "10.4.0", "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", @@ -9718,24 +10054,12 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/espree/node_modules/eslint-visitor-keys": { - "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==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, "node_modules/esquery": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, @@ -9748,6 +10072,7 @@ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -9768,6 +10093,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } @@ -9784,8 +10110,9 @@ "node_modules/event-emitter": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk= sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", + "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", "dev": true, + "license": "MIT", "dependencies": { "d": "1", "es5-ext": "~0.10.14" @@ -9794,8 +10121,9 @@ "node_modules/event-stream": { "version": "3.3.4", "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", - "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE= sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==", + "integrity": "sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==", "dev": true, + "license": "MIT", "dependencies": { "duplexer": "~0.1.1", "from": "~0", @@ -9816,14 +10144,25 @@ } }, "node_modules/events": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", - "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.x" } }, + "node_modules/events-universal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/events-universal/-/events-universal-1.0.1.tgz", + "integrity": "sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bare-events": "^2.7.0" + } + }, "node_modules/eventsource": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-3.0.7.tgz", @@ -9848,8 +10187,9 @@ "node_modules/expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI= sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^2.3.3", "define-property": "^0.2.5", @@ -9868,6 +10208,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -9875,8 +10216,9 @@ "node_modules/expand-brackets/node_modules/define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dev": true, + "license": "MIT", "dependencies": { "is-descriptor": "^0.1.0" }, @@ -9887,8 +10229,9 @@ "node_modules/expand-brackets/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, + "license": "MIT", "dependencies": { "is-extendable": "^0.1.0" }, @@ -9896,75 +10239,26 @@ "node": ">=0.10.0" } }, - "node_modules/expand-brackets/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "deprecated": "Please upgrade to v0.1.7", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "deprecated": "Please upgrade to v0.1.5", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/expand-brackets/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", "dev": true, + "license": "MIT", "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, "node_modules/expand-brackets/node_modules/is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -9972,13 +10266,15 @@ "node_modules/expand-brackets/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" }, "node_modules/expand-template": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", + "license": "(MIT OR WTFPL)", "engines": { "node": ">=6" } @@ -9986,8 +10282,9 @@ "node_modules/expand-tilde": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", + "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", "dev": true, + "license": "MIT", "dependencies": { "homedir-polyfill": "^1.0.1" }, @@ -10052,147 +10349,28 @@ "express": ">= 4.11" } }, - "node_modules/express/node_modules/accepts": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", - "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", - "license": "MIT", - "dependencies": { - "mime-types": "^3.0.0", - "negotiator": "^1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express/node_modules/content-disposition": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.0.tgz", - "integrity": "sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==", - "license": "MIT", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express/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/express/node_modules/fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", - "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/express/node_modules/media-typer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", - "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/express/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/express/node_modules/mime-types": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", - "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", - "license": "MIT", - "dependencies": { - "mime-db": "^1.54.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express/node_modules/negotiator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", - "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express/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/express/node_modules/type-is": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", - "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==", - "license": "MIT", - "dependencies": { - "content-type": "^1.0.5", - "media-typer": "^1.1.0", - "mime-types": "^3.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/ext": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", - "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", "dev": true, + "license": "ISC", "dependencies": { - "type": "^2.0.0" + "type": "^2.7.2" } }, - "node_modules/ext/node_modules/type": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.1.0.tgz", - "integrity": "sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA==", - "dev": true - }, "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" }, "node_modules/extend-shallow": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", "dev": true, + "license": "MIT", "dependencies": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" @@ -10206,6 +10384,7 @@ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, + "license": "MIT", "dependencies": { "array-unique": "^0.3.2", "define-property": "^1.0.0", @@ -10223,8 +10402,9 @@ "node_modules/extglob/node_modules/define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY= sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", "dev": true, + "license": "MIT", "dependencies": { "is-descriptor": "^1.0.0" }, @@ -10235,8 +10415,9 @@ "node_modules/extglob/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, + "license": "MIT", "dependencies": { "is-extendable": "^0.1.0" }, @@ -10247,8 +10428,9 @@ "node_modules/extglob/node_modules/is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -10258,6 +10440,7 @@ "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "debug": "^4.1.1", "get-stream": "^5.1.0", @@ -10276,8 +10459,9 @@ "node_modules/extract-zip/node_modules/yauzl": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", "dev": true, + "license": "MIT", "dependencies": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" @@ -10288,6 +10472,7 @@ "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", "dev": true, + "license": "MIT", "dependencies": { "ansi-gray": "^0.1.1", "color-support": "^1.1.3", @@ -10318,25 +10503,28 @@ "node_modules/fast-deep-equal": { "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==" + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" }, "node_modules/fast-fifo": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "micromatch": "^4.0.8" }, "engines": { "node": ">=8.6.0" @@ -10352,8 +10540,9 @@ "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" }, "node_modules/fast-uri": { "version": "3.1.0", @@ -10371,17 +10560,41 @@ ], "license": "BSD-3-Clause" }, + "node_modules/fast-xml-parser": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.3.2.tgz", + "integrity": "sha512-n8v8b6p4Z1sMgqRmqLJm3awW4NX7NkaKPfb3uJIBTSH7Pdvufi3PQ3/lJLQrvxcMYl7JI2jnDO90siPEpD8JBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT", + "dependencies": { + "strnum": "^2.1.0" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, "node_modules/fastest-levenshtein": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", - "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", - "dev": true + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.9.1" + } }, "node_modules/fastq": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.9.0.tgz", - "integrity": "sha512-i7FVWL8HhVY+CTkwFxkN2mk3h+787ixS5S63eb78diVRc1MCssarHq3W5cj0av7YDSwmaV928RNag+U1etRQ7w==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", "dev": true, + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } @@ -10389,7 +10602,8 @@ "node_modules/fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "license": "MIT", "dependencies": { "pend": "~1.2.0" } @@ -10417,6 +10631,7 @@ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, + "license": "MIT", "dependencies": { "flat-cache": "^4.0.0" }, @@ -10429,6 +10644,7 @@ "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", "dev": true, + "license": "MIT", "dependencies": { "loader-utils": "^2.0.0", "schema-utils": "^3.0.0" @@ -10461,6 +10677,16 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/file-loader/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, "node_modules/file-loader/node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -10469,12 +10695,13 @@ "license": "MIT" }, "node_modules/file-loader/node_modules/schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", - "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "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==", "dev": true, + "license": "MIT", "dependencies": { - "@types/json-schema": "^7.0.6", + "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", "ajv-keywords": "^3.5.2" }, @@ -10489,12 +10716,14 @@ "node_modules/file-uri-to-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "license": "MIT" }, "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -10519,31 +10748,29 @@ "node": ">= 0.8" } }, - "node_modules/finalhandler/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/find-parent-dir": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/find-parent-dir/-/find-parent-dir-0.3.1.tgz", "integrity": "sha512-o4UcykWV/XN9wm+jMEtWLPlV8RXCZnMhQI6F6OdHeSez7iiJWePw8ijOlskJZMsaQoGR/b7dH6lO02HhaTN7+A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/find-replace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", - "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-5.0.2.tgz", + "integrity": "sha512-Y45BAiE3mz2QsrN2fb5QEtO4qb44NcS7en/0y9PEVsg351HsLeVclP8QPMH79Le9sH3rs5RSwJu99W0WPZO43Q==", "dev": true, - "dependencies": { - "array-back": "^3.0.1" - }, + "license": "MIT", "engines": { - "node": ">=4.0.0" + "node": ">=14" + }, + "peerDependencies": { + "@75lb/nature": "latest" + }, + "peerDependenciesMeta": { + "@75lb/nature": { + "optional": true + } } }, "node_modules/find-up": { @@ -10551,6 +10778,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -10567,6 +10795,7 @@ "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", "dev": true, + "license": "MIT", "dependencies": { "detect-file": "^1.0.0", "is-glob": "^4.0.0", @@ -10582,6 +10811,7 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, + "license": "MIT", "dependencies": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", @@ -10601,8 +10831,9 @@ "node_modules/findup-sync/node_modules/braces/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, + "license": "MIT", "dependencies": { "is-extendable": "^0.1.0" }, @@ -10613,8 +10844,9 @@ "node_modules/findup-sync/node_modules/fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", "dev": true, + "license": "MIT", "dependencies": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", @@ -10628,8 +10860,9 @@ "node_modules/findup-sync/node_modules/fill-range/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, + "license": "MIT", "dependencies": { "is-extendable": "^0.1.0" }, @@ -10640,8 +10873,9 @@ "node_modules/findup-sync/node_modules/is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -10649,8 +10883,9 @@ "node_modules/findup-sync/node_modules/is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", "dev": true, + "license": "MIT", "dependencies": { "kind-of": "^3.0.2" }, @@ -10661,8 +10896,9 @@ "node_modules/findup-sync/node_modules/is-number/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, + "license": "MIT", "dependencies": { "is-buffer": "^1.1.5" }, @@ -10675,6 +10911,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -10684,6 +10921,7 @@ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, + "license": "MIT", "dependencies": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -10706,8 +10944,9 @@ "node_modules/findup-sync/node_modules/to-regex-range": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^3.0.0", "repeat-string": "^1.6.1" @@ -10721,6 +10960,7 @@ "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", "dev": true, + "license": "MIT", "dependencies": { "expand-tilde": "^2.0.2", "is-plain-object": "^2.0.3", @@ -10737,6 +10977,7 @@ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, + "license": "MIT", "dependencies": { "isobject": "^3.0.1" }, @@ -10761,6 +11002,7 @@ "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.10" } @@ -10770,6 +11012,7 @@ "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", "dev": true, + "license": "BSD-3-Clause", "bin": { "flat": "cli.js" } @@ -10779,6 +11022,7 @@ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, + "license": "MIT", "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.4" @@ -10788,26 +11032,36 @@ } }, "node_modules/flatted": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", - "dev": true + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true, + "license": "ISC" }, "node_modules/flush-write-stream": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "readable-stream": "^2.3.6" } }, + "node_modules/flush-write-stream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, "node_modules/flush-write-stream/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -10818,6 +11072,23 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/flush-write-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==", + "dev": true, + "license": "MIT" + }, + "node_modules/flush-write-stream/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/follow-redirects": { "version": "1.15.11", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", @@ -10865,24 +11136,6 @@ "node": ">8.0.0" } }, - "node_modules/font-ligatures/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/font-ligatures/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "license": "ISC" - }, "node_modules/for-each": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", @@ -10901,8 +11154,9 @@ "node_modules/for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -10910,8 +11164,9 @@ "node_modules/for-own": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs= sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==", + "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==", "dev": true, + "license": "MIT", "dependencies": { "for-in": "^1.0.1" }, @@ -10920,12 +11175,13 @@ } }, "node_modules/foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", "dev": true, + "license": "ISC", "dependencies": { - "cross-spawn": "^7.0.0", + "cross-spawn": "^7.0.6", "signal-exit": "^4.0.1" }, "engines": { @@ -10952,13 +11208,30 @@ } }, "node_modules/form-data-encoder": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-4.1.0.tgz", - "integrity": "sha512-G6NsmEW15s0Uw9XnCg+33H3ViYRyiM0hMrMhhqQOR8NFc5GhYrI+6I3u7OTw7b91J2g8rtvMBZJDbcGb2YUniw==", - "dev": true, + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.2.tgz", + "integrity": "sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==", + "license": "MIT" + }, + "node_modules/form-data/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "license": "MIT", "engines": { - "node": ">= 18" + "node": ">= 0.6" + } + }, + "node_modules/form-data/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" } }, "node_modules/formdata-node": { @@ -11000,8 +11273,9 @@ "node_modules/fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", + "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", "dev": true, + "license": "MIT", "dependencies": { "map-cache": "^0.2.2" }, @@ -11010,29 +11284,32 @@ } }, "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "dev": true, + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", + "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">= 0.8" } }, "node_modules/from": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", - "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4= sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==", - "dev": true + "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==", + "dev": true, + "license": "MIT" }, "node_modules/fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "license": "MIT" }, "node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "version": "11.3.2", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.2.tgz", + "integrity": "sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==", + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -11046,6 +11323,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "license": "ISC", "dependencies": { "minipass": "^3.0.0" }, @@ -11054,9 +11332,10 @@ } }, "node_modules/fs-minipass/node_modules/minipass": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", - "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -11064,16 +11343,12 @@ "node": ">=8" } }, - "node_modules/fs-minipass/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, "node_modules/fs-mkdirp-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", - "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes= sha512-+vSd9frUnapVC2RZYfL3FCB2p3g4TBhaUmrsWlSudsGdnxIuUvBB2QM1VZeBtc49QFwrp+wQLrDs3+xxDgI5gQ==", + "integrity": "sha512-+vSd9frUnapVC2RZYfL3FCB2p3g4TBhaUmrsWlSudsGdnxIuUvBB2QM1VZeBtc49QFwrp+wQLrDs3+xxDgI5gQ==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.1.11", "through2": "^2.0.3" @@ -11082,11 +11357,19 @@ "node": ">= 0.10" } }, + "node_modules/fs-mkdirp-stream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, "node_modules/fs-mkdirp-stream/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -11097,11 +11380,29 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/fs-mkdirp-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==", + "dev": true, + "license": "MIT" + }, + "node_modules/fs-mkdirp-stream/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/fs-mkdirp-stream/node_modules/through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, + "license": "MIT", "dependencies": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" @@ -11110,15 +11411,17 @@ "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8= sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" }, "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -11133,6 +11436,7 @@ "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", "deprecated": "This package is no longer supported.", "dev": true, + "license": "ISC", "dependencies": { "graceful-fs": "^4.1.2", "inherits": "~2.0.0", @@ -11143,22 +11447,11 @@ "node": ">=0.6" } }, - "node_modules/fstream/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -11208,38 +11501,6 @@ "node": ">=14" } }, - "node_modules/gaxios/node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/gaxios/node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "license": "MIT", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, "node_modules/gcp-metadata": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-6.1.1.tgz", @@ -11268,6 +11529,7 @@ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -11277,10 +11539,24 @@ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, + "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" } }, + "node_modules/get-east-asian-width": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.4.0.tgz", + "integrity": "sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/get-intrinsic": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", @@ -11323,6 +11599,7 @@ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-7.0.0.tgz", "integrity": "sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -11332,6 +11609,7 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, + "license": "MIT", "dependencies": { "pump": "^3.0.0" }, @@ -11343,10 +11621,11 @@ } }, "node_modules/get-stream/node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz", + "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==", "dev": true, + "license": "MIT", "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -11381,8 +11660,9 @@ "node_modules/get-value": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -11390,14 +11670,16 @@ "node_modules/github-from-package": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4= sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==" + "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", + "license": "MIT" }, "node_modules/glob": { "version": "5.0.15", "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", - "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E= sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==", + "integrity": "sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==", "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "inflight": "^1.0.4", "inherits": "2", @@ -11414,6 +11696,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -11424,8 +11707,9 @@ "node_modules/glob-stream": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", - "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ= sha512-uMbLGAP3S2aDOHUDfdoYcdIePUCfysbAd0IAoWVZbeGU/oNQ8asHVSshLDJUPWxfzj8zsCG7/XeHPHTtow0nsw==", + "integrity": "sha512-uMbLGAP3S2aDOHUDfdoYcdIePUCfysbAd0IAoWVZbeGU/oNQ8asHVSshLDJUPWxfzj8zsCG7/XeHPHTtow0nsw==", "dev": true, + "license": "MIT", "dependencies": { "extend": "^3.0.0", "glob": "^7.1.1", @@ -11443,16 +11727,17 @@ } }, "node_modules/glob-stream/node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, @@ -11466,8 +11751,9 @@ "node_modules/glob-stream/node_modules/glob-parent": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^3.1.0", "path-dirname": "^1.0.0" @@ -11476,8 +11762,9 @@ "node_modules/glob-stream/node_modules/is-glob": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^2.1.0" }, @@ -11485,11 +11772,19 @@ "node": ">=0.10.0" } }, + "node_modules/glob-stream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, "node_modules/glob-stream/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -11500,17 +11795,36 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/glob-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==", + "dev": true, + "license": "MIT" + }, + "node_modules/glob-stream/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/glob-to-regexp": { "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==", - "dev": true + "dev": true, + "license": "BSD-2-Clause" }, "node_modules/glob-watcher": { "version": "5.0.5", "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz", "integrity": "sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==", "dev": true, + "license": "MIT", "dependencies": { "anymatch": "^2.0.0", "async-done": "^1.2.0", @@ -11529,6 +11843,7 @@ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, + "license": "ISC", "dependencies": { "micromatch": "^3.1.4", "normalize-path": "^2.1.1" @@ -11537,8 +11852,9 @@ "node_modules/glob-watcher/node_modules/anymatch/node_modules/normalize-path": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", "dev": true, + "license": "MIT", "dependencies": { "remove-trailing-separator": "^1.0.1" }, @@ -11551,6 +11867,7 @@ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -11560,6 +11877,7 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, + "license": "MIT", "dependencies": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", @@ -11579,8 +11897,9 @@ "node_modules/glob-watcher/node_modules/braces/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, + "license": "MIT", "dependencies": { "is-extendable": "^0.1.0" }, @@ -11592,8 +11911,8 @@ "version": "2.1.8", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies", "dev": true, + "license": "MIT", "dependencies": { "anymatch": "^2.0.0", "async-each": "^1.0.1", @@ -11614,8 +11933,9 @@ "node_modules/glob-watcher/node_modules/fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", "dev": true, + "license": "MIT", "dependencies": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", @@ -11629,8 +11949,9 @@ "node_modules/glob-watcher/node_modules/fill-range/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, + "license": "MIT", "dependencies": { "is-extendable": "^0.1.0" }, @@ -11642,9 +11963,10 @@ "version": "1.2.13", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "deprecated": "The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2", + "deprecated": "Upgrade to fsevents v2 to mitigate potential security issues", "dev": true, "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -11660,8 +11982,9 @@ "node_modules/glob-watcher/node_modules/glob-parent": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^3.1.0", "path-dirname": "^1.0.0" @@ -11670,8 +11993,9 @@ "node_modules/glob-watcher/node_modules/glob-parent/node_modules/is-glob": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^2.1.0" }, @@ -11682,8 +12006,9 @@ "node_modules/glob-watcher/node_modules/is-binary-path": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", + "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", "dev": true, + "license": "MIT", "dependencies": { "binary-extensions": "^1.0.0" }, @@ -11694,8 +12019,9 @@ "node_modules/glob-watcher/node_modules/is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -11703,8 +12029,9 @@ "node_modules/glob-watcher/node_modules/is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", "dev": true, + "license": "MIT", "dependencies": { "kind-of": "^3.0.2" }, @@ -11712,11 +12039,19 @@ "node": ">=0.10.0" } }, + "node_modules/glob-watcher/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, "node_modules/glob-watcher/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, + "license": "MIT", "dependencies": { "is-buffer": "^1.1.5" }, @@ -11729,6 +12064,7 @@ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, + "license": "MIT", "dependencies": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -11753,15 +12089,17 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/glob-watcher/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -11777,6 +12115,7 @@ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.1.11", "micromatch": "^3.1.10", @@ -11786,11 +12125,29 @@ "node": ">=0.10" } }, + "node_modules/glob-watcher/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==", + "dev": true, + "license": "MIT" + }, + "node_modules/glob-watcher/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/glob-watcher/node_modules/to-regex-range": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^3.0.0", "repeat-string": "^1.6.1" @@ -11804,6 +12161,7 @@ "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz", "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", "dev": true, + "license": "BSD-3-Clause", "optional": true, "dependencies": { "boolean": "^3.0.1", @@ -11822,6 +12180,7 @@ "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", "dev": true, + "license": "MIT", "dependencies": { "global-prefix": "^1.0.1", "is-windows": "^1.0.1", @@ -11834,8 +12193,9 @@ "node_modules/global-prefix": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", + "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", "dev": true, + "license": "MIT", "dependencies": { "expand-tilde": "^2.0.2", "homedir-polyfill": "^1.0.1", @@ -11852,6 +12212,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -11888,11 +12249,32 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/globby": { + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", + "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.3.0", + "ignore": "^5.2.4", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/glogg": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", "dev": true, + "license": "MIT", "dependencies": { "sparkles": "^1.0.0" }, @@ -11939,34 +12321,57 @@ } }, "node_modules/got": { - "version": "11.8.5", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.5.tgz", - "integrity": "sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ==", + "version": "14.6.5", + "resolved": "https://registry.npmjs.org/got/-/got-14.6.5.tgz", + "integrity": "sha512-Su87c0NNeg97de1sO02gy9I8EmE7DCJ1gzcFLcgGpYeq2PnLg4xz73MWrp6HjqbSsjb6Glf4UBDW6JNyZA6uSg==", "dev": true, + "license": "MIT", "dependencies": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" + "@sindresorhus/is": "^7.0.1", + "byte-counter": "^0.1.0", + "cacheable-lookup": "^7.0.0", + "cacheable-request": "^13.0.12", + "decompress-response": "^10.0.0", + "form-data-encoder": "^4.0.2", + "http2-wrapper": "^2.2.1", + "keyv": "^5.5.3", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^4.0.1", + "responselike": "^4.0.2", + "type-fest": "^4.26.1" }, "engines": { - "node": ">=10.19.0" + "node": ">=20" }, "funding": { "url": "https://github.com/sindresorhus/got?sponsor=1" } }, + "node_modules/got/node_modules/form-data-encoder": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-4.1.0.tgz", + "integrity": "sha512-G6NsmEW15s0Uw9XnCg+33H3ViYRyiM0hMrMhhqQOR8NFc5GhYrI+6I3u7OTw7b91J2g8rtvMBZJDbcGb2YUniw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 18" + } + }, + "node_modules/got/node_modules/keyv": { + "version": "5.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.5.4.tgz", + "integrity": "sha512-eohl3hKTiVyD1ilYdw9T0OiB4hnjef89e3dMYKz+mVKDzj+5IteTseASUsOB+EU9Tf6VNTCjDePcP6wkDGmLKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@keyv/serialize": "^1.1.1" + } + }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" }, "node_modules/graphemer": { "version": "1.4.0", @@ -11999,12 +12404,6 @@ "undici-types": "~5.26.4" } }, - "node_modules/groq-sdk/node_modules/form-data-encoder": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.2.tgz", - "integrity": "sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==", - "license": "MIT" - }, "node_modules/groq-sdk/node_modules/undici-types": { "version": "5.26.5", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", @@ -12029,6 +12428,7 @@ "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", "dev": true, + "license": "MIT", "dependencies": { "glob-watcher": "^5.0.3", "gulp-cli": "^2.2.0", @@ -12047,6 +12447,7 @@ "resolved": "https://registry.npmjs.org/gulp-azure-storage/-/gulp-azure-storage-0.12.1.tgz", "integrity": "sha512-n/hx8bbGsqrcizruqDTX6zy2FUdkTDGAz04IdopNxNTZivZmizf8u9WLYJreUE6/qCnSJnyjS1HP82+mLk7rjg==", "dev": true, + "license": "MIT", "dependencies": { "@azure/storage-blob": "^12.8.0", "delayed-stream": "0.0.6", @@ -12068,6 +12469,7 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -12077,6 +12479,7 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -12086,23 +12489,35 @@ "node_modules/gulp-azure-storage/node_modules/decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, + "node_modules/gulp-azure-storage/node_modules/delayed-stream": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.6.tgz", + "integrity": "sha512-Si7mB08fdumvLNFddq3HQOoYf8BUxfITyZi+0RBn1sbojFm8c4gD1+3se7qVEji1uiVVLYE0Np0laaS9E+j6ag==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/gulp-azure-storage/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/gulp-azure-storage/node_modules/find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -12116,6 +12531,7 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -12128,6 +12544,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -12143,6 +12560,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -12155,6 +12573,7 @@ "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.10" } @@ -12164,6 +12583,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -12178,6 +12598,7 @@ "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", "dev": true, + "license": "MIT", "dependencies": { "clone": "^2.1.1", "clone-buffer": "^1.0.0", @@ -12195,6 +12616,7 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -12205,16 +12627,18 @@ } }, "node_modules/gulp-azure-storage/node_modules/y18n": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", - "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", - "dev": true + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true, + "license": "ISC" }, "node_modules/gulp-azure-storage/node_modules/yargs": { "version": "15.4.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", "dev": true, + "license": "MIT", "dependencies": { "cliui": "^6.0.0", "decamelize": "^1.2.0", @@ -12237,6 +12661,7 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", "dev": true, + "license": "ISC", "dependencies": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" @@ -12250,6 +12675,7 @@ "resolved": "https://registry.npmjs.org/gulp-bom/-/gulp-bom-3.0.0.tgz", "integrity": "sha512-iw/J94F+MVlxG64Q17BSkHsyjpY17qHl3N3A/jDdrL77zQBkhKtTiKLqM4di9CUX/qFToyyeDsOWwH+rESBgmA==", "dev": true, + "license": "MIT", "dependencies": { "plugin-error": "^1.0.1", "through2": "^3.0.1" @@ -12269,7 +12695,7 @@ "node_modules/gulp-buffer": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/gulp-buffer/-/gulp-buffer-0.0.2.tgz", - "integrity": "sha1-r4G0NGEBc2tJlC7GyfqGf/5zcDY= sha512-EBkbjjTH2gRr2B8KBAcomdTemfZHqiKs8CxSYdaW0Hq3zxltQFrCg9BBmKVHC9cfxX/3l2BZK5oiGHYNJ/gcVw==", + "integrity": "sha512-EBkbjjTH2gRr2B8KBAcomdTemfZHqiKs8CxSYdaW0Hq3zxltQFrCg9BBmKVHC9cfxX/3l2BZK5oiGHYNJ/gcVw==", "dev": true, "dependencies": { "through2": "~0.4.0" @@ -12278,20 +12704,23 @@ "node_modules/gulp-buffer/node_modules/isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "dev": true + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "dev": true, + "license": "MIT" }, "node_modules/gulp-buffer/node_modules/object-keys": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY= sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==", - "dev": true + "integrity": "sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==", + "dev": true, + "license": "MIT" }, "node_modules/gulp-buffer/node_modules/readable-stream": { "version": "1.0.34", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw= sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.1", @@ -12302,14 +12731,16 @@ "node_modules/gulp-buffer/node_modules/string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", - "dev": true + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "dev": true, + "license": "MIT" }, "node_modules/gulp-buffer/node_modules/through2": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/through2/-/through2-0.4.2.tgz", - "integrity": "sha1-2/WGYDEVHsg1K7bE22SiKSqEC5s= sha512-45Llu+EwHKtAZYTPPVn3XZHBgakWMN3rokhEv5hu596XP+cNgplMg+Gj+1nmAvj+L0K7+N49zBKx5rah5u0QIQ==", + "integrity": "sha512-45Llu+EwHKtAZYTPPVn3XZHBgakWMN3rokhEv5hu596XP+cNgplMg+Gj+1nmAvj+L0K7+N49zBKx5rah5u0QIQ==", "dev": true, + "license": "MIT", "dependencies": { "readable-stream": "~1.0.17", "xtend": "~2.1.1" @@ -12318,7 +12749,7 @@ "node_modules/gulp-buffer/node_modules/xtend": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", - "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os= sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==", + "integrity": "sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==", "dev": true, "dependencies": { "object-keys": "~0.4.0" @@ -12332,6 +12763,7 @@ "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz", "integrity": "sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-colors": "^1.0.1", "archy": "^1.0.0", @@ -12364,6 +12796,7 @@ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-wrap": "^0.1.0" }, @@ -12376,6 +12809,7 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -12385,6 +12819,7 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", "integrity": "sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -12392,8 +12827,9 @@ "node_modules/gulp-cli/node_modules/cliui": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0= sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==", + "integrity": "sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^1.0.1", "strip-ansi": "^3.0.1", @@ -12403,8 +12839,9 @@ "node_modules/gulp-cli/node_modules/decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -12413,13 +12850,15 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/gulp-cli/node_modules/is-fullwidth-code-point": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs= sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", "dev": true, + "license": "MIT", "dependencies": { "number-is-nan": "^1.0.0" }, @@ -12430,14 +12869,16 @@ "node_modules/gulp-cli/node_modules/require-main-filename": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==", - "dev": true + "integrity": "sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==", + "dev": true, + "license": "ISC" }, "node_modules/gulp-cli/node_modules/string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", "dev": true, + "license": "MIT", "dependencies": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -12450,8 +12891,9 @@ "node_modules/gulp-cli/node_modules/strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^2.0.0" }, @@ -12462,14 +12904,16 @@ "node_modules/gulp-cli/node_modules/which-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8= sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ==", - "dev": true + "integrity": "sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ==", + "dev": true, + "license": "ISC" }, "node_modules/gulp-cli/node_modules/wrap-ansi": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==", + "integrity": "sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==", "dev": true, + "license": "MIT", "dependencies": { "string-width": "^1.0.1", "strip-ansi": "^3.0.1" @@ -12482,13 +12926,15 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/gulp-cli/node_modules/yargs": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.2.tgz", "integrity": "sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA==", "dev": true, + "license": "MIT", "dependencies": { "camelcase": "^3.0.0", "cliui": "^3.2.0", @@ -12510,6 +12956,7 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.1.tgz", "integrity": "sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==", "dev": true, + "license": "ISC", "dependencies": { "camelcase": "^3.0.0", "object.assign": "^4.1.0" @@ -12518,8 +12965,9 @@ "node_modules/gulp-filter": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/gulp-filter/-/gulp-filter-5.1.0.tgz", - "integrity": "sha1-oF4Rr/sHz33PQafeHLe2OsN4PnM= sha512-ZERu1ipbPmjrNQ2dQD6lL4BjrJQG66P/c5XiyMMBqV+tUAJ+fLOyYIL/qnXd2pHmw/G/r7CLQb9ttANvQWbpfQ==", + "integrity": "sha512-ZERu1ipbPmjrNQ2dQD6lL4BjrJQG66P/c5XiyMMBqV+tUAJ+fLOyYIL/qnXd2pHmw/G/r7CLQb9ttANvQWbpfQ==", "dev": true, + "license": "MIT", "dependencies": { "multimatch": "^2.0.0", "plugin-error": "^0.1.2", @@ -12532,8 +12980,9 @@ "node_modules/gulp-filter/node_modules/arr-diff": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz", - "integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo= sha512-OQwDZUqYaQwyyhDJHThmzId8daf4/RFNLaeh3AevmSeZ5Y7ug4Ga/yKc6l6kTZOBW781rCj103ZuTh8GAsB3+Q==", + "integrity": "sha512-OQwDZUqYaQwyyhDJHThmzId8daf4/RFNLaeh3AevmSeZ5Y7ug4Ga/yKc6l6kTZOBW781rCj103ZuTh8GAsB3+Q==", "dev": true, + "license": "MIT", "dependencies": { "arr-flatten": "^1.0.1", "array-slice": "^0.2.3" @@ -12545,8 +12994,9 @@ "node_modules/gulp-filter/node_modules/arr-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz", - "integrity": "sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0= sha512-t5db90jq+qdgk8aFnxEkjqta0B/GHrM1pxzuuZz2zWsOXc5nKu3t+76s/PQBA8FTcM/ipspIH9jWG4OxCBc2eA==", + "integrity": "sha512-t5db90jq+qdgk8aFnxEkjqta0B/GHrM1pxzuuZz2zWsOXc5nKu3t+76s/PQBA8FTcM/ipspIH9jWG4OxCBc2eA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -12554,8 +13004,9 @@ "node_modules/gulp-filter/node_modules/array-slice": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", - "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU= sha512-rlVfZW/1Ph2SNySXwR9QYkChp8EkOEiTMO5Vwx60usw04i4nWemkm9RXmQqgkQFaLHsqLuADvjp6IfgL9l2M8Q==", + "integrity": "sha512-rlVfZW/1Ph2SNySXwR9QYkChp8EkOEiTMO5Vwx60usw04i4nWemkm9RXmQqgkQFaLHsqLuADvjp6IfgL9l2M8Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -12563,8 +13014,9 @@ "node_modules/gulp-filter/node_modules/extend-shallow": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz", - "integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE= sha512-L7AGmkO6jhDkEBBGWlLtftA80Xq8DipnrRPr0pyi7GQLXkaq9JYA4xF4z6qnadIC6euiTDKco0cGSU9muw+WTw==", + "integrity": "sha512-L7AGmkO6jhDkEBBGWlLtftA80Xq8DipnrRPr0pyi7GQLXkaq9JYA4xF4z6qnadIC6euiTDKco0cGSU9muw+WTw==", "dev": true, + "license": "MIT", "dependencies": { "kind-of": "^1.1.0" }, @@ -12575,8 +13027,9 @@ "node_modules/gulp-filter/node_modules/kind-of": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", - "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ= sha512-aUH6ElPnMGon2/YkxRIigV32MOpTVcoXQ1Oo8aYn40s+sJ3j+0gFZsT8HKDcxNy7Fi9zuquWtGaGAahOdv5p/g==", + "integrity": "sha512-aUH6ElPnMGon2/YkxRIigV32MOpTVcoXQ1Oo8aYn40s+sJ3j+0gFZsT8HKDcxNy7Fi9zuquWtGaGAahOdv5p/g==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -12584,8 +13037,9 @@ "node_modules/gulp-filter/node_modules/plugin-error": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz", - "integrity": "sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4= sha512-WzZHcm4+GO34sjFMxQMqZbsz3xiNEgonCskQ9v+IroMmYgk/tas8dG+Hr2D6IbRPybZ12oWpzE/w3cGJ6FJzOw==", + "integrity": "sha512-WzZHcm4+GO34sjFMxQMqZbsz3xiNEgonCskQ9v+IroMmYgk/tas8dG+Hr2D6IbRPybZ12oWpzE/w3cGJ6FJzOw==", "dev": true, + "license": "MIT", "dependencies": { "ansi-cyan": "^0.1.1", "ansi-red": "^0.1.1", @@ -12602,6 +13056,7 @@ "resolved": "https://registry.npmjs.org/gulp-flatmap/-/gulp-flatmap-1.0.2.tgz", "integrity": "sha512-xm+Ax2vPL/xiMBqLFI++wUyPtncm3b55ztGHewmRcoG/sYb0OUTatjSacOud3fee77rnk+jOgnDEHhwBtMHgFA==", "dev": true, + "license": "MIT", "dependencies": { "plugin-error": "0.1.2", "through2": "2.0.3" @@ -12613,8 +13068,9 @@ "node_modules/gulp-flatmap/node_modules/arr-diff": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz", - "integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo= sha512-OQwDZUqYaQwyyhDJHThmzId8daf4/RFNLaeh3AevmSeZ5Y7ug4Ga/yKc6l6kTZOBW781rCj103ZuTh8GAsB3+Q==", + "integrity": "sha512-OQwDZUqYaQwyyhDJHThmzId8daf4/RFNLaeh3AevmSeZ5Y7ug4Ga/yKc6l6kTZOBW781rCj103ZuTh8GAsB3+Q==", "dev": true, + "license": "MIT", "dependencies": { "arr-flatten": "^1.0.1", "array-slice": "^0.2.3" @@ -12626,8 +13082,9 @@ "node_modules/gulp-flatmap/node_modules/arr-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz", - "integrity": "sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0= sha512-t5db90jq+qdgk8aFnxEkjqta0B/GHrM1pxzuuZz2zWsOXc5nKu3t+76s/PQBA8FTcM/ipspIH9jWG4OxCBc2eA==", + "integrity": "sha512-t5db90jq+qdgk8aFnxEkjqta0B/GHrM1pxzuuZz2zWsOXc5nKu3t+76s/PQBA8FTcM/ipspIH9jWG4OxCBc2eA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -12635,8 +13092,9 @@ "node_modules/gulp-flatmap/node_modules/array-slice": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", - "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU= sha512-rlVfZW/1Ph2SNySXwR9QYkChp8EkOEiTMO5Vwx60usw04i4nWemkm9RXmQqgkQFaLHsqLuADvjp6IfgL9l2M8Q==", + "integrity": "sha512-rlVfZW/1Ph2SNySXwR9QYkChp8EkOEiTMO5Vwx60usw04i4nWemkm9RXmQqgkQFaLHsqLuADvjp6IfgL9l2M8Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -12644,8 +13102,9 @@ "node_modules/gulp-flatmap/node_modules/extend-shallow": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz", - "integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE= sha512-L7AGmkO6jhDkEBBGWlLtftA80Xq8DipnrRPr0pyi7GQLXkaq9JYA4xF4z6qnadIC6euiTDKco0cGSU9muw+WTw==", + "integrity": "sha512-L7AGmkO6jhDkEBBGWlLtftA80Xq8DipnrRPr0pyi7GQLXkaq9JYA4xF4z6qnadIC6euiTDKco0cGSU9muw+WTw==", "dev": true, + "license": "MIT", "dependencies": { "kind-of": "^1.1.0" }, @@ -12653,11 +13112,19 @@ "node": ">=0.10.0" } }, + "node_modules/gulp-flatmap/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, "node_modules/gulp-flatmap/node_modules/kind-of": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", - "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ= sha512-aUH6ElPnMGon2/YkxRIigV32MOpTVcoXQ1Oo8aYn40s+sJ3j+0gFZsT8HKDcxNy7Fi9zuquWtGaGAahOdv5p/g==", + "integrity": "sha512-aUH6ElPnMGon2/YkxRIigV32MOpTVcoXQ1Oo8aYn40s+sJ3j+0gFZsT8HKDcxNy7Fi9zuquWtGaGAahOdv5p/g==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -12665,8 +13132,9 @@ "node_modules/gulp-flatmap/node_modules/plugin-error": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz", - "integrity": "sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4= sha512-WzZHcm4+GO34sjFMxQMqZbsz3xiNEgonCskQ9v+IroMmYgk/tas8dG+Hr2D6IbRPybZ12oWpzE/w3cGJ6FJzOw==", + "integrity": "sha512-WzZHcm4+GO34sjFMxQMqZbsz3xiNEgonCskQ9v+IroMmYgk/tas8dG+Hr2D6IbRPybZ12oWpzE/w3cGJ6FJzOw==", "dev": true, + "license": "MIT", "dependencies": { "ansi-cyan": "^0.1.1", "ansi-red": "^0.1.1", @@ -12679,10 +13147,11 @@ } }, "node_modules/gulp-flatmap/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -12693,11 +13162,29 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/gulp-flatmap/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==", + "dev": true, + "license": "MIT" + }, + "node_modules/gulp-flatmap/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/gulp-flatmap/node_modules/through2": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4= sha512-tmNYYHFqXmaKSSlOU4ZbQ82cxmFQa5LRWKFtWCNkGIiZ3/VHmOffCeWfBRZZRyXAhNP9itVMR+cuvomBOPlm8g==", + "integrity": "sha512-tmNYYHFqXmaKSSlOU4ZbQ82cxmFQa5LRWKFtWCNkGIiZ3/VHmOffCeWfBRZZRyXAhNP9itVMR+cuvomBOPlm8g==", "dev": true, + "license": "MIT", "dependencies": { "readable-stream": "^2.1.5", "xtend": "~4.0.1" @@ -12708,6 +13195,7 @@ "resolved": "https://registry.npmjs.org/gulp-gunzip/-/gulp-gunzip-1.1.0.tgz", "integrity": "sha512-3INeprGyz5fUtAs75k6wVslGuRZIjKAoQp39xA7Bz350ReqkrfYaLYqjZ67XyIfLytRXdzeX04f+DnBduYhQWw==", "dev": true, + "license": "MIT", "dependencies": { "through2": "~2.0.3", "vinyl": "~2.0.1" @@ -12716,17 +13204,36 @@ "node_modules/gulp-gunzip/node_modules/clone": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4= sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8" } }, + "node_modules/gulp-gunzip/node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-gunzip/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, "node_modules/gulp-gunzip/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -12742,25 +13249,45 @@ "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.10" } }, + "node_modules/gulp-gunzip/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==", + "dev": true, + "license": "MIT" + }, + "node_modules/gulp-gunzip/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/gulp-gunzip/node_modules/through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4= sha512-tmNYYHFqXmaKSSlOU4ZbQ82cxmFQa5LRWKFtWCNkGIiZ3/VHmOffCeWfBRZZRyXAhNP9itVMR+cuvomBOPlm8g==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, + "license": "MIT", "dependencies": { - "readable-stream": "^2.1.5", + "readable-stream": "~2.3.6", "xtend": "~4.0.1" } }, "node_modules/gulp-gunzip/node_modules/vinyl": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.0.2.tgz", - "integrity": "sha1-CjcT2NTpIhxY8QyhbAEWyeJe2nw= sha512-ViPXqulxjb1yXxaf/kQZfLHkd2ppnVBWPq4XmvW377vcBTxHFtHR5NRfYsdXsiKpWndKRoCdn11DfEnoCz1Inw==", + "integrity": "sha512-ViPXqulxjb1yXxaf/kQZfLHkd2ppnVBWPq4XmvW377vcBTxHFtHR5NRfYsdXsiKpWndKRoCdn11DfEnoCz1Inw==", "dev": true, + "license": "MIT", "dependencies": { "clone": "^1.0.0", "clone-buffer": "^1.0.0", @@ -12779,6 +13306,7 @@ "resolved": "https://registry.npmjs.org/gulp-gzip/-/gulp-gzip-1.4.2.tgz", "integrity": "sha512-ZIxfkUwk2XmZPTT9pPHrHUQlZMyp9nPhg2sfoeN27mBGpi7OaHnOD+WCN41NXjfJQ69lV1nQ9LLm1hYxx4h3UQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-colors": "^1.0.1", "bytes": "^3.0.0", @@ -12796,6 +13324,7 @@ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-wrap": "^0.1.0" }, @@ -12803,11 +13332,19 @@ "node": ">=0.10.0" } }, + "node_modules/gulp-gzip/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, "node_modules/gulp-gzip/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -12818,37 +13355,90 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/gulp-gzip/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==", + "dev": true, + "license": "MIT" + }, + "node_modules/gulp-gzip/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/gulp-gzip/node_modules/through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, + "license": "MIT", "dependencies": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" } }, "node_modules/gulp-json-editor": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/gulp-json-editor/-/gulp-json-editor-2.5.0.tgz", - "integrity": "sha512-HyrBSaE+Di6oQbKsfNM6X7dPFowOuTTuVYjxratU8QAiW7LR7Rydm+/fSS3OehdnuP++A/07q/nksihuD5FZSA==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/gulp-json-editor/-/gulp-json-editor-2.6.0.tgz", + "integrity": "sha512-Ni0ZUpNrhesHiTlHQth/Nv1rXCn0LUicEvzA5XuGy186C4PVeNoRjfuAIQrbmt3scKv8dgGbCs0hd77ScTw7hA==", "dev": true, + "license": "MIT", "dependencies": { - "deepmerge": "^3.0.0", - "detect-indent": "^5.0.0", - "js-beautify": "^1.8.9", - "plugin-error": "^1.0.1", - "through2": "^3.0.0" + "deepmerge": "^4.3.1", + "detect-indent": "^6.1.0", + "js-beautify": "^1.14.11", + "plugin-error": "^2.0.1", + "through2": "^4.0.2" + } + }, + "node_modules/gulp-json-editor/node_modules/ansi-colors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", + "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-wrap": "^0.1.0" }, "engines": { - "node": ">=6" + "node": ">=0.10.0" + } + }, + "node_modules/gulp-json-editor/node_modules/plugin-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-2.0.1.tgz", + "integrity": "sha512-zMakqvIDyY40xHOvzXka0kUvf40nYIuwRE8dWhti2WtjQZ31xAgBZBhxsK7vK3QbRXS1Xms/LO7B5cuAsfB2Gg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-colors": "^1.0.1" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/gulp-json-editor/node_modules/through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "3" } }, "node_modules/gulp-plumber": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gulp-plumber/-/gulp-plumber-1.2.0.tgz", - "integrity": "sha512-L/LJftsbKoHbVj6dN5pvMsyJn9jYI0wT0nMg3G6VZhDac4NesezecYTi8/48rHi+yEic3sUpw6jlSc7qNWh32A==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/gulp-plumber/-/gulp-plumber-1.2.1.tgz", + "integrity": "sha512-mctAi9msEAG7XzW5ytDVZ9PxWMzzi1pS2rBH7lA095DhMa6KEXjm+St0GOCc567pJKJ/oCvosVAZEpAey0q2eQ==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^1.1.3", "fancy-log": "^1.3.2", @@ -12865,6 +13455,7 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -12872,8 +13463,9 @@ "node_modules/gulp-plumber/node_modules/ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -12881,8 +13473,9 @@ "node_modules/gulp-plumber/node_modules/arr-diff": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz", - "integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo= sha512-OQwDZUqYaQwyyhDJHThmzId8daf4/RFNLaeh3AevmSeZ5Y7ug4Ga/yKc6l6kTZOBW781rCj103ZuTh8GAsB3+Q==", + "integrity": "sha512-OQwDZUqYaQwyyhDJHThmzId8daf4/RFNLaeh3AevmSeZ5Y7ug4Ga/yKc6l6kTZOBW781rCj103ZuTh8GAsB3+Q==", "dev": true, + "license": "MIT", "dependencies": { "arr-flatten": "^1.0.1", "array-slice": "^0.2.3" @@ -12894,8 +13487,9 @@ "node_modules/gulp-plumber/node_modules/arr-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz", - "integrity": "sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0= sha512-t5db90jq+qdgk8aFnxEkjqta0B/GHrM1pxzuuZz2zWsOXc5nKu3t+76s/PQBA8FTcM/ipspIH9jWG4OxCBc2eA==", + "integrity": "sha512-t5db90jq+qdgk8aFnxEkjqta0B/GHrM1pxzuuZz2zWsOXc5nKu3t+76s/PQBA8FTcM/ipspIH9jWG4OxCBc2eA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -12903,8 +13497,9 @@ "node_modules/gulp-plumber/node_modules/array-slice": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", - "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU= sha512-rlVfZW/1Ph2SNySXwR9QYkChp8EkOEiTMO5Vwx60usw04i4nWemkm9RXmQqgkQFaLHsqLuADvjp6IfgL9l2M8Q==", + "integrity": "sha512-rlVfZW/1Ph2SNySXwR9QYkChp8EkOEiTMO5Vwx60usw04i4nWemkm9RXmQqgkQFaLHsqLuADvjp6IfgL9l2M8Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -12912,8 +13507,9 @@ "node_modules/gulp-plumber/node_modules/chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^2.2.1", "escape-string-regexp": "^1.0.2", @@ -12928,8 +13524,9 @@ "node_modules/gulp-plumber/node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.0" } @@ -12937,8 +13534,9 @@ "node_modules/gulp-plumber/node_modules/extend-shallow": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz", - "integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE= sha512-L7AGmkO6jhDkEBBGWlLtftA80Xq8DipnrRPr0pyi7GQLXkaq9JYA4xF4z6qnadIC6euiTDKco0cGSU9muw+WTw==", + "integrity": "sha512-L7AGmkO6jhDkEBBGWlLtftA80Xq8DipnrRPr0pyi7GQLXkaq9JYA4xF4z6qnadIC6euiTDKco0cGSU9muw+WTw==", "dev": true, + "license": "MIT", "dependencies": { "kind-of": "^1.1.0" }, @@ -12946,11 +13544,19 @@ "node": ">=0.10.0" } }, + "node_modules/gulp-plumber/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, "node_modules/gulp-plumber/node_modules/kind-of": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", - "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ= sha512-aUH6ElPnMGon2/YkxRIigV32MOpTVcoXQ1Oo8aYn40s+sJ3j+0gFZsT8HKDcxNy7Fi9zuquWtGaGAahOdv5p/g==", + "integrity": "sha512-aUH6ElPnMGon2/YkxRIigV32MOpTVcoXQ1Oo8aYn40s+sJ3j+0gFZsT8HKDcxNy7Fi9zuquWtGaGAahOdv5p/g==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -12958,8 +13564,9 @@ "node_modules/gulp-plumber/node_modules/plugin-error": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz", - "integrity": "sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4= sha512-WzZHcm4+GO34sjFMxQMqZbsz3xiNEgonCskQ9v+IroMmYgk/tas8dG+Hr2D6IbRPybZ12oWpzE/w3cGJ6FJzOw==", + "integrity": "sha512-WzZHcm4+GO34sjFMxQMqZbsz3xiNEgonCskQ9v+IroMmYgk/tas8dG+Hr2D6IbRPybZ12oWpzE/w3cGJ6FJzOw==", "dev": true, + "license": "MIT", "dependencies": { "ansi-cyan": "^0.1.1", "ansi-red": "^0.1.1", @@ -12972,10 +13579,11 @@ } }, "node_modules/gulp-plumber/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -12986,11 +13594,29 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/gulp-plumber/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==", + "dev": true, + "license": "MIT" + }, + "node_modules/gulp-plumber/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/gulp-plumber/node_modules/strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^2.0.0" }, @@ -13001,8 +13627,9 @@ "node_modules/gulp-plumber/node_modules/supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.0" } @@ -13012,26 +13639,28 @@ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, + "license": "MIT", "dependencies": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" } }, "node_modules/gulp-rename": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-1.2.2.tgz", - "integrity": "sha1-OtRCh2PwXidk3sHGfYaNsnVoeBc= sha512-qhfUlYwq5zIP4cpRjx+np2vZVnr0xCRQrF3RsGel8uqL47Gu3yjmllSfnvJyl/39zYuxS68e1nnxImbm7388vw==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-1.4.0.tgz", + "integrity": "sha512-swzbIGb/arEoFK89tPY58vg3Ok1bw+d35PfUNwWqdo7KM4jkmuGA78JiDNqR+JeZFaeeHnRg9N7aihX3YPmsyg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.10.0", - "npm": ">=1.2.10" + "node": ">=4" } }, "node_modules/gulp-replace": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/gulp-replace/-/gulp-replace-0.5.4.tgz", - "integrity": "sha1-aaZ5FLvRPFYr/xT1BKQDeWqg2qk= sha512-lHL+zKJN8uV95UkONnfRkoj2yJxPPupt2SahxA4vo5c+Ee3+WaIiMdWbOyUhg8BhAROQrWKnnxKOWPdVrnBwGw==", + "integrity": "sha512-lHL+zKJN8uV95UkONnfRkoj2yJxPPupt2SahxA4vo5c+Ee3+WaIiMdWbOyUhg8BhAROQrWKnnxKOWPdVrnBwGw==", "dev": true, + "license": "MIT", "dependencies": { "istextorbinary": "1.0.2", "readable-stream": "^2.0.1", @@ -13041,11 +13670,19 @@ "node": ">=0.10" } }, + "node_modules/gulp-replace/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, "node_modules/gulp-replace/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -13056,11 +13693,29 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/gulp-replace/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==", + "dev": true, + "license": "MIT" + }, + "node_modules/gulp-replace/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/gulp-sourcemaps": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-3.0.0.tgz", "integrity": "sha512-RqvUckJkuYqy4VaIH60RMal4ZtG0IbQ6PXMNkNsshEGJ9cldUPRb/YCgboYae+CLAs1HQNb4ADTKCx65HInquQ==", "dev": true, + "license": "ISC", "dependencies": { "@gulp-sourcemaps/identity-map": "^2.0.1", "@gulp-sourcemaps/map-sources": "^1.0.0", @@ -13083,6 +13738,7 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -13090,11 +13746,19 @@ "node": ">=0.4.0" } }, + "node_modules/gulp-sourcemaps/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, "node_modules/gulp-sourcemaps/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -13105,11 +13769,29 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/gulp-sourcemaps/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==", + "dev": true, + "license": "MIT" + }, + "node_modules/gulp-sourcemaps/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/gulp-sourcemaps/node_modules/through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, + "license": "MIT", "dependencies": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" @@ -13120,6 +13802,7 @@ "resolved": "https://registry.npmjs.org/gulp-svgmin/-/gulp-svgmin-4.1.0.tgz", "integrity": "sha512-WKpif+yu3+oIlp1e11CQi5F64YddP699l2mFmxpz8swv8/P8dhxVcMKdCPFWouArlVyn7Ma1eWCJHw5gx4NMtw==", "dev": true, + "license": "MIT", "dependencies": { "lodash.clonedeep": "^4.5.0", "plugin-error": "^1.0.1", @@ -13131,6 +13814,7 @@ "resolved": "https://registry.npmjs.org/gulp-symdest/-/gulp-symdest-1.3.0.tgz", "integrity": "sha512-n1VaNYMpyOq4GfyQyIwRZhXOOsQVdEy56BCFxL4hu+stKwYeSQcZxLX5FOZL6jZUlBYXCWlXL+E5JU13ZMldIw==", "dev": true, + "license": "MIT", "dependencies": { "event-stream": "3.3.4", "mkdirp": "^0.5.1", @@ -13138,23 +13822,12 @@ "vinyl-fs": "^3.0.3" } }, - "node_modules/gulp-symdest/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, "node_modules/gulp-untar": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/gulp-untar/-/gulp-untar-0.0.7.tgz", "integrity": "sha512-0QfbCH2a1k2qkTLWPqTX+QO4qNsHn3kC546YhAP3/n0h+nvtyGITDuDrYBMDZeW4WnFijmkOvBWa5HshTic1tw==", "dev": true, + "license": "MIT", "dependencies": { "event-stream": "~3.3.4", "streamifier": "~0.1.1", @@ -13166,8 +13839,9 @@ "node_modules/gulp-untar/node_modules/clone": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4= sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8" } @@ -13175,14 +13849,23 @@ "node_modules/gulp-untar/node_modules/clone-stats": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", - "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE= sha512-dhUqc57gSMCo6TX85FLfe51eC/s+Im2MLkAgJwfaRRexR2tA4dd3eLEW4L6efzHc2iNorrRRXITifnDLlRrhaA==", - "dev": true + "integrity": "sha512-dhUqc57gSMCo6TX85FLfe51eC/s+Im2MLkAgJwfaRRexR2tA4dd3eLEW4L6efzHc2iNorrRRXITifnDLlRrhaA==", + "dev": true, + "license": "MIT" + }, + "node_modules/gulp-untar/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" }, "node_modules/gulp-untar/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -13196,18 +13879,36 @@ "node_modules/gulp-untar/node_modules/replace-ext": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", - "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ= sha512-AFBWBy9EVRTa/LhEcG8QDP3FvpwZqmvN2QFDuJswFeaVhWnZMp8q3E6Zd90SR04PlIwfGdyVjNyLPyen/ek5CQ==", + "integrity": "sha512-AFBWBy9EVRTa/LhEcG8QDP3FvpwZqmvN2QFDuJswFeaVhWnZMp8q3E6Zd90SR04PlIwfGdyVjNyLPyen/ek5CQ==", "dev": true, "engines": { "node": ">= 0.4" } }, + "node_modules/gulp-untar/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==", + "dev": true, + "license": "MIT" + }, + "node_modules/gulp-untar/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/gulp-untar/node_modules/tar": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", "deprecated": "This version of tar is no longer supported, and will not receive security updates. Please upgrade asap.", "dev": true, + "license": "ISC", "dependencies": { "block-stream": "*", "fstream": "^1.0.12", @@ -13215,20 +13916,22 @@ } }, "node_modules/gulp-untar/node_modules/through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4= sha512-tmNYYHFqXmaKSSlOU4ZbQ82cxmFQa5LRWKFtWCNkGIiZ3/VHmOffCeWfBRZZRyXAhNP9itVMR+cuvomBOPlm8g==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, + "license": "MIT", "dependencies": { - "readable-stream": "^2.1.5", + "readable-stream": "~2.3.6", "xtend": "~4.0.1" } }, "node_modules/gulp-untar/node_modules/vinyl": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", - "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ= sha512-Ci3wnR2uuSAWFMSglZuB8Z2apBdtOyz8CV7dC6/U1XbltXBC+IuutUkXQISz01P+US2ouBuesSbV6zILZ6BuzQ==", + "integrity": "sha512-Ci3wnR2uuSAWFMSglZuB8Z2apBdtOyz8CV7dC6/U1XbltXBC+IuutUkXQISz01P+US2ouBuesSbV6zILZ6BuzQ==", "dev": true, + "license": "MIT", "dependencies": { "clone": "^1.0.0", "clone-stats": "^0.0.1", @@ -13239,44 +13942,48 @@ } }, "node_modules/gulp-vinyl-zip": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/gulp-vinyl-zip/-/gulp-vinyl-zip-2.1.2.tgz", - "integrity": "sha512-wJn09jsb8PyvUeyFF7y7ImEJqJwYy40BqL9GKfJs6UGpaGW9A+N68Q+ajsIpb9AeR6lAdjMbIdDPclIGo1/b7Q==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/gulp-vinyl-zip/-/gulp-vinyl-zip-2.5.0.tgz", + "integrity": "sha512-KPi5/2SUmkXXDvKU4L2U1dkPOP03SbhONTOgNZlL23l9Yopt+euJ1bBXwWrSMbsyh3JLW/TYuC8CI4c4Kq4qrw==", "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", "dev": true, + "license": "MIT", "dependencies": { - "event-stream": "3.3.4", "queue": "^4.2.1", + "through": "^2.3.8", "through2": "^2.0.3", "vinyl": "^2.0.2", "vinyl-fs": "^3.0.3", "yauzl": "^2.2.1", "yazl": "^2.2.1" + }, + "engines": { + "node": ">= 10" } }, - "node_modules/gulp-vinyl-zip/node_modules/fd-slicer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", - "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU= sha512-MX1ZLPIuKED51hrI4++K+1B0VX87Cs4EkybD2q12Ysuf5p4vkmHqMvQJRlDwROqFr4D2Pzyit5wGQxf30grIcw==", + "node_modules/gulp-vinyl-zip/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "dev": true, - "dependencies": { - "pend": "~1.2.0" - } + "license": "MIT" }, "node_modules/gulp-vinyl-zip/node_modules/queue": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/queue/-/queue-4.5.0.tgz", - "integrity": "sha512-DwxpAnqJuoQa+wyDgQuwkSshkhlqIlWEvwvdAY27fDPunZ2cVJzXU4JyjY+5l7zs7oGLaYAQm4MbLOVFAHFBzA==", + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/queue/-/queue-4.5.1.tgz", + "integrity": "sha512-AMD7w5hRXcFSb8s9u38acBZ+309u6GsiibP4/0YacJeaurRshogB7v/ZcVPxP5gD5+zIw6ixRHdutiYUJfwKHw==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "~2.0.0" } }, "node_modules/gulp-vinyl-zip/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -13292,25 +13999,45 @@ "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.10" } }, + "node_modules/gulp-vinyl-zip/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==", + "dev": true, + "license": "MIT" + }, + "node_modules/gulp-vinyl-zip/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/gulp-vinyl-zip/node_modules/through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, + "license": "MIT", "dependencies": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" } }, "node_modules/gulp-vinyl-zip/node_modules/vinyl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", - "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", + "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", "dev": true, + "license": "MIT", "dependencies": { "clone": "^2.1.1", "clone-buffer": "^1.0.0", @@ -13324,20 +14051,22 @@ } }, "node_modules/gulp-vinyl-zip/node_modules/yauzl": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.9.1.tgz", - "integrity": "sha1-qBmB6nCleUYTOIPwKcWCGok1mn8= sha512-tOFjaiYI4cNrDuqujDv5G1KdCmGtuIULZqLv263CCADNQlNInl8sJPD+Gf3neEVecFQ0sw6D4oJTI/dqlunkSw==", + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", "dev": true, + "license": "MIT", "dependencies": { "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.0.1" + "fd-slicer": "~1.1.0" } }, "node_modules/gulplog": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", - "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U= sha512-hm6N8nrm3Y08jXie48jsC55eCZz9mnb4OirAStEk2deqeyhXU3C1otDVh+ccttMuc1sBi6RX6ZJ720hs9RCvgw==", + "integrity": "sha512-hm6N8nrm3Y08jXie48jsC55eCZz9mnb4OirAStEk2deqeyhXU3C1otDVh+ccttMuc1sBi6RX6ZJ720hs9RCvgw==", "dev": true, + "license": "MIT", "dependencies": { "glogg": "^1.0.0" }, @@ -13350,6 +14079,7 @@ "resolved": "https://registry.npmjs.org/gunzip-maybe/-/gunzip-maybe-1.4.2.tgz", "integrity": "sha512-4haO1M4mLO91PW57BMsDFf75UmwoRX0GkdD+Faw+Lr+r/OZrOCS0pIBwOL1xCKQqnQzbNFGgK2V2CpBUPeFNTw==", "dev": true, + "license": "MIT", "dependencies": { "browserify-zlib": "^0.1.4", "is-deflate": "^1.0.0", @@ -13362,11 +14092,19 @@ "gunzip-maybe": "bin.js" } }, + "node_modules/gunzip-maybe/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, "node_modules/gunzip-maybe/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -13377,11 +14115,29 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/gunzip-maybe/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==", + "dev": true, + "license": "MIT" + }, + "node_modules/gunzip-maybe/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/gunzip-maybe/node_modules/through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, + "license": "MIT", "dependencies": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" @@ -13390,8 +14146,9 @@ "node_modules/has-ansi": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^2.0.0" }, @@ -13404,6 +14161,7 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -13421,18 +14179,20 @@ } }, "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0= sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/has-property-descriptors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", "dependencies": { "es-define-property": "^1.0.0" }, @@ -13485,8 +14245,9 @@ "node_modules/has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", + "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", "dev": true, + "license": "MIT", "dependencies": { "get-value": "^2.0.6", "has-values": "^1.0.0", @@ -13499,8 +14260,9 @@ "node_modules/has-values": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", + "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^3.0.0", "kind-of": "^4.0.0" @@ -13512,8 +14274,9 @@ "node_modules/has-values/node_modules/is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", "dev": true, + "license": "MIT", "dependencies": { "kind-of": "^3.0.2" }, @@ -13524,8 +14287,9 @@ "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, + "license": "MIT", "dependencies": { "is-buffer": "^1.1.5" }, @@ -13536,8 +14300,9 @@ "node_modules/has-values/node_modules/kind-of": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc= sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", + "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", "dev": true, + "license": "MIT", "dependencies": { "is-buffer": "^1.1.5" }, @@ -13549,6 +14314,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", "dependencies": { "function-bind": "^1.1.2" }, @@ -13561,6 +14327,7 @@ "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true, + "license": "MIT", "bin": { "he": "bin/he" } @@ -13570,6 +14337,7 @@ "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", "dev": true, + "license": "MIT", "dependencies": { "parse-passwd": "^1.0.0" }, @@ -13581,19 +14349,22 @@ "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==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/html-escaper": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.0.tgz", - "integrity": "sha512-a4u9BeERWGu/S8JiWEAQcdrg9v4QArtP9keViQjGMdff20fBdd8waotXaNmODqBe6uZ3Nafi7K/ho4gCQHV3Ig==", - "dev": true + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true, + "license": "MIT" }, "node_modules/http-assert": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/http-assert/-/http-assert-1.5.0.tgz", "integrity": "sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==", "dev": true, + "license": "MIT", "dependencies": { "deep-equal": "~1.0.1", "http-errors": "~1.8.0" @@ -13605,8 +14376,9 @@ "node_modules/http-assert/node_modules/depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -13616,6 +14388,7 @@ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", "dev": true, + "license": "MIT", "dependencies": { "depd": "~1.1.2", "inherits": "2.0.4", @@ -13630,38 +14403,45 @@ "node_modules/http-assert/node_modules/statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "dev": true + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", + "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", + "dev": true, + "license": "BSD-2-Clause" }, "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "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.1", - "toidentifier": "1.0.1" + "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-proxy-agent": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "license": "MIT", "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" @@ -13671,24 +14451,26 @@ } }, "node_modules/http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", + "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==", "dev": true, + "license": "MIT", "dependencies": { "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" + "resolve-alpn": "^1.2.0" }, "engines": { "node": ">=10.19.0" } }, "node_modules/https-proxy-agent": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", - "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "license": "MIT", "dependencies": { - "agent-base": "^7.0.2", + "agent-base": "^7.1.2", "debug": "4" }, "engines": { @@ -13710,6 +14492,7 @@ "integrity": "sha512-kafsK/82ndSVKJe1IoR/z7NKkiI2LYM6H+VNI/YlKOeoOXEJTpD65TNu05Zx7pzSZzLuAdMt4fHgpUsnd6HJ7A==", "dev": true, "hasInstallScript": true, + "license": "MIT", "dependencies": { "chalk": "^1.1.3", "find-parent-dir": "^0.3.0", @@ -13722,6 +14505,7 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -13729,8 +14513,9 @@ "node_modules/husky/node_modules/ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -13738,8 +14523,9 @@ "node_modules/husky/node_modules/chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^2.2.1", "escape-string-regexp": "^1.0.2", @@ -13754,8 +14540,9 @@ "node_modules/husky/node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.0" } @@ -13765,6 +14552,7 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-1.0.0.tgz", "integrity": "sha512-7WyT0w8jhpDStXRq5836AMmihQwq2nrUVQrgjvUo/p/NZf9uy/MeJ246lBJVmWuYXMlJuG9BNZHF0hWjfTbQUA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -13772,8 +14560,9 @@ "node_modules/husky/node_modules/strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^2.0.0" }, @@ -13784,8 +14573,9 @@ "node_modules/husky/node_modules/supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.0" } @@ -13807,6 +14597,7 @@ "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", "dev": true, + "license": "ISC", "engines": { "node": "^10 || ^12 || >= 14" }, @@ -13831,13 +14622,15 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "BSD-3-Clause" }, "node_modules/ignore": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } @@ -13853,7 +14646,8 @@ "version": "3.0.6", "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/import-fresh": { "version": "3.3.1", @@ -13873,10 +14667,11 @@ } }, "node_modules/import-local": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", - "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", "dev": true, + "license": "MIT", "dependencies": { "pkg-dir": "^4.2.0", "resolve-cwd": "^3.0.0" @@ -13886,13 +14681,17 @@ }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o= sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.19" } @@ -13900,9 +14699,10 @@ "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dev": true, + "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -13911,12 +14711,14 @@ "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" }, "node_modules/ini": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "license": "ISC" }, "node_modules/innosetup": { "version": "6.4.1", @@ -13949,6 +14751,7 @@ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.10" } @@ -13956,20 +14759,18 @@ "node_modules/invert-kv": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY= sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==", + "integrity": "sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/ip-address": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", - "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", - "dependencies": { - "jsbn": "1.1.0", - "sprintf-js": "^1.1.3" - }, + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz", + "integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==", + "license": "MIT", "engines": { "node": ">= 12" } @@ -13988,6 +14789,7 @@ "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", "dev": true, + "license": "MIT", "dependencies": { "is-relative": "^1.0.0", "is-windows": "^1.0.1" @@ -13997,35 +14799,27 @@ } }, "node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "deprecated": "Please upgrade to v1.0.1", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", + "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.10" } }, "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "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==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -14054,8 +14848,9 @@ "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" }, "node_modules/is-async-function": { "version": "2.1.1", @@ -14096,6 +14891,7 @@ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, + "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" }, @@ -14123,7 +14919,8 @@ "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-callable": { "version": "1.2.7", @@ -14142,6 +14939,7 @@ "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", "dev": true, + "license": "MIT", "dependencies": { "ci-info": "^1.5.0" }, @@ -14165,25 +14963,16 @@ } }, "node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "deprecated": "Please upgrade to v1.0.1", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", + "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", "dev": true, + "license": "MIT", "dependencies": { - "kind-of": "^6.0.0" + "hasown": "^2.0.0" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, "node_modules/is-data-view": { @@ -14223,29 +15012,21 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-deflate/-/is-deflate-1.0.0.tgz", "integrity": "sha512-YDoFpuZWu1VRXlsnlYMzKyVRITXj7Ej/V9gXQ2/pAe7X1J7M/RNOqaIYi6qUn+B7nGyB9pDXrv02dsB58d2ZAQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", "dev": true, + "license": "MIT", "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-descriptor/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, "node_modules/is-docker": { @@ -14268,6 +15049,7 @@ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, + "license": "MIT", "dependencies": { "is-plain-object": "^2.0.4" }, @@ -14280,6 +15062,7 @@ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, + "license": "MIT", "dependencies": { "isobject": "^3.0.1" }, @@ -14290,7 +15073,8 @@ "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -14315,6 +15099,7 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -14342,6 +15127,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -14354,6 +15140,7 @@ "resolved": "https://registry.npmjs.org/is-gzip/-/is-gzip-1.0.0.tgz", "integrity": "sha512-rcfALRIb1YewtnksfRIHGcIY93QnK8BIQ/2c9yDYcG/Y6+vRoJuTWBmmSEbyLLYtXm7q35pHOHbZFQBaLrhlWQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -14381,6 +15168,7 @@ "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -14403,8 +15191,9 @@ "node_modules/is-negated-glob": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", - "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI= sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug==", + "integrity": "sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -14425,6 +15214,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", "engines": { "node": ">=0.12.0" } @@ -14450,6 +15240,7 @@ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -14459,6 +15250,7 @@ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -14467,7 +15259,8 @@ "version": "2.2.2", "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-regex": { "version": "1.2.1", @@ -14492,6 +15285,7 @@ "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", "dev": true, + "license": "MIT", "dependencies": { "is-unc-path": "^1.0.0" }, @@ -14527,12 +15321,15 @@ } }, "node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ= sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", - "dev": true, + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-string": { @@ -14588,6 +15385,7 @@ "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", "dev": true, + "license": "MIT", "dependencies": { "unc-path-regex": "^0.1.2" }, @@ -14600,6 +15398,7 @@ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -14610,14 +15409,16 @@ "node_modules/is-utf8": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", - "dev": true + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", + "dev": true, + "license": "MIT" }, "node_modules/is-valid-glob": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", - "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao= sha512-AhiROmoEFDSsjx8hW+5sGwgKVIORcXnrlAx/R0ZSeaPw70Vw0CqkGBBhHGL58Uox2eXnU1AnvXJl1XlyedO5bA==", + "integrity": "sha512-AhiROmoEFDSsjx8hW+5sGwgKVIORcXnrlAx/R0ZSeaPw70Vw0CqkGBBhHGL58Uox2eXnU1AnvXJl1XlyedO5bA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -14670,6 +15471,7 @@ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -14690,43 +15492,47 @@ } }, "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "license": "MIT" }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" }, "node_modules/isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8= sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=8" } }, "node_modules/istanbul-lib-instrument": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz", - "integrity": "sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", "istanbul-lib-coverage": "^3.2.0", "semver": "^7.5.4" }, @@ -14739,6 +15545,7 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^4.0.0", @@ -14748,20 +15555,12 @@ "node": ">=10" } }, - "node_modules/istanbul-lib-report/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/istanbul-lib-report/node_modules/supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -14774,6 +15573,7 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0", @@ -14784,10 +15584,11 @@ } }, "node_modules/istanbul-reports": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", - "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", + "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" @@ -14799,8 +15600,9 @@ "node_modules/istextorbinary": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-1.0.2.tgz", - "integrity": "sha1-rOGTVNGpoBc+/rEITOD4ewrX3s8= sha512-qZ5ptUDuni2pdCngFTraYa5kalQ0mX47Mhn08tT0DZZv/7yhX1eMb9lFtXVbWhFtgRtpLG/UdqVAjh9teO5x+w==", + "integrity": "sha512-qZ5ptUDuni2pdCngFTraYa5kalQ0mX47Mhn08tT0DZZv/7yhX1eMb9lFtXVbWhFtgRtpLG/UdqVAjh9teO5x+w==", "dev": true, + "license": "MIT", "dependencies": { "binaryextensions": "~1.0.0", "textextensions": "~1.0.0" @@ -14827,16 +15629,14 @@ } }, "node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, - "engines": { - "node": ">=14" - }, "funding": { "url": "https://github.com/sponsors/isaacs" }, @@ -14859,16 +15659,6 @@ "node": ">= 10.13.0" } }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/jest-worker/node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -14906,59 +15696,98 @@ } }, "node_modules/js-base64": { - "version": "3.7.7", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.7.tgz", - "integrity": "sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==" + "version": "3.7.8", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.8.tgz", + "integrity": "sha512-hNngCeKxIUQiEUN3GPJOkz4wF/YvdUdbNL9hsBcMQTkKzboD7T/q3OYOuuPZLUE6dBxSGpwhk5mwuDud7JVAow==", + "license": "BSD-3-Clause" }, "node_modules/js-beautify": { - "version": "1.8.9", - "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.8.9.tgz", - "integrity": "sha512-MwPmLywK9RSX0SPsUJjN7i+RQY9w/yC17Lbrq9ViEefpLRgqAR2BgrMN2AbifkUuhDV8tRauLhLda/9+bE0YQA==", + "version": "1.15.4", + "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.15.4.tgz", + "integrity": "sha512-9/KXeZUKKJwqCXUdBxFJ3vPh467OCckSBmYDwSK/EtV090K+iMJ7zx2S3HLVDIWFQdqMIsZWbnaGiba18aWhaA==", "dev": true, + "license": "MIT", "dependencies": { - "config-chain": "^1.1.12", - "editorconfig": "^0.15.2", - "glob": "^7.1.3", - "mkdirp": "~0.5.0", - "nopt": "~4.0.1" + "config-chain": "^1.1.13", + "editorconfig": "^1.0.4", + "glob": "^10.4.2", + "js-cookie": "^3.0.5", + "nopt": "^7.2.1" }, "bin": { "css-beautify": "js/bin/css-beautify.js", "html-beautify": "js/bin/html-beautify.js", "js-beautify": "js/bin/js-beautify.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/js-beautify/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" } }, "node_modules/js-beautify/node_modules/glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "deprecated": "Glob versions prior to v9 are no longer supported", + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", "dev": true, + "license": "ISC", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, - "engines": { - "node": "*" + "bin": { + "glob": "dist/esm/bin.mjs" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/js-beautify/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "node_modules/js-beautify/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, + "license": "ISC", "dependencies": { - "minimist": "^1.2.5" + "brace-expansion": "^2.0.1" }, - "bin": { - "mkdirp": "bin/cmd.js" + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/js-beautify/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/js-cookie": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz", + "integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" } }, "node_modules/js-tokens": { @@ -14968,10 +15797,11 @@ "license": "MIT" }, "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -14979,11 +15809,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jsbn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", - "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==" - }, "node_modules/jschardet": { "version": "3.1.4", "resolved": "https://registry.npmjs.org/jschardet/-/jschardet-3.1.4.tgz", @@ -14998,6 +15823,7 @@ "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.1.0.tgz", "integrity": "sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.0.0" } @@ -15028,19 +15854,22 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-schema-traverse": { "version": "1.0.0", @@ -15051,14 +15880,16 @@ "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": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" }, "node_modules/json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", "dev": true, + "license": "ISC", "optional": true }, "node_modules/json5": { @@ -15066,6 +15897,7 @@ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, + "license": "MIT", "bin": { "json5": "lib/cli.js" }, @@ -15074,9 +15906,10 @@ } }, "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -15104,6 +15937,7 @@ "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", "dev": true, + "license": "(MIT OR GPL-3.0-or-later)", "dependencies": { "lie": "~3.3.0", "pako": "~1.0.2", @@ -15111,17 +15945,26 @@ "setimmediate": "^1.0.5" } }, + "node_modules/jszip/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, "node_modules/jszip/node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true + "dev": true, + "license": "(MIT AND Zlib)" }, "node_modules/jszip/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -15132,17 +15975,36 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/jszip/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==", + "dev": true, + "license": "MIT" + }, + "node_modules/jszip/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/just-debounce": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.0.0.tgz", - "integrity": "sha1-h/zPrv/AtozRnVX2cilD+SnqNeo= sha512-/QLqfspz7WJ+TPmzDp5WJOlm2r3j+/12rGo7dG5uwD9vGM5sWg8p251b7Us0p19JqjddJzcYOK2v6FN92nREmg==", - "dev": true + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.1.0.tgz", + "integrity": "sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==", + "dev": true, + "license": "MIT" }, "node_modules/just-extend": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", - "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", - "dev": true + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-6.2.0.tgz", + "integrity": "sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==", + "dev": true, + "license": "MIT" }, "node_modules/jwa": { "version": "2.0.1", @@ -15166,9 +16028,9 @@ } }, "node_modules/katex": { - "version": "0.16.22", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.22.tgz", - "integrity": "sha512-XCHRdUw4lf3SKBaJe4EvgqIuWwkPSo9XoeO8GjQW94Bp7TWv9hNhzZjZ+OH9yf1UmLygb7DIT5GSFQiyt16zYg==", + "version": "0.16.25", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.25.tgz", + "integrity": "sha512-woHRUZ/iF23GBP1dkDQMh1QBad9dmr8/PAwNA54VrSOVYgI12MAcE14TqnDdQOdzyEonGzMepYnqBMYdsoAr8Q==", "funding": [ "https://opencollective.com/katex", "https://github.com/sponsors/katex" @@ -15195,20 +16057,32 @@ "resolved": "https://registry.npmjs.org/kerberos/-/kerberos-2.1.1.tgz", "integrity": "sha512-414s1G/qgK2T60cXnZsHbtRj8Ynjg0DBlQWeY99tkyqQ2e8vGgFHvxRdvjTlLHg/SxBA0zLQcGE6Pk6Dfq/BCA==", "hasInstallScript": true, + "license": "Apache-2.0", "dependencies": { "bindings": "^1.5.0", "node-addon-api": "^6.1.0", "prebuild-install": "^7.1.2" }, "engines": { - "node": ">=12.9.0" + "node": ">=12.9.0" + } + }, + "node_modules/kerberos/node_modules/node-addon-api": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.0.tgz", + "integrity": "sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==", + "license": "MIT", + "engines": { + "node": "^16 || ^18 || >= 20" } }, "node_modules/keygrip": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz", "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", "dev": true, + "license": "MIT", "dependencies": { "tsscmp": "1.0.6" }, @@ -15221,6 +16095,7 @@ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, + "license": "MIT", "dependencies": { "json-buffer": "3.0.1" } @@ -15230,14 +16105,15 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/koa": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/koa/-/koa-2.16.1.tgz", - "integrity": "sha512-umfX9d3iuSxTQP4pnzLOz0HKnPg0FaUUIKcye2lOiz3KPu1Y3M3xlz76dISdFPQs37P9eJz1wUpcTS6KDPn9fA==", + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/koa/-/koa-2.16.3.tgz", + "integrity": "sha512-zPPuIt+ku1iCpFBRwseMcPYQ1cJL8l60rSmKeOuGfOXyE6YnTBmf2aEFNL2HQGrD0cPcLO/t+v9RTgC+fwEh/g==", "dev": true, "license": "MIT", "dependencies": { @@ -15273,13 +16149,15 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz", "integrity": "sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/koa-convert": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/koa-convert/-/koa-convert-2.0.0.tgz", "integrity": "sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==", "dev": true, + "license": "MIT", "dependencies": { "co": "^4.6.0", "koa-compose": "^4.1.0" @@ -15291,17 +16169,19 @@ "node_modules/koa-morgan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/koa-morgan/-/koa-morgan-1.0.1.tgz", - "integrity": "sha1-CAUuDODYOdPEMXi5CluzQkvvH5k= sha512-JOUdCNlc21G50afBXfErUrr1RKymbgzlrO5KURY+wmDG1Uvd2jmxUJcHgylb/mYXy2SjiNZyYim/ptUBGsIi3A==", + "integrity": "sha512-JOUdCNlc21G50afBXfErUrr1RKymbgzlrO5KURY+wmDG1Uvd2jmxUJcHgylb/mYXy2SjiNZyYim/ptUBGsIi3A==", "dev": true, + "license": "MIT", "dependencies": { "morgan": "^1.6.1" } }, "node_modules/koa-mount": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/koa-mount/-/koa-mount-4.0.0.tgz", - "integrity": "sha512-rm71jaA/P+6HeCpoRhmCv8KVBIi0tfGuO/dMKicbQnQW/YJntJ6MnnspkodoA4QstMVEZArsCphmd0bJEtoMjQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/koa-mount/-/koa-mount-4.2.0.tgz", + "integrity": "sha512-2iHQc7vbA9qLeVq5gKAYh3m5DOMMlMfIKjW/REPAS18Mf63daCJHHVXY9nbu7ivrnYn5PiPC4CE523Tf5qvjeQ==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.0.1", "koa-compose": "^4.1.0" @@ -15315,6 +16195,7 @@ "resolved": "https://registry.npmjs.org/koa-send/-/koa-send-5.0.1.tgz", "integrity": "sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.1.1", "http-errors": "^1.7.3", @@ -15327,8 +16208,9 @@ "node_modules/koa-send/node_modules/depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -15338,6 +16220,7 @@ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", "dev": true, + "license": "MIT", "dependencies": { "depd": "~1.1.2", "inherits": "2.0.4", @@ -15352,8 +16235,9 @@ "node_modules/koa-send/node_modules/statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -15363,6 +16247,7 @@ "resolved": "https://registry.npmjs.org/koa-static/-/koa-static-5.0.0.tgz", "integrity": "sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^3.1.0", "koa-send": "^5.0.0" @@ -15376,15 +16261,64 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, + "node_modules/koa/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/koa/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/koa/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/koa/node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/koa/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==", "dev": true, + "license": "MIT", "dependencies": { "depd": "~1.1.2", "inherits": "2.0.4", @@ -15399,8 +16333,52 @@ "node_modules/koa/node_modules/http-errors/node_modules/depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/koa/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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/koa/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/koa/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/koa/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==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -15408,8 +16386,23 @@ "node_modules/koa/node_modules/statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/koa/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==", "dev": true, + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, "engines": { "node": ">= 0.6" } @@ -15417,8 +16410,9 @@ "node_modules/last-run": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", - "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls= sha512-U/VxvpX4N/rFvPzr3qG5EtLKEnNI0emvIQB3/ecEwv+8GHaUKbIB8vxv1Oai5FAF0d0r7LXHhLLe5K/yChm5GQ==", + "integrity": "sha512-U/VxvpX4N/rFvPzr3qG5EtLKEnNI0emvIQB3/ecEwv+8GHaUKbIB8vxv1Oai5FAF0d0r7LXHhLLe5K/yChm5GQ==", "dev": true, + "license": "MIT", "dependencies": { "default-resolution": "^2.0.0", "es6-weak-map": "^2.0.1" @@ -15430,14 +16424,16 @@ "node_modules/lazy.js": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/lazy.js/-/lazy.js-0.4.3.tgz", - "integrity": "sha1-h/Z6B602VVEh5P/xUg3zG+Znhtg= sha512-kHcnVaCZzhv6P+YgC4iRZFw62+biYIcBYU8qqKzJysC7cdKwPgb3WRtcBPyINTSLZwsjyFdBtd97sHbkseTZKw==", - "dev": true + "integrity": "sha512-kHcnVaCZzhv6P+YgC4iRZFw62+biYIcBYU8qqKzJysC7cdKwPgb3WRtcBPyINTSLZwsjyFdBtd97sHbkseTZKw==", + "dev": true, + "license": "MIT" }, "node_modules/lazystream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", - "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ= sha512-/330KFbmC/zKdtZoVDRwvkJ8snrJyBPfoZ39zsJl2O24HOE1CTNiEbeZmHXmjBVxTSSv7JlJEXPYhU83DhA2yg==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", "dev": true, + "license": "MIT", "dependencies": { "readable-stream": "^2.0.5" }, @@ -15445,11 +16441,19 @@ "node": ">= 0.6.3" } }, + "node_modules/lazystream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, "node_modules/lazystream/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -15460,11 +16464,29 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/lazystream/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==", + "dev": true, + "license": "MIT" + }, + "node_modules/lazystream/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/lcid": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==", + "integrity": "sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==", "dev": true, + "license": "MIT", "dependencies": { "invert-kv": "^1.0.0" }, @@ -15475,8 +16497,9 @@ "node_modules/lead": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", - "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI= sha512-IpSVCk9AYvLHo5ctcIXxOBpMWUe+4TKN3VPWAKUbJikkmsGp0VrSM8IttVc32D6J4WUsiPE6aEFRNmIoF/gdow==", + "integrity": "sha512-IpSVCk9AYvLHo5ctcIXxOBpMWUe+4TKN3VPWAKUbJikkmsGp0VrSM8IttVc32D6J4WUsiPE6aEFRNmIoF/gdow==", "dev": true, + "license": "MIT", "dependencies": { "flush-write-stream": "^1.0.2" }, @@ -15489,6 +16512,7 @@ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -15502,6 +16526,7 @@ "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", "dev": true, + "license": "MIT", "dependencies": { "immediate": "~3.0.5" } @@ -15511,6 +16536,7 @@ "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", "dev": true, + "license": "MIT", "dependencies": { "extend": "^3.0.0", "findup-sync": "^3.0.0", @@ -15530,6 +16556,7 @@ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, + "license": "MIT", "dependencies": { "isobject": "^3.0.1" }, @@ -15537,6 +16564,27 @@ "node": ">=0.10.0" } }, + "node_modules/liftoff/node_modules/resolve": { + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/lilconfig": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", @@ -15562,6 +16610,7 @@ "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", "dev": true, + "license": "MIT", "dependencies": { "uc.micro": "^2.0.0" } @@ -15569,8 +16618,9 @@ "node_modules/load-json-file": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs= sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.1.2", "parse-json": "^4.0.0", @@ -15592,12 +16642,17 @@ } }, "node_modules/loader-runner": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", - "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.1.tgz", + "integrity": "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.11.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, "node_modules/loader-utils": { @@ -15605,6 +16660,7 @@ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "dev": true, + "license": "MIT", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -15619,6 +16675,7 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^5.0.0" }, @@ -15633,31 +16690,38 @@ "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.camelcase": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY= sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", - "dev": true + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "dev": true, + "license": "MIT" }, "node_modules/lodash.clone": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.clone/-/lodash.clone-4.5.0.tgz", - "integrity": "sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y= sha512-GhrVeweiTD6uTmmn5hV/lzgCQhccwReIVRLHp7LT4SopOjqEZ5BbX8b5WWEtAKasjmy8hR7ZPwsYlxRCku5odg==", - "dev": true + "integrity": "sha512-GhrVeweiTD6uTmmn5hV/lzgCQhccwReIVRLHp7LT4SopOjqEZ5BbX8b5WWEtAKasjmy8hR7ZPwsYlxRCku5odg==", + "deprecated": "This package is deprecated. Use structuredClone instead.", + "dev": true, + "license": "MIT" }, "node_modules/lodash.clonedeep": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", - "dev": true + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", + "dev": true, + "license": "MIT" }, "node_modules/lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", - "dev": true + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", + "deprecated": "This package is deprecated. Use the optional chaining (?.) operator instead.", + "dev": true, + "license": "MIT" }, "node_modules/lodash.memoize": { "version": "4.1.2", @@ -15670,13 +16734,15 @@ "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.some": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz", - "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0= sha512-j7MJE+TuT51q9ggt4fSgVqro163BEFjAt3u97IqU+JA2DkWl80nFTrowzLpZ/BnpN7rrl0JA/593NAdd8p/scQ==", - "dev": true + "integrity": "sha512-j7MJE+TuT51q9ggt4fSgVqro163BEFjAt3u97IqU+JA2DkWl80nFTrowzLpZ/BnpN7rrl0JA/593NAdd8p/scQ==", + "dev": true, + "license": "MIT" }, "node_modules/lodash.uniq": { "version": "4.5.0", @@ -15690,6 +16756,7 @@ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" @@ -15714,29 +16781,36 @@ } }, "node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "license": "ISC", "dependencies": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, "node_modules/lru-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", - "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM= sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==", + "integrity": "sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==", "dev": true, + "license": "MIT", "dependencies": { "es5-ext": "~0.10.2" } @@ -15765,6 +16839,7 @@ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, + "license": "MIT", "dependencies": { "semver": "^7.5.3" }, @@ -15779,13 +16854,15 @@ "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/make-iterator": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", "dev": true, + "license": "MIT", "dependencies": { "kind-of": "^6.0.2" }, @@ -15798,6 +16875,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -15805,8 +16883,9 @@ "node_modules/map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -15814,14 +16893,15 @@ "node_modules/map-stream": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", - "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ= sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==", + "integrity": "sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==", "dev": true }, "node_modules/map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", + "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", "dev": true, + "license": "MIT", "dependencies": { "object-visit": "^1.0.0" }, @@ -15834,6 +16914,7 @@ "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^2.0.1", "entities": "^4.4.0", @@ -15879,6 +16960,7 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, + "license": "MIT", "dependencies": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", @@ -15898,8 +16980,9 @@ "node_modules/matchdep/node_modules/braces/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, + "license": "MIT", "dependencies": { "is-extendable": "^0.1.0" }, @@ -15910,8 +16993,9 @@ "node_modules/matchdep/node_modules/fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", "dev": true, + "license": "MIT", "dependencies": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", @@ -15925,8 +17009,9 @@ "node_modules/matchdep/node_modules/fill-range/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, + "license": "MIT", "dependencies": { "is-extendable": "^0.1.0" }, @@ -15953,8 +17038,9 @@ "node_modules/matchdep/node_modules/is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -15962,8 +17048,9 @@ "node_modules/matchdep/node_modules/is-glob": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^2.1.0" }, @@ -15974,8 +17061,9 @@ "node_modules/matchdep/node_modules/is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", "dev": true, + "license": "MIT", "dependencies": { "kind-of": "^3.0.2" }, @@ -15986,8 +17074,9 @@ "node_modules/matchdep/node_modules/is-number/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, + "license": "MIT", "dependencies": { "is-buffer": "^1.1.5" }, @@ -16000,6 +17089,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -16009,6 +17099,7 @@ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, + "license": "MIT", "dependencies": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -16028,11 +17119,33 @@ "node": ">=0.10.0" } }, + "node_modules/matchdep/node_modules/resolve": { + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/matchdep/node_modules/to-regex-range": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^3.0.0", "repeat-string": "^1.6.1" @@ -16046,6 +17159,7 @@ "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "escape-string-regexp": "^4.0.0" @@ -16068,6 +17182,7 @@ "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "charenc": "0.0.2", "crypt": "0.0.2", @@ -16078,37 +17193,43 @@ "version": "2.0.14", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", - "dev": true + "dev": true, + "license": "CC0-1.0" }, "node_modules/mdurl": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "dev": true, + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", + "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", + "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">= 0.8" } }, "node_modules/memoizee": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz", - "integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==", + "version": "0.4.17", + "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.17.tgz", + "integrity": "sha512-DGqD7Hjpi/1or4F/aYAspXKNm5Yili0QDAFAY4QYvpqpgiY6+1jOfqpmByzjxbWd/T9mChbCArXAbDAsTm5oXA==", "dev": true, + "license": "ISC", "dependencies": { - "d": "^1.0.1", - "es5-ext": "^0.10.53", + "d": "^1.0.2", + "es5-ext": "^0.10.64", "es6-weak-map": "^2.0.3", "event-emitter": "^0.3.5", "is-promise": "^2.2.2", "lru-queue": "^0.1.0", "next-tick": "^1.1.0", "timers-ext": "^0.1.7" + }, + "engines": { + "node": ">=0.12" } }, "node_modules/memory-fs": { @@ -16116,6 +17237,7 @@ "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", "dev": true, + "license": "MIT", "dependencies": { "errno": "^0.1.3", "readable-stream": "^2.0.1" @@ -16124,11 +17246,19 @@ "node": ">=4.3.0 <5.0.0 || >=5.10" } }, + "node_modules/memory-fs/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, "node_modules/memory-fs/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -16139,10 +17269,27 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/memory-fs/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==", + "dev": true, + "license": "MIT" + }, + "node_modules/memory-fs/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/memorystream": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI= sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", "dev": true, "engines": { "node": ">= 0.10.0" @@ -16165,6 +17312,7 @@ "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-1.0.1.tgz", "integrity": "sha512-iuPV41VWKWBIOpBsjoxjDZw8/GbSfZ2mk7N1453bwMrfzdrIk7EzBd+8UVR6rkw67th7xnk9Dytl3J+lHPdxvg==", "dev": true, + "license": "MIT", "dependencies": { "is-plain-obj": "^1.1" }, @@ -16184,6 +17332,7 @@ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } @@ -16206,6 +17355,7 @@ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "dev": true, + "license": "MIT", "bin": { "mime": "cli.js" }, @@ -16214,46 +17364,61 @@ } }, "node_modules/mime-db": { - "version": "1.45.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz", - "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==", + "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/mime-types": { - "version": "2.1.28", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz", - "integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==", + "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.45.0" + "mime-db": "^1.54.0" }, "engines": { - "node": ">= 0.6" + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "node_modules/mimic-function": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", "dev": true, + "license": "MIT", "engines": { - "node": ">=6" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", + "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=4" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -16265,6 +17430,7 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -16273,6 +17439,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "license": "ISC", "engines": { "node": ">=8" } @@ -16281,6 +17448,7 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "license": "MIT", "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" @@ -16290,9 +17458,10 @@ } }, "node_modules/minizlib/node_modules/minipass": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", - "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -16300,16 +17469,12 @@ "node": ">=8" } }, - "node_modules/minizlib/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, "node_modules/mixin-deep": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", "dev": true, + "license": "MIT", "dependencies": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" @@ -16319,20 +17484,23 @@ } }, "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, "bin": { "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" } }, "node_modules/mkdirp-classic": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "license": "MIT" }, "node_modules/mlly": { "version": "1.8.0", @@ -16388,6 +17556,7 @@ "resolved": "https://registry.npmjs.org/mocha-junit-reporter/-/mocha-junit-reporter-2.2.1.tgz", "integrity": "sha512-iDn2tlKHn8Vh8o4nCzcUVW4q7iXp7cC4EB78N0cDHIobLymyHNwe0XG8HEHHjc3hJlXm0Vy6zcrxaIhnI2fWmw==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.3.4", "md5": "^2.3.0", @@ -16404,6 +17573,7 @@ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", "dev": true, + "license": "MIT", "bin": { "mkdirp": "dist/cjs/src/bin.js" }, @@ -16419,6 +17589,7 @@ "resolved": "https://registry.npmjs.org/mocha-multi-reporters/-/mocha-multi-reporters-1.5.1.tgz", "integrity": "sha512-Yb4QJOaGLIcmB0VY7Wif5AjvLMUFAdV57D2TWEva1Y0kU/3LjKpeRVmlMIfuO1SVbauve459kgtIizADqxMWPg==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.1.1", "lodash": "^4.17.15" @@ -16455,6 +17626,7 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -16475,7 +17647,8 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/mocha/node_modules/glob": { "version": "8.1.0", @@ -16498,15 +17671,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/mocha/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/mocha/node_modules/minimatch": { "version": "5.1.6", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", @@ -16525,6 +17689,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -16539,6 +17704,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -16554,6 +17720,7 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, + "license": "MIT", "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -16599,6 +17766,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -16606,14 +17774,16 @@ "node_modules/morgan/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" }, "node_modules/morgan/node_modules/on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", "dev": true, + "license": "MIT", "dependencies": { "ee-first": "1.1.1" }, @@ -16630,8 +17800,9 @@ "node_modules/multimatch": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", - "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis= sha512-0mzK8ymiWdehTBiJh0vClAzGyQbdtyWqzSVx//EK4N/D+599RFlGfTAsKw2zMSABtDG9C6Ul2+t8f2Lbdjf5mA==", + "integrity": "sha512-0mzK8ymiWdehTBiJh0vClAzGyQbdtyWqzSVx//EK4N/D+599RFlGfTAsKw2zMSABtDG9C6Ul2+t8f2Lbdjf5mA==", "dev": true, + "license": "MIT", "dependencies": { "array-differ": "^1.0.0", "array-union": "^1.0.1", @@ -16642,23 +17813,12 @@ "node": ">=0.10.0" } }, - "node_modules/multimatch/node_modules/array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", - "dev": true, - "dependencies": { - "array-uniq": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/mute-stdout": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.10" } @@ -16676,16 +17836,17 @@ } }, "node_modules/nan": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", - "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", + "version": "2.23.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.23.1.tgz", + "integrity": "sha512-r7bBUGKzlqk8oPBDYxt6Z0aEdF1G1rwlMcLk8LCOMbOzf0mG+JUfUzG4fIMWwHWP0iyaLWEQZJmtB7nOHEm/qw==", "dev": true, + "license": "MIT", "optional": true }, "node_modules/nanoid": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", - "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", "dev": true, "funding": [ { @@ -16706,6 +17867,7 @@ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "dev": true, + "license": "MIT", "dependencies": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -16728,44 +17890,50 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/napi-build-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", - "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-2.0.0.tgz", + "integrity": "sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==", + "license": "MIT" }, "node_modules/native-is-elevated": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/native-is-elevated/-/native-is-elevated-0.7.0.tgz", "integrity": "sha512-tp8hUqK7vexBiyIWKMvmRxdG6kqUtO+3eay9iB0i16NYgvCqE5wMe1Y0guHilpkmRgvVXEWNW4et1+qqcwpLBA==", - "hasInstallScript": true + "hasInstallScript": true, + "license": "MIT" }, "node_modules/native-keymap": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/native-keymap/-/native-keymap-3.3.5.tgz", - "integrity": "sha512-7XDOLPNX1FnUFC/cX3cioBz2M+dO212ai9DuwpfKFzkPu3xTmEzOm5xewOMLXE4V9YoRhNPxvq1H2YpPWDgSsg==", - "hasInstallScript": true + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/native-keymap/-/native-keymap-3.3.6.tgz", + "integrity": "sha512-ZAjwYIR7eRxZju6xdq/FES4PKfOAkSFXTV+YbxdGgffetaOXQHkXkGUUxCDKmsyAMzewOjAEo20/+uj2UqvFYg==", + "hasInstallScript": true, + "license": "MIT" }, "node_modules/native-watchdog": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/native-watchdog/-/native-watchdog-1.4.2.tgz", "integrity": "sha512-iT3Uj6FFdrW5vHbQ/ybiznLus9oiUoMJ8A8nyugXv9rV3EBhIodmGs+mztrwQyyBc+PB5/CrskAH/WxaUVRRSQ==", - "hasInstallScript": true + "hasInstallScript": true, + "license": "MIT" }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" }, "node_modules/negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "dev": true, + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -16774,7 +17942,8 @@ "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/next": { "version": "15.5.6", @@ -16833,7 +18002,8 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/next/node_modules/postcss": { "version": "8.4.31", @@ -16868,40 +18038,48 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/nise": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.0.tgz", - "integrity": "sha512-W5WlHu+wvo3PaKLsJJkgPup2LrsXCcm7AWwyNZkUnn5rwPkuPBi3Iwk5SQtN0mv+K65k7nKKjwNQ30wg3wLAQQ==", + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.9.tgz", + "integrity": "sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "@sinonjs/commons": "^1.7.0", - "@sinonjs/fake-timers": "^7.0.4", - "@sinonjs/text-encoding": "^0.7.1", - "just-extend": "^4.0.2", - "path-to-regexp": "^1.7.0" + "@sinonjs/commons": "^3.0.0", + "@sinonjs/fake-timers": "^11.2.2", + "@sinonjs/text-encoding": "^0.7.2", + "just-extend": "^6.2.0", + "path-to-regexp": "^6.2.1" } }, - "node_modules/nise/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "dev": true + "node_modules/nise/node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "type-detect": "4.0.8" + } }, - "node_modules/nise/node_modules/path-to-regexp": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz", - "integrity": "sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==", + "node_modules/nise/node_modules/@sinonjs/fake-timers": { + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-11.3.1.tgz", + "integrity": "sha512-EVJO7nW5M/F5Tur0Rf2z/QoMo+1Ia963RiMtapiQrEWvY0iBUvADo8Beegwjpnle5BHkyHuoxSTW3jF43H1XRA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "isarray": "0.0.1" + "@sinonjs/commons": "^3.0.1" } }, "node_modules/node-abi": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.8.0.tgz", - "integrity": "sha512-tzua9qWWi7iW4I42vUPKM+SfaF0vQSLAm4yO5J83mSwB7GeoWrDKC/K+8YCnYNwqP5duwazbw2X9l4m8SC2cUw==", + "version": "3.85.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.85.0.tgz", + "integrity": "sha512-zsFhmbkAzwhTft6nd3VxcG0cvJsT70rL+BIGHWVq5fi6MwGrHwzqKaxXE+Hl2GmnGItnDKPPkO5/LQqjVkIdFg==", + "license": "MIT", "dependencies": { "semver": "^7.3.5" }, @@ -16910,13 +18088,10 @@ } }, "node_modules/node-addon-api": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.0.tgz", - "integrity": "sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==", - "license": "MIT", - "engines": { - "node": "^16 || ^18 || >= 20" - } + "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" }, "node_modules/node-domexception": { "version": "1.0.0", @@ -16939,9 +18114,10 @@ } }, "node_modules/node-fetch": { - "version": "2.6.8", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.8.tgz", - "integrity": "sha512-RZ6dBYuj8dRSfxpUSu+NsdF1dpPpluJxwOp+6IoDp/sH2QNDSvurYsAa+F1WxY2RjA1iP93xhcsUoYbF2XBqVg==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -16962,6 +18138,7 @@ "resolved": "https://registry.npmjs.org/node-html-markdown/-/node-html-markdown-1.3.0.tgz", "integrity": "sha512-OeFi3QwC/cPjvVKZ114tzzu+YoR+v9UXW5RwSXGUqGb0qCl0DvP406tzdL7SFn8pZrMyzXoisfG2zcuF9+zw4g==", "dev": true, + "license": "MIT", "dependencies": { "node-html-parser": "^6.1.1" }, @@ -16974,6 +18151,7 @@ "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-6.1.13.tgz", "integrity": "sha512-qIsTMOY4C/dAa5Q5vsobRpOOvPfC4pB61UVW2uSwZNUp0QU/jCekTal1vMmbO0DgdHeLUJpv/ARmDqErVxA3Sg==", "dev": true, + "license": "MIT", "dependencies": { "css-select": "^5.1.0", "he": "1.2.0" @@ -17025,6 +18203,16 @@ "url": "https://opencollective.com/nodemon" } }, + "node_modules/nodemon/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/nodemon/node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -17039,16 +18227,19 @@ } }, "node_modules/nopt": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", - "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= sha512-+5XZFpQZEY0cg5JaxLwGxDlKNKYxuXwGt8/Oi3UXm5/4ymrJve9d2CURituxv3rSrVCGZj4m1U1JlHTdcKt2Ng==", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", + "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", "dev": true, + "license": "ISC", "dependencies": { - "abbrev": "1", - "osenv": "^0.1.4" + "abbrev": "^2.0.0" }, "bin": { "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/normalize-package-data": { @@ -17056,6 +18247,7 @@ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "hosted-git-info": "^2.1.4", "resolve": "^1.10.0", @@ -17063,11 +18255,33 @@ "validate-npm-package-license": "^3.0.1" } }, + "node_modules/normalize-package-data/node_modules/resolve": { + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/normalize-package-data/node_modules/semver": { "version": "5.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver" } @@ -17077,6 +18291,7 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -17092,12 +18307,13 @@ } }, "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.1.0.tgz", + "integrity": "sha512-X06Mfd/5aKsRHc0O0J5CUedwnPmnDtLF2+nq+KN9KSDlJHkPuh0JUviWjEWMe0SW/9TDdSLVPuk7L5gGTIA1/w==", "dev": true, + "license": "MIT", "engines": { - "node": ">=10" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -17108,6 +18324,7 @@ "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", "dev": true, + "license": "MIT", "dependencies": { "once": "^1.3.2" }, @@ -17120,6 +18337,7 @@ "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "chalk": "^2.4.1", @@ -17145,6 +18363,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -17157,6 +18376,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -17171,6 +18391,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "1.1.3" } @@ -17178,14 +18399,16 @@ "node_modules/npm-run-all/node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" }, "node_modules/npm-run-all/node_modules/cross-spawn": { "version": "6.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.6.tgz", "integrity": "sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==", "dev": true, + "license": "MIT", "dependencies": { "nice-try": "^1.0.4", "path-key": "^2.0.1", @@ -17200,17 +18423,29 @@ "node_modules/npm-run-all/node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/npm-run-all/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.8.0" + "node": ">=4" } }, "node_modules/npm-run-all/node_modules/path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -17220,6 +18455,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver" } @@ -17227,8 +18463,9 @@ "node_modules/npm-run-all/node_modules/shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", "dev": true, + "license": "MIT", "dependencies": { "shebang-regex": "^1.0.0" }, @@ -17239,8 +18476,9 @@ "node_modules/npm-run-all/node_modules/shebang-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -17250,6 +18488,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -17262,6 +18501,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -17270,10 +18510,11 @@ } }, "node_modules/nth-check": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", - "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", + "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==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0" }, @@ -17284,8 +18525,9 @@ "node_modules/number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -17293,7 +18535,8 @@ "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -17301,8 +18544,9 @@ "node_modules/object-copy": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw= sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", + "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", "dev": true, + "license": "MIT", "dependencies": { "copy-descriptor": "^0.1.0", "define-property": "^0.2.5", @@ -17315,8 +18559,9 @@ "node_modules/object-copy/node_modules/define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dev": true, + "license": "MIT", "dependencies": { "is-descriptor": "^0.1.0" }, @@ -17324,60 +18569,26 @@ "node": ">=0.10.0" } }, - "node_modules/object-copy/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "deprecated": "Please upgrade to v0.1.7", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "deprecated": "Please upgrade to v0.1.5", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/object-copy/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", "dev": true, + "license": "MIT", "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, "node_modules/object-copy/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, + "license": "MIT", "dependencies": { "is-buffer": "^1.1.5" }, @@ -17411,6 +18622,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -17418,8 +18630,9 @@ "node_modules/object-visit": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", + "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", "dev": true, + "license": "MIT", "dependencies": { "isobject": "^3.0.0" }, @@ -17450,8 +18663,9 @@ "node_modules/object.defaults": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8= sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==", + "integrity": "sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==", "dev": true, + "license": "MIT", "dependencies": { "array-each": "^1.0.1", "array-slice": "^1.0.0", @@ -17498,8 +18712,9 @@ "node_modules/object.map": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc= sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==", + "integrity": "sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==", "dev": true, + "license": "MIT", "dependencies": { "for-own": "^1.0.0", "make-iterator": "^1.0.0" @@ -17511,8 +18726,9 @@ "node_modules/object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", "dev": true, + "license": "MIT", "dependencies": { "isobject": "^3.0.1" }, @@ -17523,8 +18739,9 @@ "node_modules/object.reduce": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", - "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60= sha512-naLhxxpUESbNkRqc35oQ2scZSJueHGQNUfMW/0U37IgN6tE2dgDWg3whf+NEliy3F/QysrO48XKUz/nGPe+AQw==", + "integrity": "sha512-naLhxxpUESbNkRqc35oQ2scZSJueHGQNUfMW/0U37IgN6tE2dgDWg3whf+NEliy3F/QysrO48XKUz/nGPe+AQw==", "dev": true, + "license": "MIT", "dependencies": { "for-own": "^1.0.0", "make-iterator": "^1.0.0" @@ -17564,6 +18781,7 @@ "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" }, @@ -17584,21 +18802,23 @@ "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E= sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", "dependencies": { "wrappy": "1" } }, "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", "dev": true, + "license": "MIT", "dependencies": { - "mimic-fn": "^2.1.0" + "mimic-function": "^5.0.0" }, "engines": { - "node": ">=6" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -17607,19 +18827,19 @@ "node_modules/only": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/only/-/only-0.0.2.tgz", - "integrity": "sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q= sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ==", + "integrity": "sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ==", "dev": true }, "node_modules/open": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/open/-/open-10.1.2.tgz", - "integrity": "sha512-cxN6aIDPz6rm8hbebcP7vrQNhvRcveZoJU72Y7vskh4oIm+BZwBECnx5nTmrlres1Qapvx27Qo1Auukpf8PKXw==", + "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", - "is-wsl": "^3.1.0" + "wsl-utils": "^0.1.0" }, "engines": { "node": ">=18" @@ -17667,12 +18887,6 @@ "undici-types": "~5.26.4" } }, - "node_modules/openai/node_modules/form-data-encoder": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.2.tgz", - "integrity": "sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==", - "license": "MIT" - }, "node_modules/openai/node_modules/undici-types": { "version": "5.26.5", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", @@ -17696,6 +18910,7 @@ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, + "license": "MIT", "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", @@ -17709,33 +18924,35 @@ } }, "node_modules/ora": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-7.0.1.tgz", - "integrity": "sha512-0TUxTiFJWv+JnjWm4o9yvuskpEJLXTcng8MJuKd+SzAzp2o+OP3HWqNhB4OdJRt1Vsd9/mR0oyaEYlOnL7XIRw==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-8.2.0.tgz", + "integrity": "sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^5.3.0", - "cli-cursor": "^4.0.0", - "cli-spinners": "^2.9.0", + "cli-cursor": "^5.0.0", + "cli-spinners": "^2.9.2", "is-interactive": "^2.0.0", - "is-unicode-supported": "^1.3.0", - "log-symbols": "^5.1.0", - "stdin-discarder": "^0.1.0", - "string-width": "^6.1.0", + "is-unicode-supported": "^2.0.0", + "log-symbols": "^6.0.0", + "stdin-discarder": "^0.2.2", + "string-width": "^7.2.0", "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=16" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/ora/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -17744,10 +18961,11 @@ } }, "node_modules/ora/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", "dev": true, + "license": "MIT", "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" }, @@ -17756,26 +18974,41 @@ } }, "node_modules/ora/node_modules/is-unicode-supported": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", + "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", "dev": true, + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/ora/node_modules/log-symbols": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz", - "integrity": "sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-6.0.0.tgz", + "integrity": "sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==", "dev": true, + "license": "MIT", "dependencies": { - "chalk": "^5.0.0", - "is-unicode-supported": "^1.1.0" + "chalk": "^5.3.0", + "is-unicode-supported": "^1.3.0" + }, + "engines": { + "node": ">=18" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/log-symbols/node_modules/is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -17784,10 +19017,11 @@ } }, "node_modules/ora/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -17801,17 +19035,26 @@ "node_modules/ordered-read-streams": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", - "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4= sha512-Z87aSjx3r5c0ZB7bcJqIgIRX5bxR7A4aSzvIbaxd0oTkWBCOoKfuGHiKj60CHVUgg1Phm5yMZzBdt8XqRs73Mw==", + "integrity": "sha512-Z87aSjx3r5c0ZB7bcJqIgIRX5bxR7A4aSzvIbaxd0oTkWBCOoKfuGHiKj60CHVUgg1Phm5yMZzBdt8XqRs73Mw==", "dev": true, + "license": "MIT", "dependencies": { "readable-stream": "^2.0.1" } }, + "node_modules/ordered-read-streams/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, "node_modules/ordered-read-streams/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -17822,6 +19065,23 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/ordered-read-streams/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==", + "dev": true, + "license": "MIT" + }, + "node_modules/ordered-read-streams/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/original-fs": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/original-fs/-/original-fs-1.2.0.tgz", @@ -17833,22 +19093,15 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", - "dev": true - }, - "node_modules/os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M= sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", "dev": true, - "engines": { - "node": ">=0.10.0" - } + "license": "MIT" }, "node_modules/os-locale": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk= sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==", + "integrity": "sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==", "dev": true, + "license": "MIT", "dependencies": { "lcid": "^1.0.0" }, @@ -17856,26 +19109,6 @@ "node": ">=0.10.0" } }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "deprecated": "This package is no longer supported.", - "dev": true, - "dependencies": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, "node_modules/own-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", @@ -17896,8 +19129,9 @@ "node_modules/p-all": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-all/-/p-all-1.0.0.tgz", - "integrity": "sha1-k731OlWiOCH9+pi0F0qZv38x340= sha512-OtbznqfGjQT+i89LK9C9YPh1G8d6n8xgsJ8yRVXrx6PRXrlOthNJhP+dHxrPopty8fugYb1DodpwrzP7z0Mtvw==", + "integrity": "sha512-OtbznqfGjQT+i89LK9C9YPh1G8d6n8xgsJ8yRVXrx6PRXrlOthNJhP+dHxrPopty8fugYb1DodpwrzP7z0Mtvw==", "dev": true, + "license": "MIT", "dependencies": { "p-map": "^1.0.0" }, @@ -17906,12 +19140,13 @@ } }, "node_modules/p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-4.0.1.tgz", + "integrity": "sha512-wBowNApzd45EIKdO1LaU+LrMBwAcjfPaYtVzV3lmfM3gf8Z4CHZsiIqlM8TZZ8okYvh5A1cP6gTfCRQtwUpaUg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=14.16" } }, "node_modules/p-limit": { @@ -17919,6 +19154,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, + "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -17934,6 +19170,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^3.0.2" }, @@ -17949,6 +19186,7 @@ "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -17958,21 +19196,24 @@ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/package-json-from-dist": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", - "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", - "dev": true + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" }, "node_modules/pako": { "version": "0.2.9", "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/parent-module": { "version": "1.0.1", @@ -17990,8 +19231,9 @@ "node_modules/parse-filepath": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE= sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==", + "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==", "dev": true, + "license": "MIT", "dependencies": { "is-absolute": "^1.0.0", "map-cache": "^0.2.0", @@ -18001,24 +19243,22 @@ "node": ">=0.8" } }, - "node_modules/parse-imports": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/parse-imports/-/parse-imports-2.2.1.tgz", - "integrity": "sha512-OL/zLggRp8mFhKL0rNORUTR4yBYujK/uU+xZL+/0Rgm2QE4nLO9v8PzEweSJEbMGKmDRjJE4R3IMJlL2di4JeQ==", + "node_modules/parse-imports-exports": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/parse-imports-exports/-/parse-imports-exports-0.2.4.tgz", + "integrity": "sha512-4s6vd6dx1AotCx/RCI2m7t7GCh5bDRUtGNvRfHSP2wbBQdMi67pPe7mtzmgwcaQ8VKK/6IB7Glfyu3qdZJPybQ==", "dev": true, + "license": "MIT", "dependencies": { - "es-module-lexer": "^1.5.3", - "slashes": "^3.0.12" - }, - "engines": { - "node": ">= 18" + "parse-statements": "1.0.11" } }, "node_modules/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", "dev": true, + "license": "MIT", "dependencies": { "error-ex": "^1.3.1", "json-parse-better-errors": "^1.0.1" @@ -18032,6 +19272,7 @@ "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.10" } @@ -18039,16 +19280,25 @@ "node_modules/parse-passwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, + "node_modules/parse-statements": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/parse-statements/-/parse-statements-1.0.11.tgz", + "integrity": "sha512-HlsyYdMBnbPQ9Jr/VgJ1YF4scnldvJpJxCVx6KgqPL4dxppsWrJHCIIxQXMJrqGnsRkNPATbeMJ8Yxu7JMsYcA==", + "dev": true, + "license": "MIT" + }, "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" } @@ -18056,8 +19306,9 @@ "node_modules/pascalcase": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", + "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -18066,19 +19317,22 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/path-dirname": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", - "dev": true + "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", + "dev": true, + "license": "MIT" }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -18086,8 +19340,9 @@ "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18= sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -18096,6 +19351,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", "engines": { "node": ">=8" } @@ -18103,13 +19359,15 @@ "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" }, "node_modules/path-root": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc= sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==", + "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==", "dev": true, + "license": "MIT", "dependencies": { "path-root-regex": "^0.1.0" }, @@ -18120,8 +19378,9 @@ "node_modules/path-root-regex": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0= sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==", + "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -18131,6 +19390,7 @@ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" @@ -18143,13 +19403,11 @@ } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.3.0.tgz", - "integrity": "sha512-CQl19J/g+Hbjbv4Y3mFNNXFEL/5t/KCg8POCuUqd4rMKjGG+j1ybER83hxV58zL+dFI1PTkt3GNFSHRt+d8qEQ==", + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true, - "engines": { - "node": "14 || >=16.14" - } + "license": "ISC" }, "node_modules/path-to-regexp": { "version": "6.3.0", @@ -18163,6 +19421,7 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -18177,8 +19436,12 @@ "node_modules/pause-stream": { "version": "0.0.11", "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", - "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU= sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==", + "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==", "dev": true, + "license": [ + "MIT", + "Apache2" + ], "dependencies": { "through": "~2.3" } @@ -18200,17 +19463,26 @@ "resolved": "https://registry.npmjs.org/peek-stream/-/peek-stream-1.1.3.tgz", "integrity": "sha512-FhJ+YbOSBb9/rIl2ZeE/QHEsWn7PqNYt8ARAY3kIgNGOk13g9FGyIY6JIl/xB/3TFRVoTv5as0l11weORrTekA==", "dev": true, + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "duplexify": "^3.5.0", "through2": "^2.0.3" } }, + "node_modules/peek-stream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, "node_modules/peek-stream/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -18221,11 +19493,29 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/peek-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==", + "dev": true, + "license": "MIT" + }, + "node_modules/peek-stream/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/peek-stream/node_modules/through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, + "license": "MIT", "dependencies": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" @@ -18234,7 +19524,8 @@ "node_modules/pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA= sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "license": "MIT" }, "node_modules/picocolors": { "version": "1.1.1", @@ -18247,6 +19538,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -18259,6 +19551,7 @@ "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", "dev": true, + "license": "MIT", "bin": { "pidtree": "bin/pidtree.js" }, @@ -18269,8 +19562,9 @@ "node_modules/pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -18278,8 +19572,9 @@ "node_modules/pinkie": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA= sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -18287,8 +19582,9 @@ "node_modules/pinkie-promise": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o= sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", "dev": true, + "license": "MIT", "dependencies": { "pinkie": "^2.0.0" }, @@ -18307,9 +19603,9 @@ } }, "node_modules/pkce-challenge": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pkce-challenge/-/pkce-challenge-5.0.0.tgz", - "integrity": "sha512-ueGLflrrnvwB3xuo/uGob5pd5FN7l0MsLf0Z87o/UQmRtwjvfylfc9MurIxRAWywCYTgrvpXBcqjV4OfCYGCIQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/pkce-challenge/-/pkce-challenge-5.0.1.tgz", + "integrity": "sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ==", "license": "MIT", "engines": { "node": ">=16.20.0" @@ -18320,6 +19616,7 @@ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, + "license": "MIT", "dependencies": { "find-up": "^4.0.0" }, @@ -18332,6 +19629,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -18345,6 +19643,7 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -18357,6 +19656,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -18372,6 +19672,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -18411,9 +19712,9 @@ } }, "node_modules/playwright-core": { - "version": "1.47.2", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.47.2.tgz", - "integrity": "sha512-3JvMfF+9LJfe16l7AbSmU555PaTl2tPyQsVInqm3id16pdDfvZ8TTZ/pyzmkbDrZTQefyzU7AIHlZqQnxpqHVQ==", + "version": "1.56.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.56.1.tgz", + "integrity": "sha512-hutraynyn31F+Bifme+Ps9Vq59hKuUCz7H1kDOcBs+2oGguKkWTU50bBWrtz34OUWmIwpBTWDxaRPXrIXkgvmQ==", "dev": true, "license": "Apache-2.0", "bin": { @@ -18423,39 +19724,34 @@ "node": ">=18" } }, - "node_modules/playwright/node_modules/playwright-core": { - "version": "1.56.1", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.56.1.tgz", - "integrity": "sha512-hutraynyn31F+Bifme+Ps9Vq59hKuUCz7H1kDOcBs+2oGguKkWTU50bBWrtz34OUWmIwpBTWDxaRPXrIXkgvmQ==", + "node_modules/playwright/node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, - "license": "Apache-2.0", - "bin": { - "playwright-core": "cli.js" - }, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=18" + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, "node_modules/plist": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.5.tgz", - "integrity": "sha512-83vX4eYdQp3vP9SxuYgEM/G/pJQqLUz/V/xzPrzruLs7fz7jxGQ1msZ/mg1nwZxUSuOp4sb+/bEIbRrbzZRxDA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/plist/-/plist-3.1.0.tgz", + "integrity": "sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==", "dev": true, + "license": "MIT", "dependencies": { + "@xmldom/xmldom": "^0.8.8", "base64-js": "^1.5.1", - "xmlbuilder": "^9.0.7" + "xmlbuilder": "^15.1.1" }, "engines": { - "node": ">=6" - } - }, - "node_modules/plist/node_modules/xmlbuilder": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", - "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0= sha512-7YXTQc3P2l9+0rjaUbLwMKRhtmwg1M1eDf6nag7urC7pIPYLD9W/jmzQ4ptRSUbodw5S0jfoGTflLemQibSpeQ==", - "dev": true, - "engines": { - "node": ">=4.0" + "node": ">=10.4.0" } }, "node_modules/plugin-error": { @@ -18463,6 +19759,7 @@ "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-colors": "^1.0.1", "arr-diff": "^4.0.0", @@ -18478,6 +19775,7 @@ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-wrap": "^0.1.0" }, @@ -18488,8 +19786,9 @@ "node_modules/posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", + "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -18504,9 +19803,9 @@ } }, "node_modules/postcss": { - "version": "8.5.3", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", - "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", "dev": true, "funding": [ { @@ -18524,7 +19823,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.8", + "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -18549,6 +19848,20 @@ "postcss": "^8.2.2" } }, + "node_modules/postcss-calc/node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/postcss-colormin": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.1.0.tgz", @@ -18655,6 +19968,27 @@ "postcss": "^8.0.0" } }, + "node_modules/postcss-import/node_modules/resolve": { + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/postcss-js": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.1.0.tgz", @@ -18760,6 +20094,20 @@ "postcss": "^8.4.31" } }, + "node_modules/postcss-merge-rules/node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/postcss-minify-font-values": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.1.0.tgz", @@ -18828,11 +20176,26 @@ "postcss": "^8.4.31" } }, + "node_modules/postcss-minify-selectors/node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/postcss-modules-extract-imports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", - "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", "dev": true, + "license": "ISC", "engines": { "node": "^10 || ^12 || >= 14" }, @@ -18841,13 +20204,14 @@ } }, "node_modules/postcss-modules-local-by-default": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.4.tgz", - "integrity": "sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", + "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", "dev": true, + "license": "MIT", "dependencies": { "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", + "postcss-selector-parser": "^7.0.0", "postcss-value-parser": "^4.1.0" }, "engines": { @@ -18857,13 +20221,28 @@ "postcss": "^8.1.0" } }, + "node_modules/postcss-modules-local-by-default/node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/postcss-modules-scope": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.1.1.tgz", - "integrity": "sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", + "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", "dev": true, + "license": "ISC", "dependencies": { - "postcss-selector-parser": "^6.0.4" + "postcss-selector-parser": "^7.0.0" }, "engines": { "node": "^10 || ^12 || >= 14" @@ -18872,11 +20251,26 @@ "postcss": "^8.1.0" } }, + "node_modules/postcss-modules-scope/node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/postcss-modules-values": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", "dev": true, + "license": "ISC", "dependencies": { "icss-utils": "^5.0.0" }, @@ -18955,6 +20349,20 @@ "postcss": "^8.4" } }, + "node_modules/postcss-nesting/node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/postcss-normalize-charset": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.2.tgz", @@ -19148,9 +20556,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", - "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", "dev": true, "license": "MIT", "dependencies": { @@ -19287,11 +20695,26 @@ "postcss": "^8.4.31" } }, + "node_modules/postcss-unique-selectors/node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/postcss-value-parser": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/posthog-node": { "version": "4.18.0", @@ -19306,16 +20729,17 @@ } }, "node_modules/prebuild-install": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.2.tgz", - "integrity": "sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.3.tgz", + "integrity": "sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==", + "license": "MIT", "dependencies": { "detect-libc": "^2.0.0", "expand-template": "^2.0.3", "github-from-package": "0.0.0", "minimist": "^1.2.3", "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^1.0.1", + "napi-build-utils": "^2.0.0", "node-abi": "^3.3.0", "pump": "^3.0.0", "rc": "^1.2.7", @@ -19333,12 +20757,14 @@ "node_modules/prebuild-install/node_modules/chownr": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "license": "ISC" }, "node_modules/prebuild-install/node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz", + "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==", + "license": "MIT", "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -19360,6 +20786,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "license": "MIT", "dependencies": { "bl": "^4.0.3", "end-of-stream": "^1.4.1", @@ -19376,6 +20803,7 @@ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8.0" } @@ -19383,31 +20811,24 @@ "node_modules/pretty-hrtime": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE= sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", + "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI= sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "dev": true, - "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==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/progress": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", - "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74= sha512-UdA8mJ4weIkUBO224tIarHzuHs4HuYiJvsuGT7j/SPQiUJVjYvNDBIPa0hAorduOfjGohB/qHWRa/lrrWX/mXw==", + "integrity": "sha512-UdA8mJ4weIkUBO224tIarHzuHs4HuYiJvsuGT7j/SPQiUJVjYvNDBIPa0hAorduOfjGohB/qHWRa/lrrWX/mXw==", "dev": true, "engines": { "node": ">=0.4.0" @@ -19436,8 +20857,9 @@ "node_modules/proto-list": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", - "dev": true + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "dev": true, + "license": "ISC" }, "node_modules/proxy-addr": { "version": "2.0.7", @@ -19455,19 +20877,22 @@ "node_modules/proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" }, "node_modules/prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY= sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", - "dev": true + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true, + "license": "MIT" }, "node_modules/pseudo-localization": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/pseudo-localization/-/pseudo-localization-2.4.0.tgz", "integrity": "sha512-ISYMOKY8+f+PmiXMFw2y6KLY74LBrv/8ml/VjjoVEV2k+MS+OJZz7ydciK5ntJwxPrKQPTU1+oXq9Mx2b0zEzg==", "dev": true, + "license": "MIT", "dependencies": { "flat": "^5.0.2", "get-stdin": "^7.0.0", @@ -19483,6 +20908,7 @@ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -19491,18 +20917,6 @@ "node": ">=4.2.0" } }, - "node_modules/pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM= sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", - "dev": true - }, - "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true - }, "node_modules/pstree.remy": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", @@ -19511,10 +20925,11 @@ "license": "MIT" }, "node_modules/pump": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.2.tgz", - "integrity": "sha1-Oz7mUS+U8OV1U4wXmV+fFpkKXVE= sha512-0l9Rf87wCGXiNCxHxjixpBTPa0iLYFp6an+fwXp7Yz6Fxyhdo7YiBsV76yqzwajT/2+XjKdiCaCDVIcvyEHqCA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz", + "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==", "dev": true, + "license": "MIT", "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -19525,6 +20940,7 @@ "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", "dev": true, + "license": "MIT", "dependencies": { "duplexify": "^3.6.0", "inherits": "^2.0.3", @@ -19536,6 +20952,7 @@ "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", "dev": true, + "license": "MIT", "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -19556,6 +20973,7 @@ "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -19575,26 +20993,43 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "dev": true - }, "node_modules/queue": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/queue/-/queue-3.1.0.tgz", - "integrity": "sha1-bEnQHwCeIlZ4h4nyv/rGuLmZBYU= sha512-z3XqdkYJ/YVQuAAoAKLcePEk2BZDMZR2jv2hTrpQb0K5M0dUbiwADr48N1F63M4ChD/GwPc/LeaA9VC5dJFfTA==", + "integrity": "sha512-z3XqdkYJ/YVQuAAoAKLcePEk2BZDMZR2jv2hTrpQb0K5M0dUbiwADr48N1F63M4ChD/GwPc/LeaA9VC5dJFfTA==", "dev": true, + "license": "WTFPL", "dependencies": { "inherits": "~2.0.0" } }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "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/quick-lru": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -19607,6 +21042,7 @@ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "^5.1.0" } @@ -19621,15 +21057,15 @@ } }, "node_modules/raw-body": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.1.tgz", - "integrity": "sha512-9G8cA+tuMS75+6G/TzW8OtLzmBDMo8p1JRxN5AZ+LAp8uxGA8V8GZm4GQ4/N5QNQEnLmg6SS7wyuSmbKepiKqA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz", + "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==", "license": "MIT", "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.7.0", - "unpipe": "1.0.0" + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.7.0", + "unpipe": "~1.0.0" }, "engines": { "node": ">= 0.10" @@ -19655,6 +21091,7 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", "dependencies": { "deep-extend": "^0.6.0", "ini": "~1.3.0", @@ -19668,16 +21105,18 @@ "node_modules/rc/node_modules/strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo= sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/rcedit": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/rcedit/-/rcedit-1.1.0.tgz", - "integrity": "sha512-JkXJ0IrUcdupLoIx6gE4YcFaMVSGtu7kQf4NJoDJUnfBZGuATmJ2Yal2v55KTltp+WV8dGr7A0RtOzx6jmtM6Q==", - "dev": true + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/rcedit/-/rcedit-1.1.2.tgz", + "integrity": "sha512-z2ypB4gbINhI6wVe0JJMmdpmOpmNc4g90sE6/6JSuch5kYnjfz9CxvVPqqhShgR6GIkmtW3W2UlfiXhWljA0Fw==", + "dev": true, + "license": "MIT" }, "node_modules/react": { "version": "19.2.0", @@ -19743,8 +21182,9 @@ "node_modules/read-pkg": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", "dev": true, + "license": "MIT", "dependencies": { "load-json-file": "^4.0.0", "normalize-package-data": "^2.3.2", @@ -19757,8 +21197,9 @@ "node_modules/read-pkg-up": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", + "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", "dev": true, + "license": "MIT", "dependencies": { "find-up": "^1.0.0", "read-pkg": "^1.0.0" @@ -19770,8 +21211,9 @@ "node_modules/read-pkg-up/node_modules/find-up": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", + "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", "dev": true, + "license": "MIT", "dependencies": { "path-exists": "^2.0.0", "pinkie-promise": "^2.0.0" @@ -19783,8 +21225,9 @@ "node_modules/read-pkg-up/node_modules/load-json-file": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", + "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.1.2", "parse-json": "^2.2.0", @@ -19799,8 +21242,9 @@ "node_modules/read-pkg-up/node_modules/parse-json": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", + "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", "dev": true, + "license": "MIT", "dependencies": { "error-ex": "^1.2.0" }, @@ -19811,8 +21255,9 @@ "node_modules/read-pkg-up/node_modules/path-exists": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", + "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", "dev": true, + "license": "MIT", "dependencies": { "pinkie-promise": "^2.0.0" }, @@ -19823,8 +21268,9 @@ "node_modules/read-pkg-up/node_modules/path-type": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", + "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.1.2", "pify": "^2.0.0", @@ -19839,6 +21285,7 @@ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -19846,8 +21293,9 @@ "node_modules/read-pkg-up/node_modules/read-pkg": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", + "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", "dev": true, + "license": "MIT", "dependencies": { "load-json-file": "^1.0.0", "normalize-package-data": "^2.3.2", @@ -19860,8 +21308,9 @@ "node_modules/read-pkg-up/node_modules/strip-bom": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", + "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", "dev": true, + "license": "MIT", "dependencies": { "is-utf8": "^0.2.0" }, @@ -19874,6 +21323,7 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, + "license": "MIT", "dependencies": { "pify": "^3.0.0" }, @@ -19882,9 +21332,10 @@ } }, "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "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", @@ -19899,6 +21350,7 @@ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, + "license": "MIT", "dependencies": { "picomatch": "^2.2.1" }, @@ -19909,7 +21361,7 @@ "node_modules/rechoir": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", "dev": true, "dependencies": { "resolve": "^1.1.6" @@ -19918,6 +21370,27 @@ "node": ">= 0.10" } }, + "node_modules/rechoir/node_modules/resolve": { + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/reflect.getprototypeof": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", @@ -19945,6 +21418,7 @@ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, + "license": "MIT", "dependencies": { "extend-shallow": "^3.0.2", "safe-regex": "^1.1.0" @@ -19978,6 +21452,7 @@ "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", "dev": true, + "license": "MIT", "dependencies": { "is-buffer": "^1.1.5", "is-utf8": "^0.2.1" @@ -19989,8 +21464,9 @@ "node_modules/remove-bom-stream": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", - "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM= sha512-wigO8/O08XHb8YPzpDDT+QmRANfW6vLqxfaXm1YXhnFf3AkSLyjfG3GEFg4McZkmgL7KvCj5u2KczkvSP6NfHA==", + "integrity": "sha512-wigO8/O08XHb8YPzpDDT+QmRANfW6vLqxfaXm1YXhnFf3AkSLyjfG3GEFg4McZkmgL7KvCj5u2KczkvSP6NfHA==", "dev": true, + "license": "MIT", "dependencies": { "remove-bom-buffer": "^3.0.0", "safe-buffer": "^5.1.0", @@ -20000,11 +21476,19 @@ "node": ">= 0.10" } }, + "node_modules/remove-bom-stream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, "node_modules/remove-bom-stream/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -20015,11 +21499,29 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/remove-bom-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==", + "dev": true, + "license": "MIT" + }, + "node_modules/remove-bom-stream/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/remove-bom-stream/node_modules/through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, + "license": "MIT", "dependencies": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" @@ -20028,14 +21530,16 @@ "node_modules/remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8= sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", - "dev": true + "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", + "dev": true, + "license": "ISC" }, "node_modules/repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -20043,8 +21547,9 @@ "node_modules/repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc= sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10" } @@ -20054,6 +21559,7 @@ "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-2.0.0.tgz", "integrity": "sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug==", "dev": true, + "license": "MIT", "engines": { "node": ">= 10" } @@ -20061,8 +21567,9 @@ "node_modules/replace-homedir": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", - "integrity": "sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw= sha512-CHPV/GAglbIB1tnQgaiysb8H2yCy8WQ7lcEwQ/eT+kLj0QHV8LnJW0zpqpE7RSkrMSRoa+EBoag86clf7WAgSg==", + "integrity": "sha512-CHPV/GAglbIB1tnQgaiysb8H2yCy8WQ7lcEwQ/eT+kLj0QHV8LnJW0zpqpE7RSkrMSRoa+EBoag86clf7WAgSg==", "dev": true, + "license": "MIT", "dependencies": { "homedir-polyfill": "^1.0.1", "is-absolute": "^1.0.0", @@ -20077,6 +21584,7 @@ "resolved": "https://registry.npmjs.org/replacestream/-/replacestream-4.0.3.tgz", "integrity": "sha512-AC0FiLS352pBBiZhd4VXB1Ab/lh0lEgpP+GGvZqbQh8a5cmXVoTe5EX/YeTFArnp4SRGTHh1qCHu9lGs1qG8sA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "escape-string-regexp": "^1.0.3", "object-assign": "^4.0.1", @@ -20086,17 +21594,26 @@ "node_modules/replacestream/node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.0" } }, + "node_modules/replacestream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, "node_modules/replacestream/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -20107,11 +21624,29 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/replacestream/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==", + "dev": true, + "license": "MIT" + }, + "node_modules/replacestream/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I= sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -20120,6 +21655,7 @@ "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==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -20128,31 +21664,22 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/resolve": { - "version": "1.22.11", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", - "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", - "dev": true, + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", "license": "MIT", "dependencies": { - "is-core-module": "^2.16.1", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" }, - "engines": { - "node": ">= 0.4" - }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -20161,13 +21688,15 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/resolve-cwd": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, + "license": "MIT", "dependencies": { "resolve-from": "^5.0.0" }, @@ -20180,6 +21709,7 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -20187,8 +21717,9 @@ "node_modules/resolve-dir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", + "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", "dev": true, + "license": "MIT", "dependencies": { "expand-tilde": "^2.0.0", "global-modules": "^1.0.0" @@ -20210,8 +21741,9 @@ "node_modules/resolve-options": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", - "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE= sha512-NYDgziiroVeDC29xq7bp/CacZERYsA9bXYd1ZmcJlF3BcrZv5pTb4NG7SjdyKDnXZ84aC4vo2u6sNKIA1LCu/A==", + "integrity": "sha512-NYDgziiroVeDC29xq7bp/CacZERYsA9bXYd1ZmcJlF3BcrZv5pTb4NG7SjdyKDnXZ84aC4vo2u6sNKIA1LCu/A==", "dev": true, + "license": "MIT", "dependencies": { "value-or-function": "^3.0.0" }, @@ -20222,8 +21754,9 @@ "node_modules/resolve-path": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/resolve-path/-/resolve-path-1.4.0.tgz", - "integrity": "sha1-xL2p9e+y/OZSR4c6s2u02DT+Fvc= sha512-i1xevIst/Qa+nA9olDxLWnLk8YZbi8R/7JPbCMcgyWaFR6bKWaexgJgEB5oc2PKMjYdrHynyz0NY+if+H98t1w==", + "integrity": "sha512-i1xevIst/Qa+nA9olDxLWnLk8YZbi8R/7JPbCMcgyWaFR6bKWaexgJgEB5oc2PKMjYdrHynyz0NY+if+H98t1w==", "dev": true, + "license": "MIT", "dependencies": { "http-errors": "~1.6.2", "path-is-absolute": "1.0.1" @@ -20235,8 +21768,9 @@ "node_modules/resolve-path/node_modules/depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -20244,8 +21778,9 @@ "node_modules/resolve-path/node_modules/http-errors": { "version": "1.6.3", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", "dev": true, + "license": "MIT", "dependencies": { "depd": "~1.1.2", "inherits": "2.0.3", @@ -20259,20 +21794,23 @@ "node_modules/resolve-path/node_modules/inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true, + "license": "ISC" }, "node_modules/resolve-path/node_modules/setprototypeof": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/resolve-path/node_modules/statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -20280,69 +21818,72 @@ "node_modules/resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", + "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", "deprecated": "https://github.com/lydell/resolve-url#deprecated", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/responselike": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", - "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-4.0.2.tgz", + "integrity": "sha512-cGk8IbWEAnaCpdAt1BHzJ3Ahz5ewDJa0KseTsE3qIRMJ3C698W8psM7byCeWVpd/Ha7FUYzuRVzXoKoM6nRUbA==", "dev": true, + "license": "MIT", "dependencies": { - "lowercase-keys": "^2.0.0" + "lowercase-keys": "^3.0.0" + }, + "engines": { + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/restore-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", - "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", "dev": true, + "license": "MIT", "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/restore-cursor/node_modules/signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "dev": true - }, "node_modules/ret": { "version": "0.1.15", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12" } }, "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", "dev": true, + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" } }, "node_modules/rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -20351,16 +21892,17 @@ } }, "node_modules/rimraf/node_modules/glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, @@ -20376,6 +21918,7 @@ "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", "dev": true, + "license": "BSD-3-Clause", "optional": true, "dependencies": { "boolean": "^3.0.1", @@ -20390,9 +21933,9 @@ } }, "node_modules/rollup": { - "version": "4.53.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.53.2.tgz", - "integrity": "sha512-MHngMYwGJVi6Fmnk6ISmnk7JAHRNF0UkuucA0CUW3N3a4KnONPEZz+vUanQP/ZC/iY1Qkf3bwPWzyY84wEks1g==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.53.3.tgz", + "integrity": "sha512-w8GmOxZfBmKknvdXU1sdM9NHcoQejwF/4mNgj2JuEEdRaHwwF12K7e9eXn1nLZ07ad+du76mkVsyeb2rKGllsA==", "dev": true, "license": "MIT", "dependencies": { @@ -20406,28 +21949,28 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.53.2", - "@rollup/rollup-android-arm64": "4.53.2", - "@rollup/rollup-darwin-arm64": "4.53.2", - "@rollup/rollup-darwin-x64": "4.53.2", - "@rollup/rollup-freebsd-arm64": "4.53.2", - "@rollup/rollup-freebsd-x64": "4.53.2", - "@rollup/rollup-linux-arm-gnueabihf": "4.53.2", - "@rollup/rollup-linux-arm-musleabihf": "4.53.2", - "@rollup/rollup-linux-arm64-gnu": "4.53.2", - "@rollup/rollup-linux-arm64-musl": "4.53.2", - "@rollup/rollup-linux-loong64-gnu": "4.53.2", - "@rollup/rollup-linux-ppc64-gnu": "4.53.2", - "@rollup/rollup-linux-riscv64-gnu": "4.53.2", - "@rollup/rollup-linux-riscv64-musl": "4.53.2", - "@rollup/rollup-linux-s390x-gnu": "4.53.2", - "@rollup/rollup-linux-x64-gnu": "4.53.2", - "@rollup/rollup-linux-x64-musl": "4.53.2", - "@rollup/rollup-openharmony-arm64": "4.53.2", - "@rollup/rollup-win32-arm64-msvc": "4.53.2", - "@rollup/rollup-win32-ia32-msvc": "4.53.2", - "@rollup/rollup-win32-x64-gnu": "4.53.2", - "@rollup/rollup-win32-x64-msvc": "4.53.2", + "@rollup/rollup-android-arm-eabi": "4.53.3", + "@rollup/rollup-android-arm64": "4.53.3", + "@rollup/rollup-darwin-arm64": "4.53.3", + "@rollup/rollup-darwin-x64": "4.53.3", + "@rollup/rollup-freebsd-arm64": "4.53.3", + "@rollup/rollup-freebsd-x64": "4.53.3", + "@rollup/rollup-linux-arm-gnueabihf": "4.53.3", + "@rollup/rollup-linux-arm-musleabihf": "4.53.3", + "@rollup/rollup-linux-arm64-gnu": "4.53.3", + "@rollup/rollup-linux-arm64-musl": "4.53.3", + "@rollup/rollup-linux-loong64-gnu": "4.53.3", + "@rollup/rollup-linux-ppc64-gnu": "4.53.3", + "@rollup/rollup-linux-riscv64-gnu": "4.53.3", + "@rollup/rollup-linux-riscv64-musl": "4.53.3", + "@rollup/rollup-linux-s390x-gnu": "4.53.3", + "@rollup/rollup-linux-x64-gnu": "4.53.3", + "@rollup/rollup-linux-x64-musl": "4.53.3", + "@rollup/rollup-openharmony-arm64": "4.53.3", + "@rollup/rollup-win32-arm64-msvc": "4.53.3", + "@rollup/rollup-win32-ia32-msvc": "4.53.3", + "@rollup/rollup-win32-x64-gnu": "4.53.3", + "@rollup/rollup-win32-x64-msvc": "4.53.3", "fsevents": "~2.3.2" } }, @@ -20464,9 +22007,9 @@ } }, "node_modules/run-applescript": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz", - "integrity": "sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==", + "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" @@ -20476,9 +22019,9 @@ } }, "node_modules/run-parallel": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", - "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "funding": [ { @@ -20493,7 +22036,11 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } }, "node_modules/safe-array-concat": { "version": "1.1.3", @@ -20514,16 +22061,25 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/safe-array-concat/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "license": "MIT" - }, "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==" + "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", @@ -20541,17 +22097,12 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/safe-push-apply/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "license": "MIT" - }, "node_modules/safe-regex": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4= sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", + "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", "dev": true, + "license": "MIT", "dependencies": { "ret": "~0.1.10" } @@ -20580,10 +22131,11 @@ "license": "MIT" }, "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.3.tgz", + "integrity": "sha512-yqYn1JhPczigF94DMS+shiDMjDowYO6y9+wB/4WgO0Y19jWYk0lQ4tuG5KI7kj4FTp1wxPj5IFfcrz/s1c3jjQ==", + "dev": true, + "license": "BlueOak-1.0.0" }, "node_modules/scheduler": { "version": "0.27.0", @@ -20592,9 +22144,9 @@ "license": "MIT" }, "node_modules/schema-utils": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz", - "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", "dev": true, "license": "MIT", "dependencies": { @@ -20611,16 +22163,22 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/schema-utils/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "node_modules/schema-utils/node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", "dev": true, + "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.3" + "ajv": "^8.0.0" }, "peerDependencies": { - "ajv": "^8.8.2" + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } } }, "node_modules/scope-tailwind": { @@ -20667,15 +22225,17 @@ "node_modules/semver-compare": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", - "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w= sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", "dev": true, + "license": "MIT", "optional": true }, "node_modules/semver-greatest-satisfied-range": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", - "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els= sha512-Ny/iyOzSSa8M5ML46IAx3iXc6tfOsYU2R4AXi2UpHk60Zrgyq6eqPj/xiOfS0rRl/iiQ/rdJkVjw/5cdUyCntQ==", + "integrity": "sha512-Ny/iyOzSSa8M5ML46IAx3iXc6tfOsYU2R4AXi2UpHk60Zrgyq6eqPj/xiOfS0rRl/iiQ/rdJkVjw/5cdUyCntQ==", "dev": true, + "license": "MIT", "dependencies": { "sver-compat": "^1.5.0" }, @@ -20705,50 +22265,12 @@ "node": ">= 18" } }, - "node_modules/send/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/send/node_modules/fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", - "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/send/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/send/node_modules/mime-types": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", - "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", - "license": "MIT", - "dependencies": { - "mime-db": "^1.54.0" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/serialize-error": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "type-fest": "^0.13.1" @@ -20765,6 +22287,7 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", "dev": true, + "license": "(MIT OR CC0-1.0)", "optional": true, "engines": { "node": ">=10" @@ -20798,25 +22321,18 @@ "node": ">= 18" } }, - "node_modules/serve-static/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/set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc= sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true, + "license": "ISC" }, "node_modules/set-function-length": { "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==", + "license": "MIT", "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", @@ -20863,6 +22379,7 @@ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "dev": true, + "license": "MIT", "dependencies": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", @@ -20876,8 +22393,9 @@ "node_modules/set-value/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, + "license": "MIT", "dependencies": { "is-extendable": "^0.1.0" }, @@ -20888,8 +22406,9 @@ "node_modules/set-value/node_modules/is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -20899,6 +22418,7 @@ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, + "license": "MIT", "dependencies": { "isobject": "^3.0.1" }, @@ -20910,18 +22430,21 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" }, "node_modules/shallow-clone": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, + "license": "MIT", "dependencies": { "kind-of": "^6.0.2" }, @@ -20934,6 +22457,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -20988,6 +22512,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -20999,15 +22524,23 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/shell-quote": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", - "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==", - "dev": true + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", + "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/side-channel": { "version": "1.1.0", @@ -21081,17 +22614,12 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/sigmund": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", - "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA= sha512-fCvEXfh6NWpm+YSuY2bpXb/VIihqWA6hLsgboC+0nl71Q7N7o2eaCW8mJa/NLvQhs6jpd3VZV4UiUQlV6+lc8g==", - "dev": true - }, "node_modules/signal-exit": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, + "license": "ISC", "engines": { "node": ">=14" }, @@ -21116,7 +22644,8 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/simple-get": { "version": "4.0.1", @@ -21136,12 +22665,40 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "decompress-response": "^6.0.0", "once": "^1.3.1", "simple-concat": "^1.0.0" } }, + "node_modules/simple-get/node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "license": "MIT", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/simple-get/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/simple-update-notifier": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", @@ -21161,6 +22718,7 @@ "integrity": "sha512-iGu29Xhym33ydkAT+aNQFBINakjq69kKO6ByPvTsm3yyIACfyQttRTP03aBP/I8GfhFmLzrnKwNNkr0ORb1udg==", "deprecated": "16.1.1", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@sinonjs/commons": "^1.8.3", "@sinonjs/fake-timers": "^8.1.0", @@ -21175,21 +22733,13 @@ } }, "node_modules/sinon-test": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/sinon-test/-/sinon-test-3.1.3.tgz", - "integrity": "sha512-jBDvPVW2z8uAoiud3Nqc6+e8+WX6UTB1gPQuYXK00mSnp9m/JYyeLdBjLlqbnk1DVmsgRCAHSoXYPNLHp0t56Q==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/sinon-test/-/sinon-test-3.1.6.tgz", + "integrity": "sha512-3jBJGf61sS2EN3M+YuIiIbeutKrubP6SFolceTcJrubG+4s+zq3rey/y0huSEwU2ECKOcyCs7EkzANnwqHWPjA==", "dev": true, + "license": "BSD-3-Clause", "peerDependencies": { - "sinon": "2.x - 13.x" - } - }, - "node_modules/sinon/node_modules/@sinonjs/fake-timers": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", - "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^1.7.0" + "sinon": ">= 2.x" } }, "node_modules/sinon/node_modules/diff": { @@ -21202,20 +22752,12 @@ "node": ">=0.3.1" } }, - "node_modules/sinon/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/sinon/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -21223,16 +22765,24 @@ "node": ">=8" } }, - "node_modules/slashes": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/slashes/-/slashes-3.0.12.tgz", - "integrity": "sha512-Q9VME8WyGkc7pJf6QEkj3wE+2CnvZMI+XJhwdTPR8Z/kWQRXi7boAWLDibRPyHRTUTPx5FaU7MsyrjI3yLB4HA==", - "dev": true + "node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/smart-buffer": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "license": "MIT", "engines": { "node": ">= 6.0.0", "npm": ">= 3.0.0" @@ -21243,6 +22793,7 @@ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "dev": true, + "license": "MIT", "dependencies": { "base": "^0.11.1", "debug": "^2.2.0", @@ -21262,6 +22813,7 @@ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, + "license": "MIT", "dependencies": { "define-property": "^1.0.0", "isobject": "^3.0.0", @@ -21274,8 +22826,9 @@ "node_modules/snapdragon-node/node_modules/define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY= sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", "dev": true, + "license": "MIT", "dependencies": { "is-descriptor": "^1.0.0" }, @@ -21288,6 +22841,7 @@ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, + "license": "MIT", "dependencies": { "kind-of": "^3.2.0" }, @@ -21298,8 +22852,9 @@ "node_modules/snapdragon-util/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, + "license": "MIT", "dependencies": { "is-buffer": "^1.1.5" }, @@ -21312,6 +22867,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -21319,8 +22875,9 @@ "node_modules/snapdragon/node_modules/define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dev": true, + "license": "MIT", "dependencies": { "is-descriptor": "^0.1.0" }, @@ -21331,8 +22888,9 @@ "node_modules/snapdragon/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, + "license": "MIT", "dependencies": { "is-extendable": "^0.1.0" }, @@ -21340,75 +22898,26 @@ "node": ">=0.10.0" } }, - "node_modules/snapdragon/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "deprecated": "Please upgrade to v0.1.7", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "deprecated": "Please upgrade to v0.1.5", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/snapdragon/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", "dev": true, + "license": "MIT", "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, "node_modules/snapdragon/node_modules/is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -21416,14 +22925,16 @@ "node_modules/snapdragon/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" }, "node_modules/snapdragon/node_modules/source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -21434,6 +22945,7 @@ "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", "dev": true, + "license": "MIT", "dependencies": { "atob": "^2.1.2", "decode-uri-component": "^0.2.0", @@ -21443,11 +22955,12 @@ } }, "node_modules/socks": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", - "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", + "version": "2.8.7", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz", + "integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==", + "license": "MIT", "dependencies": { - "ip-address": "^9.0.5", + "ip-address": "^10.0.1", "smart-buffer": "^4.2.0" }, "engines": { @@ -21456,11 +22969,12 @@ } }, "node_modules/socks-proxy-agent": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.4.tgz", - "integrity": "sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==", + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", + "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", + "license": "MIT", "dependencies": { - "agent-base": "^7.1.1", + "agent-base": "^7.1.2", "debug": "^4.3.4", "socks": "^2.8.3" }, @@ -21473,6 +22987,7 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -21493,6 +23008,7 @@ "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", "dev": true, + "license": "MIT", "dependencies": { "atob": "^2.1.2", "decode-uri-component": "^0.2.0" @@ -21501,8 +23017,9 @@ "node_modules/source-map-support": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.3.3.tgz", - "integrity": "sha1-NJAJd9W6PwfHdX7nLnO7GptTdU8= sha512-9O4+y9n64RewmFoKUZ/5Tx9IHIcXM6Q+RTSw6ehnqybUz4a7iwR3Eaw80uLtqqQ5D0C+5H03D4KKGo9PdP33Gg==", + "integrity": "sha512-9O4+y9n64RewmFoKUZ/5Tx9IHIcXM6Q+RTSw6ehnqybUz4a7iwR3Eaw80uLtqqQ5D0C+5H03D4KKGo9PdP33Gg==", "dev": true, + "license": "MIT", "dependencies": { "source-map": "0.1.32" } @@ -21510,7 +23027,7 @@ "node_modules/source-map-support/node_modules/source-map": { "version": "0.1.32", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.32.tgz", - "integrity": "sha1-yLbBZ3l7pHQKjqMyUhYv8IWRsmY= sha512-htQyLrrRLkQ87Zfrir4/yN+vAUd6DNjVayEjTSHXu29AYQJw57I4/xEL/M6p6E/woPNJwvZt6rVlzc7gFEJccQ==", + "integrity": "sha512-htQyLrrRLkQ87Zfrir4/yN+vAUd6DNjVayEjTSHXu29AYQJw57I4/xEL/M6p6E/woPNJwvZt6rVlzc7gFEJccQ==", "dev": true, "dependencies": { "amdefine": ">=0.0.4" @@ -21520,58 +23037,76 @@ } }, "node_modules/source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= sha512-liJwHPI9x9d9w5WSIjM58MqGmmb7XzNqwdUA3kSBQ4lmDngexlKwawGzK3J1mKXi6+sysoMDlpVyZh9sv5vRfw==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", "deprecated": "See https://github.com/lydell/source-map-url#deprecated", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/sparkles": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.10" } }, "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, + "license": "Apache-2.0", "dependencies": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" } }, - "node_modules/spdx-exceptions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", - "dev": true - }, - "node_modules/spdx-expression-parse": { + "node_modules/spdx-correct/node_modules/spdx-expression-parse": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz", + "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==", + "dev": true, + "license": "MIT", "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, "node_modules/spdx-license-ids": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", - "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", - "dev": true + "version": "3.0.22", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.22.tgz", + "integrity": "sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==", + "dev": true, + "license": "CC0-1.0" }, "node_modules/split": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", - "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8= sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==", + "integrity": "sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==", "dev": true, + "license": "MIT", "dependencies": { "through": "2" }, @@ -21584,6 +23119,7 @@ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "dev": true, + "license": "MIT", "dependencies": { "extend-shallow": "^3.0.0" }, @@ -21594,20 +23130,25 @@ "node_modules/sprintf-js": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==" + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true }, "node_modules/stable": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/stack-trace": { "version": "0.0.10", "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA= sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", "dev": true, + "license": "MIT", "engines": { "node": "*" } @@ -21615,8 +23156,9 @@ "node_modules/static-extend": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", + "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", "dev": true, + "license": "MIT", "dependencies": { "define-property": "^0.2.5", "object-copy": "^0.1.0" @@ -21628,8 +23170,9 @@ "node_modules/static-extend/node_modules/define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dev": true, + "license": "MIT", "dependencies": { "is-descriptor": "^0.1.0" }, @@ -21637,129 +23180,42 @@ "node": ">=0.10.0" } }, - "node_modules/static-extend/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "deprecated": "Please upgrade to v0.1.7", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "deprecated": "Please upgrade to v0.1.5", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/static-extend/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", "dev": true, + "license": "MIT", "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "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/stdin-discarder": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.1.0.tgz", - "integrity": "sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.2.2.tgz", + "integrity": "sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==", "dev": true, - "dependencies": { - "bl": "^5.0.0" - }, + "license": "MIT", "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/stdin-discarder/node_modules/bl": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz", - "integrity": "sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==", - "dev": true, - "dependencies": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/stdin-discarder/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, "node_modules/stop-iteration-iterator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", @@ -21776,8 +23232,9 @@ "node_modules/stream-combiner": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", - "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ= sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==", + "integrity": "sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==", "dev": true, + "license": "MIT", "dependencies": { "duplexer": "~0.1.1" } @@ -21786,37 +23243,49 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", - "dev": true + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", + "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", + "dev": true, + "license": "MIT" }, "node_modules/stream-to-array": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/stream-to-array/-/stream-to-array-2.3.0.tgz", - "integrity": "sha1-u/azn19D7DC8cbq8s3VXrOzzQ1M= sha512-UsZtOYEn4tWU2RGLOXr/o/xjRBftZRlG3dEWoaHr8j4GuypJ3isitGbVyjQKAuMu+xbiop8q224TjiZWc4XTZA==", + "integrity": "sha512-UsZtOYEn4tWU2RGLOXr/o/xjRBftZRlG3dEWoaHr8j4GuypJ3isitGbVyjQKAuMu+xbiop8q224TjiZWc4XTZA==", "dev": true, + "license": "MIT", "dependencies": { "any-promise": "^1.1.0" } }, "node_modules/streamfilter": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/streamfilter/-/streamfilter-1.0.5.tgz", - "integrity": "sha1-h1BxEb644phFFxe1Ec/tjwAqv1M= sha512-IHuyNEAPs3pi2ABhJ7Dbjza9Gc6Nq7NDvx14tsKw4h4cMUz4YoLOON6nghUvIZVO4NW4qvYUoED1kd6/bipTVQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/streamfilter/-/streamfilter-1.0.7.tgz", + "integrity": "sha512-Gk6KZM+yNA1JpW0KzlZIhjo3EaBJDkYfXtYSbOwNIQ7Zd6006E6+sCFlW1NDvFG/vnXhKmw6TJJgiEQg/8lXfQ==", "dev": true, + "license": "MIT", "dependencies": { "readable-stream": "^2.0.2" } }, + "node_modules/streamfilter/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, "node_modules/streamfilter/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -21827,49 +23296,67 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/streamfilter/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==", + "dev": true, + "license": "MIT" + }, + "node_modules/streamfilter/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/streamifier": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/streamifier/-/streamifier-0.1.1.tgz", - "integrity": "sha1-l+mNj6TRBdYqJpHR3AfoINuN/E8= sha512-zDgl+muIlWzXNsXeyUfOk9dChMjlpkq0DRsxujtYPgyJ676yQ8jEm6zzaaWHFDg5BNcLuif0eD2MTyJdZqXpdg==", + "integrity": "sha512-zDgl+muIlWzXNsXeyUfOk9dChMjlpkq0DRsxujtYPgyJ676yQ8jEm6zzaaWHFDg5BNcLuif0eD2MTyJdZqXpdg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10" } }, "node_modules/streamx": { - "version": "2.22.0", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.22.0.tgz", - "integrity": "sha512-sLh1evHOzBy/iWRiR6d1zRcLao4gGZr3C1kzNz4fopCOKJb6xD9ub8Mpi9Mr1R6id5o43S+d93fI48UC5uM9aw==", + "version": "2.23.0", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.23.0.tgz", + "integrity": "sha512-kn+e44esVfn2Fa/O0CPFcex27fjIL6MkVae0Mm6q+E6f0hWv578YCERbv+4m02cjxvDsPKLnmxral/rR6lBMAg==", "dev": true, "license": "MIT", "dependencies": { + "events-universal": "^1.0.0", "fast-fifo": "^1.3.2", "text-decoder": "^1.1.0" - }, - "optionalDependencies": { - "bare-events": "^2.2.0" } }, "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==", + "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.1.0" + "safe-buffer": "~5.2.0" } }, "node_modules/string-width": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-6.1.0.tgz", - "integrity": "sha512-k01swCJAgQmuADB0YIc+7TuatfNvTBVOoaUWJjTB9R4VJzR5vNWzf5t42ESVZFPS8xTySF7CAdV4t/aaIm3UnQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "dev": true, + "license": "MIT", "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^10.2.1", - "strip-ansi": "^7.0.1" + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=16" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -21881,6 +23368,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -21894,13 +23382,15 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/string-width/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -21909,10 +23399,11 @@ } }, "node_modules/string-width/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -21951,14 +23442,16 @@ } }, "node_modules/string.prototype.padend": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.1.tgz", - "integrity": "sha512-eCzTASPnoCr5Ht+Vn1YXgm8SB015hHKgEIMu9Nr9bQmLhRBxKRfmzSj/IQsxDFc8JInJDDFA0qXwK+xxI7wDkg==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.6.tgz", + "integrity": "sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -22038,6 +23531,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -22051,6 +23545,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -22061,8 +23556,9 @@ "node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -22070,8 +23566,9 @@ "node_modules/strip-bom-string": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", - "integrity": "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI= sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", + "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -22081,6 +23578,7 @@ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -22088,11 +23586,25 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/strnum": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-2.1.1.tgz", + "integrity": "sha512-7ZvoFTiCnGxBtDqJ//Cu6fWtZtc7Y3x+QOirG15wztbdngGSkht27o2pyGWrVy0b4WAy3jbKmnoK6g5VlVNUUw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT" + }, "node_modules/style-loader": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.2.tgz", - "integrity": "sha512-RHs/vcrKdQK8wZliteNK4NKzxvLBzpuHMqYmUVWeKa6MkaIQ97ZTOS0b+zapZhy6GcrgWnvWYCMHRirC3FsUmw==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.4.tgz", + "integrity": "sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 12.13.0" }, @@ -22145,19 +23657,33 @@ "postcss": "^8.4.31" } }, + "node_modules/stylehacks/node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/sucrase": { - "version": "3.35.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", - "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "version": "3.35.1", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.1.tgz", + "integrity": "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==", "dev": true, "license": "MIT", "dependencies": { "@jridgewell/gen-mapping": "^0.3.2", "commander": "^4.0.0", - "glob": "^10.3.10", "lines-and-columns": "^1.1.6", "mz": "^2.7.0", "pirates": "^4.0.1", + "tinyglobby": "^0.2.11", "ts-interface-checker": "^0.1.9" }, "bin": { @@ -22168,16 +23694,6 @@ "node": ">=16 || 14 >=14.17" } }, - "node_modules/sucrase/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, "node_modules/sucrase/node_modules/commander": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", @@ -22188,74 +23704,12 @@ "node": ">= 6" } }, - "node_modules/sucrase/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/sucrase/node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/sucrase/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/sucrase/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, "node_modules/sumchecker": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", "dev": true, + "license": "Apache-2.0", "dependencies": { "debug": "^4.1.0" }, @@ -22268,6 +23722,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.4.0.tgz", "integrity": "sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -22279,6 +23734,7 @@ "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==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -22289,8 +23745,9 @@ "node_modules/sver-compat": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", - "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg= sha512-aFTHfmjwizMNlNE6dsGmoAM4lHjL0CyiobWaFiXWSlD7cIxshW422Nb8KbXCmR6z+0ZEPY+daXJrDyh/vuwTyg==", + "integrity": "sha512-aFTHfmjwizMNlNE6dsGmoAM4lHjL0CyiobWaFiXWSlD7cIxshW422Nb8KbXCmR6z+0ZEPY+daXJrDyh/vuwTyg==", "dev": true, + "license": "MIT", "dependencies": { "es6-iterator": "^2.0.1", "es6-symbol": "^3.1.1" @@ -22301,6 +23758,7 @@ "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", "dev": true, + "license": "MIT", "dependencies": { "@trysound/sax": "0.2.0", "commander": "^7.2.0", @@ -22322,19 +23780,21 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 10" } }, "node_modules/svgo/node_modules/css-select": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz", - "integrity": "sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0", - "css-what": "^5.1.0", - "domhandler": "^4.3.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", "domutils": "^2.8.0", "nth-check": "^2.0.1" }, @@ -22342,23 +23802,12 @@ "url": "https://github.com/sponsors/fb55" } }, - "node_modules/svgo/node_modules/css-what": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", - "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==", - "dev": true, - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, "node_modules/svgo/node_modules/dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", "dev": true, + "license": "MIT", "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.2.0", @@ -22369,10 +23818,11 @@ } }, "node_modules/svgo/node_modules/domhandler": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", - "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "domelementtype": "^2.2.0" }, @@ -22388,6 +23838,7 @@ "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "dom-serializer": "^1.0.1", "domelementtype": "^2.2.0", @@ -22398,30 +23849,15 @@ } }, "node_modules/svgo/node_modules/entities": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", - "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", "dev": true, + "license": "BSD-2-Clause", "funding": { "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/synckit": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.1.tgz", - "integrity": "sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==", - "dev": true, - "dependencies": { - "@pkgr/core": "^0.1.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/unts" - } - }, "node_modules/tabbable": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.3.0.tgz", @@ -22435,80 +23871,35 @@ "dev": true, "license": "MIT", "dependencies": { - "@alloc/quick-lru": "^5.2.0", - "arg": "^5.0.2", - "chokidar": "^3.6.0", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.3.2", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "jiti": "^1.21.7", - "lilconfig": "^3.1.3", - "micromatch": "^4.0.8", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.1.1", - "postcss": "^8.4.47", - "postcss-import": "^15.1.0", - "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.2 || ^5.0 || ^6.0", - "postcss-nested": "^6.2.0", - "postcss-selector-parser": "^6.1.2", - "resolve": "^1.22.8", - "sucrase": "^3.35.0" - }, - "bin": { - "tailwind": "lib/cli.js", - "tailwindcss": "lib/cli.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tailwindcss/node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "dev": true, - "license": "MIT" - }, - "node_modules/tailwindcss/node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/tailwindcss/node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.6.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.7", + "lilconfig": "^3.1.3", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.2 || ^5.0 || ^6.0", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" }, "engines": { - "node": ">= 6" + "node": ">=14.0.0" } }, "node_modules/tailwindcss/node_modules/glob-parent": { @@ -22550,19 +23941,60 @@ "postcss": "^8.2.14" } }, + "node_modules/tailwindcss/node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/tailwindcss/node_modules/resolve": { + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/tapable": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz", - "integrity": "sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", + "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, "node_modules/tar": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "license": "ISC", "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -22591,41 +24023,52 @@ } }, "node_modules/tar-fs/node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz", + "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==", "dev": true, + "license": "MIT", "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, "node_modules/tar-stream": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.6.tgz", - "integrity": "sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", "dev": true, + "license": "MIT", "dependencies": { "b4a": "^1.6.4", "fast-fifo": "^1.2.0", "streamx": "^2.15.0" } }, - "node_modules/tar/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "node_modules/tar/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } }, "node_modules/tas-client-umd": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/tas-client-umd/-/tas-client-umd-0.2.0.tgz", - "integrity": "sha512-oezN7mJVm5qZDVEby7OzxCLKUpUN5of0rY4dvOWaDF2JZBlGpd3BXceFN8B53qlTaIkVSzP65aAMT0Vc+/N25Q==" + "integrity": "sha512-oezN7mJVm5qZDVEby7OzxCLKUpUN5of0rY4dvOWaDF2JZBlGpd3BXceFN8B53qlTaIkVSzP65aAMT0Vc+/N25Q==", + "license": "MIT" }, "node_modules/teex": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/teex/-/teex-1.0.1.tgz", "integrity": "sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==", "dev": true, + "license": "MIT", "dependencies": { "streamx": "^2.12.5" } @@ -22635,6 +24078,7 @@ "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.4.tgz", "integrity": "sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==", "dev": true, + "license": "MIT", "dependencies": { "rimraf": "~2.6.2" }, @@ -22642,15 +24086,51 @@ "node": ">=6.0.0" } }, + "node_modules/temp/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/temp/node_modules/rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, "node_modules/terser": { - "version": "5.43.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.43.1.tgz", - "integrity": "sha512-+6erLbBm0+LROX2sPXlUYx/ux5PyE9K/a92Wrt6oA+WDAoFTdpHE5tCYCI5PNzq2y8df4rA+QgHLJuR4jNymsg==", + "version": "5.44.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.44.1.tgz", + "integrity": "sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==", "dev": true, "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.14.0", + "acorn": "^8.15.0", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, @@ -22719,6 +24199,7 @@ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, + "license": "ISC", "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", @@ -22734,6 +24215,7 @@ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -22750,10 +24232,11 @@ } }, "node_modules/text-decoder": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.1.0.tgz", - "integrity": "sha512-TmLJNj6UgX8xcUZo4UDStGQtDiTzF7BzWlzn9g7UWrjkpHr5uJTK1ld16wZ3LXb2vb6jH8qU89dW5whuMdXYdw==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz", + "integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==", "dev": true, + "license": "Apache-2.0", "dependencies": { "b4a": "^1.6.4" } @@ -22761,8 +24244,9 @@ "node_modules/textextensions": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-1.0.2.tgz", - "integrity": "sha1-ZUhjk+4fK7A5pgy7oFsLaL2VAdI= sha512-jm9KjEWiDmtGLBrTqXEduGzlYTTlPaoDKdq5YRQhD0rYjo61ZNTYKZ/x5J4ajPSBH9wIYY5qm9GNG5otIKjtOA==", - "dev": true + "integrity": "sha512-jm9KjEWiDmtGLBrTqXEduGzlYTTlPaoDKdq5YRQhD0rYjo61ZNTYKZ/x5J4ajPSBH9wIYY5qm9GNG5otIKjtOA==", + "dev": true, + "license": "MIT" }, "node_modules/thenify": { "version": "3.3.1", @@ -22790,14 +24274,16 @@ "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true, + "license": "MIT" }, "node_modules/through2": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.4", "readable-stream": "2 || 3" @@ -22808,16 +24294,25 @@ "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", "dev": true, + "license": "MIT", "dependencies": { "through2": "~2.0.0", "xtend": "~4.0.0" } }, + "node_modules/through2-filter/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, "node_modules/through2-filter/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -22828,11 +24323,29 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/through2-filter/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==", + "dev": true, + "license": "MIT" + }, + "node_modules/through2-filter/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/through2-filter/node_modules/through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, + "license": "MIT", "dependencies": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" @@ -22841,20 +24354,25 @@ "node_modules/time-stamp": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", - "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM= sha512-gLCeArryy2yNTRzTGKbZbloctj64jkZ57hj5zdraXue6aFgd6PmvVtEyiUU+hvU0v7q08oVv8r8ev0tRo6bvgw==", + "integrity": "sha512-gLCeArryy2yNTRzTGKbZbloctj64jkZ57hj5zdraXue6aFgd6PmvVtEyiUU+hvU0v7q08oVv8r8ev0tRo6bvgw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/timers-ext": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", - "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==", + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.8.tgz", + "integrity": "sha512-wFH7+SEAcKfJpfLPkrgMPvvwnEtj8W4IurvEyrKsDleXnKLCDw71w8jltvfLa8Rm4qQxxT4jmDBYbJG/z7qoww==", "dev": true, + "license": "ISC", "dependencies": { - "es5-ext": "~0.10.46", - "next-tick": "1" + "es5-ext": "^0.10.64", + "next-tick": "^1.1.0" + }, + "engines": { + "node": ">=0.12" } }, "node_modules/tiny-inflate": { @@ -22903,8 +24421,9 @@ "node_modules/to-absolute-glob": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", - "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs= sha512-rtwLUQEwT8ZeKQbyFJyomBRYXyE16U5VKuy0ftxLMK/PZb2fkOsg5r9kHdauuVDbsNdIBoC/HCthpidamQFXYA==", + "integrity": "sha512-rtwLUQEwT8ZeKQbyFJyomBRYXyE16U5VKuy0ftxLMK/PZb2fkOsg5r9kHdauuVDbsNdIBoC/HCthpidamQFXYA==", "dev": true, + "license": "MIT", "dependencies": { "is-absolute": "^1.0.0", "is-negated-glob": "^1.0.0" @@ -22916,8 +24435,9 @@ "node_modules/to-object-path": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", + "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", "dev": true, + "license": "MIT", "dependencies": { "kind-of": "^3.0.2" }, @@ -22928,8 +24448,9 @@ "node_modules/to-object-path/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, + "license": "MIT", "dependencies": { "is-buffer": "^1.1.5" }, @@ -22942,6 +24463,7 @@ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "dev": true, + "license": "MIT", "dependencies": { "define-property": "^2.0.2", "extend-shallow": "^3.0.2", @@ -22956,6 +24478,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -22966,8 +24489,9 @@ "node_modules/to-through": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", - "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY= sha512-+QIz37Ly7acM4EMdw2PRN389OneM5+d844tirkGp4dPKzI5OE72V9OsbFp+CIYJDahZ41ZV05hNtcPAQUAm9/Q==", + "integrity": "sha512-+QIz37Ly7acM4EMdw2PRN389OneM5+d844tirkGp4dPKzI5OE72V9OsbFp+CIYJDahZ41ZV05hNtcPAQUAm9/Q==", "dev": true, + "license": "MIT", "dependencies": { "through2": "^2.0.3" }, @@ -22975,11 +24499,19 @@ "node": ">= 0.10" } }, + "node_modules/to-through/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, "node_modules/to-through/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -22990,11 +24522,29 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/to-through/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==", + "dev": true, + "license": "MIT" + }, + "node_modules/to-through/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/to-through/node_modules/through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, + "license": "MIT", "dependencies": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" @@ -23004,6 +24554,7 @@ "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" } @@ -23018,40 +24569,18 @@ "nodetouch": "bin/nodetouch.js" } }, - "node_modules/tough-cookie": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", - "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", - "dev": true, - "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tough-cookie/node_modules/universalify": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" }, "node_modules/tree-kill": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", "dev": true, + "license": "MIT", "bin": { "tree-kill": "cli.js" } @@ -23077,10 +24606,11 @@ "license": "Apache-2.0" }, "node_modules/ts-loader": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.1.tgz", - "integrity": "sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==", + "version": "9.5.4", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.4.tgz", + "integrity": "sha512-nCz0rEwunlTZiy6rXFByQU1kVVpCIgUpc/psFiKVrUwrizdnIbRFu8w7bxhUF0X613DYwT4XzrZHpVyMe758hQ==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.1.0", "enhanced-resolve": "^5.0.0", @@ -23097,29 +24627,32 @@ } }, "node_modules/ts-loader/node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", "dev": true, + "license": "BSD-3-Clause", "engines": { - "node": ">= 8" + "node": ">= 12" } }, "node_modules/ts-morph": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-19.0.0.tgz", - "integrity": "sha512-D6qcpiJdn46tUqV45vr5UGM2dnIEuTGNxVhg0sk5NX11orcouwj6i1bMqZIz2mZTZB1Hcgy7C3oEVhAT+f6mbQ==", + "version": "25.0.1", + "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-25.0.1.tgz", + "integrity": "sha512-QJEiTdnz1YjrB3JFhd626gX4rKHDLSjSVMvGGG4v7ONc3RBwa0Eei98G9AT9uNFDMtV54JyuXsFeC+OH0n6bXQ==", "dev": true, + "license": "MIT", "dependencies": { - "@ts-morph/common": "~0.20.0", - "code-block-writer": "^12.0.0" + "@ts-morph/common": "~0.26.0", + "code-block-writer": "^13.0.3" } }, "node_modules/ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", "dev": true, + "license": "MIT", "dependencies": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", @@ -23158,11 +24691,19 @@ } } }, + "node_modules/ts-node/node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true, + "license": "MIT" + }, "node_modules/ts-node/node_modules/diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } @@ -23172,6 +24713,7 @@ "resolved": "https://registry.npmjs.org/tsec/-/tsec-0.2.7.tgz", "integrity": "sha512-Pj9DuBBWLEo8p7QsbrEdXzW/u6QJBcib0ZGOTXkeSDx+PLXFY7hwyZE9Tfhp3TA3LQNpYouyT0WmzXRyUW4otQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "glob": "^7.1.1", "minimatch": "^3.0.3" @@ -23186,16 +24728,17 @@ } }, "node_modules/tsec/node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, @@ -23218,6 +24761,7 @@ "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.6.x" } @@ -23325,19 +24869,11 @@ "node": ">= 12" } }, - "node_modules/tunnel": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", - "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", - "dev": true, - "engines": { - "node": ">=0.6.11 <=0.7.0 || >=0.7.3" - } - }, "node_modules/tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "license": "Apache-2.0", "dependencies": { "safe-buffer": "^5.0.1" }, @@ -23346,16 +24882,18 @@ } }, "node_modules/type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", - "dev": true + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.3.tgz", + "integrity": "sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==", + "dev": true, + "license": "ISC" }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" }, @@ -23368,6 +24906,7 @@ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -23386,13 +24925,14 @@ } }, "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==", - "dev": true, + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", + "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==", + "license": "MIT", "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" + "content-type": "^1.0.5", + "media-typer": "^1.1.0", + "mime-types": "^3.0.0" }, "engines": { "node": ">= 0.6" @@ -23475,13 +25015,14 @@ "node_modules/typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", - "dev": true + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true, + "license": "MIT" }, "node_modules/typescript": { - "version": "6.0.0-dev.20250922", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.0-dev.20250922.tgz", - "integrity": "sha512-4jTznRR2W8ak4kgHlxhNEauwCS/O2O2AfS3yC+Y4VxkRDFIruwdcW4+UQflBJrLCFa42lhdAAMGl1td/99KTKg==", + "version": "6.0.0-dev.20251123", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.0-dev.20251123.tgz", + "integrity": "sha512-Xrj9TOCpFjQesBatVvMgSLGJTanpJtNvOCNyjrIz2ZkJzqbnhj2tHw3NkaWiv4Y2q0qyrLCPuaYxtsylIcpTJw==", "dev": true, "license": "Apache-2.0", "bin": { @@ -23493,16 +25034,16 @@ } }, "node_modules/typescript-eslint": { - "version": "8.45.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.45.0.tgz", - "integrity": "sha512-qzDmZw/Z5beNLUrXfd0HIW6MzIaAV5WNDxmMs9/3ojGOpYavofgNAAD/nC6tGV2PczIi0iw8vot2eAe/sBn7zg==", + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.47.0.tgz", + "integrity": "sha512-Lwe8i2XQ3WoMjua/r1PHrCTpkubPYJCAfOurtn+mtTzqB6jNd+14n9UN1bJ4s3F49x9ixAm0FLflB/JzQ57M8Q==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.45.0", - "@typescript-eslint/parser": "8.45.0", - "@typescript-eslint/typescript-estree": "8.45.0", - "@typescript-eslint/utils": "8.45.0" + "@typescript-eslint/eslint-plugin": "8.47.0", + "@typescript-eslint/parser": "8.47.0", + "@typescript-eslint/typescript-estree": "8.47.0", + "@typescript-eslint/utils": "8.47.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -23517,19 +25058,21 @@ } }, "node_modules/typical": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", - "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-7.3.0.tgz", + "integrity": "sha512-ya4mg/30vm+DOWfBg4YK3j2WD6TWtRkCbasOJr40CseYENzCUby/7rIvXA99JGsQHeNxLbnXdyLLxKSv3tauFw==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12.17" } }, "node_modules/uc.micro": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ufo": { "version": "1.6.1", @@ -23559,8 +25102,9 @@ "node_modules/unc-path-regex": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo= sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==", + "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -23577,6 +25121,7 @@ "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz", "integrity": "sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==", "dev": true, + "license": "MIT", "dependencies": { "arr-flatten": "^1.0.1", "arr-map": "^2.0.0", @@ -23596,8 +25141,9 @@ "node_modules/undertaker-registry": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", - "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA= sha512-UR1khWeAjugW3548EfQmL9Z7pGMlBgXteQpr1IZeZBtnkCJQJIJ1Scj0mb9wQaPvUZ9Q17XqW6TIaPchJkyfqw==", + "integrity": "sha512-UR1khWeAjugW3548EfQmL9Z7pGMlBgXteQpr1IZeZBtnkCJQJIJ1Scj0mb9wQaPvUZ9Q17XqW6TIaPchJkyfqw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.10" } @@ -23605,13 +25151,14 @@ "node_modules/undertaker/node_modules/fast-levenshtein": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz", - "integrity": "sha1-5qdUzI8V5YmHqpy9J69m/W9OWvk= sha512-Ia0sQNrMPXXkqVFt6w6M1n1oKo3NfKs+mvaV811Jwir7vAk9a6PVV9VPYf6X3BU97QiLEmuW3uXH9u87zDFfdw==", - "dev": true + "integrity": "sha512-Ia0sQNrMPXXkqVFt6w6M1n1oKo3NfKs+mvaV811Jwir7vAk9a6PVV9VPYf6X3BU97QiLEmuW3uXH9u87zDFfdw==", + "dev": true, + "license": "MIT" }, "node_modules/undici": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-7.9.0.tgz", - "integrity": "sha512-e696y354tf5cFZPXsF26Yg+5M63+5H3oE6Vtkh2oqbvsE2Oe7s2nIbcQh5lmG7Lp/eS29vJtTpw9+p6PX0qNSg==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.16.0.tgz", + "integrity": "sha512-QEg3HPMll0o3t2ourKwOeUAZ159Kn9mx5pnzHRQO8+Wixmh88YdZRiIwat0iNzNNXn0yoEtXJqFpyW7eM8BV7g==", "license": "MIT", "engines": { "node": ">=20.18.1" @@ -23628,6 +25175,7 @@ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", "dev": true, + "license": "MIT", "dependencies": { "arr-union": "^3.1.0", "get-value": "^2.0.6", @@ -23641,20 +25189,22 @@ "node_modules/union-value/node_modules/is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/unique-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", - "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.4.0.tgz", + "integrity": "sha512-V6QarSfeSgDipGA9EZdoIzu03ZDlOFkk+FbEP5cwgrZXN3iIkYR91IjU2EnM6rB835kGQsqHX8qncObTXV+6KA==", "dev": true, + "license": "MIT", "dependencies": { "json-stable-stringify-without-jsonify": "^1.0.1", - "through2-filter": "^3.0.0" + "through2-filter": "3.0.0" } }, "node_modules/universal-user-agent": { @@ -23668,6 +25218,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", "engines": { "node": ">= 10.0.0" } @@ -23684,8 +25235,9 @@ "node_modules/unset-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", + "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", "dev": true, + "license": "MIT", "dependencies": { "has-value": "^0.3.1", "isobject": "^3.0.0" @@ -23697,8 +25249,9 @@ "node_modules/unset-value/node_modules/has-value": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", + "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", "dev": true, + "license": "MIT", "dependencies": { "get-value": "^2.0.3", "has-values": "^0.1.4", @@ -23711,8 +25264,9 @@ "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", "dev": true, + "license": "MIT", "dependencies": { "isarray": "1.0.0" }, @@ -23723,17 +25277,26 @@ "node_modules/unset-value/node_modules/has-values": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E= sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", + "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, + "node_modules/unset-value/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, "node_modules/upath": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", "dev": true, + "license": "MIT", "engines": { "node": ">=4", "yarn": "*" @@ -23783,25 +25346,17 @@ "node_modules/urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", + "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", "deprecated": "Please see https://github.com/lydell/urix#deprecated", - "dev": true - }, - "node_modules/url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", "dev": true, - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } + "license": "MIT" }, "node_modules/use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -23811,6 +25366,7 @@ "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", "dev": true, + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "is-arguments": "^1.0.4", @@ -23822,7 +25378,8 @@ "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" }, "node_modules/uuid": { "version": "9.0.1", @@ -23832,6 +25389,7 @@ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" ], + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } @@ -23840,21 +25398,24 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/v8-inspect-profiler": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/v8-inspect-profiler/-/v8-inspect-profiler-0.1.1.tgz", "integrity": "sha512-GB3X9w7w+y9v4gq85olmf/bM3F2hj2DjjwvVpDXIziW5JBy8cDcIQ/K7m8xJVDWiFemxRX2Dxoo1k6JDvLMTig==", + "license": "MIT", "dependencies": { "chrome-remote-interface": "^0.33.0" } }, "node_modules/v8-to-istanbul": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", - "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", "dev": true, + "license": "ISC", "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", @@ -23868,13 +25429,15 @@ "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==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/v8flags": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", "dev": true, + "license": "MIT", "dependencies": { "homedir-polyfill": "^1.0.1" }, @@ -23887,16 +25450,29 @@ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, + "license": "Apache-2.0", "dependencies": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" } }, + "node_modules/validate-npm-package-license/node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, "node_modules/value-or-function": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", - "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM= sha512-jdBB2FrWvQC/pnPtIqcLsMaQgjhdb6B7tk1MMyTKapox+tQZbdRP4uLxu/JY0t7fbfDCUMnuelzEYv5GsxHhdg==", + "integrity": "sha512-jdBB2FrWvQC/pnPtIqcLsMaQgjhdb6B7tk1MMyTKapox+tQZbdRP4uLxu/JY0t7fbfDCUMnuelzEYv5GsxHhdg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.10" } @@ -23904,19 +25480,20 @@ "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/vinyl": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-3.0.0.tgz", - "integrity": "sha512-rC2VRfAVVCGEgjnxHUnpIVh3AGuk62rP3tqVrn+yab0YH7UULisC085+NYH+mnqf3Wx4SpSi1RQMwudL89N03g==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-3.0.1.tgz", + "integrity": "sha512-0QwqXteBNXgnLCdWdvPQBX6FXRHtIH3VhJPTd5Lwn28tJXc34YqSCWUmkOvtJHBmB3gGoPtrOKk3Ts8/kEZ9aA==", "dev": true, + "license": "MIT", "dependencies": { "clone": "^2.1.2", - "clone-stats": "^1.0.0", "remove-trailing-separator": "^1.1.0", "replace-ext": "^2.0.0", "teex": "^1.0.1" @@ -23930,6 +25507,7 @@ "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", "dev": true, + "license": "MIT", "dependencies": { "fs-mkdirp-stream": "^1.0.0", "glob-stream": "^6.1.0", @@ -23953,11 +25531,19 @@ "node": ">= 0.10" } }, + "node_modules/vinyl-fs/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, "node_modules/vinyl-fs/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -23973,25 +25559,45 @@ "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.10" } }, + "node_modules/vinyl-fs/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==", + "dev": true, + "license": "MIT" + }, + "node_modules/vinyl-fs/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/vinyl-fs/node_modules/through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, + "license": "MIT", "dependencies": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" } }, "node_modules/vinyl-fs/node_modules/vinyl": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.1.0.tgz", - "integrity": "sha1-Ah+cLPlR1rk5lDyJ617lrdT9kkw= sha512-M5D/ZRG7KC3ETrV7iA/GNF/lznml4dZ7ggwtYbqM/B+0INyNTjCdFhw4TqMq//PtNbPpceE7wOqKqK5YfUThPA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", + "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", "dev": true, + "license": "MIT", "dependencies": { "clone": "^2.1.1", "clone-buffer": "^1.0.0", @@ -24007,8 +25613,9 @@ "node_modules/vinyl-sourcemap": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", - "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY= sha512-NiibMgt6VJGJmyw7vtzhctDcfKch4e4n9TBeoWlirb7FMg9/1Ov9k+A5ZRAtywBpRPiyECvQRQllYM8dECegVA==", + "integrity": "sha512-NiibMgt6VJGJmyw7vtzhctDcfKch4e4n9TBeoWlirb7FMg9/1Ov9k+A5ZRAtywBpRPiyECvQRQllYM8dECegVA==", "dev": true, + "license": "MIT", "dependencies": { "append-buffer": "^1.0.2", "convert-source-map": "^1.5.0", @@ -24025,8 +25632,9 @@ "node_modules/vinyl-sourcemap/node_modules/normalize-path": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", "dev": true, + "license": "MIT", "dependencies": { "remove-trailing-separator": "^1.0.1" }, @@ -24039,15 +25647,17 @@ "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.10" } }, "node_modules/vinyl-sourcemap/node_modules/vinyl": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.1.0.tgz", - "integrity": "sha1-Ah+cLPlR1rk5lDyJ617lrdT9kkw= sha512-M5D/ZRG7KC3ETrV7iA/GNF/lznml4dZ7ggwtYbqM/B+0INyNTjCdFhw4TqMq//PtNbPpceE7wOqKqK5YfUThPA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", + "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", "dev": true, + "license": "MIT", "dependencies": { "clone": "^2.1.1", "clone-buffer": "^1.0.0", @@ -24063,12 +25673,14 @@ "node_modules/vscode-oniguruma": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", - "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==" + "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==", + "license": "MIT" }, "node_modules/vscode-regexpp": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/vscode-regexpp/-/vscode-regexpp-3.1.0.tgz", "integrity": "sha512-pqtN65VC1jRLawfluX4Y80MMG0DHJydWhe5ZwMHewZD6sys4LbU6lHwFAHxeuaVE6Y6+xZOtAw+9hvq7/0ejkg==", + "license": "MIT", "engines": { "node": ">=8" }, @@ -24083,16 +25695,18 @@ "license": "MIT" }, "node_modules/vscode-uri": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz", - "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==", - "dev": true + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.1.0.tgz", + "integrity": "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==", + "dev": true, + "license": "MIT" }, "node_modules/watchpack": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz", - "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==", + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.4.tgz", + "integrity": "sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==", "dev": true, + "license": "MIT", "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" @@ -24114,17 +25728,19 @@ "version": "0.20.8", "resolved": "https://registry.npmjs.org/web-tree-sitter/-/web-tree-sitter-0.20.8.tgz", "integrity": "sha512-weOVgZ3aAARgdnb220GqYuh7+rZU0Ka9k9yfKtGAzEYMa6GgiCzW9JjQRJyCJakvibQW+dfjJdihjInKuuCAUQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" }, "node_modules/webpack": { - "version": "5.100.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.100.0.tgz", - "integrity": "sha512-H8yBSBTk+BqxrINJnnRzaxU94SVP2bjd7WmA+PfCphoIdDpeQMJ77pq9/4I7xjLq38cB1bNKfzYPZu8pB3zKtg==", + "version": "5.103.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.103.0.tgz", + "integrity": "sha512-HU1JOuV1OavsZ+mfigY0j8d1TgQgbZ6M+J75zDkpEAwYeXjWSqrGJtgnPblJjd/mAyTNQ7ygw0MiKOn6etz8yw==", "dev": true, "license": "MIT", "dependencies": { @@ -24136,22 +25752,22 @@ "@webassemblyjs/wasm-parser": "^1.14.1", "acorn": "^8.15.0", "acorn-import-phases": "^1.0.3", - "browserslist": "^4.24.0", + "browserslist": "^4.26.3", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.17.2", + "enhanced-resolve": "^5.17.3", "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.2.11", "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", + "loader-runner": "^4.3.1", "mime-types": "^2.1.27", "neo-async": "^2.6.2", - "schema-utils": "^4.3.2", - "tapable": "^2.1.1", + "schema-utils": "^4.3.3", + "tapable": "^2.3.0", "terser-webpack-plugin": "^5.3.11", - "watchpack": "^2.4.1", + "watchpack": "^2.4.4", "webpack-sources": "^3.3.3" }, "bin": { @@ -24175,6 +25791,7 @@ "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz", "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==", "dev": true, + "license": "MIT", "dependencies": { "@discoveryjs/json-ext": "^0.5.0", "@webpack-cli/configtest": "^2.1.1", @@ -24220,6 +25837,7 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", "dev": true, + "license": "MIT", "engines": { "node": ">=14" } @@ -24229,6 +25847,7 @@ "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.13.0" } @@ -24238,6 +25857,7 @@ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", "dev": true, + "license": "MIT", "dependencies": { "resolve": "^1.20.0" }, @@ -24245,13 +25865,36 @@ "node": ">= 10.13.0" } }, + "node_modules/webpack-cli/node_modules/resolve": { + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/webpack-merge": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", - "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", + "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", "dev": true, + "license": "MIT", "dependencies": { "clone-deep": "^4.0.1", + "flat": "^5.0.2", "wildcard": "^2.0.0" }, "engines": { @@ -24273,6 +25916,7 @@ "resolved": "https://registry.npmjs.org/webpack-stream/-/webpack-stream-7.0.0.tgz", "integrity": "sha512-XoAQTHyCaYMo6TS7Atv1HYhtmBgKiVLONJbzLBl2V3eibXQ2IT/MCRM841RW/r3vToKD5ivrTJFWgd/ghoxoRg==", "dev": true, + "license": "MIT", "dependencies": { "fancy-log": "^1.3.3", "lodash.clone": "^4.3.2", @@ -24290,20 +25934,12 @@ "webpack": "^5.21.2" } }, - "node_modules/webpack-stream/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/webpack-stream/node_modules/replace-ext": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.10" } @@ -24313,6 +25949,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -24328,6 +25965,7 @@ "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", "dev": true, + "license": "MIT", "dependencies": { "clone": "^2.1.1", "clone-buffer": "^1.0.0", @@ -24345,6 +25983,7 @@ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -24358,10 +25997,34 @@ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, + "node_modules/webpack/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/webpack/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/whatwg-fetch": { "version": "3.6.20", "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", @@ -24371,7 +26034,8 @@ "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0= sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -24381,6 +26045,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -24437,12 +26102,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/which-builtin-type/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "license": "MIT" - }, "node_modules/which-collection": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", @@ -24462,10 +26121,11 @@ } }, "node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==", - "dev": true + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "dev": true, + "license": "ISC" }, "node_modules/which-typed-array": { "version": "1.1.19", @@ -24489,16 +26149,18 @@ } }, "node_modules/wildcard": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", - "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", - "dev": true + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "dev": true, + "license": "MIT" }, "node_modules/windows-foreground-love": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/windows-foreground-love/-/windows-foreground-love-0.5.0.tgz", "integrity": "sha512-yjBwmKEmQBDk3Z7yg/U9hizGWat8C6Pe4MQWl5bN6mvPU81Bt6HV2k/6mGlK3ETJLW1hCLhYx2wcGh+ykUUCyA==", "hasInstallScript": true, + "license": "MIT", "optional": true }, "node_modules/word-wrap": { @@ -24506,6 +26168,7 @@ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -24522,6 +26185,7 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -24540,6 +26204,7 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -24556,13 +26221,15 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/wrap-ansi-cjs/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -24576,13 +26243,15 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/wrap-ansi/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -24595,7 +26264,8 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" }, "node_modules/ws": { "version": "8.18.3", @@ -24618,17 +26288,34 @@ } } }, + "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/xml": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", "integrity": "sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/xml2js": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", "dev": true, + "license": "MIT", "dependencies": { "sax": ">=0.6.0", "xmlbuilder": "~11.0.0" @@ -24642,15 +26329,27 @@ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4.0" } }, + "node_modules/xmlbuilder": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", + "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0" + } + }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.4" } @@ -24660,21 +26359,23 @@ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, + "license": "ISC", "engines": { "node": ">=10" } }, "node_modules/yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", - "dev": true + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" }, "node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, + "license": "MIT", "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -24693,6 +26394,7 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, + "license": "ISC", "engines": { "node": ">=12" } @@ -24702,6 +26404,7 @@ "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", "dev": true, + "license": "MIT", "dependencies": { "camelcase": "^6.0.0", "decamelize": "^4.0.0", @@ -24717,6 +26420,7 @@ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -24725,13 +26429,15 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/yargs/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -24746,14 +26452,16 @@ "resolved": "https://registry.npmjs.org/yaserver/-/yaserver-0.4.0.tgz", "integrity": "sha512-98Vj4sgqB1fLcpf2wK7h3dFCaabISHU9CXZHaAx3QLkvTTCD31MzMcNbw5V5jZFBK7ffkFqfWig6B20KQt4wtA==", "dev": true, + "license": "MIT", "bin": { "yaserver": "bin/yaserver" } }, "node_modules/yauzl": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-3.1.1.tgz", - "integrity": "sha512-MPxA7oN5cvGV0wzfkeHKF2/+Q4TkMpHSWGRy/96I4Cozljmx0ph91+Muxh6HegEtDC4GftJ8qYDE51vghFiEYA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-3.2.0.tgz", + "integrity": "sha512-Ow9nuGZE+qp1u4JIPvg+uCiUr7xGQWdff7JQSk5VGYTAZMDe2q8lxJ10ygv10qmSj031Ty/6FNJpLO4o1Sgc+w==", + "license": "MIT", "dependencies": { "buffer-crc32": "~0.2.3", "pend": "~1.2.0" @@ -24763,18 +26471,20 @@ } }, "node_modules/yazl": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/yazl/-/yazl-2.4.3.tgz", - "integrity": "sha1-7CblzIfVYBud+EMtvdPNLlFzoHE= sha512-cIUrm3/81iF/BzuyORI7ppz1vGHAhA62JYzAFFC+rwJ2jQF1LcYxY9UXx4XyUXojkCnol0SvPuc+Toc7FO4W8g==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/yazl/-/yazl-2.5.1.tgz", + "integrity": "sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==", + "license": "MIT", "dependencies": { "buffer-crc32": "~0.2.3" } }, "node_modules/ylru": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ylru/-/ylru-1.2.1.tgz", - "integrity": "sha512-faQrqNMzcPCHGVC2aaOINk13K+aaBDUPjGWl0teOXywElLjyVAB6Oe2jj62jHYtwsU49jXhScYbvPENK+6zAvQ==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ylru/-/ylru-1.4.0.tgz", + "integrity": "sha512-2OQsPNEmBCvXuFlIni/a+Rn+R2pHW9INm0BxXJ4hVDA8TirqMj+J/Rp9ItLatT/5pZqWwefVrTQcHpixsxnVlA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4.0.0" } @@ -24784,6 +26494,7 @@ "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -24793,6 +26504,7 @@ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -24810,18 +26522,18 @@ } }, "node_modules/zod-to-json-schema": { - "version": "3.24.6", - "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.24.6.tgz", - "integrity": "sha512-h/z3PKvcTcTetyjl1fkj79MHNEjm+HpD6NXheWjzOekY7kV+lwDYnHw+ivHkijnCSMz1yJaWBD9vu/Fcmk+vEg==", + "version": "3.25.0", + "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.25.0.tgz", + "integrity": "sha512-HvWtU2UG41LALjajJrML6uQejQhNJx+JBO9IflpSja4R03iNWfKXrj6W2h7ljuLyc1nKS+9yDyL/9tD1U/yBnQ==", "license": "ISC", "peerDependencies": { - "zod": "^3.24.1" + "zod": "^3.25 || ^4" } }, "node_modules/zx": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/zx/-/zx-8.7.0.tgz", - "integrity": "sha512-pArftqj5JV/er8p+czFZwF+k6SbCldl7kcfCR+rIiDIh3gUsLB0F3Xh05diP8PzToZ39D/GWeFoVFimjHQkbAg==", + "version": "8.8.5", + "resolved": "https://registry.npmjs.org/zx/-/zx-8.8.5.tgz", + "integrity": "sha512-SNgDF5L0gfN7FwVOdEFguY3orU5AkfFZm9B5YSHog/UDHv+lvmd82ZAsOenOkQixigwH2+yyH198AwNdKhj+RA==", "dev": true, "license": "Apache-2.0", "bin": { diff --git a/package.json b/package.json index 26ed483be9c..bd92c19d1aa 100644 --- a/package.json +++ b/package.json @@ -134,8 +134,8 @@ "openai": "^4.96.0", "pdfjs-dist": "^5.4.394", "posthog-node": "^4.14.0", - "react": "^19.1.0", - "react-dom": "^19.1.0", + "react": "19.2.0", + "react-dom": "19.2.0", "react-tooltip": "^5.28.1", "tas-client-umd": "0.2.0", "undici": "^7.9.0", diff --git a/product.json b/product.json index e64597be3fd..1e2364e6201 100644 --- a/product.json +++ b/product.json @@ -1,14 +1,14 @@ { "nameShort": "CortexIDE", "nameLong": "CortexIDE", - "cortexVersion": "0.0.1", - "cortexRelease": "0001", + "cortexVersion": "0.0.2", + "cortexRelease": "0002", "applicationName": "cortexide", "dataFolderName": ".cortexide", "win32MutexName": "cortexide", "licenseName": "MIT", - "licenseUrl": "https://github.com/cortexide/cortexide/blob/main/LICENSE.txt", - "serverLicenseUrl": "https://github.com/cortexide/cortexide/blob/main/LICENSE.txt", + "licenseUrl": "https://github.com/opencortexide/cortexide/blob/main/LICENSE.txt", + "serverLicenseUrl": "https://github.com/opencortexide/cortexide/blob/main/LICENSE.txt", "serverGreeting": [], "serverLicense": [], "serverLicensePrompt": "", @@ -29,7 +29,8 @@ "darwinBundleIdentifier": "com.cortexide.code", "linuxIconName": "cortexide", "licenseFileName": "LICENSE.txt", - "reportIssueUrl": "https://github.com/cortexide/cortexide/issues/new", + "reportIssueUrl": "https://github.com/opencortexide/cortexide/issues/new", + "releaseNotesUrl": "https://github.com/opencortexide/cortexide/releases", "nodejsRepository": "https://nodejs.org", "urlProtocol": "cortexide", "extensionsGallery": { @@ -39,7 +40,7 @@ "builtInExtensions": [], "linkProtectionTrustedDomains": [ "https://opencortexide.com", - "https://github.com/cortexide/cortexide", + "https://github.com/opencortexide/cortexide", "https://ollama.com" ] , diff --git a/src/bootstrap-esm.ts b/src/bootstrap-esm.ts index 54681a2fa9c..63fee2a79a1 100644 --- a/src/bootstrap-esm.ts +++ b/src/bootstrap-esm.ts @@ -3,22 +3,23 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import * as fs from 'node:fs'; -import { register } from 'node:module'; -import { product, pkg } from './bootstrap-meta.js'; -import './bootstrap-node.js'; -import * as performance from './vs/base/common/performance.js'; -import { INLSConfiguration } from './vs/nls.js'; - -// Install a hook to module resolution to map 'fs' to 'original-fs' -if (process.env['ELECTRON_RUN_AS_NODE'] || process.versions['electron']) { +import * as fs from "node:fs"; +import * as Module from "node:module"; +import { register } from "node:module"; +import { product, pkg } from "./bootstrap-meta.js"; +import "./bootstrap-node.js"; +import * as performance from "./vs/base/common/performance.js"; +import { INLSConfiguration } from "./vs/nls.js"; + +// Install a hook to module resolution to map "fs" to "original-fs" +if (process.env["ELECTRON_RUN_AS_NODE"] || process.versions["electron"]) { const jsCode = ` export async function resolve(specifier, context, nextResolve) { - if (specifier === 'fs') { + if (specifier === "fs") { return { - format: 'builtin', + format: "builtin", shortCircuit: true, - url: 'node:original-fs' + url: "node:original-fs" }; } @@ -26,7 +27,22 @@ if (process.env['ELECTRON_RUN_AS_NODE'] || process.versions['electron']) { // Node.js default resolve if this is the last user-specified loader. return nextResolve(specifier, context); }`; - register(`data:text/javascript;base64,${Buffer.from(jsCode).toString('base64')}`, import.meta.url); + + // Try Module.register first (Node.js 20.6+), fallback to named import + // @ts-ignore - Module.register may not be available in all Node.js versions + if (Module.register) { + // @ts-ignore - Module.register compatibility check + Module.register( + `data:text/javascript;base64,${Buffer.from(jsCode).toString("base64")}`, + import.meta.url, + ); + } else { + // Fallback for environments where Module.register doesn't exist + register( + `data:text/javascript;base64,${Buffer.from(jsCode).toString("base64")}`, + import.meta.url, + ); + } } // Prepare globals that are needed for running @@ -36,7 +52,8 @@ globalThis._VSCODE_FILE_ROOT = import.meta.dirname; //#region NLS helpers -let setupNLSResult: Promise | undefined = undefined; +let setupNLSResult: Promise | undefined = + undefined; function setupNLS(): Promise { if (!setupNLSResult) { @@ -47,14 +64,14 @@ function setupNLS(): Promise { } async function doSetupNLS(): Promise { - performance.mark('code/willLoadNls'); + performance.mark("code/willLoadNls"); let nlsConfig: INLSConfiguration | undefined = undefined; let messagesFile: string | undefined; - if (process.env['VSCODE_NLS_CONFIG']) { + if (process.env["VSCODE_NLS_CONFIG"]) { try { - nlsConfig = JSON.parse(process.env['VSCODE_NLS_CONFIG']); + nlsConfig = JSON.parse(process.env["VSCODE_NLS_CONFIG"]); if (nlsConfig?.languagePack?.messagesFile) { messagesFile = nlsConfig.languagePack.messagesFile; } else if (nlsConfig?.defaultMessagesFile) { @@ -68,37 +85,51 @@ async function doSetupNLS(): Promise { } if ( - process.env['VSCODE_DEV'] || // no NLS support in dev mode - !messagesFile // no NLS messages file + process.env["VSCODE_DEV"] || // no NLS support in dev mode + !messagesFile // no NLS messages file ) { return undefined; } try { - globalThis._VSCODE_NLS_MESSAGES = JSON.parse((await fs.promises.readFile(messagesFile)).toString()); + globalThis._VSCODE_NLS_MESSAGES = JSON.parse( + (await fs.promises.readFile(messagesFile)).toString(), + ); } catch (error) { console.error(`Error reading NLS messages file ${messagesFile}: ${error}`); // Mark as corrupt: this will re-create the language pack cache next startup if (nlsConfig?.languagePack?.corruptMarkerFile) { try { - await fs.promises.writeFile(nlsConfig.languagePack.corruptMarkerFile, 'corrupted'); + await fs.promises.writeFile( + nlsConfig.languagePack.corruptMarkerFile, + "corrupted", + ); } catch (error) { console.error(`Error writing corrupted NLS marker file: ${error}`); } } // Fallback to the default message file to ensure english translation at least - if (nlsConfig?.defaultMessagesFile && nlsConfig.defaultMessagesFile !== messagesFile) { + if ( + nlsConfig?.defaultMessagesFile && + nlsConfig.defaultMessagesFile !== messagesFile + ) { try { - globalThis._VSCODE_NLS_MESSAGES = JSON.parse((await fs.promises.readFile(nlsConfig.defaultMessagesFile)).toString()); + globalThis._VSCODE_NLS_MESSAGES = JSON.parse( + ( + await fs.promises.readFile(nlsConfig.defaultMessagesFile) + ).toString(), + ); } catch (error) { - console.error(`Error reading default NLS messages file ${nlsConfig.defaultMessagesFile}: ${error}`); + console.error( + `Error reading default NLS messages file ${nlsConfig.defaultMessagesFile}: ${error}`, + ); } } } - performance.mark('code/didLoadNls'); + performance.mark("code/didLoadNls"); return nlsConfig; } @@ -106,7 +137,6 @@ async function doSetupNLS(): Promise { //#endregion export async function bootstrapESM(): Promise { - // NLS await setupNLS(); } diff --git a/src/main.ts b/src/main.ts index 7b7e1da509e..9732b38fc3f 100644 --- a/src/main.ts +++ b/src/main.ts @@ -9,7 +9,7 @@ import * as os from 'node:os'; import { performance } from 'node:perf_hooks'; import { configurePortable } from './bootstrap-node.js'; import { bootstrapESM } from './bootstrap-esm.js'; -import { app, protocol, crashReporter, Menu, contentTracing } from 'electron'; +import electron from 'electron'; import minimist from 'minimist'; import { product } from './bootstrap-meta.js'; import { parse } from './vs/base/common/jsonc.js'; @@ -20,6 +20,8 @@ import { getUNCHost, addUNCHostToAllowlist } from './vs/base/node/unc.js'; import { INLSConfiguration } from './vs/nls.js'; import { NativeParsedArgs } from './vs/platform/environment/common/argv.js'; +const { app, protocol, crashReporter, Menu, contentTracing } = electron; + perf.mark('code/didStartMain'); perf.mark('code/willLoadMainBundle', { diff --git a/src/out/vs/workbench/contrib/cortexide/browser/react/out/chunk-6FX43ENS.js b/src/out/vs/workbench/contrib/cortexide/browser/react/out/chunk-6FX43ENS.js new file mode 100644 index 00000000000..13ac3184064 --- /dev/null +++ b/src/out/vs/workbench/contrib/cortexide/browser/react/out/chunk-6FX43ENS.js @@ -0,0 +1,26 @@ +// #style-inject:#style-inject +function styleInject(css, { insertAt } = {}) { + if (!css || typeof document === "undefined") return; + const head = document.head || document.getElementsByTagName("head")[0]; + const style = document.createElement("style"); + style.type = "text/css"; + if (insertAt === "top") { + if (head.firstChild) { + head.insertBefore(style, head.firstChild); + } else { + head.appendChild(style); + } + } else { + head.appendChild(style); + } + if (style.styleSheet) { + style.styleSheet.cssText = css; + } else { + style.appendChild(document.createTextNode(css)); + } +} + +// src2/styles.css +styleInject('.void-scope {\n}\n.void-scope *,\n.void-scope ::before,\n.void-scope ::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n.void-scope ::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n.void-scope *,\n.void-scope ::before,\n.void-scope ::after {\n box-sizing: border-box;\n border-width: 0;\n border-style: solid;\n border-color: #e5e7eb;\n}\n.void-scope ::before,\n.void-scope ::after {\n --tw-content: "";\n}\n.void-scope html,\n.void-scope :host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n font-family:\n ui-sans-serif,\n system-ui,\n sans-serif,\n "Apple Color Emoji",\n "Segoe UI Emoji",\n "Segoe UI Symbol",\n "Noto Color Emoji";\n font-feature-settings: normal;\n font-variation-settings: normal;\n -webkit-tap-highlight-color: transparent;\n}\n.void-scope body {\n margin: 0;\n line-height: inherit;\n}\n.void-scope hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n}\n.void-scope abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\n.void-scope h1,\n.void-scope h2,\n.void-scope h3,\n.void-scope h4,\n.void-scope h5,\n.void-scope h6 {\n font-size: inherit;\n font-weight: inherit;\n}\n.void-scope a {\n color: inherit;\n text-decoration: inherit;\n}\n.void-scope b,\n.void-scope strong {\n font-weight: bolder;\n}\n.void-scope code,\n.void-scope kbd,\n.void-scope samp,\n.void-scope pre {\n font-family:\n ui-monospace,\n SFMono-Regular,\n Menlo,\n Monaco,\n Consolas,\n "Liberation Mono",\n "Courier New",\n monospace;\n font-feature-settings: normal;\n font-variation-settings: normal;\n font-size: 1em;\n}\n.void-scope small {\n font-size: 80%;\n}\n.void-scope sub,\n.void-scope sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n.void-scope sub {\n bottom: -0.25em;\n}\n.void-scope sup {\n top: -0.5em;\n}\n.void-scope table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n}\n.void-scope button,\n.void-scope input,\n.void-scope optgroup,\n.void-scope select,\n.void-scope textarea {\n font-family: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n font-size: 100%;\n font-weight: inherit;\n line-height: inherit;\n letter-spacing: inherit;\n color: inherit;\n margin: 0;\n padding: 0;\n}\n.void-scope button,\n.void-scope select {\n text-transform: none;\n}\n.void-scope button,\n.void-scope input:where([type=button]),\n.void-scope input:where([type=reset]),\n.void-scope input:where([type=submit]) {\n -webkit-appearance: button;\n background-color: transparent;\n background-image: none;\n}\n.void-scope :-moz-focusring {\n outline: auto;\n}\n.void-scope :-moz-ui-invalid {\n box-shadow: none;\n}\n.void-scope progress {\n vertical-align: baseline;\n}\n.void-scope ::-webkit-inner-spin-button,\n.void-scope ::-webkit-outer-spin-button {\n height: auto;\n}\n.void-scope [type=search] {\n -webkit-appearance: textfield;\n outline-offset: -2px;\n}\n.void-scope ::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n.void-scope ::-webkit-file-upload-button {\n -webkit-appearance: button;\n font: inherit;\n}\n.void-scope summary {\n display: list-item;\n}\n.void-scope blockquote,\n.void-scope dl,\n.void-scope dd,\n.void-scope h1,\n.void-scope h2,\n.void-scope h3,\n.void-scope h4,\n.void-scope h5,\n.void-scope h6,\n.void-scope hr,\n.void-scope figure,\n.void-scope p,\n.void-scope pre {\n margin: 0;\n}\n.void-scope fieldset {\n margin: 0;\n padding: 0;\n}\n.void-scope legend {\n padding: 0;\n}\n.void-scope ol,\n.void-scope ul,\n.void-scope menu {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n.void-scope dialog {\n padding: 0;\n}\n.void-scope textarea {\n resize: vertical;\n}\n.void-scope input::-moz-placeholder,\n.void-scope textarea::-moz-placeholder {\n opacity: 1;\n color: #9ca3af;\n}\n.void-scope input::placeholder,\n.void-scope textarea::placeholder {\n opacity: 1;\n color: #9ca3af;\n}\n.void-scope button,\n.void-scope [role=button] {\n cursor: pointer;\n}\n.void-scope :disabled {\n cursor: default;\n}\n.void-scope img,\n.void-scope svg,\n.void-scope video,\n.void-scope canvas,\n.void-scope audio,\n.void-scope iframe,\n.void-scope embed,\n.void-scope object {\n display: block;\n vertical-align: middle;\n}\n.void-scope img,\n.void-scope video {\n max-width: 100%;\n height: auto;\n}\n.void-scope [hidden]:where(:not([hidden=until-found])) {\n display: none;\n}\n.void-scope .void-prose {\n color: var(--tw-prose-body);\n max-width: 65ch;\n}\n.void-scope .void-prose :where(p):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 1.25em;\n margin-bottom: 1.25em;\n}\n.void-scope .void-prose :where([class~=lead]):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n color: var(--tw-prose-lead);\n font-size: 1.25em;\n line-height: 1.6;\n margin-top: 1.2em;\n margin-bottom: 1.2em;\n}\n.void-scope .void-prose :where(a):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n color: var(--tw-prose-links);\n text-decoration: underline;\n font-weight: 500;\n}\n.void-scope .void-prose :where(strong):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n color: var(--tw-prose-bold);\n font-weight: 600;\n}\n.void-scope .void-prose :where(a strong):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n color: inherit;\n}\n.void-scope .void-prose :where(blockquote strong):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n color: inherit;\n}\n.void-scope .void-prose :where(thead th strong):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n color: inherit;\n}\n.void-scope .void-prose :where(ol):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n list-style-type: decimal;\n margin-top: 1.25em;\n margin-bottom: 1.25em;\n padding-inline-start: 1.625em;\n}\n.void-scope .void-prose :where(ol[type=A]):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n list-style-type: upper-alpha;\n}\n.void-scope .void-prose :where(ol[type=a]):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n list-style-type: lower-alpha;\n}\n.void-scope .void-prose :where(ol[type=A s]):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n list-style-type: upper-alpha;\n}\n.void-scope .void-prose :where(ol[type=a s]):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n list-style-type: lower-alpha;\n}\n.void-scope .void-prose :where(ol[type=I]):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n list-style-type: upper-roman;\n}\n.void-scope .void-prose :where(ol[type=i]):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n list-style-type: lower-roman;\n}\n.void-scope .void-prose :where(ol[type=I s]):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n list-style-type: upper-roman;\n}\n.void-scope .void-prose :where(ol[type=i s]):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n list-style-type: lower-roman;\n}\n.void-scope .void-prose :where(ol[type="1"]):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n list-style-type: decimal;\n}\n.void-scope .void-prose :where(ul):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n list-style-type: disc;\n margin-top: 1.25em;\n margin-bottom: 1.25em;\n padding-inline-start: 1.625em;\n}\n.void-scope .void-prose :where(ol > li):not(:where([class~=void-not-prose], [class~=void-not-prose] *))::marker {\n font-weight: 400;\n color: var(--tw-prose-counters);\n}\n.void-scope .void-prose :where(ul > li):not(:where([class~=void-not-prose], [class~=void-not-prose] *))::marker {\n color: var(--tw-prose-bullets);\n}\n.void-scope .void-prose :where(dt):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n color: var(--tw-prose-headings);\n font-weight: 600;\n margin-top: 1.25em;\n}\n.void-scope .void-prose :where(hr):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n border-color: var(--tw-prose-hr);\n border-top-width: 1px;\n margin-top: 3em;\n margin-bottom: 3em;\n}\n.void-scope .void-prose :where(blockquote):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n font-weight: 500;\n font-style: italic;\n color: var(--tw-prose-quotes);\n border-inline-start-width: 0.25rem;\n border-inline-start-color: var(--tw-prose-quote-borders);\n quotes: "\\201c""\\201d""\\2018""\\2019";\n margin-top: 1.6em;\n margin-bottom: 1.6em;\n padding-inline-start: 1em;\n}\n.void-scope .void-prose :where(blockquote p:first-of-type):not(:where([class~=void-not-prose], [class~=void-not-prose] *))::before {\n content: open-quote;\n}\n.void-scope .void-prose :where(blockquote p:last-of-type):not(:where([class~=void-not-prose], [class~=void-not-prose] *))::after {\n content: close-quote;\n}\n.void-scope .void-prose :where(h1):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n color: var(--tw-prose-headings);\n font-weight: 800;\n font-size: 2.25em;\n margin-top: 0;\n margin-bottom: 0.8888889em;\n line-height: 1.1111111;\n}\n.void-scope .void-prose :where(h1 strong):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n font-weight: 900;\n color: inherit;\n}\n.void-scope .void-prose :where(h2):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n color: var(--tw-prose-headings);\n font-weight: 700;\n font-size: 1.5em;\n margin-top: 2em;\n margin-bottom: 1em;\n line-height: 1.3333333;\n}\n.void-scope .void-prose :where(h2 strong):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n font-weight: 800;\n color: inherit;\n}\n.void-scope .void-prose :where(h3):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n color: var(--tw-prose-headings);\n font-weight: 600;\n font-size: 1.25em;\n margin-top: 1.6em;\n margin-bottom: 0.6em;\n line-height: 1.6;\n}\n.void-scope .void-prose :where(h3 strong):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n font-weight: 700;\n color: inherit;\n}\n.void-scope .void-prose :where(h4):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n color: var(--tw-prose-headings);\n font-weight: 600;\n margin-top: 1.5em;\n margin-bottom: 0.5em;\n line-height: 1.5;\n}\n.void-scope .void-prose :where(h4 strong):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n font-weight: 700;\n color: inherit;\n}\n.void-scope .void-prose :where(img):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 2em;\n margin-bottom: 2em;\n}\n.void-scope .void-prose :where(picture):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n display: block;\n margin-top: 2em;\n margin-bottom: 2em;\n}\n.void-scope .void-prose :where(video):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 2em;\n margin-bottom: 2em;\n}\n.void-scope .void-prose :where(kbd):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n font-weight: 500;\n font-family: inherit;\n color: var(--tw-prose-kbd);\n box-shadow: 0 0 0 1px var(--tw-prose-kbd-shadows), 0 3px 0 var(--tw-prose-kbd-shadows);\n font-size: 0.875em;\n border-radius: 0.3125rem;\n padding-top: 0.1875em;\n padding-inline-end: 0.375em;\n padding-bottom: 0.1875em;\n padding-inline-start: 0.375em;\n}\n.void-scope .void-prose :where(code):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n color: var(--tw-prose-code);\n font-weight: 600;\n font-size: 0.875em;\n}\n.void-scope .void-prose :where(code):not(:where([class~=void-not-prose], [class~=void-not-prose] *))::before {\n content: "`";\n}\n.void-scope .void-prose :where(code):not(:where([class~=void-not-prose], [class~=void-not-prose] *))::after {\n content: "`";\n}\n.void-scope .void-prose :where(a code):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n color: inherit;\n}\n.void-scope .void-prose :where(h1 code):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n color: inherit;\n}\n.void-scope .void-prose :where(h2 code):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n color: inherit;\n font-size: 0.875em;\n}\n.void-scope .void-prose :where(h3 code):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n color: inherit;\n font-size: 0.9em;\n}\n.void-scope .void-prose :where(h4 code):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n color: inherit;\n}\n.void-scope .void-prose :where(blockquote code):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n color: inherit;\n}\n.void-scope .void-prose :where(thead th code):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n color: inherit;\n}\n.void-scope .void-prose :where(pre):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n color: var(--tw-prose-pre-code);\n background-color: var(--tw-prose-pre-bg);\n overflow-x: auto;\n font-weight: 400;\n font-size: 0.875em;\n line-height: 1.7142857;\n margin-top: 1.7142857em;\n margin-bottom: 1.7142857em;\n border-radius: 0.375rem;\n padding-top: 0.8571429em;\n padding-inline-end: 1.1428571em;\n padding-bottom: 0.8571429em;\n padding-inline-start: 1.1428571em;\n}\n.void-scope .void-prose :where(pre code):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n background-color: transparent;\n border-width: 0;\n border-radius: 0;\n padding: 0;\n font-weight: inherit;\n color: inherit;\n font-size: inherit;\n font-family: inherit;\n line-height: inherit;\n}\n.void-scope .void-prose :where(pre code):not(:where([class~=void-not-prose], [class~=void-not-prose] *))::before {\n content: none;\n}\n.void-scope .void-prose :where(pre code):not(:where([class~=void-not-prose], [class~=void-not-prose] *))::after {\n content: none;\n}\n.void-scope .void-prose :where(table):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n width: 100%;\n table-layout: auto;\n margin-top: 2em;\n margin-bottom: 2em;\n font-size: 0.875em;\n line-height: 1.7142857;\n}\n.void-scope .void-prose :where(thead):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n border-bottom-width: 1px;\n border-bottom-color: var(--tw-prose-th-borders);\n}\n.void-scope .void-prose :where(thead th):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n color: var(--tw-prose-headings);\n font-weight: 600;\n vertical-align: bottom;\n padding-inline-end: 0.5714286em;\n padding-bottom: 0.5714286em;\n padding-inline-start: 0.5714286em;\n}\n.void-scope .void-prose :where(tbody tr):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n border-bottom-width: 1px;\n border-bottom-color: var(--tw-prose-td-borders);\n}\n.void-scope .void-prose :where(tbody tr:last-child):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n border-bottom-width: 0;\n}\n.void-scope .void-prose :where(tbody td):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n vertical-align: baseline;\n}\n.void-scope .void-prose :where(tfoot):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n border-top-width: 1px;\n border-top-color: var(--tw-prose-th-borders);\n}\n.void-scope .void-prose :where(tfoot td):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n vertical-align: top;\n}\n.void-scope .void-prose :where(th, td):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n text-align: start;\n}\n.void-scope .void-prose :where(figure > *):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 0;\n margin-bottom: 0;\n}\n.void-scope .void-prose :where(figcaption):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n color: var(--tw-prose-captions);\n font-size: 0.875em;\n line-height: 1.4285714;\n margin-top: 0.8571429em;\n}\n.void-scope .void-prose {\n --tw-prose-body: var(--void-fg-1);\n --tw-prose-headings: var(--void-fg-1);\n --tw-prose-lead: var(--void-fg-2);\n --tw-prose-links: var(--void-link-color);\n --tw-prose-bold: var(--void-fg-1);\n --tw-prose-counters: var(--void-fg-3);\n --tw-prose-bullets: var(--void-fg-3);\n --tw-prose-hr: var(--void-border-4);\n --tw-prose-quotes: var(--void-fg-1);\n --tw-prose-quote-borders: var(--void-border-2);\n --tw-prose-captions: var(--void-fg-3);\n --tw-prose-kbd: #111827;\n --tw-prose-kbd-shadows: rgb(17 24 39 / 10%);\n --tw-prose-code: var(--void-fg-0);\n --tw-prose-pre-code: var(--void-fg-0);\n --tw-prose-pre-bg: var(--void-bg-1);\n --tw-prose-th-borders: var(--void-border-4);\n --tw-prose-td-borders: var(--void-border-4);\n --tw-prose-invert-body: #d1d5db;\n --tw-prose-invert-headings: #fff;\n --tw-prose-invert-lead: #9ca3af;\n --tw-prose-invert-links: #fff;\n --tw-prose-invert-bold: #fff;\n --tw-prose-invert-counters: #9ca3af;\n --tw-prose-invert-bullets: #4b5563;\n --tw-prose-invert-hr: #374151;\n --tw-prose-invert-quotes: #f3f4f6;\n --tw-prose-invert-quote-borders: #374151;\n --tw-prose-invert-captions: #9ca3af;\n --tw-prose-invert-kbd: #fff;\n --tw-prose-invert-kbd-shadows: rgb(255 255 255 / 10%);\n --tw-prose-invert-code: #fff;\n --tw-prose-invert-pre-code: #d1d5db;\n --tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);\n --tw-prose-invert-th-borders: #4b5563;\n --tw-prose-invert-td-borders: #374151;\n font-size: 1rem;\n line-height: 1.75;\n}\n.void-scope .void-prose :where(picture > img):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 0;\n margin-bottom: 0;\n}\n.void-scope .void-prose :where(li):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 0.5em;\n margin-bottom: 0.5em;\n}\n.void-scope .void-prose :where(ol > li):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n padding-inline-start: 0.375em;\n}\n.void-scope .void-prose :where(ul > li):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n padding-inline-start: 0.375em;\n}\n.void-scope .void-prose :where(.void-prose > ul > li p):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 0.75em;\n margin-bottom: 0.75em;\n}\n.void-scope .void-prose :where(.void-prose > ul > li > p:first-child):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 1.25em;\n}\n.void-scope .void-prose :where(.void-prose > ul > li > p:last-child):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-bottom: 1.25em;\n}\n.void-scope .void-prose :where(.void-prose > ol > li > p:first-child):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 1.25em;\n}\n.void-scope .void-prose :where(.void-prose > ol > li > p:last-child):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-bottom: 1.25em;\n}\n.void-scope .void-prose :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 0.75em;\n margin-bottom: 0.75em;\n}\n.void-scope .void-prose :where(dl):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 1.25em;\n margin-bottom: 1.25em;\n}\n.void-scope .void-prose :where(dd):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 0.5em;\n padding-inline-start: 1.625em;\n}\n.void-scope .void-prose :where(hr + *):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 0;\n}\n.void-scope .void-prose :where(h2 + *):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 0;\n}\n.void-scope .void-prose :where(h3 + *):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 0;\n}\n.void-scope .void-prose :where(h4 + *):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 0;\n}\n.void-scope .void-prose :where(thead th:first-child):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n padding-inline-start: 0;\n}\n.void-scope .void-prose :where(thead th:last-child):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n padding-inline-end: 0;\n}\n.void-scope .void-prose :where(tbody td, tfoot td):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n padding-top: 0.5714286em;\n padding-inline-end: 0.5714286em;\n padding-bottom: 0.5714286em;\n padding-inline-start: 0.5714286em;\n}\n.void-scope .void-prose :where(tbody td:first-child, tfoot td:first-child):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n padding-inline-start: 0;\n}\n.void-scope .void-prose :where(tbody td:last-child, tfoot td:last-child):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n padding-inline-end: 0;\n}\n.void-scope .void-prose :where(figure):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 2em;\n margin-bottom: 2em;\n}\n.void-scope .void-prose :where(.void-prose > :first-child):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 0;\n}\n.void-scope .void-prose :where(.void-prose > :last-child):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-bottom: 0;\n}\n.void-scope .void-prose-sm {\n font-size: 0.875rem;\n line-height: 1.7142857;\n}\n.void-scope .void-prose-sm :where(p):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 1.1428571em;\n margin-bottom: 1.1428571em;\n}\n.void-scope .void-prose-sm :where([class~=lead]):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n font-size: 1.2857143em;\n line-height: 1.5555556;\n margin-top: 0.8888889em;\n margin-bottom: 0.8888889em;\n}\n.void-scope .void-prose-sm :where(blockquote):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 1.3333333em;\n margin-bottom: 1.3333333em;\n padding-inline-start: 1.1111111em;\n}\n.void-scope .void-prose-sm :where(h1):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n font-size: 2.1428571em;\n margin-top: 0;\n margin-bottom: 0.8em;\n line-height: 1.2;\n}\n.void-scope .void-prose-sm :where(h2):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n font-size: 1.4285714em;\n margin-top: 1.6em;\n margin-bottom: 0.8em;\n line-height: 1.4;\n}\n.void-scope .void-prose-sm :where(h3):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n font-size: 1.2857143em;\n margin-top: 1.5555556em;\n margin-bottom: 0.4444444em;\n line-height: 1.5555556;\n}\n.void-scope .void-prose-sm :where(h4):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 1.4285714em;\n margin-bottom: 0.5714286em;\n line-height: 1.4285714;\n}\n.void-scope .void-prose-sm :where(img):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 1.7142857em;\n margin-bottom: 1.7142857em;\n}\n.void-scope .void-prose-sm :where(picture):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 1.7142857em;\n margin-bottom: 1.7142857em;\n}\n.void-scope .void-prose-sm :where(picture > img):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 0;\n margin-bottom: 0;\n}\n.void-scope .void-prose-sm :where(video):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 1.7142857em;\n margin-bottom: 1.7142857em;\n}\n.void-scope .void-prose-sm :where(kbd):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n font-size: 0.8571429em;\n border-radius: 0.3125rem;\n padding-top: 0.1428571em;\n padding-inline-end: 0.3571429em;\n padding-bottom: 0.1428571em;\n padding-inline-start: 0.3571429em;\n}\n.void-scope .void-prose-sm :where(code):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n font-size: 0.8571429em;\n}\n.void-scope .void-prose-sm :where(h2 code):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n font-size: 0.9em;\n}\n.void-scope .void-prose-sm :where(h3 code):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n font-size: 0.8888889em;\n}\n.void-scope .void-prose-sm :where(pre):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n font-size: 0.8571429em;\n line-height: 1.6666667;\n margin-top: 1.6666667em;\n margin-bottom: 1.6666667em;\n border-radius: 0.25rem;\n padding-top: 0.6666667em;\n padding-inline-end: 1em;\n padding-bottom: 0.6666667em;\n padding-inline-start: 1em;\n}\n.void-scope .void-prose-sm :where(ol):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 1.1428571em;\n margin-bottom: 1.1428571em;\n padding-inline-start: 1.5714286em;\n}\n.void-scope .void-prose-sm :where(ul):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 1.1428571em;\n margin-bottom: 1.1428571em;\n padding-inline-start: 1.5714286em;\n}\n.void-scope .void-prose-sm :where(li):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 0.2857143em;\n margin-bottom: 0.2857143em;\n}\n.void-scope .void-prose-sm :where(ol > li):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n padding-inline-start: 0.4285714em;\n}\n.void-scope .void-prose-sm :where(ul > li):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n padding-inline-start: 0.4285714em;\n}\n.void-scope .void-prose-sm :where(.void-prose-sm > ul > li p):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 0.5714286em;\n margin-bottom: 0.5714286em;\n}\n.void-scope .void-prose-sm :where(.void-prose-sm > ul > li > p:first-child):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 1.1428571em;\n}\n.void-scope .void-prose-sm :where(.void-prose-sm > ul > li > p:last-child):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-bottom: 1.1428571em;\n}\n.void-scope .void-prose-sm :where(.void-prose-sm > ol > li > p:first-child):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 1.1428571em;\n}\n.void-scope .void-prose-sm :where(.void-prose-sm > ol > li > p:last-child):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-bottom: 1.1428571em;\n}\n.void-scope .void-prose-sm :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 0.5714286em;\n margin-bottom: 0.5714286em;\n}\n.void-scope .void-prose-sm :where(dl):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 1.1428571em;\n margin-bottom: 1.1428571em;\n}\n.void-scope .void-prose-sm :where(dt):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 1.1428571em;\n}\n.void-scope .void-prose-sm :where(dd):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 0.2857143em;\n padding-inline-start: 1.5714286em;\n}\n.void-scope .void-prose-sm :where(hr):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 2.8571429em;\n margin-bottom: 2.8571429em;\n}\n.void-scope .void-prose-sm :where(hr + *):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 0;\n}\n.void-scope .void-prose-sm :where(h2 + *):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 0;\n}\n.void-scope .void-prose-sm :where(h3 + *):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 0;\n}\n.void-scope .void-prose-sm :where(h4 + *):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 0;\n}\n.void-scope .void-prose-sm :where(table):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n font-size: 0.8571429em;\n line-height: 1.5;\n}\n.void-scope .void-prose-sm :where(thead th):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n padding-inline-end: 1em;\n padding-bottom: 0.6666667em;\n padding-inline-start: 1em;\n}\n.void-scope .void-prose-sm :where(thead th:first-child):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n padding-inline-start: 0;\n}\n.void-scope .void-prose-sm :where(thead th:last-child):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n padding-inline-end: 0;\n}\n.void-scope .void-prose-sm :where(tbody td, tfoot td):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n padding-top: 0.6666667em;\n padding-inline-end: 1em;\n padding-bottom: 0.6666667em;\n padding-inline-start: 1em;\n}\n.void-scope .void-prose-sm :where(tbody td:first-child, tfoot td:first-child):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n padding-inline-start: 0;\n}\n.void-scope .void-prose-sm :where(tbody td:last-child, tfoot td:last-child):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n padding-inline-end: 0;\n}\n.void-scope .void-prose-sm :where(figure):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 1.7142857em;\n margin-bottom: 1.7142857em;\n}\n.void-scope .void-prose-sm :where(figure > *):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 0;\n margin-bottom: 0;\n}\n.void-scope .void-prose-sm :where(figcaption):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n font-size: 0.8571429em;\n line-height: 1.3333333;\n margin-top: 0.6666667em;\n}\n.void-scope .void-prose-sm :where(.void-prose-sm > :first-child):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 0;\n}\n.void-scope .void-prose-sm :where(.void-prose-sm > :last-child):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-bottom: 0;\n}\n.void-scope .void-pointer-events-none {\n pointer-events: none;\n}\n.void-scope .void-pointer-events-auto {\n pointer-events: auto;\n}\n.void-scope .void-fixed {\n position: fixed;\n}\n.void-scope .void-absolute {\n position: absolute;\n}\n.void-scope .void-relative {\n position: relative;\n}\n.void-scope .void-sticky {\n position: sticky;\n}\n.void-scope .void-inset-0 {\n inset: 0px;\n}\n.void-scope .-void-left-\\[999999px\\] {\n left: -999999px;\n}\n.void-scope .-void-right-1 {\n right: -0.25rem;\n}\n.void-scope .-void-top-1 {\n top: -0.25rem;\n}\n.void-scope .-void-top-\\[999999px\\] {\n top: -999999px;\n}\n.void-scope .void-bottom-0 {\n bottom: 0px;\n}\n.void-scope .void-bottom-16 {\n bottom: 4rem;\n}\n.void-scope .void-bottom-4 {\n bottom: 1rem;\n}\n.void-scope .void-left-0 {\n left: 0px;\n}\n.void-scope .void-left-1\\/2 {\n left: 50%;\n}\n.void-scope .void-left-4 {\n left: 1rem;\n}\n.void-scope .void-right-0 {\n right: 0px;\n}\n.void-scope .void-right-1 {\n right: 0.25rem;\n}\n.void-scope .void-right-4 {\n right: 1rem;\n}\n.void-scope .void-top-0 {\n top: 0px;\n}\n.void-scope .void-top-1 {\n top: 0.25rem;\n}\n.void-scope .void-top-1\\/2 {\n top: 50%;\n}\n.void-scope .void-top-4 {\n top: 1rem;\n}\n.void-scope .void-z-0 {\n z-index: 0;\n}\n.void-scope .void-z-10 {\n z-index: 10;\n}\n.void-scope .void-z-\\[1000\\] {\n z-index: 1000;\n}\n.void-scope .void-z-\\[100\\] {\n z-index: 100;\n}\n.void-scope .void-z-\\[9999999\\] {\n z-index: 9999999;\n}\n.void-scope .void-z-\\[99999\\] {\n z-index: 99999;\n}\n.void-scope .void-z-\\[9999\\] {\n z-index: 9999;\n}\n.void-scope .void-mx-0\\.5 {\n margin-left: 0.125rem;\n margin-right: 0.125rem;\n}\n.void-scope .void-mx-1 {\n margin-left: 0.25rem;\n margin-right: 0.25rem;\n}\n.void-scope .void-mx-2 {\n margin-left: 0.5rem;\n margin-right: 0.5rem;\n}\n.void-scope .void-mx-3 {\n margin-left: 0.75rem;\n margin-right: 0.75rem;\n}\n.void-scope .void-mx-auto {\n margin-left: auto;\n margin-right: auto;\n}\n.void-scope .void-my-1 {\n margin-top: 0.25rem;\n margin-bottom: 0.25rem;\n}\n.void-scope .void-my-2 {\n margin-top: 0.5rem;\n margin-bottom: 0.5rem;\n}\n.void-scope .void-my-3 {\n margin-top: 0.75rem;\n margin-bottom: 0.75rem;\n}\n.void-scope .void-my-4 {\n margin-top: 1rem;\n margin-bottom: 1rem;\n}\n.void-scope .void-my-auto {\n margin-top: auto;\n margin-bottom: auto;\n}\n.void-scope .void-mb-1 {\n margin-bottom: 0.25rem;\n}\n.void-scope .void-mb-2 {\n margin-bottom: 0.5rem;\n}\n.void-scope .void-mb-3 {\n margin-bottom: 0.75rem;\n}\n.void-scope .void-mb-32 {\n margin-bottom: 8rem;\n}\n.void-scope .void-mb-4 {\n margin-bottom: 1rem;\n}\n.void-scope .void-mb-8 {\n margin-bottom: 2rem;\n}\n.void-scope .void-mb-auto {\n margin-bottom: auto;\n}\n.void-scope .void-ml-1 {\n margin-left: 0.25rem;\n}\n.void-scope .void-ml-2 {\n margin-left: 0.5rem;\n}\n.void-scope .void-ml-4 {\n margin-left: 1rem;\n}\n.void-scope .void-ml-auto {\n margin-left: auto;\n}\n.void-scope .void-mr-0\\.5 {\n margin-right: 0.125rem;\n}\n.void-scope .void-mr-1 {\n margin-right: 0.25rem;\n}\n.void-scope .void-mr-1\\.5 {\n margin-right: 0.375rem;\n}\n.void-scope .void-mt-0\\.5 {\n margin-top: 0.125rem;\n}\n.void-scope .void-mt-1 {\n margin-top: 0.25rem;\n}\n.void-scope .void-mt-12 {\n margin-top: 3rem;\n}\n.void-scope .void-mt-2 {\n margin-top: 0.5rem;\n}\n.void-scope .void-mt-3 {\n margin-top: 0.75rem;\n}\n.void-scope .void-mt-4 {\n margin-top: 1rem;\n}\n.void-scope .void-mt-6 {\n margin-top: 1.5rem;\n}\n.void-scope .void-mt-8 {\n margin-top: 2rem;\n}\n.void-scope .void-line-clamp-2 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n}\n.void-scope .void-line-clamp-3 {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 3;\n}\n.void-scope .void-block {\n display: block;\n}\n.void-scope .void-inline-block {\n display: inline-block;\n}\n.void-scope .void-flex {\n display: flex;\n}\n.void-scope .void-inline-flex {\n display: inline-flex;\n}\n.void-scope .void-grid {\n display: grid;\n}\n.void-scope .void-hidden {\n display: none;\n}\n.void-scope .void-aspect-\\[3\\/4\\] {\n aspect-ratio: 3/4;\n}\n.void-scope .void-aspect-square {\n aspect-ratio: 1 / 1;\n}\n.void-scope .void-size-1\\.5 {\n width: 0.375rem;\n height: 0.375rem;\n}\n.void-scope .void-size-3 {\n width: 0.75rem;\n height: 0.75rem;\n}\n.void-scope .void-size-3\\.5 {\n width: 0.875rem;\n height: 0.875rem;\n}\n.void-scope .void-size-4 {\n width: 1rem;\n height: 1rem;\n}\n.void-scope .void-size-5 {\n width: 1.25rem;\n height: 1.25rem;\n}\n.void-scope .void-size-\\[11px\\] {\n width: 11px;\n height: 11px;\n}\n.void-scope .void-size-\\[18px\\] {\n width: 18px;\n height: 18px;\n}\n.void-scope .void-h-0\\.5 {\n height: 0.125rem;\n}\n.void-scope .void-h-1 {\n height: 0.25rem;\n}\n.void-scope .void-h-1\\.5 {\n height: 0.375rem;\n}\n.void-scope .void-h-12 {\n height: 3rem;\n}\n.void-scope .void-h-2 {\n height: 0.5rem;\n}\n.void-scope .void-h-2\\.5 {\n height: 0.625rem;\n}\n.void-scope .void-h-3 {\n height: 0.75rem;\n}\n.void-scope .void-h-3\\.5 {\n height: 0.875rem;\n}\n.void-scope .void-h-4 {\n height: 1rem;\n}\n.void-scope .void-h-5 {\n height: 1.25rem;\n}\n.void-scope .void-h-6 {\n height: 1.5rem;\n}\n.void-scope .void-h-\\[120px\\] {\n height: 120px;\n}\n.void-scope .void-h-\\[1px\\] {\n height: 1px;\n}\n.void-scope .void-h-\\[300px\\] {\n height: 300px;\n}\n.void-scope .void-h-\\[3px\\] {\n height: 3px;\n}\n.void-scope .void-h-\\[80vh\\] {\n height: 80vh;\n}\n.void-scope .void-h-fit {\n height: -moz-fit-content;\n height: fit-content;\n}\n.void-scope .void-h-full {\n height: 100%;\n}\n.void-scope .void-max-h-0 {\n max-height: 0px;\n}\n.void-scope .void-max-h-24 {\n max-height: 6rem;\n}\n.void-scope .void-max-h-32 {\n max-height: 8rem;\n}\n.void-scope .void-max-h-48 {\n max-height: 12rem;\n}\n.void-scope .void-max-h-80 {\n max-height: 20rem;\n}\n.void-scope .void-max-h-96 {\n max-height: 24rem;\n}\n.void-scope .void-max-h-\\[240px\\] {\n max-height: 240px;\n}\n.void-scope .void-max-h-\\[300px\\] {\n max-height: 300px;\n}\n.void-scope .void-max-h-\\[320px\\] {\n max-height: 320px;\n}\n.void-scope .void-max-h-\\[400px\\] {\n max-height: 400px;\n}\n.void-scope .void-max-h-\\[500px\\] {\n max-height: 500px;\n}\n.void-scope .void-max-h-\\[80vh\\] {\n max-height: 80vh;\n}\n.void-scope .void-max-h-\\[90vh\\] {\n max-height: 90vh;\n}\n.void-scope .void-max-h-\\[calc\\(100vh-6rem\\)\\] {\n max-height: calc(100vh - 6rem);\n}\n.void-scope .void-max-h-full {\n max-height: 100%;\n}\n.void-scope .void-min-h-\\[120px\\] {\n min-height: 120px;\n}\n.void-scope .void-min-h-\\[200px\\] {\n min-height: 200px;\n}\n.void-scope .void-min-h-\\[24px\\] {\n min-height: 24px;\n}\n.void-scope .void-min-h-\\[60px\\] {\n min-height: 60px;\n}\n.void-scope .void-min-h-\\[70vh\\] {\n min-height: 70vh;\n}\n.void-scope .void-min-h-\\[75vh\\] {\n min-height: 75vh;\n}\n.void-scope .void-min-h-\\[81px\\] {\n min-height: 81px;\n}\n.void-scope .void-w-1 {\n width: 0.25rem;\n}\n.void-scope .void-w-1\\.5 {\n width: 0.375rem;\n}\n.void-scope .void-w-10 {\n width: 2.5rem;\n}\n.void-scope .void-w-11 {\n width: 2.75rem;\n}\n.void-scope .void-w-12 {\n width: 3rem;\n}\n.void-scope .void-w-2 {\n width: 0.5rem;\n}\n.void-scope .void-w-2\\.5 {\n width: 0.625rem;\n}\n.void-scope .void-w-3 {\n width: 0.75rem;\n}\n.void-scope .void-w-3\\.5 {\n width: 0.875rem;\n}\n.void-scope .void-w-4 {\n width: 1rem;\n}\n.void-scope .void-w-48 {\n width: 12rem;\n}\n.void-scope .void-w-5 {\n width: 1.25rem;\n}\n.void-scope .void-w-6 {\n width: 1.5rem;\n}\n.void-scope .void-w-7 {\n width: 1.75rem;\n}\n.void-scope .void-w-9 {\n width: 2.25rem;\n}\n.void-scope .void-w-\\[0\\.5px\\] {\n width: 0.5px;\n}\n.void-scope .void-w-\\[160px\\] {\n width: 160px;\n}\n.void-scope .void-w-\\[200px\\] {\n width: 200px;\n}\n.void-scope .void-w-fit {\n width: -moz-fit-content;\n width: fit-content;\n}\n.void-scope .void-w-full {\n width: 100%;\n}\n.void-scope .void-w-max {\n width: -moz-max-content;\n width: max-content;\n}\n.void-scope .void-min-w-0 {\n min-width: 0px;\n}\n.void-scope .void-min-w-full {\n min-width: 100%;\n}\n.void-scope .void-max-w-2xl {\n max-width: 42rem;\n}\n.void-scope .void-max-w-32 {\n max-width: 8rem;\n}\n.void-scope .void-max-w-3xl {\n max-width: 48rem;\n}\n.void-scope .void-max-w-48 {\n max-width: 12rem;\n}\n.void-scope .void-max-w-\\[1000px\\] {\n max-width: 1000px;\n}\n.void-scope .void-max-w-\\[1200px\\] {\n max-width: 1200px;\n}\n.void-scope .void-max-w-\\[120px\\] {\n max-width: 120px;\n}\n.void-scope .void-max-w-\\[20px\\] {\n max-width: 20px;\n}\n.void-scope .void-max-w-\\[220px\\] {\n max-width: 220px;\n}\n.void-scope .void-max-w-\\[300px\\] {\n max-width: 300px;\n}\n.void-scope .void-max-w-\\[400px\\] {\n max-width: 400px;\n}\n.void-scope .void-max-w-\\[600px\\] {\n max-width: 600px;\n}\n.void-scope .void-max-w-\\[720px\\] {\n max-width: 720px;\n}\n.void-scope .void-max-w-\\[900px\\] {\n max-width: 900px;\n}\n.void-scope .void-max-w-full {\n max-width: 100%;\n}\n.void-scope .void-max-w-md {\n max-width: 28rem;\n}\n.void-scope .void-max-w-none {\n max-width: none;\n}\n.void-scope .void-max-w-sm {\n max-width: 24rem;\n}\n.void-scope .void-max-w-xl {\n max-width: 36rem;\n}\n.void-scope .void-flex-1 {\n flex: 1 1 0%;\n}\n.void-scope .void-flex-shrink-0 {\n flex-shrink: 0;\n}\n.void-scope .void-shrink-0 {\n flex-shrink: 0;\n}\n.void-scope .void-flex-grow {\n flex-grow: 1;\n}\n.void-scope .void-flex-grow-0 {\n flex-grow: 0;\n}\n.void-scope .void-grow {\n flex-grow: 1;\n}\n.void-scope .-void-translate-x-1\\/2 {\n --tw-translate-x: -50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.void-scope .-void-translate-y-0 {\n --tw-translate-y: -0px;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.void-scope .-void-translate-y-1\\/2 {\n --tw-translate-y: -50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.void-scope .void-translate-x-0 {\n --tw-translate-x: 0px;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.void-scope .void-translate-x-0\\.5 {\n --tw-translate-x: 0.125rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.void-scope .void-translate-x-1 {\n --tw-translate-x: 0.25rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.void-scope .void-translate-x-2\\.5 {\n --tw-translate-x: 0.625rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.void-scope .void-translate-x-3\\.5 {\n --tw-translate-x: 0.875rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.void-scope .void-translate-x-5 {\n --tw-translate-x: 1.25rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.void-scope .void-translate-x-6 {\n --tw-translate-x: 1.5rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.void-scope .void-translate-y-4 {\n --tw-translate-y: 1rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.void-scope .void-rotate-90 {\n --tw-rotate: 90deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.void-scope .void-transform {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n@keyframes void-spin {\n to {\n transform: rotate(360deg);\n }\n}\n.void-scope .void-animate-spin {\n animation: void-spin 1s linear infinite;\n}\n.void-scope .void-cursor-auto {\n cursor: auto;\n}\n.void-scope .void-cursor-default {\n cursor: default;\n}\n.void-scope .void-cursor-grab {\n cursor: grab;\n}\n.void-scope .void-cursor-not-allowed {\n cursor: not-allowed;\n}\n.void-scope .void-cursor-pointer {\n cursor: pointer;\n}\n.void-scope .void-touch-none {\n touch-action: none;\n}\n.void-scope .void-select-none {\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n}\n.void-scope .\\!void-select-text {\n -webkit-user-select: text !important;\n -moz-user-select: text !important;\n user-select: text !important;\n}\n.void-scope .void-select-text {\n -webkit-user-select: text;\n -moz-user-select: text;\n user-select: text;\n}\n.void-scope .void-resize-none {\n resize: none;\n}\n.void-scope .void-list-decimal {\n list-style-type: decimal;\n}\n.void-scope .void-grid-cols-1 {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n}\n.void-scope .void-grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n.void-scope .void-grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n}\n.void-scope .void-flex-row {\n flex-direction: row;\n}\n.void-scope .void-flex-col {\n flex-direction: column;\n}\n.void-scope .void-flex-wrap {\n flex-wrap: wrap;\n}\n.void-scope .void-flex-nowrap {\n flex-wrap: nowrap;\n}\n.void-scope .void-items-start {\n align-items: flex-start;\n}\n.void-scope .void-items-end {\n align-items: flex-end;\n}\n.void-scope .void-items-center {\n align-items: center;\n}\n.void-scope .void-justify-end {\n justify-content: flex-end;\n}\n.void-scope .void-justify-center {\n justify-content: center;\n}\n.void-scope .void-justify-between {\n justify-content: space-between;\n}\n.void-scope .void-gap-0 {\n gap: 0px;\n}\n.void-scope .void-gap-0\\.5 {\n gap: 0.125rem;\n}\n.void-scope .void-gap-1 {\n gap: 0.25rem;\n}\n.void-scope .void-gap-1\\.5 {\n gap: 0.375rem;\n}\n.void-scope .void-gap-10 {\n gap: 2.5rem;\n}\n.void-scope .void-gap-12 {\n gap: 3rem;\n}\n.void-scope .void-gap-2 {\n gap: 0.5rem;\n}\n.void-scope .void-gap-3 {\n gap: 0.75rem;\n}\n.void-scope .void-gap-4 {\n gap: 1rem;\n}\n.void-scope .void-gap-6 {\n gap: 1.5rem;\n}\n.void-scope .void-gap-8 {\n gap: 2rem;\n}\n.void-scope .void-gap-x-0\\.5 {\n -moz-column-gap: 0.125rem;\n column-gap: 0.125rem;\n}\n.void-scope .void-gap-x-1 {\n -moz-column-gap: 0.25rem;\n column-gap: 0.25rem;\n}\n.void-scope .void-gap-x-2 {\n -moz-column-gap: 0.5rem;\n column-gap: 0.5rem;\n}\n.void-scope .void-gap-y-1 {\n row-gap: 0.25rem;\n}\n.void-scope .void-gap-y-8 {\n row-gap: 2rem;\n}\n.void-scope .void-space-y-1 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));\n}\n.void-scope .void-space-y-1\\.5 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.375rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.375rem * var(--tw-space-y-reverse));\n}\n.void-scope .void-space-y-2 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));\n}\n.void-scope .void-space-y-3 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.75rem * var(--tw-space-y-reverse));\n}\n.void-scope .void-space-y-6 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));\n}\n.void-scope .void-space-y-8 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(2rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(2rem * var(--tw-space-y-reverse));\n}\n.void-scope .void-space-y-\\[1px\\] > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(1px * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(1px * var(--tw-space-y-reverse));\n}\n.void-scope .void-self-end {\n align-self: flex-end;\n}\n.void-scope .void-self-stretch {\n align-self: stretch;\n}\n.void-scope .void-overflow-auto {\n overflow: auto;\n}\n.void-scope .void-overflow-hidden {\n overflow: hidden;\n}\n.void-scope .void-overflow-x-auto {\n overflow-x: auto;\n}\n.void-scope .void-overflow-y-auto {\n overflow-y: auto;\n}\n.void-scope .void-overflow-x-hidden {\n overflow-x: hidden;\n}\n.void-scope .void-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.void-scope .void-text-ellipsis {\n text-overflow: ellipsis;\n}\n.void-scope .void-whitespace-nowrap {\n white-space: nowrap;\n}\n.void-scope .void-whitespace-pre {\n white-space: pre;\n}\n.void-scope .void-whitespace-pre-wrap {\n white-space: pre-wrap;\n}\n.void-scope .void-text-nowrap {\n text-wrap: nowrap;\n}\n.void-scope .void-break-words {\n overflow-wrap: break-word;\n}\n.void-scope .void-rounded {\n border-radius: 0.25rem;\n}\n.void-scope .void-rounded-2xl {\n border-radius: 1rem;\n}\n.void-scope .void-rounded-\\[18px\\] {\n border-radius: 18px;\n}\n.void-scope .void-rounded-\\[28px\\] {\n border-radius: 28px;\n}\n.void-scope .void-rounded-\\[32px\\] {\n border-radius: 32px;\n}\n.void-scope .void-rounded-full {\n border-radius: 9999px;\n}\n.void-scope .void-rounded-lg {\n border-radius: 0.5rem;\n}\n.void-scope .void-rounded-md {\n border-radius: 0.375rem;\n}\n.void-scope .void-rounded-none {\n border-radius: 0px;\n}\n.void-scope .void-rounded-sm {\n border-radius: 0.125rem;\n}\n.void-scope .void-rounded-xl {\n border-radius: 0.75rem;\n}\n.void-scope .void-rounded-b-md {\n border-bottom-right-radius: 0.375rem;\n border-bottom-left-radius: 0.375rem;\n}\n.void-scope .void-rounded-t-lg {\n border-top-left-radius: 0.5rem;\n border-top-right-radius: 0.5rem;\n}\n.void-scope .void-border {\n border-width: 1px;\n}\n.void-scope .void-border-2 {\n border-width: 2px;\n}\n.void-scope .void-border-b {\n border-bottom-width: 1px;\n}\n.void-scope .void-border-b-2 {\n border-bottom-width: 2px;\n}\n.void-scope .void-border-l {\n border-left-width: 1px;\n}\n.void-scope .void-border-l-2 {\n border-left-width: 2px;\n}\n.void-scope .void-border-r {\n border-right-width: 1px;\n}\n.void-scope .void-border-t {\n border-top-width: 1px;\n}\n.void-scope .void-border-\\[rgba\\(255\\,255\\,255\\,0\\.08\\)\\] {\n border-color: rgba(255, 255, 255, 0.08);\n}\n.void-scope .void-border-\\[var\\(--vscode-keybindingLabel-border\\)\\] {\n border-color: var(--vscode-keybindingLabel-border);\n}\n.void-scope .void-border-amber-500\\/20 {\n border-color: rgb(245 158 11 / 0.2);\n}\n.void-scope .void-border-amber-500\\/30 {\n border-color: rgb(245 158 11 / 0.3);\n}\n.void-scope .void-border-blue-500 {\n --tw-border-opacity: 1;\n border-color: rgb(59 130 246 / var(--tw-border-opacity, 1));\n}\n.void-scope .void-border-blue-500\\/20 {\n border-color: rgb(59 130 246 / 0.2);\n}\n.void-scope .void-border-blue-500\\/30 {\n border-color: rgb(59 130 246 / 0.3);\n}\n.void-scope .void-border-gray-500 {\n --tw-border-opacity: 1;\n border-color: rgb(107 114 128 / var(--tw-border-opacity, 1));\n}\n.void-scope .void-border-gray-500\\/20 {\n border-color: rgb(107 114 128 / 0.2);\n}\n.void-scope .void-border-gray-500\\/30 {\n border-color: rgb(107 114 128 / 0.3);\n}\n.void-scope .void-border-green-500 {\n --tw-border-opacity: 1;\n border-color: rgb(34 197 94 / var(--tw-border-opacity, 1));\n}\n.void-scope .void-border-green-500\\/20 {\n border-color: rgb(34 197 94 / 0.2);\n}\n.void-scope .void-border-green-500\\/30 {\n border-color: rgb(34 197 94 / 0.3);\n}\n.void-scope .void-border-orange-500 {\n --tw-border-opacity: 1;\n border-color: rgb(249 115 22 / var(--tw-border-opacity, 1));\n}\n.void-scope .void-border-orange-500\\/20 {\n border-color: rgb(249 115 22 / 0.2);\n}\n.void-scope .void-border-orange-500\\/30 {\n border-color: rgb(249 115 22 / 0.3);\n}\n.void-scope .void-border-purple-500\\/20 {\n border-color: rgb(168 85 247 / 0.2);\n}\n.void-scope .void-border-red-200 {\n --tw-border-opacity: 1;\n border-color: rgb(254 202 202 / var(--tw-border-opacity, 1));\n}\n.void-scope .void-border-red-300 {\n --tw-border-opacity: 1;\n border-color: rgb(252 165 165 / var(--tw-border-opacity, 1));\n}\n.void-scope .void-border-red-500 {\n --tw-border-opacity: 1;\n border-color: rgb(239 68 68 / var(--tw-border-opacity, 1));\n}\n.void-scope .void-border-red-500\\/20 {\n border-color: rgb(239 68 68 / 0.2);\n}\n.void-scope .void-border-red-500\\/30 {\n border-color: rgb(239 68 68 / 0.3);\n}\n.void-scope .void-border-red-500\\/80 {\n border-color: rgb(239 68 68 / 0.8);\n}\n.void-scope .void-border-transparent {\n border-color: transparent;\n}\n.void-scope .void-border-void-border-1 {\n border-color: var(--void-border-1);\n}\n.void-scope .void-border-void-border-2 {\n border-color: var(--void-border-2);\n}\n.void-scope .void-border-void-border-3 {\n border-color: var(--void-border-3);\n}\n.void-scope .void-border-void-fg-1 {\n border-color: var(--void-fg-1);\n}\n.void-scope .void-border-void-fg-3 {\n border-color: var(--void-fg-3);\n}\n.void-scope .void-border-void-fg-4 {\n border-color: var(--void-fg-4);\n}\n.void-scope .void-border-void-warning {\n border-color: var(--void-warning);\n}\n.void-scope .void-border-white\\/10 {\n border-color: rgb(255 255 255 / 0.1);\n}\n.void-scope .void-border-white\\/15 {\n border-color: rgb(255 255 255 / 0.15);\n}\n.void-scope .void-border-yellow-500 {\n --tw-border-opacity: 1;\n border-color: rgb(234 179 8 / var(--tw-border-opacity, 1));\n}\n.void-scope .void-border-yellow-500\\/30 {\n border-color: rgb(234 179 8 / 0.3);\n}\n.void-scope .void-border-zinc-300\\/10 {\n border-color: rgb(212 212 216 / 0.1);\n}\n.void-scope .void-bg-\\[\\#030304\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(3 3 4 / var(--tw-bg-opacity, 1));\n}\n.void-scope .void-bg-\\[\\#050507\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(5 5 7 / var(--tw-bg-opacity, 1));\n}\n.void-scope .void-bg-\\[\\#0e70c0\\] {\n --tw-bg-opacity: 1;\n background-color: rgb(14 112 192 / var(--tw-bg-opacity, 1));\n}\n.void-scope .void-bg-\\[\\#0e70c0\\]\\/80 {\n background-color: rgb(14 112 192 / 0.8);\n}\n.void-scope .void-bg-\\[rgba\\(0\\,0\\,0\\,0\\)\\] {\n background-color: rgba(0, 0, 0, 0);\n}\n.void-scope .void-bg-\\[var\\(--vscode-button-background\\)\\] {\n background-color: var(--vscode-button-background);\n}\n.void-scope .void-bg-\\[var\\(--vscode-button-secondaryBackground\\)\\] {\n background-color: var(--vscode-button-secondaryBackground);\n}\n.void-scope .void-bg-\\[var\\(--vscode-keybindingLabel-background\\)\\] {\n background-color: var(--vscode-keybindingLabel-background);\n}\n.void-scope .void-bg-amber-500\\/10 {\n background-color: rgb(245 158 11 / 0.1);\n}\n.void-scope .void-bg-black {\n --tw-bg-opacity: 1;\n background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));\n}\n.void-scope .void-bg-black\\/10 {\n background-color: rgb(0 0 0 / 0.1);\n}\n.void-scope .void-bg-black\\/20 {\n background-color: rgb(0 0 0 / 0.2);\n}\n.void-scope .void-bg-black\\/50 {\n background-color: rgb(0 0 0 / 0.5);\n}\n.void-scope .void-bg-black\\/60 {\n background-color: rgb(0 0 0 / 0.6);\n}\n.void-scope .void-bg-black\\/90 {\n background-color: rgb(0 0 0 / 0.9);\n}\n.void-scope .void-bg-blue-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(59 130 246 / var(--tw-bg-opacity, 1));\n}\n.void-scope .void-bg-blue-500\\/10 {\n background-color: rgb(59 130 246 / 0.1);\n}\n.void-scope .void-bg-blue-500\\/20 {\n background-color: rgb(59 130 246 / 0.2);\n}\n.void-scope .void-bg-gray-500\\/10 {\n background-color: rgb(107 114 128 / 0.1);\n}\n.void-scope .void-bg-gray-500\\/20 {\n background-color: rgb(107 114 128 / 0.2);\n}\n.void-scope .void-bg-green-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(34 197 94 / var(--tw-bg-opacity, 1));\n}\n.void-scope .void-bg-green-500\\/10 {\n background-color: rgb(34 197 94 / 0.1);\n}\n.void-scope .void-bg-green-500\\/20 {\n background-color: rgb(34 197 94 / 0.2);\n}\n.void-scope .void-bg-orange-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(255 247 237 / var(--tw-bg-opacity, 1));\n}\n.void-scope .void-bg-orange-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(249 115 22 / var(--tw-bg-opacity, 1));\n}\n.void-scope .void-bg-orange-500\\/10 {\n background-color: rgb(249 115 22 / 0.1);\n}\n.void-scope .void-bg-orange-500\\/20 {\n background-color: rgb(249 115 22 / 0.2);\n}\n.void-scope .void-bg-purple-500\\/10 {\n background-color: rgb(168 85 247 / 0.1);\n}\n.void-scope .void-bg-red-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(254 242 242 / var(--tw-bg-opacity, 1));\n}\n.void-scope .void-bg-red-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(239 68 68 / var(--tw-bg-opacity, 1));\n}\n.void-scope .void-bg-red-500\\/10 {\n background-color: rgb(239 68 68 / 0.1);\n}\n.void-scope .void-bg-red-500\\/20 {\n background-color: rgb(239 68 68 / 0.2);\n}\n.void-scope .void-bg-red-500\\/5 {\n background-color: rgb(239 68 68 / 0.05);\n}\n.void-scope .void-bg-red-600 {\n --tw-bg-opacity: 1;\n background-color: rgb(220 38 38 / var(--tw-bg-opacity, 1));\n}\n.void-scope .void-bg-red-600\\/80 {\n background-color: rgb(220 38 38 / 0.8);\n}\n.void-scope .void-bg-transparent {\n background-color: transparent;\n}\n.void-scope .void-bg-void-bg-1 {\n background-color: var(--void-bg-1);\n}\n.void-scope .void-bg-void-bg-2 {\n background-color: var(--void-bg-2);\n}\n.void-scope .void-bg-void-bg-2-alt {\n background-color: var(--void-bg-2-alt);\n}\n.void-scope .void-bg-void-bg-3 {\n background-color: var(--void-bg-3);\n}\n.void-scope .void-bg-void-border-1 {\n background-color: var(--void-border-1);\n}\n.void-scope .void-bg-void-border-3 {\n background-color: var(--void-border-3);\n}\n.void-scope .void-bg-void-fg-1 {\n background-color: var(--void-fg-1);\n}\n.void-scope .void-bg-void-fg-3 {\n background-color: var(--void-fg-3);\n}\n.void-scope .void-bg-vscode-disabled-fg {\n background-color: var(--vscode-disabledForeground);\n}\n.void-scope .void-bg-white {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n}\n.void-scope .void-bg-white\\/40 {\n background-color: rgb(255 255 255 / 0.4);\n}\n.void-scope .void-bg-white\\/5 {\n background-color: rgb(255 255 255 / 0.05);\n}\n.void-scope .void-bg-yellow-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(234 179 8 / var(--tw-bg-opacity, 1));\n}\n.void-scope .void-bg-yellow-500\\/20 {\n background-color: rgb(234 179 8 / 0.2);\n}\n.void-scope .void-bg-zinc-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(244 244 245 / var(--tw-bg-opacity, 1));\n}\n.void-scope .void-bg-zinc-700\\/5 {\n background-color: rgb(63 63 70 / 0.05);\n}\n.void-scope .void-bg-zinc-900 {\n --tw-bg-opacity: 1;\n background-color: rgb(24 24 27 / var(--tw-bg-opacity, 1));\n}\n.void-scope .void-bg-opacity-70 {\n --tw-bg-opacity: 0.7;\n}\n.void-scope .void-bg-gradient-to-br {\n background-image: linear-gradient(to bottom right, var(--tw-gradient-stops));\n}\n.void-scope .void-bg-gradient-to-r {\n background-image: linear-gradient(to right, var(--tw-gradient-stops));\n}\n.void-scope .void-bg-none {\n background-image: none;\n}\n.void-scope .void-from-\\[\\#0e70c0\\] {\n --tw-gradient-from: #0e70c0 var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(14 112 192 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.void-scope .void-from-\\[\\#2a2c34\\] {\n --tw-gradient-from: #2a2c34 var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(42 44 52 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.void-scope .void-from-\\[\\#3a3d47\\] {\n --tw-gradient-from: #3a3d47 var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(58 61 71 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.void-scope .void-from-\\[var\\(--cortex-surface-2\\)\\] {\n --tw-gradient-from: var(--cortex-surface-2) var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.void-scope .void-from-white\\/10 {\n --tw-gradient-from: rgb(255 255 255 / 0.1) var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.void-scope .void-via-\\[\\#1b1c23\\] {\n --tw-gradient-to: rgb(27 28 35 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops:\n var(--tw-gradient-from),\n #1b1c23 var(--tw-gradient-via-position),\n var(--tw-gradient-to);\n}\n.void-scope .void-via-\\[\\#23252c\\] {\n --tw-gradient-to: rgb(35 37 44 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops:\n var(--tw-gradient-from),\n #23252c var(--tw-gradient-via-position),\n var(--tw-gradient-to);\n}\n.void-scope .void-via-\\[var\\(--cortex-surface-3\\)\\] {\n --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops:\n var(--tw-gradient-from),\n var(--cortex-surface-3) var(--tw-gradient-via-position),\n var(--tw-gradient-to);\n}\n.void-scope .void-via-transparent {\n --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops:\n var(--tw-gradient-from),\n transparent var(--tw-gradient-via-position),\n var(--tw-gradient-to);\n}\n.void-scope .void-to-\\[\\#101117\\] {\n --tw-gradient-to: #101117 var(--tw-gradient-to-position);\n}\n.void-scope .void-to-\\[\\#111216\\] {\n --tw-gradient-to: #111216 var(--tw-gradient-to-position);\n}\n.void-scope .void-to-\\[\\#6b5bff\\] {\n --tw-gradient-to: #6b5bff var(--tw-gradient-to-position);\n}\n.void-scope .void-to-\\[var\\(--cortex-surface-4\\)\\] {\n --tw-gradient-to: var(--cortex-surface-4) var(--tw-gradient-to-position);\n}\n.void-scope .void-to-transparent {\n --tw-gradient-to: transparent var(--tw-gradient-to-position);\n}\n.void-scope .void-fill-current {\n fill: currentColor;\n}\n.void-scope .void-stroke-green-500 {\n stroke: #22c55e;\n}\n.void-scope .void-stroke-red-500 {\n stroke: #ef4444;\n}\n.void-scope .void-stroke-\\[2\\] {\n stroke-width: 2;\n}\n.void-scope .void-stroke-\\[3\\] {\n stroke-width: 3;\n}\n.void-scope .void-object-contain {\n -o-object-fit: contain;\n object-fit: contain;\n}\n.void-scope .void-object-cover {\n -o-object-fit: cover;\n object-fit: cover;\n}\n.void-scope .void-p-0\\.5 {\n padding: 0.125rem;\n}\n.void-scope .void-p-1 {\n padding: 0.25rem;\n}\n.void-scope .void-p-1\\.5 {\n padding: 0.375rem;\n}\n.void-scope .void-p-2 {\n padding: 0.5rem;\n}\n.void-scope .void-p-2\\.5 {\n padding: 0.625rem;\n}\n.void-scope .void-p-3 {\n padding: 0.75rem;\n}\n.void-scope .void-p-4 {\n padding: 1rem;\n}\n.void-scope .void-p-5 {\n padding: 1.25rem;\n}\n.void-scope .void-p-6 {\n padding: 1.5rem;\n}\n.void-scope .void-p-\\[2px\\] {\n padding: 2px;\n}\n.void-scope .void-p-\\[7px\\] {\n padding: 7px;\n}\n.void-scope .\\!void-px-0 {\n padding-left: 0px !important;\n padding-right: 0px !important;\n}\n.void-scope .\\!void-py-0 {\n padding-top: 0px !important;\n padding-bottom: 0px !important;\n}\n.void-scope .void-px-0 {\n padding-left: 0px;\n padding-right: 0px;\n}\n.void-scope .void-px-0\\.5 {\n padding-left: 0.125rem;\n padding-right: 0.125rem;\n}\n.void-scope .void-px-1 {\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n}\n.void-scope .void-px-1\\.5 {\n padding-left: 0.375rem;\n padding-right: 0.375rem;\n}\n.void-scope .void-px-10 {\n padding-left: 2.5rem;\n padding-right: 2.5rem;\n}\n.void-scope .void-px-2 {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n.void-scope .void-px-3 {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n}\n.void-scope .void-px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n.void-scope .void-px-5 {\n padding-left: 1.25rem;\n padding-right: 1.25rem;\n}\n.void-scope .void-px-6 {\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n}\n.void-scope .void-px-8 {\n padding-left: 2rem;\n padding-right: 2rem;\n}\n.void-scope .void-py-0\\.5 {\n padding-top: 0.125rem;\n padding-bottom: 0.125rem;\n}\n.void-scope .void-py-1 {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n}\n.void-scope .void-py-1\\.5 {\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n}\n.void-scope .void-py-10 {\n padding-top: 2.5rem;\n padding-bottom: 2.5rem;\n}\n.void-scope .void-py-12 {\n padding-top: 3rem;\n padding-bottom: 3rem;\n}\n.void-scope .void-py-2 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n.void-scope .void-py-2\\.5 {\n padding-top: 0.625rem;\n padding-bottom: 0.625rem;\n}\n.void-scope .void-py-3 {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n}\n.void-scope .void-py-6 {\n padding-top: 1.5rem;\n padding-bottom: 1.5rem;\n}\n.void-scope .void-pb-0\\.5 {\n padding-bottom: 0.125rem;\n}\n.void-scope .void-pb-2 {\n padding-bottom: 0.5rem;\n}\n.void-scope .void-pl-0 {\n padding-left: 0px;\n}\n.void-scope .void-pl-2 {\n padding-left: 0.5rem;\n}\n.void-scope .void-pl-4 {\n padding-left: 1rem;\n}\n.void-scope .void-pl-6 {\n padding-left: 1.5rem;\n}\n.void-scope .void-pr-1 {\n padding-right: 0.25rem;\n}\n.void-scope .void-pr-4 {\n padding-right: 1rem;\n}\n.void-scope .void-pt-1 {\n padding-top: 0.25rem;\n}\n.void-scope .void-pt-2 {\n padding-top: 0.5rem;\n}\n.void-scope .void-pt-3 {\n padding-top: 0.75rem;\n}\n.void-scope .void-pt-6 {\n padding-top: 1.5rem;\n}\n.void-scope .void-pt-8 {\n padding-top: 2rem;\n}\n.void-scope .void-text-left {\n text-align: left;\n}\n.void-scope .void-text-center {\n text-align: center;\n}\n.void-scope .void-text-right {\n text-align: right;\n}\n.void-scope .void-align-text-top {\n vertical-align: text-top;\n}\n.void-scope .void-font-mono {\n font-family:\n ui-monospace,\n SFMono-Regular,\n Menlo,\n Monaco,\n Consolas,\n "Liberation Mono",\n "Courier New",\n monospace;\n}\n.void-scope .void-text-2xl {\n font-size: 18px;\n}\n.void-scope .void-text-3xl {\n font-size: 20px;\n}\n.void-scope .void-text-4xl {\n font-size: 24px;\n}\n.void-scope .void-text-5xl {\n font-size: 30px;\n}\n.void-scope .void-text-\\[10px\\] {\n font-size: 10px;\n}\n.void-scope .void-text-\\[11px\\] {\n font-size: 11px;\n}\n.void-scope .void-text-\\[13px\\] {\n font-size: 13px;\n}\n.void-scope .void-text-\\[8px\\] {\n font-size: 8px;\n}\n.void-scope .void-text-base {\n font-size: 1rem;\n line-height: 1.5rem;\n}\n.void-scope .void-text-lg {\n font-size: 14px;\n}\n.void-scope .void-text-root {\n font-size: 13px;\n}\n.void-scope .void-text-sm {\n font-size: 11px;\n}\n.void-scope .void-text-xl {\n font-size: 16px;\n}\n.void-scope .void-text-xs {\n font-size: 10px;\n}\n.void-scope .void-font-light {\n font-weight: 300;\n}\n.void-scope .void-font-medium {\n font-weight: 500;\n}\n.void-scope .void-font-semibold {\n font-weight: 600;\n}\n.void-scope .void-uppercase {\n text-transform: uppercase;\n}\n.void-scope .void-italic {\n font-style: italic;\n}\n.void-scope .void-not-italic {\n font-style: normal;\n}\n.void-scope .void-leading-relaxed {\n line-height: 1.625;\n}\n.void-scope .void-leading-snug {\n line-height: 1.375;\n}\n.void-scope .void-tracking-\\[0\\.35em\\] {\n letter-spacing: 0.35em;\n}\n.void-scope .void-tracking-\\[0\\.3em\\] {\n letter-spacing: 0.3em;\n}\n.void-scope .void-tracking-\\[0\\.45em\\] {\n letter-spacing: 0.45em;\n}\n.void-scope .void-tracking-\\[0\\.4em\\] {\n letter-spacing: 0.4em;\n}\n.void-scope .void-tracking-tight {\n letter-spacing: -0.025em;\n}\n.void-scope .void-tracking-wide {\n letter-spacing: 0.025em;\n}\n.void-scope .\\!void-text-void-fg-3 {\n color: var(--void-fg-3) !important;\n}\n.void-scope .void-text-\\[\\#0e70c0\\] {\n --tw-text-opacity: 1;\n color: rgb(14 112 192 / var(--tw-text-opacity, 1));\n}\n.void-scope .void-text-\\[var\\(--vscode-button-foreground\\)\\] {\n color: var(--vscode-button-foreground);\n}\n.void-scope .void-text-\\[var\\(--vscode-button-secondaryForeground\\)\\] {\n color: var(--vscode-button-secondaryForeground);\n}\n.void-scope .void-text-\\[var\\(--vscode-keybindingLabel-foreground\\)\\] {\n color: var(--vscode-keybindingLabel-foreground);\n}\n.void-scope .void-text-amber-300 {\n --tw-text-opacity: 1;\n color: rgb(252 211 77 / var(--tw-text-opacity, 1));\n}\n.void-scope .void-text-amber-400 {\n --tw-text-opacity: 1;\n color: rgb(251 191 36 / var(--tw-text-opacity, 1));\n}\n.void-scope .void-text-blue-300 {\n --tw-text-opacity: 1;\n color: rgb(147 197 253 / var(--tw-text-opacity, 1));\n}\n.void-scope .void-text-blue-400 {\n --tw-text-opacity: 1;\n color: rgb(96 165 250 / var(--tw-text-opacity, 1));\n}\n.void-scope .void-text-blue-500 {\n --tw-text-opacity: 1;\n color: rgb(59 130 246 / var(--tw-text-opacity, 1));\n}\n.void-scope .void-text-emerald-400 {\n --tw-text-opacity: 1;\n color: rgb(52 211 153 / var(--tw-text-opacity, 1));\n}\n.void-scope .void-text-emerald-500 {\n --tw-text-opacity: 1;\n color: rgb(16 185 129 / var(--tw-text-opacity, 1));\n}\n.void-scope .void-text-gray-400 {\n --tw-text-opacity: 1;\n color: rgb(156 163 175 / var(--tw-text-opacity, 1));\n}\n.void-scope .void-text-green-300 {\n --tw-text-opacity: 1;\n color: rgb(134 239 172 / var(--tw-text-opacity, 1));\n}\n.void-scope .void-text-green-400 {\n --tw-text-opacity: 1;\n color: rgb(74 222 128 / var(--tw-text-opacity, 1));\n}\n.void-scope .void-text-green-500 {\n --tw-text-opacity: 1;\n color: rgb(34 197 94 / var(--tw-text-opacity, 1));\n}\n.void-scope .void-text-orange-400 {\n --tw-text-opacity: 1;\n color: rgb(251 146 60 / var(--tw-text-opacity, 1));\n}\n.void-scope .void-text-orange-500 {\n --tw-text-opacity: 1;\n color: rgb(249 115 22 / var(--tw-text-opacity, 1));\n}\n.void-scope .void-text-purple-400 {\n --tw-text-opacity: 1;\n color: rgb(192 132 252 / var(--tw-text-opacity, 1));\n}\n.void-scope .void-text-red-300 {\n --tw-text-opacity: 1;\n color: rgb(252 165 165 / var(--tw-text-opacity, 1));\n}\n.void-scope .void-text-red-400 {\n --tw-text-opacity: 1;\n color: rgb(248 113 113 / var(--tw-text-opacity, 1));\n}\n.void-scope .void-text-red-500 {\n --tw-text-opacity: 1;\n color: rgb(239 68 68 / var(--tw-text-opacity, 1));\n}\n.void-scope .void-text-red-600 {\n --tw-text-opacity: 1;\n color: rgb(220 38 38 / var(--tw-text-opacity, 1));\n}\n.void-scope .void-text-red-700 {\n --tw-text-opacity: 1;\n color: rgb(185 28 28 / var(--tw-text-opacity, 1));\n}\n.void-scope .void-text-red-800 {\n --tw-text-opacity: 1;\n color: rgb(153 27 27 / var(--tw-text-opacity, 1));\n}\n.void-scope .void-text-rose-600 {\n --tw-text-opacity: 1;\n color: rgb(225 29 72 / var(--tw-text-opacity, 1));\n}\n.void-scope .void-text-void-fg-0 {\n color: var(--void-fg-0);\n}\n.void-scope .void-text-void-fg-1 {\n color: var(--void-fg-1);\n}\n.void-scope .void-text-void-fg-2 {\n color: var(--void-fg-2);\n}\n.void-scope .void-text-void-fg-3 {\n color: var(--void-fg-3);\n}\n.void-scope .void-text-void-fg-4 {\n color: var(--void-fg-4);\n}\n.void-scope .void-text-void-warning {\n color: var(--void-warning);\n}\n.void-scope .void-text-white {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\n}\n.void-scope .void-text-white\\/35 {\n color: rgb(255 255 255 / 0.35);\n}\n.void-scope .void-text-white\\/40 {\n color: rgb(255 255 255 / 0.4);\n}\n.void-scope .void-text-white\\/70 {\n color: rgb(255 255 255 / 0.7);\n}\n.void-scope .void-text-white\\/80 {\n color: rgb(255 255 255 / 0.8);\n}\n.void-scope .void-text-yellow-400 {\n --tw-text-opacity: 1;\n color: rgb(250 204 21 / var(--tw-text-opacity, 1));\n}\n.void-scope .void-text-zinc-900 {\n --tw-text-opacity: 1;\n color: rgb(24 24 27 / var(--tw-text-opacity, 1));\n}\n.void-scope .void-underline {\n text-decoration-line: underline;\n}\n.void-scope .void-line-through {\n text-decoration-line: line-through;\n}\n.void-scope .void-opacity-0 {\n opacity: 0;\n}\n.void-scope .void-opacity-100 {\n opacity: 1;\n}\n.void-scope .void-opacity-25 {\n opacity: 0.25;\n}\n.void-scope .void-opacity-40 {\n opacity: 0.4;\n}\n.void-scope .void-opacity-50 {\n opacity: 0.5;\n}\n.void-scope .void-opacity-60 {\n opacity: 0.6;\n}\n.void-scope .void-opacity-70 {\n opacity: 0.7;\n}\n.void-scope .void-opacity-75 {\n opacity: 0.75;\n}\n.void-scope .void-opacity-80 {\n opacity: 0.8;\n}\n.void-scope .void-opacity-90 {\n opacity: 0.9;\n}\n.void-scope .void-opacity-95 {\n opacity: 0.95;\n}\n.void-scope .void-shadow {\n --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.void-scope .void-shadow-\\[0_0_4px_0px_rgba\\(22\\,163\\,74\\,0\\.6\\)\\] {\n --tw-shadow: 0 0 4px 0px rgba(22,163,74,0.6);\n --tw-shadow-colored: 0 0 4px 0px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.void-scope .void-shadow-\\[0_0_4px_0px_rgba\\(234\\,88\\,12\\,0\\.6\\)\\] {\n --tw-shadow: 0 0 4px 0px rgba(234,88,12,0.6);\n --tw-shadow-colored: 0 0 4px 0px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.void-scope .void-shadow-\\[0_10px_30px_rgba\\(0\\,0\\,0\\,0\\.35\\)\\] {\n --tw-shadow: 0 10px 30px rgba(0,0,0,0.35);\n --tw-shadow-colored: 0 10px 30px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.void-scope .void-shadow-\\[0_18px_40px_rgba\\(28\\,107\\,219\\,0\\.35\\)\\] {\n --tw-shadow: 0 18px 40px rgba(28,107,219,0.35);\n --tw-shadow-colored: 0 18px 40px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.void-scope .void-shadow-\\[0_25px_55px_rgba\\(0\\,0\\,0\\,0\\.55\\)\\] {\n --tw-shadow: 0 25px 55px rgba(0,0,0,0.55);\n --tw-shadow-colored: 0 25px 55px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.void-scope .void-shadow-\\[0_30px_90px_rgba\\(0\\,0\\,0\\,0\\.45\\)\\] {\n --tw-shadow: 0 30px 90px rgba(0,0,0,0.45);\n --tw-shadow-colored: 0 30px 90px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.void-scope .void-shadow-\\[0_35px_80px_rgba\\(0\\,0\\,0\\,0\\.6\\)\\] {\n --tw-shadow: 0 35px 80px rgba(0,0,0,0.6);\n --tw-shadow-colored: 0 35px 80px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.void-scope .void-shadow-\\[0_35px_90px_rgba\\(0\\,0\\,0\\,0\\.35\\)\\] {\n --tw-shadow: 0 35px 90px rgba(0,0,0,0.35);\n --tw-shadow-colored: 0 35px 90px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.void-scope .void-shadow-\\[0_3px_12px_rgba\\(0\\,0\\,0\\,0\\.45\\)\\] {\n --tw-shadow: 0 3px 12px rgba(0,0,0,0.45);\n --tw-shadow-colored: 0 3px 12px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.void-scope .void-shadow-\\[0_45px_110px_rgba\\(0\\,0\\,0\\,0\\.7\\)\\] {\n --tw-shadow: 0 45px 110px rgba(0,0,0,0.7);\n --tw-shadow-colored: 0 45px 110px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.void-scope .void-shadow-\\[0_45px_120px_rgba\\(0\\,0\\,0\\,0\\.45\\)\\] {\n --tw-shadow: 0 45px 120px rgba(0,0,0,0.45);\n --tw-shadow-colored: 0 45px 120px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.void-scope .void-shadow-\\[0_45px_120px_rgba\\(0\\,0\\,0\\,0\\.95\\)\\] {\n --tw-shadow: 0 45px 120px rgba(0,0,0,0.95);\n --tw-shadow-colored: 0 45px 120px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.void-scope .void-shadow-\\[0_60px_140px_rgba\\(0\\,0\\,0\\,0\\.75\\)\\] {\n --tw-shadow: 0 60px 140px rgba(0,0,0,0.75);\n --tw-shadow-colored: 0 60px 140px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.void-scope .void-shadow-\\[0_8px_20px_rgba\\(0\\,0\\,0\\,0\\.35\\)\\] {\n --tw-shadow: 0 8px 20px rgba(0,0,0,0.35);\n --tw-shadow-colored: 0 8px 20px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.void-scope .void-shadow-lg {\n --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.void-scope .void-shadow-md {\n --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.void-scope .void-shadow-sm {\n --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.void-scope .void-shadow-xl {\n --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.void-scope .void-ring-2 {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow:\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow, 0 0 #0000);\n}\n.void-scope .void-ring-blue-500 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1));\n}\n.void-scope .void-blur-3xl {\n --tw-blur: blur(64px);\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n.void-scope .void-brightness-90 {\n --tw-brightness: brightness(.9);\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n.void-scope .void-backdrop-blur-2xl {\n --tw-backdrop-blur: blur(40px);\n -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\n backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\n}\n.void-scope .void-backdrop-blur-\\[28px\\] {\n --tw-backdrop-blur: blur(28px);\n -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\n backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\n}\n.void-scope .void-backdrop-blur-xl {\n --tw-backdrop-blur: blur(24px);\n -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\n backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\n}\n.void-scope .void-transition-all {\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.void-scope .void-transition-colors {\n transition-property:\n color,\n background-color,\n border-color,\n text-decoration-color,\n fill,\n stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.void-scope .void-transition-opacity {\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.void-scope .void-transition-transform {\n transition-property: transform;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.void-scope .void-duration-100 {\n transition-duration: 100ms;\n}\n.void-scope .void-duration-150 {\n transition-duration: 150ms;\n}\n.void-scope .void-duration-200 {\n transition-duration: 200ms;\n}\n.void-scope .void-duration-300 {\n transition-duration: 300ms;\n}\n.void-scope .void-duration-700 {\n transition-duration: 700ms;\n}\n.void-scope .void-ease-\\[cubic-bezier\\(0\\.4\\,0\\,0\\.2\\,1\\)\\] {\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n}\n.void-scope .void-ease-in-out {\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n}\n.void-scope .void-ease-out {\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n}\n.void-scope .select-child-restyle select {\n text-overflow: ellipsis;\n white-space: nowrap;\n padding-right: 24px;\n}\n.void-scope .void-force-child-placeholder-void-fg-1 ::-moz-placeholder {\n color: var(--void-fg-3);\n}\n.void-scope .void-force-child-placeholder-void-fg-1 ::placeholder {\n color: var(--void-fg-3);\n}\n.void-scope * {\n outline: none !important;\n}\n.void-scope .inherit-bg-all-restyle > * {\n background-color: inherit !important;\n}\n.void-scope .bg-editor-style-override {\n --vscode-sideBar-background: var(--vscode-editor-background);\n}\n.void-scope .void-diff-block-header {\n position: sticky;\n top: 0;\n background: var(--void-bg-3);\n border-bottom: 1px solid var(--void-border-4);\n}\n.void-scope .void-focus-ring:focus-visible {\n outline: 1px solid var(--void-ring-color);\n outline-offset: 1px;\n}\n.void-scope .void-density-tight {\n padding: var(--void-space-2) var(--void-space-2);\n}\n.void-scope .void-density-comfortable {\n padding: var(--void-space-4) var(--void-space-4);\n}\n.void-scope .void-density-spacious {\n padding: var(--void-space-6) var(--void-space-6);\n}\n.void-scope .void-transition {\n transition: all var(--void-transition-base);\n}\n.void-scope .void-transition-fast {\n transition: all var(--void-transition-fast);\n}\n.void-scope .void-transition-slow {\n transition: all var(--void-transition-slow);\n}\n.void-scope .void-hover-lift {\n transition: transform var(--void-transition-base), box-shadow var(--void-transition-base);\n}\n.void-scope .void-hover-lift:hover {\n transform: translateY(-1px);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n.void-scope .void-rounded-sm {\n border-radius: var(--void-radius-sm);\n}\n.void-scope .void-rounded-md {\n border-radius: var(--void-radius-md);\n}\n.void-scope .void-rounded-lg {\n border-radius: var(--void-radius-lg);\n}\n.void-scope .void-rounded-xl {\n border-radius: var(--void-radius-xl);\n}\n.void-scope .monaco-editor .code-review-error {\n background-color: rgba(255, 0, 0, 0.1);\n border-left: 3px solid var(--vscode-errorForeground);\n}\n.void-scope .monaco-editor .code-review-warning {\n background-color: rgba(255, 193, 7, 0.1);\n border-left: 3px solid var(--vscode-editorWarning-foreground);\n}\n.void-scope .monaco-editor .code-review-info {\n background-color: rgba(0, 122, 204, 0.1);\n border-left: 3px solid var(--vscode-editorInfo-foreground);\n}\n.void-scope .monaco-editor .code-review-hint {\n background-color: rgba(128, 128, 128, 0.1);\n border-left: 3px solid var(--vscode-editorHint-foreground);\n}\n.void-scope .monaco-editor .code-review-glyph-error::before {\n content: "\\25cf";\n color: var(--vscode-errorForeground);\n font-size: 8px;\n}\n.void-scope .monaco-editor .code-review-glyph-warning::before {\n content: "\\25cf";\n color: var(--vscode-editorWarning-foreground);\n font-size: 8px;\n}\n.void-scope .monaco-editor .code-review-glyph-info::before {\n content: "\\25cf";\n color: var(--vscode-editorInfo-foreground);\n font-size: 8px;\n}\n.void-scope .monaco-editor .code-review-glyph-hint::before {\n content: "\\25cf";\n color: var(--vscode-editorHint-foreground);\n font-size: 8px;\n}\n.void-scope .monaco-editor .error-detection-error {\n background-color: color-mix(in srgb, var(--vscode-errorForeground) 10%, transparent);\n border-left: 3px solid var(--vscode-errorForeground);\n}\n.void-scope .monaco-editor .error-detection-warning {\n background-color: color-mix(in srgb, var(--vscode-warningForeground) 10%, transparent);\n border-left: 3px solid var(--vscode-warningForeground);\n}\n.void-scope .monaco-editor .error-detection-glyph-error::before {\n content: "\\274c";\n font-size: 14px;\n color: var(--vscode-errorForeground);\n}\n.void-scope .monaco-editor .error-detection-glyph-warning::before {\n content: "\\26a0\\fe0f";\n font-size: 14px;\n color: var(--vscode-warningForeground);\n}\n.void-scope .prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) {\n font-size: 0.875rem;\n line-height: 1.7142857;\n}\n.void-scope .prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) :where(p):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 1.1428571em;\n margin-bottom: 1.1428571em;\n}\n.void-scope .prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) :where([class~=lead]):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n font-size: 1.2857143em;\n line-height: 1.5555556;\n margin-top: 0.8888889em;\n margin-bottom: 0.8888889em;\n}\n.void-scope .prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) :where(blockquote):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 1.3333333em;\n margin-bottom: 1.3333333em;\n padding-inline-start: 1.1111111em;\n}\n.void-scope .prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) :where(h1):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n font-size: 2.1428571em;\n margin-top: 0;\n margin-bottom: 0.8em;\n line-height: 1.2;\n}\n.void-scope .prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) :where(h2):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n font-size: 1.4285714em;\n margin-top: 1.6em;\n margin-bottom: 0.8em;\n line-height: 1.4;\n}\n.void-scope .prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) :where(h3):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n font-size: 1.2857143em;\n margin-top: 1.5555556em;\n margin-bottom: 0.4444444em;\n line-height: 1.5555556;\n}\n.void-scope .prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) :where(h4):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 1.4285714em;\n margin-bottom: 0.5714286em;\n line-height: 1.4285714;\n}\n.void-scope .prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) :where(img):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 1.7142857em;\n margin-bottom: 1.7142857em;\n}\n.void-scope .prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) :where(picture):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 1.7142857em;\n margin-bottom: 1.7142857em;\n}\n.void-scope .prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) :where(picture > img):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 0;\n margin-bottom: 0;\n}\n.void-scope .prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) :where(video):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 1.7142857em;\n margin-bottom: 1.7142857em;\n}\n.void-scope .prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) :where(kbd):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n font-size: 0.8571429em;\n border-radius: 0.3125rem;\n padding-top: 0.1428571em;\n padding-inline-end: 0.3571429em;\n padding-bottom: 0.1428571em;\n padding-inline-start: 0.3571429em;\n}\n.void-scope .prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) :where(code):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n font-size: 0.8571429em;\n}\n.void-scope .prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) :where(h2 code):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n font-size: 0.9em;\n}\n.void-scope .prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) :where(h3 code):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n font-size: 0.8888889em;\n}\n.void-scope .prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) :where(pre):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n font-size: 0.8571429em;\n line-height: 1.6666667;\n margin-top: 1.6666667em;\n margin-bottom: 1.6666667em;\n border-radius: 0.25rem;\n padding-top: 0.6666667em;\n padding-inline-end: 1em;\n padding-bottom: 0.6666667em;\n padding-inline-start: 1em;\n}\n.void-scope .prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) :where(ol):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 1.1428571em;\n margin-bottom: 1.1428571em;\n padding-inline-start: 1.5714286em;\n}\n.void-scope .prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) :where(ul):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 1.1428571em;\n margin-bottom: 1.1428571em;\n padding-inline-start: 1.5714286em;\n}\n.void-scope .prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) :where(li):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 0.2857143em;\n margin-bottom: 0.2857143em;\n}\n.void-scope .prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) :where(ol > li):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n padding-inline-start: 0.4285714em;\n}\n.void-scope .prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) :where(ul > li):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n padding-inline-start: 0.4285714em;\n}\n.void-scope .prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) :where(.prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) > ul > li p):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 0.5714286em;\n margin-bottom: 0.5714286em;\n}\n.void-scope .prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) :where(.prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) > ul > li > p:first-child):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 1.1428571em;\n}\n.void-scope .prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) :where(.prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) > ul > li > p:last-child):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-bottom: 1.1428571em;\n}\n.void-scope .prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) :where(.prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) > ol > li > p:first-child):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 1.1428571em;\n}\n.void-scope .prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) :where(.prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) > ol > li > p:last-child):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-bottom: 1.1428571em;\n}\n.void-scope .prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 0.5714286em;\n margin-bottom: 0.5714286em;\n}\n.void-scope .prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) :where(dl):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 1.1428571em;\n margin-bottom: 1.1428571em;\n}\n.void-scope .prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) :where(dt):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 1.1428571em;\n}\n.void-scope .prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) :where(dd):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 0.2857143em;\n padding-inline-start: 1.5714286em;\n}\n.void-scope .prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) :where(hr):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 2.8571429em;\n margin-bottom: 2.8571429em;\n}\n.void-scope .prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) :where(hr + *):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 0;\n}\n.void-scope .prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) :where(h2 + *):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 0;\n}\n.void-scope .prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) :where(h3 + *):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 0;\n}\n.void-scope .prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) :where(h4 + *):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 0;\n}\n.void-scope .prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) :where(table):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n font-size: 0.8571429em;\n line-height: 1.5;\n}\n.void-scope .prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) :where(thead th):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n padding-inline-end: 1em;\n padding-bottom: 0.6666667em;\n padding-inline-start: 1em;\n}\n.void-scope .prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) :where(thead th:first-child):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n padding-inline-start: 0;\n}\n.void-scope .prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) :where(thead th:last-child):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n padding-inline-end: 0;\n}\n.void-scope .prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) :where(tbody td, tfoot td):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n padding-top: 0.6666667em;\n padding-inline-end: 1em;\n padding-bottom: 0.6666667em;\n padding-inline-start: 1em;\n}\n.void-scope .prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) :where(tbody td:first-child, tfoot td:first-child):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n padding-inline-start: 0;\n}\n.void-scope .prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) :where(tbody td:last-child, tfoot td:last-child):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n padding-inline-end: 0;\n}\n.void-scope .prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) :where(figure):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 1.7142857em;\n margin-bottom: 1.7142857em;\n}\n.void-scope .prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) :where(figure > *):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 0;\n margin-bottom: 0;\n}\n.void-scope .prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) :where(figcaption):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n font-size: 0.8571429em;\n line-height: 1.3333333;\n margin-top: 0.6666667em;\n}\n.void-scope .prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) :where(.prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) > :first-child):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-top: 0;\n}\n.void-scope .prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) :where(.prose-headings\\:void-prose-sm :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) > :last-child):not(:where([class~=void-not-prose], [class~=void-not-prose] *)) {\n margin-bottom: 0;\n}\n.void-scope .marker\\:void-text-inherit *::marker {\n color: inherit;\n}\n.void-scope .marker\\:void-text-inherit::marker {\n color: inherit;\n}\n.void-scope .placeholder\\:void-text-void-fg-3::-moz-placeholder {\n color: var(--void-fg-3);\n}\n.void-scope .placeholder\\:void-text-void-fg-3::placeholder {\n color: var(--void-fg-3);\n}\n.void-scope .focus-within\\:void-border-\\[rgba\\(255\\,255\\,255\\,0\\.12\\)\\]:focus-within {\n border-color: rgba(255, 255, 255, 0.12);\n}\n.void-scope .hover\\:-void-translate-y-0\\.5:hover {\n --tw-translate-y: -0.125rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.void-scope .hover\\:void-translate-y-\\[-1px\\]:hover {\n --tw-translate-y: -1px;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.void-scope .hover\\:void-cursor-pointer:hover {\n cursor: pointer;\n}\n.void-scope .hover\\:void-border-\\[rgba\\(255\\,255\\,255\\,0\\.12\\)\\]:hover {\n border-color: rgba(255, 255, 255, 0.12);\n}\n.void-scope .hover\\:void-border-void-border-1:hover {\n border-color: var(--void-border-1);\n}\n.void-scope .hover\\:void-border-void-border-3:hover {\n border-color: var(--void-border-3);\n}\n.void-scope .hover\\:void-border-white\\/40:hover {\n border-color: rgb(255 255 255 / 0.4);\n}\n.void-scope .hover\\:void-bg-\\[\\#1177cb\\]:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(17 119 203 / var(--tw-bg-opacity, 1));\n}\n.void-scope .hover\\:void-bg-\\[var\\(--vscode-button-hoverBackground\\)\\]:hover {\n background-color: var(--vscode-button-hoverBackground);\n}\n.void-scope .hover\\:void-bg-\\[var\\(--vscode-button-secondaryHoverBackground\\)\\]:hover {\n background-color: var(--vscode-button-secondaryHoverBackground);\n}\n.void-scope .hover\\:void-bg-black\\/10:hover {\n background-color: rgb(0 0 0 / 0.1);\n}\n.void-scope .hover\\:void-bg-black\\/80:hover {\n background-color: rgb(0 0 0 / 0.8);\n}\n.void-scope .hover\\:void-bg-blue-500:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(59 130 246 / var(--tw-bg-opacity, 1));\n}\n.void-scope .hover\\:void-bg-gray-500\\/20:hover {\n background-color: rgb(107 114 128 / 0.2);\n}\n.void-scope .hover\\:void-bg-green-500\\/20:hover {\n background-color: rgb(34 197 94 / 0.2);\n}\n.void-scope .hover\\:void-bg-orange-500\\/20:hover {\n background-color: rgb(249 115 22 / 0.2);\n}\n.void-scope .hover\\:void-bg-red-50:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(254 242 242 / var(--tw-bg-opacity, 1));\n}\n.void-scope .hover\\:void-bg-red-500\\/20:hover {\n background-color: rgb(239 68 68 / 0.2);\n}\n.void-scope .hover\\:void-bg-red-600:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(220 38 38 / var(--tw-bg-opacity, 1));\n}\n.void-scope .hover\\:void-bg-red-700:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(185 28 28 / var(--tw-bg-opacity, 1));\n}\n.void-scope .hover\\:void-bg-void-bg-2:hover {\n background-color: var(--void-bg-2);\n}\n.void-scope .hover\\:void-bg-void-bg-2-alt:hover {\n background-color: var(--void-bg-2-alt);\n}\n.void-scope .hover\\:void-bg-void-bg-3:hover {\n background-color: var(--void-bg-3);\n}\n.void-scope .hover\\:void-bg-white\\/10:hover {\n background-color: rgb(255 255 255 / 0.1);\n}\n.void-scope .hover\\:void-bg-white\\/60:hover {\n background-color: rgb(255 255 255 / 0.6);\n}\n.void-scope .hover\\:void-bg-zinc-700\\/10:hover {\n background-color: rgb(63 63 70 / 0.1);\n}\n.void-scope .hover\\:void-text-blue-300:hover {\n --tw-text-opacity: 1;\n color: rgb(147 197 253 / var(--tw-text-opacity, 1));\n}\n.void-scope .hover\\:void-text-blue-400:hover {\n --tw-text-opacity: 1;\n color: rgb(96 165 250 / var(--tw-text-opacity, 1));\n}\n.void-scope .hover\\:void-text-red-800:hover {\n --tw-text-opacity: 1;\n color: rgb(153 27 27 / var(--tw-text-opacity, 1));\n}\n.void-scope .hover\\:void-text-void-fg-0:hover {\n color: var(--void-fg-0);\n}\n.void-scope .hover\\:void-text-void-fg-1:hover {\n color: var(--void-fg-1);\n}\n.void-scope .hover\\:void-text-void-fg-2:hover {\n color: var(--void-fg-2);\n}\n.void-scope .hover\\:void-text-white:hover {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\n}\n.void-scope .hover\\:void-text-white\\/80:hover {\n color: rgb(255 255 255 / 0.8);\n}\n.void-scope .hover\\:void-opacity-100:hover {\n opacity: 1;\n}\n.void-scope .hover\\:void-opacity-90:hover {\n opacity: 0.9;\n}\n.void-scope .hover\\:void-shadow-\\[0_30px_70px_rgba\\(0\\,0\\,0\\,0\\.65\\)\\]:hover {\n --tw-shadow: 0 30px 70px rgba(0,0,0,0.65);\n --tw-shadow-colored: 0 30px 70px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.void-scope .hover\\:void-shadow-\\[0_45px_100px_rgba\\(0\\,0\\,0\\,0\\.7\\)\\]:hover {\n --tw-shadow: 0 45px 100px rgba(0,0,0,0.7);\n --tw-shadow-colored: 0 45px 100px var(--tw-shadow-color);\n box-shadow:\n var(--tw-ring-offset-shadow, 0 0 #0000),\n var(--tw-ring-shadow, 0 0 #0000),\n var(--tw-shadow);\n}\n.void-scope .hover\\:void-brightness-110:hover {\n --tw-brightness: brightness(1.1);\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n.void-scope .hover\\:void-brightness-125:hover {\n --tw-brightness: brightness(1.25);\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n.void-scope .hover\\:void-brightness-75:hover {\n --tw-brightness: brightness(.75);\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n.void-scope .hover\\:void-brightness-90:hover {\n --tw-brightness: brightness(.9);\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n.void-scope .hover\\:void-brightness-95:hover {\n --tw-brightness: brightness(.95);\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n.void-scope .focus\\:void-border-void-border-1:focus {\n border-color: var(--void-border-1);\n}\n.void-scope .focus\\:void-outline-none:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.void-scope .focus\\:void-ring-2:focus {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow:\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow, 0 0 #0000);\n}\n.void-scope .focus\\:void-ring-green-500\\/40:focus {\n --tw-ring-color: rgb(34 197 94 / 0.4);\n}\n.void-scope .focus\\:void-ring-orange-500\\/40:focus {\n --tw-ring-color: rgb(249 115 22 / 0.4);\n}\n.void-scope .focus\\:void-ring-red-500\\/40:focus {\n --tw-ring-color: rgb(239 68 68 / 0.4);\n}\n.void-scope .focus-visible\\:void-ring-2:focus-visible {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow:\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow, 0 0 #0000);\n}\n.void-scope .focus-visible\\:void-ring-white\\/20:focus-visible {\n --tw-ring-color: rgb(255 255 255 / 0.2);\n}\n.void-scope .focus-visible\\:void-ring-offset-2:focus-visible {\n --tw-ring-offset-width: 2px;\n}\n.void-scope .focus-visible\\:void-ring-offset-\\[\\#050612\\]:focus-visible {\n --tw-ring-offset-color: #050612;\n}\n.void-scope .active\\:void-scale-\\[0\\.98\\]:active {\n --tw-scale-x: 0.98;\n --tw-scale-y: 0.98;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.void-scope .active\\:void-cursor-grabbing:active {\n cursor: grabbing;\n}\n.void-scope .disabled\\:void-cursor-not-allowed:disabled {\n cursor: not-allowed;\n}\n.void-scope .disabled\\:void-opacity-40:disabled {\n opacity: 0.4;\n}\n.void-scope .disabled\\:void-opacity-50:disabled {\n opacity: 0.5;\n}\n.void-scope .disabled\\:void-opacity-60:disabled {\n opacity: 0.6;\n}\n.void-scope .void-group:hover .group-hover\\:void-scale-\\[1\\.02\\] {\n --tw-scale-x: 1.02;\n --tw-scale-y: 1.02;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.void-scope .void-group:hover .group-hover\\:void-border-void-border-1 {\n border-color: var(--void-border-1);\n}\n.void-scope .void-group:hover .group-hover\\:void-text-blue-300 {\n --tw-text-opacity: 1;\n color: rgb(147 197 253 / var(--tw-text-opacity, 1));\n}\n.void-scope .void-group:hover .group-hover\\:void-text-void-fg-3 {\n color: var(--void-fg-3);\n}\n.void-scope .void-group:hover .group-hover\\:void-opacity-100 {\n opacity: 1;\n}\n.void-scope .prose-headings\\:void-font-bold :is(:where(h1, h2, h3, h4, h5, h6, th):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) {\n font-weight: 700;\n}\n.void-scope .prose-h1\\:void-my-4 :is(:where(h1):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) {\n margin-top: 1rem;\n margin-bottom: 1rem;\n}\n.void-scope .prose-h1\\:void-text-\\[14px\\] :is(:where(h1):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) {\n font-size: 14px;\n}\n.void-scope .prose-h2\\:void-my-4 :is(:where(h2):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) {\n margin-top: 1rem;\n margin-bottom: 1rem;\n}\n.void-scope .prose-h2\\:void-text-\\[13px\\] :is(:where(h2):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) {\n font-size: 13px;\n}\n.void-scope .prose-h3\\:void-my-3 :is(:where(h3):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) {\n margin-top: 0.75rem;\n margin-bottom: 0.75rem;\n}\n.void-scope .prose-h3\\:void-text-\\[13px\\] :is(:where(h3):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) {\n font-size: 13px;\n}\n.void-scope .prose-h4\\:void-my-2 :is(:where(h4):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) {\n margin-top: 0.5rem;\n margin-bottom: 0.5rem;\n}\n.void-scope .prose-h4\\:void-text-\\[13px\\] :is(:where(h4):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) {\n font-size: 13px;\n}\n.void-scope .prose-p\\:void-my-0 :is(:where(p):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) {\n margin-top: 0px;\n margin-bottom: 0px;\n}\n.void-scope .prose-p\\:void-my-2 :is(:where(p):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) {\n margin-top: 0.5rem;\n margin-bottom: 0.5rem;\n}\n.void-scope .prose-p\\:void-block :is(:where(p):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) {\n display: block;\n}\n.void-scope .prose-p\\:void-py-0 :is(:where(p):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) {\n padding-top: 0px;\n padding-bottom: 0px;\n}\n.void-scope .prose-p\\:void-leading-normal :is(:where(p):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) {\n line-height: 1.5;\n}\n.void-scope .prose-p\\:void-leading-snug :is(:where(p):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) {\n line-height: 1.375;\n}\n.void-scope .prose-blockquote\\:void-my-2 :is(:where(blockquote):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) {\n margin-top: 0.5rem;\n margin-bottom: 0.5rem;\n}\n.void-scope .prose-blockquote\\:void-pl-2 :is(:where(blockquote):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) {\n padding-left: 0.5rem;\n}\n.void-scope .prose-code\\:void-text-\\[12px\\] :is(:where(code):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) {\n font-size: 12px;\n}\n.void-scope .prose-code\\:void-text-void-fg-3 :is(:where(code):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) {\n color: var(--void-fg-3);\n}\n.void-scope .prose-code\\:before\\:void-content-none :is(:where(code):not(:where([class~=void-not-prose], [class~=void-not-prose] *)))::before {\n --tw-content: none;\n content: var(--tw-content);\n}\n.void-scope .prose-code\\:after\\:void-content-none :is(:where(code):not(:where([class~=void-not-prose], [class~=void-not-prose] *)))::after {\n --tw-content: none;\n content: var(--tw-content);\n}\n.void-scope .prose-pre\\:void-my-2 :is(:where(pre):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) {\n margin-top: 0.5rem;\n margin-bottom: 0.5rem;\n}\n.void-scope .prose-pre\\:void-p-2 :is(:where(pre):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) {\n padding: 0.5rem;\n}\n.void-scope .prose-pre\\:void-text-\\[12px\\] :is(:where(pre):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) {\n font-size: 12px;\n}\n.void-scope .prose-ol\\:void-my-0 :is(:where(ol):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) {\n margin-top: 0px;\n margin-bottom: 0px;\n}\n.void-scope .prose-ol\\:void-my-2 :is(:where(ol):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) {\n margin-top: 0.5rem;\n margin-bottom: 0.5rem;\n}\n.void-scope .prose-ol\\:void-list-outside :is(:where(ol):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) {\n list-style-position: outside;\n}\n.void-scope .prose-ol\\:void-list-decimal :is(:where(ol):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) {\n list-style-type: decimal;\n}\n.void-scope .prose-ol\\:void-py-0 :is(:where(ol):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) {\n padding-top: 0px;\n padding-bottom: 0px;\n}\n.void-scope .prose-ol\\:void-pl-4 :is(:where(ol):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) {\n padding-left: 1rem;\n}\n.void-scope .prose-ol\\:void-leading-normal :is(:where(ol):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) {\n line-height: 1.5;\n}\n.void-scope .prose-ol\\:void-leading-snug :is(:where(ol):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) {\n line-height: 1.375;\n}\n.void-scope .prose-ul\\:void-my-2 :is(:where(ul):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) {\n margin-top: 0.5rem;\n margin-bottom: 0.5rem;\n}\n.void-scope .prose-ul\\:void-list-outside :is(:where(ul):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) {\n list-style-position: outside;\n}\n.void-scope .prose-ul\\:void-list-disc :is(:where(ul):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) {\n list-style-type: disc;\n}\n.void-scope .prose-ul\\:void-pl-4 :is(:where(ul):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) {\n padding-left: 1rem;\n}\n.void-scope .prose-ul\\:void-leading-normal :is(:where(ul):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) {\n line-height: 1.5;\n}\n.void-scope .prose-ul\\:void-leading-snug :is(:where(ul):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) {\n line-height: 1.375;\n}\n.void-scope .prose-li\\:void-my-0 :is(:where(li):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) {\n margin-top: 0px;\n margin-bottom: 0px;\n}\n.void-scope .prose-table\\:void-text-\\[13px\\] :is(:where(table):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) {\n font-size: 13px;\n}\n.void-scope .prose-hr\\:void-my-2 :is(:where(hr):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) {\n margin-top: 0.5rem;\n margin-bottom: 0.5rem;\n}\n.void-scope .prose-hr\\:void-my-4 :is(:where(hr):not(:where([class~=void-not-prose], [class~=void-not-prose] *))) {\n margin-top: 1rem;\n margin-bottom: 1rem;\n}\n@media (min-width: 768px) {\n .void-scope .md\\:void-mx-0 {\n margin-left: 0px;\n margin-right: 0px;\n }\n .void-scope .md\\:void-max-h-\\[300px\\] {\n max-height: 300px;\n }\n .void-scope .md\\:void-max-h-\\[400px\\] {\n max-height: 400px;\n }\n .void-scope .md\\:void-w-1\\/3 {\n width: 33.333333%;\n }\n .void-scope .md\\:void-w-1\\/4 {\n width: 25%;\n }\n .void-scope .md\\:void-flex-row {\n flex-direction: row;\n }\n .void-scope .md\\:void-flex-col {\n flex-direction: column;\n }\n .void-scope .md\\:void-text-left {\n text-align: left;\n }\n}\n@media (min-width: 1024px) {\n .void-scope .lg\\:void-mx-0 {\n margin-left: 0px;\n margin-right: 0px;\n }\n .void-scope .lg\\:void-flex-row {\n flex-direction: row;\n }\n .void-scope .lg\\:void-justify-start {\n justify-content: flex-start;\n }\n .void-scope .lg\\:void-text-left {\n text-align: left;\n }\n}\n.void-scope .dark\\:void-bg-white:where(.void-dark, .void-dark *) {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n}\n.void-scope .dark\\:void-bg-white\\/10:where(.void-dark, .void-dark *) {\n background-color: rgb(255 255 255 / 0.1);\n}\n.void-scope .dark\\:void-bg-zinc-300\\/5:where(.void-dark, .void-dark *) {\n background-color: rgb(212 212 216 / 0.05);\n}\n.void-scope .dark\\:void-bg-zinc-600:where(.void-dark, .void-dark *) {\n --tw-bg-opacity: 1;\n background-color: rgb(82 82 91 / var(--tw-bg-opacity, 1));\n}\n.void-scope .dark\\:void-bg-zinc-900:where(.void-dark, .void-dark *) {\n --tw-bg-opacity: 1;\n background-color: rgb(24 24 27 / var(--tw-bg-opacity, 1));\n}\n.void-scope .dark\\:hover\\:void-bg-gray-300\\/10:hover:where(.void-dark, .void-dark *) {\n background-color: rgb(209 213 219 / 0.1);\n}\n.void-scope .dark\\:hover\\:void-bg-zinc-300\\/10:hover:where(.void-dark, .void-dark *) {\n background-color: rgb(212 212 216 / 0.1);\n}\n.void-scope .\\[\\&\\>\\*\\:first-child\\]\\:void-pl-3 > *:first-child {\n padding-left: 0.75rem;\n}\n.void-scope .\\[\\&\\>\\*\\:last-child\\]\\:void-border-r-0 > *:last-child {\n border-right-width: 0px;\n}\n.void-scope .\\[\\&\\>\\*\\:last-child\\]\\:void-pr-3 > *:last-child {\n padding-right: 0.75rem;\n}\n.void-scope .\\[\\&\\>\\*\\]\\:void-border-r > * {\n border-right-width: 1px;\n}\n.void-scope .\\[\\&\\>\\*\\]\\:void-border-void-border-2 > * {\n border-color: var(--void-border-2);\n}\n.void-scope .\\[\\&\\>\\*\\]\\:void-px-3 > * {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n}\n.void-scope .\\[\\&\\>\\:first-child\\]\\:\\!void-mt-0 > :first-child {\n margin-top: 0px !important;\n}\n.void-scope .\\[\\&\\>\\:last-child\\]\\:\\!void-mb-0 > :last-child {\n margin-bottom: 0px !important;\n}\n.void-scope .\\[\\&_select\\]\\:\\!void-text-xs select {\n font-size: 10px !important;\n}\n.void-scope .\\[\\&_select\\]\\:\\!void-text-void-fg-3 select {\n color: var(--void-fg-3) !important;\n}\n'); + +export { styleInject }; diff --git a/src/out/vs/workbench/contrib/cortexide/browser/react/out/chunk-GKOTMYUK.js b/src/out/vs/workbench/contrib/cortexide/browser/react/out/chunk-GKOTMYUK.js new file mode 100644 index 00000000000..d1df29d61bf --- /dev/null +++ b/src/out/vs/workbench/contrib/cortexide/browser/react/out/chunk-GKOTMYUK.js @@ -0,0 +1,11930 @@ +import { ChevronRight, CircleEllipsis, Check, X, File, TriangleAlert, Ban, Dot, Pencil, CirclePlus, Info, Folder, Text, FileText, ChevronLeft, FileSymlink, Copy, Play, Square, Image as Image$1, Plus, Asterisk, CircleAlert, ChevronUp, ChevronDown, RefreshCw, RotateCcw, LoaderCircle, MessageCircleQuestion, Trash2 } from './chunk-PT4A2IRQ.js'; +import { offset, flip, shift, size, isElement, autoUpdate, computePosition } from './chunk-SWVXQVDT.js'; +import { require_react, require_jsx_runtime, require_react_dom, useAccessor, useChatThreadsState, useChatThreadsStreamState, useSettingsState, useFullChatThreadsStreamState, useActiveURI, useCommandBarURIListener, useIsDark, useIsOptedOut, useCommandBarState, useMCPServiceState, useRefreshModelState, useRefreshModelListener } from './chunk-RJP66NWB.js'; +import { __toESM } from './chunk-JSBRDJBE.js'; +import { isFeatureNameDisabled, providerNames, displayInfoOfProviderName, isProviderNameDisabled, customSettingNamesOfProvider, subTextMdOfProviderName, localProviderNames, nonlocalProviderNames, displayInfoOfFeatureName, displayInfoOfSettingName, refreshableProviderNames } from 'vs/workbench/contrib/cortexide/common/cortexideSettingsTypes.js'; +import { ScrollType } from 'vs/editor/common/editorCommon.js'; +import { convertToVscodeLang, detectLanguage } from 'vs/workbench/contrib/cortexide/common/helpers/languageHelpers.js'; +import { URI } from 'vs/base/common/uri.js'; +import { isAbsolute } from 'vs/base/common/path.js'; +import { separateOutFirstLine } from 'vs/workbench/contrib/cortexide/common/helpers/util.js'; +import 'vs/base/browser/ui/inputbox/inputBox.js'; +import 'vs/platform/theme/browser/defaultStyles.js'; +import 'vs/base/browser/ui/selectBox/selectBox.js'; +import 'vs/base/browser/ui/toggle/toggle.js'; +import { CodeEditorWidget } from 'vs/editor/browser/widget/codeEditor/codeEditorWidget.js'; +import { asCssVariable } from 'vs/platform/theme/common/colorUtils.js'; +import { inputForeground, inputBackground } from 'vs/platform/theme/common/colorRegistry.js'; +import { DiffEditorWidget } from 'vs/editor/browser/widget/diffEditor/diffEditorWidget.js'; +import { extractSearchReplaceBlocks } from 'vs/workbench/contrib/cortexide/common/helpers/extractCodeFromResult.js'; +import { errorDetails } from 'vs/workbench/contrib/cortexide/common/sendLLMMessageTypes.js'; +import { toErrorMessage } from 'vs/base/common/errorMessage.js'; +import { isFeatureNameDisabled as isFeatureNameDisabled$1, isValidProviderModelSelection, modelSelectionsEqual } from 'vs/workbench/contrib/cortexide/common/cortexideSettingsTypes.js'; +import { CORTEXIDE_OPEN_SETTINGS_ACTION_ID, CORTEXIDE_CTRL_L_ACTION_ID } from 'vs/workbench/contrib/cortexide/browser/actionIDs.js'; +import { modelFilterOfFeatureName } from 'vs/workbench/contrib/cortexide/common/cortexideSettingsService.js'; +import { getModelCapabilities, getIsReasoningEnabledState, getReservedOutputTokenSpace, modelOverrideKeys } from 'vs/workbench/contrib/cortexide/common/modelCapabilities.js'; +import { approvalTypeOfBuiltinToolName, toolApprovalTypes } from 'vs/workbench/contrib/cortexide/common/toolsServiceTypes.js'; +import { isABuiltinToolName, builtinToolNames, MAX_FILE_CHARS_PAGE } from 'vs/workbench/contrib/cortexide/common/prompt/prompts.js'; +import { persistentTerminalNameOfId } from 'vs/workbench/contrib/cortexide/browser/terminalToolService.js'; +import { removeMCPToolNamePrefix } from 'vs/workbench/contrib/cortexide/common/mcpServiceTypes.js'; +import { getPDFService } from 'vs/workbench/contrib/cortexide/common/pdfService.js'; +import { os } from 'vs/workbench/contrib/cortexide/common/helpers/systemInfo.js'; +import Severity from 'vs/base/common/severity.js'; +import { OPT_OUT_KEY } from 'vs/workbench/contrib/cortexide/common/storageKeys.js'; +import { StorageScope, StorageTarget } from 'vs/platform/storage/common/storage.js'; + +// src2/void-settings-tsx/Settings.tsx +var import_react21 = __toESM(require_react(), 1); + +// src2/sidebar-tsx/ErrorBoundary.tsx +var import_react20 = __toESM(require_react(), 1); + +// src2/sidebar-tsx/SidebarChat.tsx +var import_react19 = __toESM(require_react(), 1); + +// src2/markdown/ChatMarkdownRender.tsx +var import_react7 = __toESM(require_react(), 1); + +// ../../../../../../../node_modules/marked/lib/marked.esm.js +function _getDefaults() { + return { + async: false, + breaks: false, + extensions: null, + gfm: true, + hooks: null, + pedantic: false, + renderer: null, + silent: false, + tokenizer: null, + walkTokens: null + }; +} +var _defaults = _getDefaults(); +function changeDefaults(newDefaults) { + _defaults = newDefaults; +} +var noopTest = { exec: () => null }; +function edit(regex, opt = "") { + let source = typeof regex === "string" ? regex : regex.source; + const obj = { + replace: (name, val) => { + let valSource = typeof val === "string" ? val : val.source; + valSource = valSource.replace(other.caret, "$1"); + source = source.replace(name, valSource); + return obj; + }, + getRegex: () => { + return new RegExp(source, opt); + } + }; + return obj; +} +var other = { + codeRemoveIndent: /^(?: {1,4}| {0,3}\t)/gm, + outputLinkReplace: /\\([\[\]])/g, + indentCodeCompensation: /^(\s+)(?:```)/, + beginningSpace: /^\s+/, + endingHash: /#$/, + startingSpaceChar: /^ /, + endingSpaceChar: / $/, + nonSpaceChar: /[^ ]/, + newLineCharGlobal: /\n/g, + tabCharGlobal: /\t/g, + multipleSpaceGlobal: /\s+/g, + blankLine: /^[ \t]*$/, + doubleBlankLine: /\n[ \t]*\n[ \t]*$/, + blockquoteStart: /^ {0,3}>/, + blockquoteSetextReplace: /\n {0,3}((?:=+|-+) *)(?=\n|$)/g, + blockquoteSetextReplace2: /^ {0,3}>[ \t]?/gm, + listReplaceTabs: /^\t+/, + listReplaceNesting: /^ {1,4}(?=( {4})*[^ ])/g, + listIsTask: /^\[[ xX]\] /, + listReplaceTask: /^\[[ xX]\] +/, + anyLine: /\n.*\n/, + hrefBrackets: /^<(.*)>$/, + tableDelimiter: /[:|]/, + tableAlignChars: /^\||\| *$/g, + tableRowBlankLine: /\n[ \t]*$/, + tableAlignRight: /^ *-+: *$/, + tableAlignCenter: /^ *:-+: *$/, + tableAlignLeft: /^ *:-+ *$/, + startATag: /^/i, + startPreScriptTag: /^<(pre|code|kbd|script)(\s|>)/i, + endPreScriptTag: /^<\/(pre|code|kbd|script)(\s|>)/i, + startAngleBracket: /^$/, + pedanticHrefTitle: /^([^'"]*[^\s])\s+(['"])(.*)\2/, + unicodeAlphaNumeric: /[\p{L}\p{N}]/u, + escapeTest: /[&<>"']/, + escapeReplace: /[&<>"']/g, + escapeTestNoEncode: /[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/, + escapeReplaceNoEncode: /[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g, + unescapeTest: /&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig, + caret: /(^|[^\[])\^/g, + percentDecode: /%25/g, + findPipe: /\|/g, + splitPipe: / \|/, + slashPipe: /\\\|/g, + carriageReturn: /\r\n|\r/g, + spaceLine: /^ +$/gm, + notSpaceStart: /^\S*/, + endingNewline: /\n$/, + listItemRegex: (bull) => new RegExp(`^( {0,3}${bull})((?:[ ][^\\n]*)?(?:\\n|$))`), + nextBulletRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`), + hrRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`), + fencesBeginRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:\`\`\`|~~~)`), + headingBeginRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}#`), + htmlBeginRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}<(?:[a-z].*>|!--)`, "i") +}; +var newline = /^(?:[ \t]*(?:\n|$))+/; +var blockCode = /^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/; +var fences = /^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/; +var hr = /^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/; +var heading = /^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/; +var bullet = /(?:[*+-]|\d{1,9}[.)])/; +var lheadingCore = /^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/; +var lheading = edit(lheadingCore).replace(/bull/g, bullet).replace(/blockCode/g, /(?: {4}| {0,3}\t)/).replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g, / {0,3}>/).replace(/heading/g, / {0,3}#{1,6}/).replace(/html/g, / {0,3}<[^\n>]+>\n/).replace(/\|table/g, "").getRegex(); +var lheadingGfm = edit(lheadingCore).replace(/bull/g, bullet).replace(/blockCode/g, /(?: {4}| {0,3}\t)/).replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g, / {0,3}>/).replace(/heading/g, / {0,3}#{1,6}/).replace(/html/g, / {0,3}<[^\n>]+>\n/).replace(/table/g, / {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(); +var _paragraph = /^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/; +var blockText = /^[^\n]+/; +var _blockLabel = /(?!\s*\])(?:\\.|[^\[\]\\])+/; +var def = edit(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label", _blockLabel).replace("title", /(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(); +var list = edit(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g, bullet).getRegex(); +var _tag = "address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul"; +var _comment = /|$))/; +var html = edit( + "^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))", + "i" +).replace("comment", _comment).replace("tag", _tag).replace("attribute", / +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(); +var paragraph = edit(_paragraph).replace("hr", hr).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("|lheading", "").replace("|table", "").replace("blockquote", " {0,3}>").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list", " {0,3}(?:[*+-]|1[.)]) ").replace("html", ")|<(?:script|pre|style|textarea|!--)").replace("tag", _tag).getRegex(); +var blockquote = edit(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph", paragraph).getRegex(); +var blockNormal = { + blockquote, + code: blockCode, + def, + fences, + heading, + hr, + html, + lheading, + list, + newline, + paragraph, + table: noopTest, + text: blockText +}; +var gfmTable = edit( + "^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)" +).replace("hr", hr).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("blockquote", " {0,3}>").replace("code", "(?: {4}| {0,3} )[^\\n]").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list", " {0,3}(?:[*+-]|1[.)]) ").replace("html", ")|<(?:script|pre|style|textarea|!--)").replace("tag", _tag).getRegex(); +var blockGfm = { + ...blockNormal, + lheading: lheadingGfm, + table: gfmTable, + paragraph: edit(_paragraph).replace("hr", hr).replace("heading", " {0,3}#{1,6}(?:\\s|$)").replace("|lheading", "").replace("table", gfmTable).replace("blockquote", " {0,3}>").replace("fences", " {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list", " {0,3}(?:[*+-]|1[.)]) ").replace("html", ")|<(?:script|pre|style|textarea|!--)").replace("tag", _tag).getRegex() +}; +var blockPedantic = { + ...blockNormal, + html: edit( + `^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))` + ).replace("comment", _comment).replace(/tag/g, "(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(), + def: /^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/, + heading: /^(#{1,6})(.*)(?:\n+|$)/, + fences: noopTest, + // fences not supported + lheading: /^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/, + paragraph: edit(_paragraph).replace("hr", hr).replace("heading", " *#{1,6} *[^\n]").replace("lheading", lheading).replace("|table", "").replace("blockquote", " {0,3}>").replace("|fences", "").replace("|list", "").replace("|html", "").replace("|tag", "").getRegex() +}; +var escape = /^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/; +var inlineCode = /^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/; +var br = /^( {2,}|\\)\n(?!\s*$)/; +var inlineText = /^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\]*?>/g; +var emStrongLDelimCore = /^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/; +var emStrongLDelim = edit(emStrongLDelimCore, "u").replace(/punct/g, _punctuation).getRegex(); +var emStrongLDelimGfm = edit(emStrongLDelimCore, "u").replace(/punct/g, _punctuationGfmStrongEm).getRegex(); +var emStrongRDelimAstCore = "^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)"; +var emStrongRDelimAst = edit(emStrongRDelimAstCore, "gu").replace(/notPunctSpace/g, _notPunctuationOrSpace).replace(/punctSpace/g, _punctuationOrSpace).replace(/punct/g, _punctuation).getRegex(); +var emStrongRDelimAstGfm = edit(emStrongRDelimAstCore, "gu").replace(/notPunctSpace/g, _notPunctuationOrSpaceGfmStrongEm).replace(/punctSpace/g, _punctuationOrSpaceGfmStrongEm).replace(/punct/g, _punctuationGfmStrongEm).getRegex(); +var emStrongRDelimUnd = edit( + "^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)", + "gu" +).replace(/notPunctSpace/g, _notPunctuationOrSpace).replace(/punctSpace/g, _punctuationOrSpace).replace(/punct/g, _punctuation).getRegex(); +var anyPunctuation = edit(/\\(punct)/, "gu").replace(/punct/g, _punctuation).getRegex(); +var autolink = edit(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme", /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email", /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(); +var _inlineComment = edit(_comment).replace("(?:-->|$)", "-->").getRegex(); +var tag = edit( + "^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^" +).replace("comment", _inlineComment).replace("attribute", /\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(); +var _inlineLabel = /(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/; +var link = edit(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label", _inlineLabel).replace("href", /<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title", /"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(); +var reflink = edit(/^!?\[(label)\]\[(ref)\]/).replace("label", _inlineLabel).replace("ref", _blockLabel).getRegex(); +var nolink = edit(/^!?\[(ref)\](?:\[\])?/).replace("ref", _blockLabel).getRegex(); +var reflinkSearch = edit("reflink|nolink(?!\\()", "g").replace("reflink", reflink).replace("nolink", nolink).getRegex(); +var inlineNormal = { + _backpedal: noopTest, + // only used for GFM url + anyPunctuation, + autolink, + blockSkip, + br, + code: inlineCode, + del: noopTest, + emStrongLDelim, + emStrongRDelimAst, + emStrongRDelimUnd, + escape, + link, + nolink, + punctuation, + reflink, + reflinkSearch, + tag, + text: inlineText, + url: noopTest +}; +var inlinePedantic = { + ...inlineNormal, + link: edit(/^!?\[(label)\]\((.*?)\)/).replace("label", _inlineLabel).getRegex(), + reflink: edit(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label", _inlineLabel).getRegex() +}; +var inlineGfm = { + ...inlineNormal, + emStrongRDelimAst: emStrongRDelimAstGfm, + emStrongLDelim: emStrongLDelimGfm, + url: edit(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/, "i").replace("email", /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(), + _backpedal: /(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/, + del: /^(~~?)(?=[^\s~])((?:\\.|[^\\])*?(?:\\.|[^\s~\\]))\1(?=[^~]|$)/, + text: /^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\": ">", + '"': """, + "'": "'" +}; +var getEscapeReplacement = (ch) => escapeReplacements[ch]; +function escape2(html2, encode) { + if (encode) { + if (other.escapeTest.test(html2)) { + return html2.replace(other.escapeReplace, getEscapeReplacement); + } + } else { + if (other.escapeTestNoEncode.test(html2)) { + return html2.replace(other.escapeReplaceNoEncode, getEscapeReplacement); + } + } + return html2; +} +function cleanUrl(href) { + try { + href = encodeURI(href).replace(other.percentDecode, "%"); + } catch { + return null; + } + return href; +} +function splitCells(tableRow, count2) { + const row = tableRow.replace(other.findPipe, (match, offset3, str) => { + let escaped = false; + let curr = offset3; + while (--curr >= 0 && str[curr] === "\\") escaped = !escaped; + if (escaped) { + return "|"; + } else { + return " |"; + } + }), cells = row.split(other.splitPipe); + let i = 0; + if (!cells[0].trim()) { + cells.shift(); + } + if (cells.length > 0 && !cells.at(-1)?.trim()) { + cells.pop(); + } + if (count2) { + if (cells.length > count2) { + cells.splice(count2); + } else { + while (cells.length < count2) cells.push(""); + } + } + for (; i < cells.length; i++) { + cells[i] = cells[i].trim().replace(other.slashPipe, "|"); + } + return cells; +} +function rtrim(str, c, invert) { + const l = str.length; + if (l === 0) { + return ""; + } + let suffLen = 0; + while (suffLen < l) { + const currChar = str.charAt(l - suffLen - 1); + if (currChar === c && true) { + suffLen++; + } else { + break; + } + } + return str.slice(0, l - suffLen); +} +function findClosingBracket(str, b) { + if (str.indexOf(b[1]) === -1) { + return -1; + } + let level = 0; + for (let i = 0; i < str.length; i++) { + if (str[i] === "\\") { + i++; + } else if (str[i] === b[0]) { + level++; + } else if (str[i] === b[1]) { + level--; + if (level < 0) { + return i; + } + } + } + if (level > 0) { + return -2; + } + return -1; +} +function outputLink(cap, link2, raw, lexer2, rules) { + const href = link2.href; + const title = link2.title || null; + const text = cap[1].replace(rules.other.outputLinkReplace, "$1"); + lexer2.state.inLink = true; + const token = { + type: cap[0].charAt(0) === "!" ? "image" : "link", + raw, + href, + title, + text, + tokens: lexer2.inlineTokens(text) + }; + lexer2.state.inLink = false; + return token; +} +function indentCodeCompensation(raw, text, rules) { + const matchIndentToCode = raw.match(rules.other.indentCodeCompensation); + if (matchIndentToCode === null) { + return text; + } + const indentToCode = matchIndentToCode[1]; + return text.split("\n").map((node) => { + const matchIndentInNode = node.match(rules.other.beginningSpace); + if (matchIndentInNode === null) { + return node; + } + const [indentInNode] = matchIndentInNode; + if (indentInNode.length >= indentToCode.length) { + return node.slice(indentToCode.length); + } + return node; + }).join("\n"); +} +var _Tokenizer = class { + options; + rules; + // set by the lexer + lexer; + // set by the lexer + constructor(options2) { + this.options = options2 || _defaults; + } + space(src) { + const cap = this.rules.block.newline.exec(src); + if (cap && cap[0].length > 0) { + return { + type: "space", + raw: cap[0] + }; + } + } + code(src) { + const cap = this.rules.block.code.exec(src); + if (cap) { + const text = cap[0].replace(this.rules.other.codeRemoveIndent, ""); + return { + type: "code", + raw: cap[0], + codeBlockStyle: "indented", + text: !this.options.pedantic ? rtrim(text, "\n") : text + }; + } + } + fences(src) { + const cap = this.rules.block.fences.exec(src); + if (cap) { + const raw = cap[0]; + const text = indentCodeCompensation(raw, cap[3] || "", this.rules); + return { + type: "code", + raw, + lang: cap[2] ? cap[2].trim().replace(this.rules.inline.anyPunctuation, "$1") : cap[2], + text + }; + } + } + heading(src) { + const cap = this.rules.block.heading.exec(src); + if (cap) { + let text = cap[2].trim(); + if (this.rules.other.endingHash.test(text)) { + const trimmed = rtrim(text, "#"); + if (this.options.pedantic) { + text = trimmed.trim(); + } else if (!trimmed || this.rules.other.endingSpaceChar.test(trimmed)) { + text = trimmed.trim(); + } + } + return { + type: "heading", + raw: cap[0], + depth: cap[1].length, + text, + tokens: this.lexer.inline(text) + }; + } + } + hr(src) { + const cap = this.rules.block.hr.exec(src); + if (cap) { + return { + type: "hr", + raw: rtrim(cap[0], "\n") + }; + } + } + blockquote(src) { + const cap = this.rules.block.blockquote.exec(src); + if (cap) { + let lines = rtrim(cap[0], "\n").split("\n"); + let raw = ""; + let text = ""; + const tokens = []; + while (lines.length > 0) { + let inBlockquote = false; + const currentLines = []; + let i; + for (i = 0; i < lines.length; i++) { + if (this.rules.other.blockquoteStart.test(lines[i])) { + currentLines.push(lines[i]); + inBlockquote = true; + } else if (!inBlockquote) { + currentLines.push(lines[i]); + } else { + break; + } + } + lines = lines.slice(i); + const currentRaw = currentLines.join("\n"); + const currentText = currentRaw.replace(this.rules.other.blockquoteSetextReplace, "\n $1").replace(this.rules.other.blockquoteSetextReplace2, ""); + raw = raw ? `${raw} +${currentRaw}` : currentRaw; + text = text ? `${text} +${currentText}` : currentText; + const top = this.lexer.state.top; + this.lexer.state.top = true; + this.lexer.blockTokens(currentText, tokens, true); + this.lexer.state.top = top; + if (lines.length === 0) { + break; + } + const lastToken = tokens.at(-1); + if (lastToken?.type === "code") { + break; + } else if (lastToken?.type === "blockquote") { + const oldToken = lastToken; + const newText = oldToken.raw + "\n" + lines.join("\n"); + const newToken = this.blockquote(newText); + tokens[tokens.length - 1] = newToken; + raw = raw.substring(0, raw.length - oldToken.raw.length) + newToken.raw; + text = text.substring(0, text.length - oldToken.text.length) + newToken.text; + break; + } else if (lastToken?.type === "list") { + const oldToken = lastToken; + const newText = oldToken.raw + "\n" + lines.join("\n"); + const newToken = this.list(newText); + tokens[tokens.length - 1] = newToken; + raw = raw.substring(0, raw.length - lastToken.raw.length) + newToken.raw; + text = text.substring(0, text.length - oldToken.raw.length) + newToken.raw; + lines = newText.substring(tokens.at(-1).raw.length).split("\n"); + continue; + } + } + return { + type: "blockquote", + raw, + tokens, + text + }; + } + } + list(src) { + let cap = this.rules.block.list.exec(src); + if (cap) { + let bull = cap[1].trim(); + const isordered = bull.length > 1; + const list2 = { + type: "list", + raw: "", + ordered: isordered, + start: isordered ? +bull.slice(0, -1) : "", + loose: false, + items: [] + }; + bull = isordered ? `\\d{1,9}\\${bull.slice(-1)}` : `\\${bull}`; + if (this.options.pedantic) { + bull = isordered ? bull : "[*+-]"; + } + const itemRegex = this.rules.other.listItemRegex(bull); + let endsWithBlankLine = false; + while (src) { + let endEarly = false; + let raw = ""; + let itemContents = ""; + if (!(cap = itemRegex.exec(src))) { + break; + } + if (this.rules.block.hr.test(src)) { + break; + } + raw = cap[0]; + src = src.substring(raw.length); + let line = cap[2].split("\n", 1)[0].replace(this.rules.other.listReplaceTabs, (t) => " ".repeat(3 * t.length)); + let nextLine = src.split("\n", 1)[0]; + let blankLine = !line.trim(); + let indent = 0; + if (this.options.pedantic) { + indent = 2; + itemContents = line.trimStart(); + } else if (blankLine) { + indent = cap[1].length + 1; + } else { + indent = cap[2].search(this.rules.other.nonSpaceChar); + indent = indent > 4 ? 1 : indent; + itemContents = line.slice(indent); + indent += cap[1].length; + } + if (blankLine && this.rules.other.blankLine.test(nextLine)) { + raw += nextLine + "\n"; + src = src.substring(nextLine.length + 1); + endEarly = true; + } + if (!endEarly) { + const nextBulletRegex = this.rules.other.nextBulletRegex(indent); + const hrRegex = this.rules.other.hrRegex(indent); + const fencesBeginRegex = this.rules.other.fencesBeginRegex(indent); + const headingBeginRegex = this.rules.other.headingBeginRegex(indent); + const htmlBeginRegex = this.rules.other.htmlBeginRegex(indent); + while (src) { + const rawLine = src.split("\n", 1)[0]; + let nextLineWithoutTabs; + nextLine = rawLine; + if (this.options.pedantic) { + nextLine = nextLine.replace(this.rules.other.listReplaceNesting, " "); + nextLineWithoutTabs = nextLine; + } else { + nextLineWithoutTabs = nextLine.replace(this.rules.other.tabCharGlobal, " "); + } + if (fencesBeginRegex.test(nextLine)) { + break; + } + if (headingBeginRegex.test(nextLine)) { + break; + } + if (htmlBeginRegex.test(nextLine)) { + break; + } + if (nextBulletRegex.test(nextLine)) { + break; + } + if (hrRegex.test(nextLine)) { + break; + } + if (nextLineWithoutTabs.search(this.rules.other.nonSpaceChar) >= indent || !nextLine.trim()) { + itemContents += "\n" + nextLineWithoutTabs.slice(indent); + } else { + if (blankLine) { + break; + } + if (line.replace(this.rules.other.tabCharGlobal, " ").search(this.rules.other.nonSpaceChar) >= 4) { + break; + } + if (fencesBeginRegex.test(line)) { + break; + } + if (headingBeginRegex.test(line)) { + break; + } + if (hrRegex.test(line)) { + break; + } + itemContents += "\n" + nextLine; + } + if (!blankLine && !nextLine.trim()) { + blankLine = true; + } + raw += rawLine + "\n"; + src = src.substring(rawLine.length + 1); + line = nextLineWithoutTabs.slice(indent); + } + } + if (!list2.loose) { + if (endsWithBlankLine) { + list2.loose = true; + } else if (this.rules.other.doubleBlankLine.test(raw)) { + endsWithBlankLine = true; + } + } + let istask = null; + let ischecked; + if (this.options.gfm) { + istask = this.rules.other.listIsTask.exec(itemContents); + if (istask) { + ischecked = istask[0] !== "[ ] "; + itemContents = itemContents.replace(this.rules.other.listReplaceTask, ""); + } + } + list2.items.push({ + type: "list_item", + raw, + task: !!istask, + checked: ischecked, + loose: false, + text: itemContents, + tokens: [] + }); + list2.raw += raw; + } + const lastItem = list2.items.at(-1); + if (lastItem) { + lastItem.raw = lastItem.raw.trimEnd(); + lastItem.text = lastItem.text.trimEnd(); + } else { + return; + } + list2.raw = list2.raw.trimEnd(); + for (let i = 0; i < list2.items.length; i++) { + this.lexer.state.top = false; + list2.items[i].tokens = this.lexer.blockTokens(list2.items[i].text, []); + if (!list2.loose) { + const spacers = list2.items[i].tokens.filter((t) => t.type === "space"); + const hasMultipleLineBreaks = spacers.length > 0 && spacers.some((t) => this.rules.other.anyLine.test(t.raw)); + list2.loose = hasMultipleLineBreaks; + } + } + if (list2.loose) { + for (let i = 0; i < list2.items.length; i++) { + list2.items[i].loose = true; + } + } + return list2; + } + } + html(src) { + const cap = this.rules.block.html.exec(src); + if (cap) { + const token = { + type: "html", + block: true, + raw: cap[0], + pre: cap[1] === "pre" || cap[1] === "script" || cap[1] === "style", + text: cap[0] + }; + return token; + } + } + def(src) { + const cap = this.rules.block.def.exec(src); + if (cap) { + const tag2 = cap[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal, " "); + const href = cap[2] ? cap[2].replace(this.rules.other.hrefBrackets, "$1").replace(this.rules.inline.anyPunctuation, "$1") : ""; + const title = cap[3] ? cap[3].substring(1, cap[3].length - 1).replace(this.rules.inline.anyPunctuation, "$1") : cap[3]; + return { + type: "def", + tag: tag2, + raw: cap[0], + href, + title + }; + } + } + table(src) { + const cap = this.rules.block.table.exec(src); + if (!cap) { + return; + } + if (!this.rules.other.tableDelimiter.test(cap[2])) { + return; + } + const headers = splitCells(cap[1]); + const aligns = cap[2].replace(this.rules.other.tableAlignChars, "").split("|"); + const rows = cap[3]?.trim() ? cap[3].replace(this.rules.other.tableRowBlankLine, "").split("\n") : []; + const item = { + type: "table", + raw: cap[0], + header: [], + align: [], + rows: [] + }; + if (headers.length !== aligns.length) { + return; + } + for (const align of aligns) { + if (this.rules.other.tableAlignRight.test(align)) { + item.align.push("right"); + } else if (this.rules.other.tableAlignCenter.test(align)) { + item.align.push("center"); + } else if (this.rules.other.tableAlignLeft.test(align)) { + item.align.push("left"); + } else { + item.align.push(null); + } + } + for (let i = 0; i < headers.length; i++) { + item.header.push({ + text: headers[i], + tokens: this.lexer.inline(headers[i]), + header: true, + align: item.align[i] + }); + } + for (const row of rows) { + item.rows.push(splitCells(row, item.header.length).map((cell, i) => { + return { + text: cell, + tokens: this.lexer.inline(cell), + header: false, + align: item.align[i] + }; + })); + } + return item; + } + lheading(src) { + const cap = this.rules.block.lheading.exec(src); + if (cap) { + return { + type: "heading", + raw: cap[0], + depth: cap[2].charAt(0) === "=" ? 1 : 2, + text: cap[1], + tokens: this.lexer.inline(cap[1]) + }; + } + } + paragraph(src) { + const cap = this.rules.block.paragraph.exec(src); + if (cap) { + const text = cap[1].charAt(cap[1].length - 1) === "\n" ? cap[1].slice(0, -1) : cap[1]; + return { + type: "paragraph", + raw: cap[0], + text, + tokens: this.lexer.inline(text) + }; + } + } + text(src) { + const cap = this.rules.block.text.exec(src); + if (cap) { + return { + type: "text", + raw: cap[0], + text: cap[0], + tokens: this.lexer.inline(cap[0]) + }; + } + } + escape(src) { + const cap = this.rules.inline.escape.exec(src); + if (cap) { + return { + type: "escape", + raw: cap[0], + text: cap[1] + }; + } + } + tag(src) { + const cap = this.rules.inline.tag.exec(src); + if (cap) { + if (!this.lexer.state.inLink && this.rules.other.startATag.test(cap[0])) { + this.lexer.state.inLink = true; + } else if (this.lexer.state.inLink && this.rules.other.endATag.test(cap[0])) { + this.lexer.state.inLink = false; + } + if (!this.lexer.state.inRawBlock && this.rules.other.startPreScriptTag.test(cap[0])) { + this.lexer.state.inRawBlock = true; + } else if (this.lexer.state.inRawBlock && this.rules.other.endPreScriptTag.test(cap[0])) { + this.lexer.state.inRawBlock = false; + } + return { + type: "html", + raw: cap[0], + inLink: this.lexer.state.inLink, + inRawBlock: this.lexer.state.inRawBlock, + block: false, + text: cap[0] + }; + } + } + link(src) { + const cap = this.rules.inline.link.exec(src); + if (cap) { + const trimmedUrl = cap[2].trim(); + if (!this.options.pedantic && this.rules.other.startAngleBracket.test(trimmedUrl)) { + if (!this.rules.other.endAngleBracket.test(trimmedUrl)) { + return; + } + const rtrimSlash = rtrim(trimmedUrl.slice(0, -1), "\\"); + if ((trimmedUrl.length - rtrimSlash.length) % 2 === 0) { + return; + } + } else { + const lastParenIndex = findClosingBracket(cap[2], "()"); + if (lastParenIndex === -2) { + return; + } + if (lastParenIndex > -1) { + const start = cap[0].indexOf("!") === 0 ? 5 : 4; + const linkLen = start + cap[1].length + lastParenIndex; + cap[2] = cap[2].substring(0, lastParenIndex); + cap[0] = cap[0].substring(0, linkLen).trim(); + cap[3] = ""; + } + } + let href = cap[2]; + let title = ""; + if (this.options.pedantic) { + const link2 = this.rules.other.pedanticHrefTitle.exec(href); + if (link2) { + href = link2[1]; + title = link2[3]; + } + } else { + title = cap[3] ? cap[3].slice(1, -1) : ""; + } + href = href.trim(); + if (this.rules.other.startAngleBracket.test(href)) { + if (this.options.pedantic && !this.rules.other.endAngleBracket.test(trimmedUrl)) { + href = href.slice(1); + } else { + href = href.slice(1, -1); + } + } + return outputLink(cap, { + href: href ? href.replace(this.rules.inline.anyPunctuation, "$1") : href, + title: title ? title.replace(this.rules.inline.anyPunctuation, "$1") : title + }, cap[0], this.lexer, this.rules); + } + } + reflink(src, links) { + let cap; + if ((cap = this.rules.inline.reflink.exec(src)) || (cap = this.rules.inline.nolink.exec(src))) { + const linkString = (cap[2] || cap[1]).replace(this.rules.other.multipleSpaceGlobal, " "); + const link2 = links[linkString.toLowerCase()]; + if (!link2) { + const text = cap[0].charAt(0); + return { + type: "text", + raw: text, + text + }; + } + return outputLink(cap, link2, cap[0], this.lexer, this.rules); + } + } + emStrong(src, maskedSrc, prevChar = "") { + let match = this.rules.inline.emStrongLDelim.exec(src); + if (!match) return; + if (match[3] && prevChar.match(this.rules.other.unicodeAlphaNumeric)) return; + const nextChar = match[1] || match[2] || ""; + if (!nextChar || !prevChar || this.rules.inline.punctuation.exec(prevChar)) { + const lLength = [...match[0]].length - 1; + let rDelim, rLength, delimTotal = lLength, midDelimTotal = 0; + const endReg = match[0][0] === "*" ? this.rules.inline.emStrongRDelimAst : this.rules.inline.emStrongRDelimUnd; + endReg.lastIndex = 0; + maskedSrc = maskedSrc.slice(-1 * src.length + lLength); + while ((match = endReg.exec(maskedSrc)) != null) { + rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6]; + if (!rDelim) continue; + rLength = [...rDelim].length; + if (match[3] || match[4]) { + delimTotal += rLength; + continue; + } else if (match[5] || match[6]) { + if (lLength % 3 && !((lLength + rLength) % 3)) { + midDelimTotal += rLength; + continue; + } + } + delimTotal -= rLength; + if (delimTotal > 0) continue; + rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal); + const lastCharLength = [...match[0]][0].length; + const raw = src.slice(0, lLength + match.index + lastCharLength + rLength); + if (Math.min(lLength, rLength) % 2) { + const text2 = raw.slice(1, -1); + return { + type: "em", + raw, + text: text2, + tokens: this.lexer.inlineTokens(text2) + }; + } + const text = raw.slice(2, -2); + return { + type: "strong", + raw, + text, + tokens: this.lexer.inlineTokens(text) + }; + } + } + } + codespan(src) { + const cap = this.rules.inline.code.exec(src); + if (cap) { + let text = cap[2].replace(this.rules.other.newLineCharGlobal, " "); + const hasNonSpaceChars = this.rules.other.nonSpaceChar.test(text); + const hasSpaceCharsOnBothEnds = this.rules.other.startingSpaceChar.test(text) && this.rules.other.endingSpaceChar.test(text); + if (hasNonSpaceChars && hasSpaceCharsOnBothEnds) { + text = text.substring(1, text.length - 1); + } + return { + type: "codespan", + raw: cap[0], + text + }; + } + } + br(src) { + const cap = this.rules.inline.br.exec(src); + if (cap) { + return { + type: "br", + raw: cap[0] + }; + } + } + del(src) { + const cap = this.rules.inline.del.exec(src); + if (cap) { + return { + type: "del", + raw: cap[0], + text: cap[2], + tokens: this.lexer.inlineTokens(cap[2]) + }; + } + } + autolink(src) { + const cap = this.rules.inline.autolink.exec(src); + if (cap) { + let text, href; + if (cap[2] === "@") { + text = cap[1]; + href = "mailto:" + text; + } else { + text = cap[1]; + href = text; + } + return { + type: "link", + raw: cap[0], + text, + href, + tokens: [ + { + type: "text", + raw: text, + text + } + ] + }; + } + } + url(src) { + let cap; + if (cap = this.rules.inline.url.exec(src)) { + let text, href; + if (cap[2] === "@") { + text = cap[0]; + href = "mailto:" + text; + } else { + let prevCapZero; + do { + prevCapZero = cap[0]; + cap[0] = this.rules.inline._backpedal.exec(cap[0])?.[0] ?? ""; + } while (prevCapZero !== cap[0]); + text = cap[0]; + if (cap[1] === "www.") { + href = "http://" + cap[0]; + } else { + href = cap[0]; + } + } + return { + type: "link", + raw: cap[0], + text, + href, + tokens: [ + { + type: "text", + raw: text, + text + } + ] + }; + } + } + inlineText(src) { + const cap = this.rules.inline.text.exec(src); + if (cap) { + const escaped = this.lexer.state.inRawBlock; + return { + type: "text", + raw: cap[0], + text: cap[0], + escaped + }; + } + } +}; +var _Lexer = class __Lexer { + tokens; + options; + state; + tokenizer; + inlineQueue; + constructor(options2) { + this.tokens = []; + this.tokens.links = /* @__PURE__ */ Object.create(null); + this.options = options2 || _defaults; + this.options.tokenizer = this.options.tokenizer || new _Tokenizer(); + this.tokenizer = this.options.tokenizer; + this.tokenizer.options = this.options; + this.tokenizer.lexer = this; + this.inlineQueue = []; + this.state = { + inLink: false, + inRawBlock: false, + top: true + }; + const rules = { + other, + block: block.normal, + inline: inline.normal + }; + if (this.options.pedantic) { + rules.block = block.pedantic; + rules.inline = inline.pedantic; + } else if (this.options.gfm) { + rules.block = block.gfm; + if (this.options.breaks) { + rules.inline = inline.breaks; + } else { + rules.inline = inline.gfm; + } + } + this.tokenizer.rules = rules; + } + /** + * Expose Rules + */ + static get rules() { + return { + block, + inline + }; + } + /** + * Static Lex Method + */ + static lex(src, options2) { + const lexer2 = new __Lexer(options2); + return lexer2.lex(src); + } + /** + * Static Lex Inline Method + */ + static lexInline(src, options2) { + const lexer2 = new __Lexer(options2); + return lexer2.inlineTokens(src); + } + /** + * Preprocessing + */ + lex(src) { + src = src.replace(other.carriageReturn, "\n"); + this.blockTokens(src, this.tokens); + for (let i = 0; i < this.inlineQueue.length; i++) { + const next = this.inlineQueue[i]; + this.inlineTokens(next.src, next.tokens); + } + this.inlineQueue = []; + return this.tokens; + } + blockTokens(src, tokens = [], lastParagraphClipped = false) { + if (this.options.pedantic) { + src = src.replace(other.tabCharGlobal, " ").replace(other.spaceLine, ""); + } + while (src) { + let token; + if (this.options.extensions?.block?.some((extTokenizer) => { + if (token = extTokenizer.call({ lexer: this }, src, tokens)) { + src = src.substring(token.raw.length); + tokens.push(token); + return true; + } + return false; + })) { + continue; + } + if (token = this.tokenizer.space(src)) { + src = src.substring(token.raw.length); + const lastToken = tokens.at(-1); + if (token.raw.length === 1 && lastToken !== void 0) { + lastToken.raw += "\n"; + } else { + tokens.push(token); + } + continue; + } + if (token = this.tokenizer.code(src)) { + src = src.substring(token.raw.length); + const lastToken = tokens.at(-1); + if (lastToken?.type === "paragraph" || lastToken?.type === "text") { + lastToken.raw += "\n" + token.raw; + lastToken.text += "\n" + token.text; + this.inlineQueue.at(-1).src = lastToken.text; + } else { + tokens.push(token); + } + continue; + } + if (token = this.tokenizer.fences(src)) { + src = src.substring(token.raw.length); + tokens.push(token); + continue; + } + if (token = this.tokenizer.heading(src)) { + src = src.substring(token.raw.length); + tokens.push(token); + continue; + } + if (token = this.tokenizer.hr(src)) { + src = src.substring(token.raw.length); + tokens.push(token); + continue; + } + if (token = this.tokenizer.blockquote(src)) { + src = src.substring(token.raw.length); + tokens.push(token); + continue; + } + if (token = this.tokenizer.list(src)) { + src = src.substring(token.raw.length); + tokens.push(token); + continue; + } + if (token = this.tokenizer.html(src)) { + src = src.substring(token.raw.length); + tokens.push(token); + continue; + } + if (token = this.tokenizer.def(src)) { + src = src.substring(token.raw.length); + const lastToken = tokens.at(-1); + if (lastToken?.type === "paragraph" || lastToken?.type === "text") { + lastToken.raw += "\n" + token.raw; + lastToken.text += "\n" + token.raw; + this.inlineQueue.at(-1).src = lastToken.text; + } else if (!this.tokens.links[token.tag]) { + this.tokens.links[token.tag] = { + href: token.href, + title: token.title + }; + } + continue; + } + if (token = this.tokenizer.table(src)) { + src = src.substring(token.raw.length); + tokens.push(token); + continue; + } + if (token = this.tokenizer.lheading(src)) { + src = src.substring(token.raw.length); + tokens.push(token); + continue; + } + let cutSrc = src; + if (this.options.extensions?.startBlock) { + let startIndex = Infinity; + const tempSrc = src.slice(1); + let tempStart; + this.options.extensions.startBlock.forEach((getStartIndex) => { + tempStart = getStartIndex.call({ lexer: this }, tempSrc); + if (typeof tempStart === "number" && tempStart >= 0) { + startIndex = Math.min(startIndex, tempStart); + } + }); + if (startIndex < Infinity && startIndex >= 0) { + cutSrc = src.substring(0, startIndex + 1); + } + } + if (this.state.top && (token = this.tokenizer.paragraph(cutSrc))) { + const lastToken = tokens.at(-1); + if (lastParagraphClipped && lastToken?.type === "paragraph") { + lastToken.raw += "\n" + token.raw; + lastToken.text += "\n" + token.text; + this.inlineQueue.pop(); + this.inlineQueue.at(-1).src = lastToken.text; + } else { + tokens.push(token); + } + lastParagraphClipped = cutSrc.length !== src.length; + src = src.substring(token.raw.length); + continue; + } + if (token = this.tokenizer.text(src)) { + src = src.substring(token.raw.length); + const lastToken = tokens.at(-1); + if (lastToken?.type === "text") { + lastToken.raw += "\n" + token.raw; + lastToken.text += "\n" + token.text; + this.inlineQueue.pop(); + this.inlineQueue.at(-1).src = lastToken.text; + } else { + tokens.push(token); + } + continue; + } + if (src) { + const errMsg = "Infinite loop on byte: " + src.charCodeAt(0); + if (this.options.silent) { + console.error(errMsg); + break; + } else { + throw new Error(errMsg); + } + } + } + this.state.top = true; + return tokens; + } + inline(src, tokens = []) { + this.inlineQueue.push({ src, tokens }); + return tokens; + } + /** + * Lexing/Compiling + */ + inlineTokens(src, tokens = []) { + let maskedSrc = src; + let match = null; + if (this.tokens.links) { + const links = Object.keys(this.tokens.links); + if (links.length > 0) { + while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) { + if (links.includes(match[0].slice(match[0].lastIndexOf("[") + 1, -1))) { + maskedSrc = maskedSrc.slice(0, match.index) + "[" + "a".repeat(match[0].length - 2) + "]" + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex); + } + } + } + } + while ((match = this.tokenizer.rules.inline.anyPunctuation.exec(maskedSrc)) != null) { + maskedSrc = maskedSrc.slice(0, match.index) + "++" + maskedSrc.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex); + } + while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) { + maskedSrc = maskedSrc.slice(0, match.index) + "[" + "a".repeat(match[0].length - 2) + "]" + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex); + } + let keepPrevChar = false; + let prevChar = ""; + while (src) { + if (!keepPrevChar) { + prevChar = ""; + } + keepPrevChar = false; + let token; + if (this.options.extensions?.inline?.some((extTokenizer) => { + if (token = extTokenizer.call({ lexer: this }, src, tokens)) { + src = src.substring(token.raw.length); + tokens.push(token); + return true; + } + return false; + })) { + continue; + } + if (token = this.tokenizer.escape(src)) { + src = src.substring(token.raw.length); + tokens.push(token); + continue; + } + if (token = this.tokenizer.tag(src)) { + src = src.substring(token.raw.length); + tokens.push(token); + continue; + } + if (token = this.tokenizer.link(src)) { + src = src.substring(token.raw.length); + tokens.push(token); + continue; + } + if (token = this.tokenizer.reflink(src, this.tokens.links)) { + src = src.substring(token.raw.length); + const lastToken = tokens.at(-1); + if (token.type === "text" && lastToken?.type === "text") { + lastToken.raw += token.raw; + lastToken.text += token.text; + } else { + tokens.push(token); + } + continue; + } + if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) { + src = src.substring(token.raw.length); + tokens.push(token); + continue; + } + if (token = this.tokenizer.codespan(src)) { + src = src.substring(token.raw.length); + tokens.push(token); + continue; + } + if (token = this.tokenizer.br(src)) { + src = src.substring(token.raw.length); + tokens.push(token); + continue; + } + if (token = this.tokenizer.del(src)) { + src = src.substring(token.raw.length); + tokens.push(token); + continue; + } + if (token = this.tokenizer.autolink(src)) { + src = src.substring(token.raw.length); + tokens.push(token); + continue; + } + if (!this.state.inLink && (token = this.tokenizer.url(src))) { + src = src.substring(token.raw.length); + tokens.push(token); + continue; + } + let cutSrc = src; + if (this.options.extensions?.startInline) { + let startIndex = Infinity; + const tempSrc = src.slice(1); + let tempStart; + this.options.extensions.startInline.forEach((getStartIndex) => { + tempStart = getStartIndex.call({ lexer: this }, tempSrc); + if (typeof tempStart === "number" && tempStart >= 0) { + startIndex = Math.min(startIndex, tempStart); + } + }); + if (startIndex < Infinity && startIndex >= 0) { + cutSrc = src.substring(0, startIndex + 1); + } + } + if (token = this.tokenizer.inlineText(cutSrc)) { + src = src.substring(token.raw.length); + if (token.raw.slice(-1) !== "_") { + prevChar = token.raw.slice(-1); + } + keepPrevChar = true; + const lastToken = tokens.at(-1); + if (lastToken?.type === "text") { + lastToken.raw += token.raw; + lastToken.text += token.text; + } else { + tokens.push(token); + } + continue; + } + if (src) { + const errMsg = "Infinite loop on byte: " + src.charCodeAt(0); + if (this.options.silent) { + console.error(errMsg); + break; + } else { + throw new Error(errMsg); + } + } + } + return tokens; + } +}; +var _Renderer = class { + options; + parser; + // set by the parser + constructor(options2) { + this.options = options2 || _defaults; + } + space(token) { + return ""; + } + code({ text, lang, escaped }) { + const langString = (lang || "").match(other.notSpaceStart)?.[0]; + const code = text.replace(other.endingNewline, "") + "\n"; + if (!langString) { + return "
" + (escaped ? code : escape2(code, true)) + "
\n"; + } + return '
' + (escaped ? code : escape2(code, true)) + "
\n"; + } + blockquote({ tokens }) { + const body = this.parser.parse(tokens); + return `
+${body}
+`; + } + html({ text }) { + return text; + } + heading({ tokens, depth }) { + return `${this.parser.parseInline(tokens)} +`; + } + hr(token) { + return "
\n"; + } + list(token) { + const ordered = token.ordered; + const start = token.start; + let body = ""; + for (let j = 0; j < token.items.length; j++) { + const item = token.items[j]; + body += this.listitem(item); + } + const type = ordered ? "ol" : "ul"; + const startAttr = ordered && start !== 1 ? ' start="' + start + '"' : ""; + return "<" + type + startAttr + ">\n" + body + "\n"; + } + listitem(item) { + let itemBody = ""; + if (item.task) { + const checkbox = this.checkbox({ checked: !!item.checked }); + if (item.loose) { + if (item.tokens[0]?.type === "paragraph") { + item.tokens[0].text = checkbox + " " + item.tokens[0].text; + if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === "text") { + item.tokens[0].tokens[0].text = checkbox + " " + escape2(item.tokens[0].tokens[0].text); + item.tokens[0].tokens[0].escaped = true; + } + } else { + item.tokens.unshift({ + type: "text", + raw: checkbox + " ", + text: checkbox + " ", + escaped: true + }); + } + } else { + itemBody += checkbox + " "; + } + } + itemBody += this.parser.parse(item.tokens, !!item.loose); + return `
  • ${itemBody}
  • +`; + } + checkbox({ checked }) { + return "'; + } + paragraph({ tokens }) { + return `

    ${this.parser.parseInline(tokens)}

    +`; + } + table(token) { + let header = ""; + let cell = ""; + for (let j = 0; j < token.header.length; j++) { + cell += this.tablecell(token.header[j]); + } + header += this.tablerow({ text: cell }); + let body = ""; + for (let j = 0; j < token.rows.length; j++) { + const row = token.rows[j]; + cell = ""; + for (let k = 0; k < row.length; k++) { + cell += this.tablecell(row[k]); + } + body += this.tablerow({ text: cell }); + } + if (body) body = `${body}`; + return "\n\n" + header + "\n" + body + "
    \n"; + } + tablerow({ text }) { + return ` +${text} +`; + } + tablecell(token) { + const content = this.parser.parseInline(token.tokens); + const type = token.header ? "th" : "td"; + const tag2 = token.align ? `<${type} align="${token.align}">` : `<${type}>`; + return tag2 + content + ` +`; + } + /** + * span level renderer + */ + strong({ tokens }) { + return `${this.parser.parseInline(tokens)}`; + } + em({ tokens }) { + return `${this.parser.parseInline(tokens)}`; + } + codespan({ text }) { + return `${escape2(text, true)}`; + } + br(token) { + return "
    "; + } + del({ tokens }) { + return `${this.parser.parseInline(tokens)}`; + } + link({ href, title, tokens }) { + const text = this.parser.parseInline(tokens); + const cleanHref = cleanUrl(href); + if (cleanHref === null) { + return text; + } + href = cleanHref; + let out = '
    "; + return out; + } + image({ href, title, text, tokens }) { + if (tokens) { + text = this.parser.parseInline(tokens, this.parser.textRenderer); + } + const cleanHref = cleanUrl(href); + if (cleanHref === null) { + return escape2(text); + } + href = cleanHref; + let out = `${text} { + const tokens2 = genericToken[childTokens].flat(Infinity); + values = values.concat(this.walkTokens(tokens2, callback)); + }); + } else if (genericToken.tokens) { + values = values.concat(this.walkTokens(genericToken.tokens, callback)); + } + } + } + } + return values; + } + use(...args) { + const extensions = this.defaults.extensions || { renderers: {}, childTokens: {} }; + args.forEach((pack) => { + const opts = { ...pack }; + opts.async = this.defaults.async || opts.async || false; + if (pack.extensions) { + pack.extensions.forEach((ext) => { + if (!ext.name) { + throw new Error("extension name required"); + } + if ("renderer" in ext) { + const prevRenderer = extensions.renderers[ext.name]; + if (prevRenderer) { + extensions.renderers[ext.name] = function(...args2) { + let ret = ext.renderer.apply(this, args2); + if (ret === false) { + ret = prevRenderer.apply(this, args2); + } + return ret; + }; + } else { + extensions.renderers[ext.name] = ext.renderer; + } + } + if ("tokenizer" in ext) { + if (!ext.level || ext.level !== "block" && ext.level !== "inline") { + throw new Error("extension level must be 'block' or 'inline'"); + } + const extLevel = extensions[ext.level]; + if (extLevel) { + extLevel.unshift(ext.tokenizer); + } else { + extensions[ext.level] = [ext.tokenizer]; + } + if (ext.start) { + if (ext.level === "block") { + if (extensions.startBlock) { + extensions.startBlock.push(ext.start); + } else { + extensions.startBlock = [ext.start]; + } + } else if (ext.level === "inline") { + if (extensions.startInline) { + extensions.startInline.push(ext.start); + } else { + extensions.startInline = [ext.start]; + } + } + } + } + if ("childTokens" in ext && ext.childTokens) { + extensions.childTokens[ext.name] = ext.childTokens; + } + }); + opts.extensions = extensions; + } + if (pack.renderer) { + const renderer = this.defaults.renderer || new _Renderer(this.defaults); + for (const prop in pack.renderer) { + if (!(prop in renderer)) { + throw new Error(`renderer '${prop}' does not exist`); + } + if (["options", "parser"].includes(prop)) { + continue; + } + const rendererProp = prop; + const rendererFunc = pack.renderer[rendererProp]; + const prevRenderer = renderer[rendererProp]; + renderer[rendererProp] = (...args2) => { + let ret = rendererFunc.apply(renderer, args2); + if (ret === false) { + ret = prevRenderer.apply(renderer, args2); + } + return ret || ""; + }; + } + opts.renderer = renderer; + } + if (pack.tokenizer) { + const tokenizer = this.defaults.tokenizer || new _Tokenizer(this.defaults); + for (const prop in pack.tokenizer) { + if (!(prop in tokenizer)) { + throw new Error(`tokenizer '${prop}' does not exist`); + } + if (["options", "rules", "lexer"].includes(prop)) { + continue; + } + const tokenizerProp = prop; + const tokenizerFunc = pack.tokenizer[tokenizerProp]; + const prevTokenizer = tokenizer[tokenizerProp]; + tokenizer[tokenizerProp] = (...args2) => { + let ret = tokenizerFunc.apply(tokenizer, args2); + if (ret === false) { + ret = prevTokenizer.apply(tokenizer, args2); + } + return ret; + }; + } + opts.tokenizer = tokenizer; + } + if (pack.hooks) { + const hooks = this.defaults.hooks || new _Hooks(); + for (const prop in pack.hooks) { + if (!(prop in hooks)) { + throw new Error(`hook '${prop}' does not exist`); + } + if (["options", "block"].includes(prop)) { + continue; + } + const hooksProp = prop; + const hooksFunc = pack.hooks[hooksProp]; + const prevHook = hooks[hooksProp]; + if (_Hooks.passThroughHooks.has(prop)) { + hooks[hooksProp] = (arg) => { + if (this.defaults.async) { + return Promise.resolve(hooksFunc.call(hooks, arg)).then((ret2) => { + return prevHook.call(hooks, ret2); + }); + } + const ret = hooksFunc.call(hooks, arg); + return prevHook.call(hooks, ret); + }; + } else { + hooks[hooksProp] = (...args2) => { + let ret = hooksFunc.apply(hooks, args2); + if (ret === false) { + ret = prevHook.apply(hooks, args2); + } + return ret; + }; + } + } + opts.hooks = hooks; + } + if (pack.walkTokens) { + const walkTokens2 = this.defaults.walkTokens; + const packWalktokens = pack.walkTokens; + opts.walkTokens = function(token) { + let values = []; + values.push(packWalktokens.call(this, token)); + if (walkTokens2) { + values = values.concat(walkTokens2.call(this, token)); + } + return values; + }; + } + this.defaults = { ...this.defaults, ...opts }; + }); + return this; + } + setOptions(opt) { + this.defaults = { ...this.defaults, ...opt }; + return this; + } + lexer(src, options2) { + return _Lexer.lex(src, options2 ?? this.defaults); + } + parser(tokens, options2) { + return _Parser.parse(tokens, options2 ?? this.defaults); + } + parseMarkdown(blockType) { + const parse2 = (src, options2) => { + const origOpt = { ...options2 }; + const opt = { ...this.defaults, ...origOpt }; + const throwError = this.onError(!!opt.silent, !!opt.async); + if (this.defaults.async === true && origOpt.async === false) { + return throwError(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise.")); + } + if (typeof src === "undefined" || src === null) { + return throwError(new Error("marked(): input parameter is undefined or null")); + } + if (typeof src !== "string") { + return throwError(new Error("marked(): input parameter is of type " + Object.prototype.toString.call(src) + ", string expected")); + } + if (opt.hooks) { + opt.hooks.options = opt; + opt.hooks.block = blockType; + } + const lexer2 = opt.hooks ? opt.hooks.provideLexer() : blockType ? _Lexer.lex : _Lexer.lexInline; + const parser2 = opt.hooks ? opt.hooks.provideParser() : blockType ? _Parser.parse : _Parser.parseInline; + if (opt.async) { + return Promise.resolve(opt.hooks ? opt.hooks.preprocess(src) : src).then((src2) => lexer2(src2, opt)).then((tokens) => opt.hooks ? opt.hooks.processAllTokens(tokens) : tokens).then((tokens) => opt.walkTokens ? Promise.all(this.walkTokens(tokens, opt.walkTokens)).then(() => tokens) : tokens).then((tokens) => parser2(tokens, opt)).then((html2) => opt.hooks ? opt.hooks.postprocess(html2) : html2).catch(throwError); + } + try { + if (opt.hooks) { + src = opt.hooks.preprocess(src); + } + let tokens = lexer2(src, opt); + if (opt.hooks) { + tokens = opt.hooks.processAllTokens(tokens); + } + if (opt.walkTokens) { + this.walkTokens(tokens, opt.walkTokens); + } + let html2 = parser2(tokens, opt); + if (opt.hooks) { + html2 = opt.hooks.postprocess(html2); + } + return html2; + } catch (e) { + return throwError(e); + } + }; + return parse2; + } + onError(silent, async) { + return (e) => { + e.message += "\nPlease report this to https://github.com/markedjs/marked."; + if (silent) { + const msg = "

    An error occurred:

    " + escape2(e.message + "", true) + "
    "; + if (async) { + return Promise.resolve(msg); + } + return msg; + } + if (async) { + return Promise.reject(e); + } + throw e; + }; + } +}; +var markedInstance = new Marked(); +function marked(src, opt) { + return markedInstance.parse(src, opt); +} +marked.options = marked.setOptions = function(options2) { + markedInstance.setOptions(options2); + marked.defaults = markedInstance.defaults; + changeDefaults(marked.defaults); + return marked; +}; +marked.getDefaults = _getDefaults; +marked.defaults = _defaults; +marked.use = function(...args) { + markedInstance.use(...args); + marked.defaults = markedInstance.defaults; + changeDefaults(marked.defaults); + return marked; +}; +marked.walkTokens = function(tokens, callback) { + return markedInstance.walkTokens(tokens, callback); +}; +marked.parseInline = markedInstance.parseInline; +marked.Parser = _Parser; +marked.parser = _Parser.parse; +marked.Renderer = _Renderer; +marked.TextRenderer = _TextRenderer; +marked.Lexer = _Lexer; +marked.lexer = _Lexer.lex; +marked.Tokenizer = _Tokenizer; +marked.Hooks = _Hooks; +marked.parse = marked; +marked.options; +marked.setOptions; +marked.use; +marked.walkTokens; +marked.parseInline; +_Parser.parse; +_Lexer.lex; + +// src2/markdown/ApplyBlockHoverButtons.tsx +var import_react2 = __toESM(require_react(), 1); + +// src2/util/helpers.tsx +var import_react = __toESM(require_react(), 1); +var useRefState = (initVal) => { + const [_s, _setState] = (0, import_react.useState)(0); + const ref = (0, import_react.useRef)(initVal); + const setState = (0, import_react.useCallback)((newVal) => { + _setState((n) => n + 1); + ref.current = newVal; + }, []); + return [ref, setState]; +}; +var import_jsx_runtime = __toESM(require_jsx_runtime(), 1); +var IconShell1 = ({ onClick, Icon: Icon2, disabled, className, ...props }) => { + return /* @__PURE__ */ (0, import_jsx_runtime.jsx)( + "button", + { + disabled, + onClick: (e) => { + e.preventDefault(); + e.stopPropagation(); + onClick?.(e); + }, + className: ` void-size-[18px] void-p-[2px] void-flex void-items-center void-justify-center void-text-sm void-text-void-fg-3 hover:void-brightness-110 disabled:void-opacity-50 disabled:void-cursor-not-allowed ${className} `, + ...props, + children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon2, {}) + } + ); +}; +var COPY_FEEDBACK_TIMEOUT = 1500; +var CopyButton = ({ codeStr, toolTipName }) => { + const accessor = useAccessor(); + const metricsService = accessor.get("IMetricsService"); + const clipboardService = accessor.get("IClipboardService"); + const [copyButtonText, setCopyButtonText] = (0, import_react2.useState)("Copy" /* Idle */); + (0, import_react2.useEffect)(() => { + if (copyButtonText === "Copy" /* Idle */) return; + setTimeout(() => { + setCopyButtonText("Copy" /* Idle */); + }, COPY_FEEDBACK_TIMEOUT); + }, [copyButtonText]); + const onCopy = (0, import_react2.useCallback)(async () => { + clipboardService.writeText(typeof codeStr === "string" ? codeStr : await codeStr()).then(() => { + setCopyButtonText("Copied!" /* Copied */); + }).catch(() => { + setCopyButtonText("Could not copy" /* Error */); + }); + metricsService.capture("Copy Code", { length: codeStr.length }); + }, [metricsService, clipboardService, codeStr, setCopyButtonText]); + return /* @__PURE__ */ (0, import_jsx_runtime.jsx)( + IconShell1, + { + Icon: copyButtonText === "Copied!" /* Copied */ ? Check : copyButtonText === "Could not copy" /* Error */ ? X : Copy, + onClick: onCopy, + ...tooltipPropsForApplyBlock({ tooltipName: toolTipName }) + } + ); +}; +var JumpToFileButton = ({ uri, ...props }) => { + const accessor = useAccessor(); + accessor.get("ICommandService"); + const jumpToFileButton = uri !== "current" && /* @__PURE__ */ (0, import_jsx_runtime.jsx)( + IconShell1, + { + Icon: FileSymlink, + onClick: () => { + voidOpenFileFn(uri, accessor); + }, + ...tooltipPropsForApplyBlock({ tooltipName: "Go to file" }), + ...props + } + ); + return jumpToFileButton; +}; +var _applyingURIOfApplyBoxIdRef = { current: {} }; +var getUriBeingApplied = (applyBoxId) => { + return _applyingURIOfApplyBoxIdRef.current[applyBoxId] ?? null; +}; +var useApplyStreamState = ({ applyBoxId }) => { + const accessor = useAccessor(); + const cortexideCommandBarService = accessor.get("ICortexideCommandBarService"); + const getStreamState = (0, import_react2.useCallback)(() => { + const uri = getUriBeingApplied(applyBoxId); + if (!uri) return "idle-no-changes"; + return cortexideCommandBarService.getStreamState(uri); + }, [cortexideCommandBarService, applyBoxId]); + const [currStreamStateRef, setStreamState] = useRefState(getStreamState()); + const setApplying = (0, import_react2.useCallback)((uri) => { + _applyingURIOfApplyBoxIdRef.current[applyBoxId] = uri ?? void 0; + setStreamState(getStreamState()); + }, [setStreamState, getStreamState, applyBoxId]); + useCommandBarURIListener((0, import_react2.useCallback)((uri_) => { + const uri = getUriBeingApplied(applyBoxId); + if (uri?.fsPath === uri_.fsPath) { + setStreamState(getStreamState()); + } + }, [setStreamState, applyBoxId, getStreamState])); + return { currStreamStateRef, setApplying }; +}; +var StatusIndicator = ({ indicatorColor, title, className, ...props }) => { + return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: `void-flex void-flex-row void-text-void-fg-3 void-text-xs void-items-center void-gap-1.5 ${className}`, ...props, children: [ + title && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "void-opacity-80", children: title }), + /* @__PURE__ */ (0, import_jsx_runtime.jsx)( + "div", + { + className: ` void-size-1.5 void-rounded-full void-border ${indicatorColor === "dark" ? "void-bg-[rgba(0,0,0,0)] void-border-void-border-1" : indicatorColor === "orange" ? "void-bg-orange-500 void-border-orange-500 void-shadow-[0_0_4px_0px_rgba(234,88,12,0.6)]" : indicatorColor === "green" ? "void-bg-green-500 void-border-green-500 void-shadow-[0_0_4px_0px_rgba(22,163,74,0.6)]" : indicatorColor === "yellow" ? "void-bg-yellow-500 void-border-yellow-500 void-shadow-[0_0_4px_0px_rgba(22,163,74,0.6)]" : "void-bg-void-border-1 void-border-void-border-1"} ` + } + ) + ] }); +}; +var tooltipPropsForApplyBlock = ({ tooltipName, color = void 0, position = "top", offset: offset3 = void 0 }) => ({ + "data-tooltip-id": color === "orange" ? `void-tooltip-orange` : color === "green" ? "void-tooltip-green" : "void-tooltip", + "data-tooltip-place": position, + "data-tooltip-content": `${tooltipName}`, + "data-tooltip-offset": offset3 +}); +var useEditToolStreamState = ({ applyBoxId, uri }) => { + const accessor = useAccessor(); + const cortexideCommandBarService = accessor.get("ICortexideCommandBarService"); + const [streamState, setStreamState] = (0, import_react2.useState)(cortexideCommandBarService.getStreamState(uri)); + useCommandBarURIListener((0, import_react2.useCallback)((uri_) => { + const shouldUpdate = uri.fsPath === uri_.fsPath; + if (shouldUpdate) { + setStreamState(cortexideCommandBarService.getStreamState(uri)); + } + }, [cortexideCommandBarService, applyBoxId, uri])); + return { streamState }; +}; +var StatusIndicatorForApplyButton = ({ applyBoxId, uri }) => { + const { currStreamStateRef } = useApplyStreamState({ applyBoxId }); + const currStreamState = currStreamStateRef.current; + const color = currStreamState === "idle-no-changes" ? "dark" : currStreamState === "streaming" ? "orange" : currStreamState === "idle-has-changes" ? "green" : null; + const tooltipName = currStreamState === "idle-no-changes" ? "Done" : currStreamState === "streaming" ? "Applying" : currStreamState === "idle-has-changes" ? "Done" : ( + // also 'Done'? 'Applied' looked bad + "" + ); + const statusIndicatorHTML = /* @__PURE__ */ (0, import_jsx_runtime.jsx)( + StatusIndicator, + { + className: "void-mx-2", + indicatorColor: color, + ...tooltipPropsForApplyBlock({ tooltipName, color, position: "top", offset: 12 }) + }, + currStreamState + ); + return statusIndicatorHTML; +}; +var terminalLanguages = /* @__PURE__ */ new Set( + [ + "bash", + "shellscript", + "shell", + "powershell", + "bat", + "zsh", + "sh", + "fish", + "nushell", + "ksh", + "xonsh", + "elvish" + ] +); +var ApplyButtonsForTerminal = ({ + codeStr, + applyBoxId, + uri, + language +}) => { + const accessor = useAccessor(); + const metricsService = accessor.get("IMetricsService"); + const terminalToolService = accessor.get("ITerminalToolService"); + useSettingsState(); + const [isShellRunning, setIsShellRunning] = (0, import_react2.useState)(false); + const interruptToolRef = (0, import_react2.useRef)(null); + const isDisabled = isShellRunning; + const onClickSubmit = (0, import_react2.useCallback)(async () => { + if (isShellRunning) return; + try { + setIsShellRunning(true); + const terminalId = await terminalToolService.createPersistentTerminal({ cwd: null }); + const { interrupt } = await terminalToolService.runCommand( + codeStr, + { type: "persistent", persistentTerminalId: terminalId } + ); + interruptToolRef.current = interrupt; + metricsService.capture("Execute Shell", { length: codeStr.length }); + } catch (e) { + setIsShellRunning(false); + console.error("Failed to execute in terminal:", e); + } + }, [codeStr, uri, applyBoxId, metricsService, terminalToolService, isShellRunning]); + if (isShellRunning) { + return /* @__PURE__ */ (0, import_jsx_runtime.jsx)( + IconShell1, + { + Icon: X, + onClick: () => { + interruptToolRef.current?.(); + setIsShellRunning(false); + }, + ...tooltipPropsForApplyBlock({ tooltipName: "Stop" }) + } + ); + } + if (isDisabled) { + return null; + } + return /* @__PURE__ */ (0, import_jsx_runtime.jsx)( + IconShell1, + { + Icon: Play, + onClick: onClickSubmit, + ...tooltipPropsForApplyBlock({ tooltipName: "Apply" }) + } + ); +}; +var ApplyButtonsForEdit = ({ + codeStr, + applyBoxId, + uri, + language +}) => { + const accessor = useAccessor(); + const editCodeService = accessor.get("IEditCodeService"); + const metricsService = accessor.get("IMetricsService"); + const notificationService2 = accessor.get("INotificationService"); + const settingsState = useSettingsState(); + const isDisabled = !!isFeatureNameDisabled("Apply", settingsState) || !applyBoxId; + const { currStreamStateRef, setApplying } = useApplyStreamState({ applyBoxId }); + const onClickSubmit = (0, import_react2.useCallback)(async () => { + if (currStreamStateRef.current === "streaming") return; + await editCodeService.callBeforeApplyOrEdit(uri); + const [newApplyingUri, applyDonePromise] = editCodeService.startApplying({ + from: "ClickApply", + applyStr: codeStr, + uri, + startBehavior: "reject-conflicts" + }) ?? []; + setApplying(newApplyingUri); + if (!applyDonePromise) { + notificationService2.info(`CortexIDE Error: We couldn't run Apply here. ${uri === "current" ? "This Apply block wants to run on the current file, but you might not have a file open." : `This Apply block wants to run on ${uri.fsPath}, but it might not exist.`}`); + } + applyDonePromise?.catch((e) => { + const uri2 = getUriBeingApplied(applyBoxId); + if (uri2) editCodeService.interruptURIStreaming({ uri: uri2 }); + notificationService2.info(`CortexIDE Error: There was a problem running Apply: ${e}.`); + }); + metricsService.capture("Apply Code", { length: codeStr.length }); + }, [setApplying, currStreamStateRef, editCodeService, codeStr, uri, applyBoxId, metricsService, notificationService2]); + const onClickStop = (0, import_react2.useCallback)(() => { + if (currStreamStateRef.current !== "streaming") return; + const uri2 = getUriBeingApplied(applyBoxId); + if (!uri2) return; + editCodeService.interruptURIStreaming({ uri: uri2 }); + metricsService.capture("Stop Apply", {}); + }, [currStreamStateRef, applyBoxId, editCodeService, metricsService]); + const onAccept = (0, import_react2.useCallback)(() => { + const uri2 = getUriBeingApplied(applyBoxId); + if (uri2) editCodeService.acceptOrRejectAllDiffAreas({ uri: uri2, behavior: "accept", removeCtrlKs: false }); + }, [uri, applyBoxId, editCodeService]); + const onReject = (0, import_react2.useCallback)(() => { + const uri2 = getUriBeingApplied(applyBoxId); + if (uri2) editCodeService.acceptOrRejectAllDiffAreas({ uri: uri2, behavior: "reject", removeCtrlKs: false }); + }, [uri, applyBoxId, editCodeService]); + const currStreamState = currStreamStateRef.current; + if (currStreamState === "streaming") { + return /* @__PURE__ */ (0, import_jsx_runtime.jsx)( + IconShell1, + { + Icon: Square, + onClick: onClickStop, + ...tooltipPropsForApplyBlock({ tooltipName: "Stop" }) + } + ); + } + if (isDisabled) { + return null; + } + if (currStreamState === "idle-no-changes") { + return /* @__PURE__ */ (0, import_jsx_runtime.jsx)( + IconShell1, + { + Icon: Play, + onClick: onClickSubmit, + ...tooltipPropsForApplyBlock({ tooltipName: "Apply" }) + } + ); + } + if (currStreamState === "idle-has-changes") { + return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_react2.Fragment, { children: [ + /* @__PURE__ */ (0, import_jsx_runtime.jsx)( + IconShell1, + { + Icon: X, + onClick: onReject, + ...tooltipPropsForApplyBlock({ tooltipName: "Remove" }) + } + ), + /* @__PURE__ */ (0, import_jsx_runtime.jsx)( + IconShell1, + { + Icon: Check, + onClick: onAccept, + ...tooltipPropsForApplyBlock({ tooltipName: "Keep" }) + } + ) + ] }); + } +}; +var ApplyButtonsHTML = (params) => { + const { language } = params; + const isShellLanguage = !!language && terminalLanguages.has(language); + if (isShellLanguage) { + return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ApplyButtonsForTerminal, { ...params }); + } else { + return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ApplyButtonsForEdit, { ...params }); + } +}; +var EditToolAcceptRejectButtonsHTML = ({ + codeStr, + applyBoxId, + uri, + type, + threadId +}) => { + const accessor = useAccessor(); + const editCodeService = accessor.get("IEditCodeService"); + accessor.get("IMetricsService"); + const { streamState } = useEditToolStreamState({ applyBoxId, uri }); + const settingsState = useSettingsState(); + const chatThreadsStreamState = useChatThreadsStreamState(threadId); + const isRunning = chatThreadsStreamState?.isRunning; + const isDisabled = !!isFeatureNameDisabled("Chat", settingsState) || !applyBoxId; + const onAccept = (0, import_react2.useCallback)(() => { + editCodeService.acceptOrRejectAllDiffAreas({ uri, behavior: "accept", removeCtrlKs: false }); + }, [uri, applyBoxId, editCodeService]); + const onReject = (0, import_react2.useCallback)(() => { + editCodeService.acceptOrRejectAllDiffAreas({ uri, behavior: "reject", removeCtrlKs: false }); + }, [uri, applyBoxId, editCodeService]); + if (isDisabled) return null; + if (streamState === "idle-no-changes") { + return null; + } + if (streamState === "idle-has-changes") { + if (isRunning === "LLM" || isRunning === "tool") return null; + return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [ + /* @__PURE__ */ (0, import_jsx_runtime.jsx)( + IconShell1, + { + Icon: X, + onClick: onReject, + ...tooltipPropsForApplyBlock({ tooltipName: "Remove" }) + } + ), + /* @__PURE__ */ (0, import_jsx_runtime.jsx)( + IconShell1, + { + Icon: Check, + onClick: onAccept, + ...tooltipPropsForApplyBlock({ tooltipName: "Keep" }) + } + ) + ] }); + } +}; +var BlockCodeApplyWrapper = ({ + children, + codeStr, + applyBoxId, + language, + canApply, + uri +}) => { + const accessor = useAccessor(); + accessor.get("ICommandService"); + const { currStreamStateRef } = useApplyStreamState({ applyBoxId }); + const currStreamState = currStreamStateRef.current; + const name = uri !== "current" ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)( + ListableToolItem, + { + name: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "void-not-italic", children: getBasename(uri.fsPath) }), + isSmall: true, + showDot: false, + onClick: () => { + voidOpenFileFn(uri, accessor); + } + } + ) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: language }); + return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "void-border void-border-void-border-3 void-rounded void-overflow-hidden void-bg-void-bg-3 void-my-1", children: [ + /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: " void-select-none void-flex void-justify-between void-items-center void-py-1 void-px-2 void-border-b void-border-void-border-3 void-cursor-default", children: [ + /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "void-flex void-items-center", children: [ + /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StatusIndicatorForApplyButton, { uri, applyBoxId }), + /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "void-text-[13px] void-font-light void-text-void-fg-3", children: name }) + ] }), + /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: `${canApply ? "" : "void-hidden"} void-flex void-items-center void-gap-1`, children: [ + /* @__PURE__ */ (0, import_jsx_runtime.jsx)(JumpToFileButton, { uri }), + currStreamState === "idle-no-changes" && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(CopyButton, { codeStr, toolTipName: "Copy" }), + /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ApplyButtonsHTML, { uri, applyBoxId, codeStr, language }) + ] }) + ] }), + /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ToolChildrenWrapper, { children }) + ] }); +}; + +// src2/util/inputs.tsx +var import_react5 = __toESM(require_react(), 1); + +// ../../../../../../../node_modules/@floating-ui/react/dist/floating-ui.react.mjs +var React3 = __toESM(require_react(), 1); + +// ../../../../../../../node_modules/@floating-ui/react/dist/floating-ui.react.utils.mjs +var React = __toESM(require_react(), 1); +var import_react3 = __toESM(require_react(), 1); +var isClient = typeof document !== "undefined"; +var noop = function noop2() { +}; +var index = isClient ? import_react3.useLayoutEffect : noop; +var SafeReact = { + ...React +}; +var useInsertionEffect = SafeReact.useInsertionEffect; +var useSafeInsertionEffect = useInsertionEffect || ((fn) => fn()); +function useEffectEvent(callback) { + const ref = React.useRef(() => { + { + throw new Error("Cannot call an event handler while rendering."); + } + }); + useSafeInsertionEffect(() => { + ref.current = callback; + }); + return React.useCallback(function() { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + return ref.current == null ? void 0 : ref.current(...args); + }, []); +} + +// ../../../../../../../node_modules/@floating-ui/react/dist/floating-ui.react.mjs +__toESM(require_jsx_runtime(), 1); +__toESM(require_react_dom(), 1); + +// ../../../../../../../node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs +var React2 = __toESM(require_react(), 1); +var import_react4 = __toESM(require_react(), 1); +var ReactDOM = __toESM(require_react_dom(), 1); +var isClient2 = typeof document !== "undefined"; +var noop3 = function noop4() { +}; +var index2 = isClient2 ? import_react4.useLayoutEffect : noop3; +function deepEqual(a, b) { + if (a === b) { + return true; + } + if (typeof a !== typeof b) { + return false; + } + if (typeof a === "function" && a.toString() === b.toString()) { + return true; + } + let length; + let i; + let keys; + if (a && b && typeof a === "object") { + if (Array.isArray(a)) { + length = a.length; + if (length !== b.length) return false; + for (i = length; i-- !== 0; ) { + if (!deepEqual(a[i], b[i])) { + return false; + } + } + return true; + } + keys = Object.keys(a); + length = keys.length; + if (length !== Object.keys(b).length) { + return false; + } + for (i = length; i-- !== 0; ) { + if (!{}.hasOwnProperty.call(b, keys[i])) { + return false; + } + } + for (i = length; i-- !== 0; ) { + const key = keys[i]; + if (key === "_owner" && a.$$typeof) { + continue; + } + if (!deepEqual(a[key], b[key])) { + return false; + } + } + return true; + } + return a !== a && b !== b; +} +function getDPR(element) { + if (typeof window === "undefined") { + return 1; + } + const win = element.ownerDocument.defaultView || window; + return win.devicePixelRatio || 1; +} +function roundByDPR(element, value) { + const dpr = getDPR(element); + return Math.round(value * dpr) / dpr; +} +function useLatestRef(value) { + const ref = React2.useRef(value); + index2(() => { + ref.current = value; + }); + return ref; +} +function useFloating(options2) { + if (options2 === void 0) { + options2 = {}; + } + const { + placement = "bottom", + strategy = "absolute", + middleware = [], + platform: platform2, + elements: { + reference: externalReference, + floating: externalFloating + } = {}, + transform = true, + whileElementsMounted, + open + } = options2; + const [data, setData] = React2.useState({ + x: 0, + y: 0, + strategy, + placement, + middlewareData: {}, + isPositioned: false + }); + const [latestMiddleware, setLatestMiddleware] = React2.useState(middleware); + if (!deepEqual(latestMiddleware, middleware)) { + setLatestMiddleware(middleware); + } + const [_reference, _setReference] = React2.useState(null); + const [_floating, _setFloating] = React2.useState(null); + const setReference = React2.useCallback((node) => { + if (node !== referenceRef.current) { + referenceRef.current = node; + _setReference(node); + } + }, []); + const setFloating = React2.useCallback((node) => { + if (node !== floatingRef.current) { + floatingRef.current = node; + _setFloating(node); + } + }, []); + const referenceEl = externalReference || _reference; + const floatingEl = externalFloating || _floating; + const referenceRef = React2.useRef(null); + const floatingRef = React2.useRef(null); + const dataRef = React2.useRef(data); + const hasWhileElementsMounted = whileElementsMounted != null; + const whileElementsMountedRef = useLatestRef(whileElementsMounted); + const platformRef = useLatestRef(platform2); + const openRef = useLatestRef(open); + const update = React2.useCallback(() => { + if (!referenceRef.current || !floatingRef.current) { + return; + } + const config = { + placement, + strategy, + middleware: latestMiddleware + }; + if (platformRef.current) { + config.platform = platformRef.current; + } + computePosition(referenceRef.current, floatingRef.current, config).then((data2) => { + const fullData = { + ...data2, + // The floating element's position may be recomputed while it's closed + // but still mounted (such as when transitioning out). To ensure + // `isPositioned` will be `false` initially on the next open, avoid + // setting it to `true` when `open === false` (must be specified). + isPositioned: openRef.current !== false + }; + if (isMountedRef.current && !deepEqual(dataRef.current, fullData)) { + dataRef.current = fullData; + ReactDOM.flushSync(() => { + setData(fullData); + }); + } + }); + }, [latestMiddleware, placement, strategy, platformRef, openRef]); + index2(() => { + if (open === false && dataRef.current.isPositioned) { + dataRef.current.isPositioned = false; + setData((data2) => ({ + ...data2, + isPositioned: false + })); + } + }, [open]); + const isMountedRef = React2.useRef(false); + index2(() => { + isMountedRef.current = true; + return () => { + isMountedRef.current = false; + }; + }, []); + index2(() => { + if (referenceEl) referenceRef.current = referenceEl; + if (floatingEl) floatingRef.current = floatingEl; + if (referenceEl && floatingEl) { + if (whileElementsMountedRef.current) { + return whileElementsMountedRef.current(referenceEl, floatingEl, update); + } + update(); + } + }, [referenceEl, floatingEl, update, whileElementsMountedRef, hasWhileElementsMounted]); + const refs = React2.useMemo(() => ({ + reference: referenceRef, + floating: floatingRef, + setReference, + setFloating + }), [setReference, setFloating]); + const elements = React2.useMemo(() => ({ + reference: referenceEl, + floating: floatingEl + }), [referenceEl, floatingEl]); + const floatingStyles = React2.useMemo(() => { + const initialStyles = { + position: strategy, + left: 0, + top: 0 + }; + if (!elements.floating) { + return initialStyles; + } + const x = roundByDPR(elements.floating, data.x); + const y = roundByDPR(elements.floating, data.y); + if (transform) { + return { + ...initialStyles, + transform: "translate(" + x + "px, " + y + "px)", + ...getDPR(elements.floating) >= 1.5 && { + willChange: "transform" + } + }; + } + return { + position: strategy, + left: x, + top: y + }; + }, [strategy, transform, elements.floating, data.x, data.y]); + return React2.useMemo(() => ({ + ...data, + update, + refs, + elements, + floatingStyles + }), [data, update, refs, elements, floatingStyles]); +} +var offset2 = (options2, deps) => ({ + ...offset(options2), + options: [options2, deps] +}); +var shift2 = (options2, deps) => ({ + ...shift(options2), + options: [options2, deps] +}); +var flip2 = (options2, deps) => ({ + ...flip(options2), + options: [options2, deps] +}); +var size2 = (options2, deps) => ({ + ...size(options2), + options: [options2, deps] +}); +var SafeReact2 = { + ...React3 +}; +var serverHandoffComplete = false; +var count = 0; +var genId = () => ( + // Ensure the id is unique with multiple independent versions of Floating UI + // on serverHandoffComplete ? genId() : void 0); + index(() => { + if (id == null) { + setId(genId()); + } + }, []); + React3.useEffect(() => { + serverHandoffComplete = true; + }, []); + return id; +} +var useReactId = SafeReact2.useId; +var useId = useReactId || useFloatingId; +var devMessageSet; +{ + devMessageSet = /* @__PURE__ */ new Set(); +} +function error() { + var _devMessageSet3; + for (var _len2 = arguments.length, messages = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + messages[_key2] = arguments[_key2]; + } + const message = "Floating UI: " + messages.join(" "); + if (!((_devMessageSet3 = devMessageSet) != null && _devMessageSet3.has(message))) { + var _devMessageSet4; + (_devMessageSet4 = devMessageSet) == null || _devMessageSet4.add(message); + console.error(message); + } +} +function createEventEmitter() { + const map = /* @__PURE__ */ new Map(); + return { + emit(event, data) { + var _map$get; + (_map$get = map.get(event)) == null || _map$get.forEach((listener) => listener(data)); + }, + on(event, listener) { + if (!map.has(event)) { + map.set(event, /* @__PURE__ */ new Set()); + } + map.get(event).add(listener); + }, + off(event, listener) { + var _map$get2; + (_map$get2 = map.get(event)) == null || _map$get2.delete(listener); + } + }; +} +var FloatingNodeContext = /* @__PURE__ */ React3.createContext(null); +var FloatingTreeContext = /* @__PURE__ */ React3.createContext(null); +var useFloatingParentNodeId = () => { + var _React$useContext; + return ((_React$useContext = React3.useContext(FloatingNodeContext)) == null ? void 0 : _React$useContext.id) || null; +}; +var useFloatingTree = () => React3.useContext(FloatingTreeContext); +function useFloatingRootContext(options2) { + const { + open = false, + onOpenChange: onOpenChangeProp, + elements: elementsProp + } = options2; + const floatingId = useId(); + const dataRef = React3.useRef({}); + const [events] = React3.useState(() => createEventEmitter()); + const nested = useFloatingParentNodeId() != null; + { + const optionDomReference = elementsProp.reference; + if (optionDomReference && !isElement(optionDomReference)) { + error("Cannot pass a virtual element to the `elements.reference` option,", "as it must be a real DOM element. Use `refs.setPositionReference()`", "instead."); + } + } + const [positionReference, setPositionReference] = React3.useState(elementsProp.reference); + const onOpenChange = useEffectEvent((open2, event, reason) => { + dataRef.current.openEvent = open2 ? event : void 0; + events.emit("openchange", { + open: open2, + event, + reason, + nested + }); + onOpenChangeProp == null || onOpenChangeProp(open2, event, reason); + }); + const refs = React3.useMemo(() => ({ + setPositionReference + }), []); + const elements = React3.useMemo(() => ({ + reference: positionReference || elementsProp.reference || null, + floating: elementsProp.floating || null, + domReference: elementsProp.reference + }), [positionReference, elementsProp.reference, elementsProp.floating]); + return React3.useMemo(() => ({ + dataRef, + open, + onOpenChange, + elements, + events, + floatingId, + refs + }), [open, onOpenChange, elements, events, floatingId, refs]); +} +function useFloating2(options2) { + if (options2 === void 0) { + options2 = {}; + } + const { + nodeId + } = options2; + const internalRootContext = useFloatingRootContext({ + ...options2, + elements: { + reference: null, + floating: null, + ...options2.elements + } + }); + const rootContext = options2.rootContext || internalRootContext; + const computedElements = rootContext.elements; + const [_domReference, setDomReference] = React3.useState(null); + const [positionReference, _setPositionReference] = React3.useState(null); + const optionDomReference = computedElements == null ? void 0 : computedElements.domReference; + const domReference = optionDomReference || _domReference; + const domReferenceRef = React3.useRef(null); + const tree = useFloatingTree(); + index(() => { + if (domReference) { + domReferenceRef.current = domReference; + } + }, [domReference]); + const position = useFloating({ + ...options2, + elements: { + ...computedElements, + ...positionReference && { + reference: positionReference + } + } + }); + const setPositionReference = React3.useCallback((node) => { + const computedPositionReference = isElement(node) ? { + getBoundingClientRect: () => node.getBoundingClientRect(), + getClientRects: () => node.getClientRects(), + contextElement: node + } : node; + _setPositionReference(computedPositionReference); + position.refs.setReference(computedPositionReference); + }, [position.refs]); + const setReference = React3.useCallback((node) => { + if (isElement(node) || node === null) { + domReferenceRef.current = node; + setDomReference(node); + } + if (isElement(position.refs.reference.current) || position.refs.reference.current === null || // Don't allow setting virtual elements using the old technique back to + // `null` to support `positionReference` + an unstable `reference` + // callback ref. + node !== null && !isElement(node)) { + position.refs.setReference(node); + } + }, [position.refs]); + const refs = React3.useMemo(() => ({ + ...position.refs, + setReference, + setPositionReference, + domReference: domReferenceRef + }), [position.refs, setReference, setPositionReference]); + const elements = React3.useMemo(() => ({ + ...position.elements, + domReference + }), [position.elements, domReference]); + const context = React3.useMemo(() => ({ + ...position, + ...rootContext, + refs, + elements, + nodeId + }), [position, refs, elements, nodeId, rootContext]); + index(() => { + rootContext.dataRef.current.floatingContext = context; + const node = tree == null ? void 0 : tree.nodesRef.current.find((node2) => node2.id === nodeId); + if (node) { + node.context = context; + } + }); + return React3.useMemo(() => ({ + ...position, + context, + refs, + elements + }), [position, refs, elements, context]); +} +var import_jsx_runtime3 = __toESM(require_jsx_runtime(), 1); +var isConstructor = (f) => { + return !!f.prototype && f.prototype.constructor === f; +}; +var WidgetComponent = ({ + ctor, + propsFn, + dispose, + onCreateInstance, + children, + className +}) => { + const containerRef = (0, import_react5.useRef)(null); + (0, import_react5.useEffect)(() => { + const instance = isConstructor(ctor) ? new ctor(...propsFn(containerRef.current)) : ctor(containerRef.current); + const disposables = onCreateInstance(instance); + return () => { + disposables.forEach((d) => d.dispose()); + dispose(instance); + }; + }, [ctor, propsFn, dispose, onCreateInstance, containerRef]); + return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { ref: containerRef, className: className === void 0 ? `void-w-full` : className, children }); +}; +var isSubsequence = (text, pattern) => { + text = text.toLowerCase(); + pattern = pattern.toLowerCase(); + if (pattern === "") return true; + if (text === "") return false; + if (pattern.length > text.length) return false; + const seq = Array(pattern.length + 1).fill(null).map(() => Array(text.length + 1).fill(false)); + for (let j = 0; j <= text.length; j++) { + seq[0][j] = true; + } + for (let i = 1; i <= pattern.length; i++) { + for (let j = 1; j <= text.length; j++) { + if (pattern[i - 1] === text[j - 1]) { + seq[i][j] = seq[i - 1][j - 1]; + } else { + seq[i][j] = seq[i][j - 1]; + } + } + } + return seq[pattern.length][text.length]; +}; +var scoreSubsequence = (text, pattern) => { + if (pattern === "") return 0; + text = text.toLowerCase(); + pattern = pattern.toLowerCase(); + const n = text.length; + const m = pattern.length; + let maxConsecutive = 0; + for (let i = 0; i < n; i++) { + let consecutiveCount = 0; + for (let j = 0; j < m; j++) { + if (i + j < n && text[i + j] === pattern[j]) { + consecutiveCount++; + } else { + break; + } + } + maxConsecutive = Math.max(maxConsecutive, consecutiveCount); + } + return maxConsecutive; +}; +function getRelativeWorkspacePath(accessor, uri) { + const workspaceService = accessor.get("IWorkspaceContextService"); + const workspaceFolders = workspaceService.getWorkspace().folders; + if (!workspaceFolders.length) { + return uri.fsPath; + } + const sortedFolders = [...workspaceFolders].sort( + (a, b) => b.uri.fsPath.length - a.uri.fsPath.length + ); + const uriPath = uri.fsPath.endsWith("/") ? uri.fsPath : uri.fsPath + "/"; + for (const folder of sortedFolders) { + const folderPath = folder.uri.fsPath.endsWith("/") ? folder.uri.fsPath : folder.uri.fsPath + "/"; + if (uriPath.startsWith(folderPath)) { + let relativePath = uri.fsPath.slice(folder.uri.fsPath.length); + if (relativePath.startsWith("/")) { + relativePath = relativePath.slice(1); + } + return relativePath; + } + } + return uri.fsPath; +} +var numOptionsToShow = 100; +var getAbbreviatedName = (relativePath) => { + return getBasename(relativePath, 1); +}; +var getOptionsAtPath = async (accessor, path, optionText) => { + const toolsService = accessor.get("IToolsService"); + const searchForFilesOrFolders = async (t, searchFor) => { + try { + const searchResults = (await (await toolsService.callTool.search_pathnames_only({ + query: t, + includePattern: null, + pageNumber: 1 + })).result).uris; + if (searchFor === "files") { + const res = searchResults.map((uri) => { + const relativePath = getRelativeWorkspacePath(accessor, uri); + return { + leafNodeType: "File", + uri, + iconInMenu: File, + fullName: relativePath, + abbreviatedName: getAbbreviatedName(relativePath) + }; + }); + return res; + } else if (searchFor === "folders") { + const directoryMap = /* @__PURE__ */ new Map(); + for (const uri of searchResults) { + if (!uri) continue; + const relativePath = getRelativeWorkspacePath(accessor, uri); + const pathParts = relativePath.split("/"); + const workspaceService = accessor.get("IWorkspaceContextService"); + const workspaceFolders = workspaceService.getWorkspace().folders; + let workspaceFolderUri; + if (workspaceFolders.length) { + const sortedFolders = [...workspaceFolders].sort( + (a, b) => b.uri.fsPath.length - a.uri.fsPath.length + ); + for (const folder of sortedFolders) { + const folderPath = folder.uri.fsPath.endsWith("/") ? folder.uri.fsPath : folder.uri.fsPath + "/"; + const uriPath = uri.fsPath.endsWith("/") ? uri.fsPath : uri.fsPath + "/"; + if (uriPath.startsWith(folderPath)) { + workspaceFolderUri = folder.uri; + break; + } + } + } + if (workspaceFolderUri) { + let currentPath = ""; + for (let i = 0; i < pathParts.length - 1; i++) { + currentPath = i === 0 ? `/${pathParts[i]}` : `${currentPath}/${pathParts[i]}`; + const directoryUri = URI.joinPath( + workspaceFolderUri, + currentPath.startsWith("/") ? currentPath.substring(1) : currentPath + ); + directoryMap.set(currentPath, directoryUri); + } + } + } + return Array.from(directoryMap.entries()).map(([relativePath, uri]) => ({ + leafNodeType: "Folder", + uri, + iconInMenu: Folder, + // Folder + fullName: relativePath, + abbreviatedName: getAbbreviatedName(relativePath) + })); + } + } catch (error2) { + console.error("Error fetching directories:", error2); + return []; + } + }; + const allOptions = [ + { + fullName: "selection", + abbreviatedName: "selection", + iconInMenu: File, + generateNextOptions: async (_t) => { + try { + const editorService = accessor.get("IEditorService"); + const languageService = accessor.get("ILanguageService"); + const active = editorService.activeTextEditorControl; + const activeResource = editorService.activeEditor?.resource; + const sel = active?.getSelection?.(); + if (activeResource && sel && !sel.isEmpty()) { + const basename = getAbbreviatedName(getRelativeWorkspacePath(accessor, activeResource)); + const label = `${basename}:${sel.startLineNumber}-${sel.endLineNumber}`; + return [{ + leafNodeType: "File", + uri: activeResource, + range: sel, + iconInMenu: File, + fullName: label, + abbreviatedName: "selection" + }]; + } + } catch { + } + return []; + } + }, + { + fullName: "recent", + abbreviatedName: "recent", + iconInMenu: File, + generateNextOptions: async (t) => { + try { + const historyService = accessor.get("IHistoryService"); + const items = historyService.getHistory().filter((h) => h.resource).map((h) => h.resource); + const options2 = items.map((uri) => { + const relativePath = getRelativeWorkspacePath(accessor, uri); + return { + leafNodeType: "File", + uri, + iconInMenu: File, + fullName: relativePath, + abbreviatedName: getAbbreviatedName(relativePath) + }; + }); + return options2.filter((o) => isSubsequence(o.fullName, t)); + } catch { + return []; + } + } + }, + { + fullName: "workspace", + abbreviatedName: "workspace", + iconInMenu: Folder, + generateNextOptions: async (_t) => { + try { + const workspaceService = accessor.get("IWorkspaceContextService"); + return workspaceService.getWorkspace().folders.map((f) => ({ + leafNodeType: "Folder", + uri: f.uri, + iconInMenu: Folder, + fullName: getRelativeWorkspacePath(accessor, f.uri) || "/", + abbreviatedName: getFolderName(getRelativeWorkspacePath(accessor, f.uri) || "/") + })); + } catch { + return []; + } + } + }, + { + fullName: "files", + abbreviatedName: "files", + iconInMenu: File, + generateNextOptions: async (t) => await searchForFilesOrFolders(t, "files") || [] + }, + { + fullName: "folders", + abbreviatedName: "folders", + iconInMenu: Folder, + generateNextOptions: async (t) => await searchForFilesOrFolders(t, "folders") || [] + } + ]; + let nextOptionsAtPath = allOptions; + let generateNextOptionsAtPath = void 0; + for (const pn of path) { + const selectedOption = nextOptionsAtPath.find((o) => o.fullName.toLowerCase() === pn.toLowerCase()); + if (!selectedOption) return []; + nextOptionsAtPath = selectedOption.nextOptions; + generateNextOptionsAtPath = selectedOption.generateNextOptions; + } + if (generateNextOptionsAtPath) { + nextOptionsAtPath = await generateNextOptionsAtPath(optionText); + } else if (path.length === 0 && optionText.trim().length > 0) { + const filesResults = await searchForFilesOrFolders(optionText, "files") || []; + const foldersResults = await searchForFilesOrFolders(optionText, "folders") || []; + nextOptionsAtPath = [...foldersResults, ...filesResults]; + } + const optionsAtPath = nextOptionsAtPath.filter((o) => isSubsequence(o.fullName, optionText)).sort((a, b) => { + const scoreA = scoreSubsequence(a.fullName, optionText); + const scoreB = scoreSubsequence(b.fullName, optionText); + return scoreB - scoreA; + }).slice(0, numOptionsToShow); + return optionsAtPath; +}; +var VoidInputBox2 = (0, import_react5.forwardRef)(function X2({ initValue, placeholder, multiline, enableAtToMention, fnsRef, className = "", appearance = "default", style, onKeyDown, onFocus, onBlur, onChangeText }, ref) { + const accessor = useAccessor(); + const chatThreadService = accessor.get("IChatThreadService"); + const languageService = accessor.get("ILanguageService"); + const textAreaRef = (0, import_react5.useRef)(null); + const selectedOptionRef = (0, import_react5.useRef)(null); + const [isMenuOpen, _setIsMenuOpen] = (0, import_react5.useState)(false); + const setIsMenuOpen = (value) => { + if (!enableAtToMention) { + return; + } + _setIsMenuOpen(value); + }; + const [optionPath, setOptionPath] = (0, import_react5.useState)([]); + const [optionIdx, setOptionIdx] = (0, import_react5.useState)(0); + const [options2, setOptions2] = (0, import_react5.useState)([]); + const [optionText, setOptionText] = (0, import_react5.useState)(""); + const [didLoadInitialOptions, setDidLoadInitialOptions] = (0, import_react5.useState)(false); + const currentPathRef = (0, import_react5.useRef)(JSON.stringify([])); + const isBreadcrumbsShowing = optionPath.length === 0 && !optionText ? false : true; + const insertTextAtCursor = (text) => { + const textarea = textAreaRef.current; + if (!textarea) return; + textarea.focus(); + const startPos = textarea.selectionStart; + const endPos = textarea.selectionEnd; + const textBeforeCursor = textarea.value.substring(0, startPos - 1); + const textAfterCursor = textarea.value.substring(endPos); + textarea.value = textBeforeCursor + textAfterCursor; + const newCursorPos = textBeforeCursor.length; + textarea.setSelectionRange(newCursorPos, newCursorPos); + if (onChangeText) { + onChangeText(textarea.value); + } + adjustHeight(); + }; + const onSelectOption = async () => { + if (!options2.length) { + return; + } + const option = options2[optionIdx]; + const newPath = [...optionPath, option.fullName]; + const isLastOption = !option.generateNextOptions && !option.nextOptions; + setDidLoadInitialOptions(false); + if (isLastOption) { + setIsMenuOpen(false); + insertTextAtCursor(option.abbreviatedName); + let newSelection; + if (option.leafNodeType === "File") newSelection = { + type: "File", + uri: option.uri, + language: languageService.guessLanguageIdByFilepathOrFirstLine(option.uri) || "", + state: { wasAddedAsCurrentFile: false } + }; + else if (option.leafNodeType === "Folder") newSelection = { + type: "Folder", + uri: option.uri, + language: void 0, + state: void 0 + }; + else + throw new Error(`Unexpected leafNodeType ${option.leafNodeType}`); + chatThreadService.addNewStagingSelection(newSelection); + } else { + currentPathRef.current = JSON.stringify(newPath); + const newOpts = await getOptionsAtPath(accessor, newPath, "") || []; + if (currentPathRef.current !== JSON.stringify(newPath)) { + return; + } + setOptionPath(newPath); + setOptionText(""); + setOptionIdx(0); + setOptions2(newOpts); + setDidLoadInitialOptions(true); + } + }; + const onRemoveOption = async () => { + const newPath = [...optionPath.slice(0, optionPath.length - 1)]; + currentPathRef.current = JSON.stringify(newPath); + const newOpts = await getOptionsAtPath(accessor, newPath, "") || []; + if (currentPathRef.current !== JSON.stringify(newPath)) { + return; + } + setOptionPath(newPath); + setOptionText(""); + setOptionIdx(0); + setOptions2(newOpts); + }; + const onOpenOptionMenu = async () => { + const newPath = []; + currentPathRef.current = JSON.stringify([]); + const newOpts = await getOptionsAtPath(accessor, [], "") || []; + if (currentPathRef.current !== JSON.stringify([])) { + return; + } + setOptionPath(newPath); + setOptionText(""); + setIsMenuOpen(true); + setOptionIdx(0); + setOptions2(newOpts); + }; + const onCloseOptionMenu = () => { + setIsMenuOpen(false); + }; + const onNavigateUp = (step = 1, periodic = true) => { + if (options2.length === 0) return; + setOptionIdx((prevIdx) => { + const newIdx = prevIdx - step; + return periodic ? (newIdx + options2.length) % options2.length : Math.max(0, newIdx); + }); + }; + const onNavigateDown = (step = 1, periodic = true) => { + if (options2.length === 0) return; + setOptionIdx((prevIdx) => { + const newIdx = prevIdx + step; + return periodic ? newIdx % options2.length : Math.min(options2.length - 1, newIdx); + }); + }; + const onNavigateToTop = () => { + if (options2.length === 0) return; + setOptionIdx(0); + }; + const onNavigateToBottom = () => { + if (options2.length === 0) return; + setOptionIdx(options2.length - 1); + }; + const debounceTimerRef = (0, import_react5.useRef)(null); + (0, import_react5.useEffect)(() => { + return () => { + if (debounceTimerRef.current !== null) { + window.clearTimeout(debounceTimerRef.current); + debounceTimerRef.current = null; + } + }; + }, []); + const onPathTextChange = (0, import_react5.useCallback)((newStr) => { + setOptionText(newStr); + if (debounceTimerRef.current !== null) { + window.clearTimeout(debounceTimerRef.current); + } + currentPathRef.current = JSON.stringify(optionPath); + const fetchOptions = async () => { + const newOpts = await getOptionsAtPath(accessor, optionPath, newStr) || []; + if (currentPathRef.current !== JSON.stringify(optionPath)) { + return; + } + setOptions2(newOpts); + setOptionIdx(0); + debounceTimerRef.current = null; + }; + if (newStr.trim() === "") { + fetchOptions(); + } else { + debounceTimerRef.current = window.setTimeout(fetchOptions, 300); + } + }, [optionPath, accessor]); + const onMenuKeyDown = (e) => { + const isCommandKeyPressed = e.altKey || e.ctrlKey || e.metaKey; + if (e.key === "ArrowUp") { + if (isCommandKeyPressed) { + onNavigateToTop(); + } else { + if (e.altKey) { + onNavigateUp(10, false); + } else { + onNavigateUp(); + } + } + } else if (e.key === "ArrowDown") { + if (isCommandKeyPressed) { + onNavigateToBottom(); + } else { + if (e.altKey) { + onNavigateDown(10, false); + } else { + onNavigateDown(); + } + } + } else if (e.key === "ArrowLeft") { + onRemoveOption(); + } else if (e.key === "ArrowRight") { + onSelectOption(); + } else if (e.key === "Enter") { + onSelectOption(); + } else if (e.key === "Escape") { + onCloseOptionMenu(); + } else if (e.key === "Backspace") { + if (!optionText) { + if (optionPath.length === 0) { + onCloseOptionMenu(); + return; + } else { + onRemoveOption(); + } + } else if (isCommandKeyPressed) { + onPathTextChange(""); + } else { + onPathTextChange(optionText.slice(0, -1)); + } + } else if (e.key.length === 1) { + if (isCommandKeyPressed) ; else { + { + onPathTextChange(optionText + e.key); + } + } + } + e.preventDefault(); + e.stopPropagation(); + }; + (0, import_react5.useEffect)(() => { + if (isMenuOpen && selectedOptionRef.current) { + selectedOptionRef.current.scrollIntoView({ + behavior: "instant", + block: "nearest", + inline: "nearest" + }); + } + }, [optionIdx, isMenuOpen, optionText, selectedOptionRef]); + const measureRef = (0, import_react5.useRef)(null); + const gapPx = 2; + const offsetPx = 2; + const { + x, + y, + strategy, + refs, + middlewareData, + update + } = useFloating2({ + open: isMenuOpen, + onOpenChange: setIsMenuOpen, + placement: "bottom", + middleware: [ + offset2({ mainAxis: gapPx, crossAxis: offsetPx }), + flip2({ + boundary: document.body, + padding: 8 + }), + shift2({ + boundary: document.body, + padding: 8 + }), + size2({ + apply({ elements, rects }) { + Object.assign(elements.floating.style, { + width: `${Math.max( + rects.reference.width, + measureRef.current?.offsetWidth ?? 0 + )}px` + }); + }, + padding: 8, + // Use viewport as boundary instead of any parent element + boundary: document.body + }) + ], + whileElementsMounted: autoUpdate, + strategy: "fixed" + }); + (0, import_react5.useEffect)(() => { + if (!isMenuOpen) return; + const handleClickOutside = (event) => { + const target = event.target; + const floating = refs.floating.current; + const reference = refs.reference.current; + const isReferenceHTMLElement = reference && "contains" in reference; + if (floating && (!isReferenceHTMLElement || !reference.contains(target)) && !floating.contains(target)) { + setIsMenuOpen(false); + } + }; + document.addEventListener("mousedown", handleClickOutside); + return () => document.removeEventListener("mousedown", handleClickOutside); + }, [isMenuOpen, refs.floating, refs.reference]); + const [isEnabled, setEnabled] = (0, import_react5.useState)(true); + const adjustHeight = (0, import_react5.useCallback)(() => { + const r = textAreaRef.current; + if (!r) return; + r.style.height = "auto"; + if (r.scrollHeight === 0) return requestAnimationFrame(adjustHeight); + const h = r.scrollHeight; + const newHeight = Math.min(h + 1, 500); + r.style.height = `${newHeight}px`; + }, []); + const fns = (0, import_react5.useMemo)(() => ({ + setValue: (val) => { + const r = textAreaRef.current; + if (!r) return; + r.value = val; + onChangeText?.(r.value); + adjustHeight(); + }, + enable: () => { + setEnabled(true); + }, + disable: () => { + setEnabled(false); + } + }), [onChangeText, adjustHeight]); + (0, import_react5.useEffect)(() => { + if (initValue) + fns.setValue(initValue); + }, [initValue]); + const isChatDark = appearance === "chatDark"; + const appearanceClasses = isChatDark ? "text-white placeholder:text-white/40" : "text-void-fg-1 placeholder:text-void-fg-3"; + const baseStyle = isChatDark ? { + background: "transparent", + color: "#fff", + border: "none", + boxShadow: "none" + } : { + background: asCssVariable(inputBackground), + color: asCssVariable(inputForeground) + }; + return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(import_jsx_runtime3.Fragment, { children: [ + /* @__PURE__ */ (0, import_jsx_runtime3.jsx)( + "textarea", + { + autoFocus: false, + ref: (0, import_react5.useCallback)((r) => { + if (fnsRef) + fnsRef.current = fns; + refs.setReference(r); + textAreaRef.current = r; + if (typeof ref === "function") ref(r); + else if (ref) ref.current = r; + adjustHeight(); + }, [fnsRef, fns, setEnabled, adjustHeight, ref, refs]), + onFocus, + onBlur, + disabled: !isEnabled, + className: `void-w-full void-resize-none void-max-h-[500px] void-overflow-y-auto ${appearanceClasses} ${className}`, + style: { ...baseStyle, ...style }, + onInput: (0, import_react5.useCallback)((event) => { + const latestChange = event.nativeEvent.data; + if (latestChange === "@") { + onOpenOptionMenu(); + } + }, [onOpenOptionMenu, accessor]), + onChange: (0, import_react5.useCallback)((e) => { + const r = textAreaRef.current; + if (!r) return; + onChangeText?.(r.value); + adjustHeight(); + }, [onChangeText, adjustHeight]), + onKeyDown: (0, import_react5.useCallback)((e) => { + if (isMenuOpen) { + onMenuKeyDown(e); + return; + } + if (e.key === "Backspace") { + if (!e.currentTarget.value || e.currentTarget.selectionStart === 0 && e.currentTarget.selectionEnd === 0) { + if (e.metaKey || e.ctrlKey) { + chatThreadService.popStagingSelections(Number.MAX_SAFE_INTEGER); + } else { + chatThreadService.popStagingSelections(1); + } + return; + } + } + if (e.key === "Enter") { + const shouldAddNewline = e.shiftKey && multiline; + if (!shouldAddNewline) e.preventDefault(); + } + onKeyDown?.(e); + }, [onKeyDown, onMenuKeyDown, multiline]), + rows: 1, + placeholder + } + ), + isMenuOpen && /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)( + "div", + { + ref: refs.setFloating, + className: "void-z-[100] void-border-void-border-3 void-bg-void-bg-2-alt void-border void-rounded void-shadow-lg void-flex void-flex-col void-overflow-hidden", + style: { + position: strategy, + top: y ?? 0, + left: x ?? 0, + width: refs.reference.current instanceof HTMLElement ? refs.reference.current.offsetWidth : 0 + }, + onWheel: (e) => e.stopPropagation(), + children: [ + isBreadcrumbsShowing && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "void-px-2 void-py-1 void-text-void-fg-1 void-bg-void-bg-2-alt void-border-b void-border-void-border-3 void-sticky void-top-0 void-bg-void-bg-1 void-z-10 void-select-none void-pointer-events-none", children: optionText ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "void-flex void-items-center", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { children: optionText }) }) : /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "void-opacity-50", children: "Enter text to filter..." }) }), + /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "void-max-h-[400px] void-w-full void-max-w-full void-overflow-y-auto void-overflow-x-auto", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "void-w-max void-min-w-full void-flex void-flex-col void-gap-0 void-text-nowrap void-flex-nowrap", children: options2.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "void-text-void-fg-3 void-px-3 void-py-0.5", children: "No results found" }) : options2.map((o, oIdx) => { + return ( + // Option + /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)( + "div", + { + ref: oIdx === optionIdx ? selectedOptionRef : null, + className: ` void-flex void-items-center void-gap-2 void-px-3 void-py-1 void-cursor-pointer ${oIdx === optionIdx ? "void-bg-blue-500 void-text-white/80" : "void-bg-void-bg-2-alt void-text-void-fg-1"} `, + onClick: () => { + onSelectOption(); + }, + onMouseMove: () => { + setOptionIdx(oIdx); + }, + children: [ + /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(o.iconInMenu, { size: 12 }), + /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { children: o.abbreviatedName }), + o.fullName && o.fullName !== o.abbreviatedName && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: "void-opacity-60 void-text-sm", children: o.fullName }), + o.nextOptions || o.generateNextOptions ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(ChevronRight, { size: 12 }) : null + ] + }, + o.fullName + ) + ); + }) }) }) + ] + } + ) + ] }); +}); +var VoidSimpleInputBox = ({ + value, + onChangeValue, + placeholder, + className, + disabled, + passwordBlur, + compact, + ...inputProps +}) => { + const inputRef = (0, import_react5.useRef)(null); + const selectionRef = (0, import_react5.useRef)({ + start: null, + end: null + }); + (0, import_react5.useEffect)(() => { + const input = inputRef.current; + if (input && input.value !== value) { + selectionRef.current.start = input.selectionStart; + selectionRef.current.end = input.selectionEnd; + input.value = value; + if (selectionRef.current.start !== null && selectionRef.current.end !== null) { + input.setSelectionRange(selectionRef.current.start, selectionRef.current.end); + } + } + }, [value]); + const handleChange = (0, import_react5.useCallback)((e) => { + onChangeValue(e.target.value); + }, [onChangeValue]); + return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)( + "input", + { + ref: inputRef, + defaultValue: value, + onChange: handleChange, + placeholder, + disabled, + className: `void-w-full void-resize-none void-bg-void-bg-1 void-text-void-fg-1 placeholder:void-text-void-fg-3 void-border void-border-void-border-2 focus:void-border-void-border-1 ${compact ? "void-py-1 void-px-2" : "void-py-2 void-px-4 "} void-rounded ${disabled ? "void-opacity-50 void-cursor-not-allowed" : ""} ${className}`, + style: { + ...passwordBlur && { WebkitTextSecurity: "disc" }, + background: asCssVariable(inputBackground), + color: asCssVariable(inputForeground) + }, + ...inputProps, + type: void 0 + } + ); +}; +var VoidSlider = ({ + value, + onChange, + size: size3 = "md", + disabled = false, + min = 0, + max = 7, + step = 1, + className = "", + width = 200 +}) => { + const percentage = (value - min) / (max - min) * 100; + const handleTrackClick = (e) => { + if (disabled) return; + const rect = e.currentTarget.getBoundingClientRect(); + const clickPosition = e.clientX - rect.left; + const trackWidth = rect.width; + const newPercentage = Math.max(0, Math.min(1, clickPosition / trackWidth)); + const rawValue = min + newPercentage * (max - min); + if (rawValue >= max - step / 2) { + onChange(max); + return; + } + const steppedValue = Math.round((rawValue - min) / step) * step + min; + const clampedValue = Math.max(min, Math.min(max, steppedValue)); + onChange(clampedValue); + }; + const handleThumbDrag = (moveEvent, track) => { + if (!track) return; + const rect = track.getBoundingClientRect(); + const movePosition = moveEvent.clientX - rect.left; + const trackWidth = rect.width; + const newPercentage = Math.max(0, Math.min(1, movePosition / trackWidth)); + const rawValue = min + newPercentage * (max - min); + if (rawValue >= max - step / 2) { + onChange(max); + return; + } + const steppedValue = Math.round((rawValue - min) / step) * step + min; + const clampedValue = Math.max(min, Math.min(max, steppedValue)); + onChange(clampedValue); + }; + return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: `void-inline-flex void-items-center void-flex-shrink-0 ${className}`, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)( + "div", + { + className: `void-relative void-flex-shrink-0 ${disabled ? "void-opacity-25" : ""}`, + style: { + width + // Add horizontal padding equal to half the thumb width + // paddingLeft: thumbSizePx / 2, + // paddingRight: thumbSizePx / 2 + }, + children: /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "void-relative void-w-full", children: [ + /* @__PURE__ */ (0, import_jsx_runtime3.jsx)( + "div", + { + className: "void-absolute void-w-full void-cursor-pointer", + style: { + height: "16px", + top: "50%", + transform: "translateY(-50%)", + zIndex: 1 + }, + onClick: handleTrackClick + } + ), + /* @__PURE__ */ (0, import_jsx_runtime3.jsx)( + "div", + { + className: `void-relative ${size3 === "xxs" ? "void-h-0.5" : size3 === "xs" ? "void-h-1" : size3 === "sm" ? "void-h-1.5" : size3 === "sm+" ? "void-h-2" : "void-h-2.5"} void-bg-void-bg-2 void-rounded-full void-cursor-pointer`, + onClick: handleTrackClick, + children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)( + "div", + { + className: `void-absolute void-left-0 ${size3 === "xxs" ? "void-h-0.5" : size3 === "xs" ? "void-h-1" : size3 === "sm" ? "void-h-1.5" : size3 === "sm+" ? "void-h-2" : "void-h-2.5"} void-bg-void-fg-1 void-rounded-full`, + style: { width: `${percentage}%` } + } + ) + } + ), + /* @__PURE__ */ (0, import_jsx_runtime3.jsx)( + "div", + { + className: `void-absolute void-top-1/2 void-transform -void-translate-x-1/2 -void-translate-y-1/2 ${size3 === "xxs" ? "void-h-2 void-w-2" : size3 === "xs" ? "void-h-2.5 void-w-2.5" : size3 === "sm" ? "void-h-3 void-w-3" : size3 === "sm+" ? "void-h-3.5 void-w-3.5" : "void-h-4 void-w-4"} void-bg-void-fg-1 void-rounded-full void-shadow-md ${disabled ? "void-cursor-not-allowed" : "void-cursor-grab active:void-cursor-grabbing"} void-border void-border-void-fg-1`, + style: { left: `${percentage}%`, zIndex: 2 }, + onMouseDown: (e) => { + if (disabled) return; + const track = e.currentTarget.previousElementSibling; + const handleMouseMove = (moveEvent) => { + handleThumbDrag(moveEvent, track); + }; + const handleMouseUp = () => { + document.removeEventListener("mousemove", handleMouseMove); + document.removeEventListener("mouseup", handleMouseUp); + document.body.style.cursor = ""; + document.body.style.userSelect = ""; + }; + document.body.style.userSelect = "none"; + document.body.style.cursor = "grabbing"; + document.addEventListener("mousemove", handleMouseMove); + document.addEventListener("mouseup", handleMouseUp); + e.preventDefault(); + } + } + ) + ] }) + } + ) }); +}; +var VoidSwitch = ({ + value, + onChange, + size: size3 = "md", + disabled = false, + ...props +}) => { + return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("label", { className: "void-inline-flex void-items-center", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)( + "div", + { + onClick: () => !disabled && onChange(!value), + className: ` void-cursor-pointer void-relative void-inline-flex void-items-center void-rounded-full void-transition-colors void-duration-200 void-ease-in-out ${value ? "void-bg-zinc-900 dark:void-bg-white" : "void-bg-white dark:void-bg-zinc-600"} ${disabled ? "void-opacity-25" : ""} ${size3 === "xxs" ? "void-h-3 void-w-5" : ""} ${size3 === "xs" ? "void-h-4 void-w-7" : ""} ${size3 === "sm" ? "void-h-5 void-w-9" : ""} ${size3 === "sm+" ? "void-h-5 void-w-10" : ""} ${size3 === "md" ? "void-h-6 void-w-11" : ""} `, + children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)( + "span", + { + className: ` void-inline-block void-transform void-rounded-full void-bg-white dark:void-bg-zinc-900 void-shadow void-transition-transform void-duration-200 void-ease-in-out ${size3 === "xxs" ? "void-h-2 void-w-2" : ""} ${size3 === "xs" ? "void-h-2.5 void-w-2.5" : ""} ${size3 === "sm" ? "void-h-3 void-w-3" : ""} ${size3 === "sm+" ? "void-h-3.5 void-w-3.5" : ""} ${size3 === "md" ? "void-h-4 void-w-4" : ""} ${size3 === "xxs" ? value ? "void-translate-x-2.5" : "void-translate-x-0.5" : ""} ${size3 === "xs" ? value ? "void-translate-x-3.5" : "void-translate-x-0.5" : ""} ${size3 === "sm" ? value ? "void-translate-x-5" : "void-translate-x-1" : ""} ${size3 === "sm+" ? value ? "void-translate-x-6" : "void-translate-x-1" : ""} ${size3 === "md" ? value ? "void-translate-x-6" : "void-translate-x-1" : ""} ` + } + ) + } + ) }); +}; +var VoidCustomDropdownBox = ({ + options: options2, + selectedOption, + onChangeOption, + getOptionDropdownName, + getOptionDropdownDetail, + getOptionDisplayName, + getOptionsEqual, + className, + arrowTouchesText = true, + matchInputWidth = false, + gapPx = 0, + offsetPx = -6 +}) => { + const [isOpen, setIsOpen] = (0, import_react5.useState)(false); + const measureRef = (0, import_react5.useRef)(null); + const { + x, + y, + strategy, + refs, + middlewareData, + update + } = useFloating2({ + open: isOpen, + onOpenChange: setIsOpen, + placement: "bottom-start", + middleware: [ + offset2({ mainAxis: gapPx, crossAxis: offsetPx }), + flip2({ + boundary: document.body, + padding: 8 + }), + shift2({ + boundary: document.body, + padding: 8 + }), + size2({ + apply({ availableHeight, elements, rects }) { + const maxHeight = Math.min(availableHeight); + Object.assign(elements.floating.style, { + maxHeight: `${maxHeight}px`, + overflowY: "auto", + // Ensure the width isn't constrained by the parent + width: `${Math.max( + rects.reference.width, + measureRef.current?.offsetWidth ?? 0 + )}px` + }); + }, + padding: 8, + // Use viewport as boundary instead of any parent element + boundary: document.body + }) + ], + whileElementsMounted: autoUpdate, + strategy: "fixed" + }); + (0, import_react5.useEffect)(() => { + if (options2.length === 0) return; + if (selectedOption !== void 0) return; + onChangeOption(options2[0]); + }, [selectedOption, onChangeOption, options2]); + (0, import_react5.useEffect)(() => { + if (!isOpen) return; + const handleClickOutside = (event) => { + const target = event.target; + const floating = refs.floating.current; + const reference = refs.reference.current; + const isReferenceHTMLElement = reference && "contains" in reference; + if (floating && (!isReferenceHTMLElement || !reference.contains(target)) && !floating.contains(target)) { + setIsOpen(false); + } + }; + document.addEventListener("mousedown", handleClickOutside); + return () => document.removeEventListener("mousedown", handleClickOutside); + }, [isOpen, refs.floating, refs.reference]); + if (selectedOption === void 0) + return null; + return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: `void-inline-block void-relative ${className}`, children: [ + /* @__PURE__ */ (0, import_jsx_runtime3.jsx)( + "div", + { + ref: measureRef, + className: "void-opacity-0 void-pointer-events-none void-absolute -void-left-[999999px] -void-top-[999999px] void-flex void-flex-col", + "aria-hidden": "true", + children: options2.map((option) => { + const optionName = getOptionDropdownName(option); + const optionDetail = getOptionDropdownDetail?.(option) || ""; + return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "void-flex void-items-center void-whitespace-nowrap", children: [ + /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "void-w-4" }), + /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("span", { className: "void-flex void-justify-between void-w-full", children: [ + /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { children: optionName }), + /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { children: optionDetail }), + /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { children: "______" }) + ] }) + ] }, optionName + optionDetail); + }) + } + ), + /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)( + "button", + { + type: "button", + ref: refs.setReference, + className: "void-flex void-items-center void-h-4 void-bg-transparent void-whitespace-nowrap hover:void-brightness-90 void-w-full", + onClick: () => setIsOpen(!isOpen), + children: [ + /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: `void-truncate ${arrowTouchesText ? "void-mr-1" : ""}`, children: getOptionDisplayName(selectedOption) }), + /* @__PURE__ */ (0, import_jsx_runtime3.jsx)( + "svg", + { + className: `void-size-3 void-flex-shrink-0 ${arrowTouchesText ? "" : "void-ml-auto"}`, + viewBox: "0 0 12 12", + fill: "none", + children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)( + "path", + { + d: "M2.5 4.5L6 8L9.5 4.5", + stroke: "currentColor", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ) + } + ) + ] + } + ), + isOpen && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)( + "div", + { + ref: refs.setFloating, + className: "void-z-[100] void-bg-void-bg-1 void-border-void-border-3 void-border void-rounded void-shadow-lg", + style: { + position: strategy, + top: y ?? 0, + left: x ?? 0, + width: matchInputWidth ? refs.reference.current instanceof HTMLElement ? refs.reference.current.offsetWidth : 0 : Math.max( + refs.reference.current instanceof HTMLElement ? refs.reference.current.offsetWidth : 0, + measureRef.current instanceof HTMLElement ? measureRef.current.offsetWidth : 0 + ) + }, + onWheel: (e) => e.stopPropagation(), + children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "void-overflow-auto void-max-h-80", children: options2.map((option) => { + const thisOptionIsSelected = getOptionsEqual(option, selectedOption); + const optionName = getOptionDropdownName(option); + const optionDetail = getOptionDropdownDetail?.(option) || ""; + return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)( + "div", + { + className: `void-flex void-items-center void-px-2 void-py-1 void-pr-4 void-cursor-pointer void-whitespace-nowrap void-transition-all void-duration-100 ${thisOptionIsSelected ? "void-bg-blue-500 void-text-white/80" : "hover:void-bg-blue-500 hover:void-text-white/80"} `, + onClick: () => { + onChangeOption(option); + setIsOpen(false); + }, + children: [ + /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "void-w-4 void-flex void-justify-center void-flex-shrink-0", children: thisOptionIsSelected && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("svg", { className: "void-size-3", viewBox: "0 0 12 12", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)( + "path", + { + d: "M10 3L4.5 8.5L2 6", + stroke: "currentColor", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ) }) }), + /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("span", { className: "void-flex void-justify-between void-items-center void-w-full void-gap-x-1", children: [ + /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { children: optionName }), + /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: "void-opacity-60", children: optionDetail }) + ] }) + ] + }, + optionName + ); + }) }) + } + ) + ] }); +}; +var normalizeIndentation = (code) => { + const lines = code.split("\n"); + let minLeadingSpaces = Infinity; + for (const line of lines) { + if (line.trim() === "") continue; + let leadingSpaces = 0; + for (let i = 0; i < line.length; i++) { + const char = line[i]; + if (char === " " || char === " ") { + leadingSpaces += 1; + } else { + break; + } + } + minLeadingSpaces = Math.min(minLeadingSpaces, leadingSpaces); + } + return lines.map((line) => { + if (line.trim() === "") return line; + let spacesToRemove = minLeadingSpaces; + let i = 0; + while (spacesToRemove > 0 && i < line.length) { + const char = line[i]; + if (char === " " || char === " ") { + spacesToRemove -= 1; + i++; + } else { + break; + } + } + return line.slice(i); + }).join("\n"); +}; +var modelOfEditorId = {}; +var BlockCode = ({ initValue, language, maxHeight, showScrollbars }) => { + initValue = normalizeIndentation(initValue); + const MAX_HEIGHT = maxHeight ?? Infinity; + const SHOW_SCROLLBARS = showScrollbars ?? false; + const divRef = (0, import_react5.useRef)(null); + const accessor = useAccessor(); + const instantiationService = accessor.get("IInstantiationService"); + const modelService = accessor.get("IModelService"); + const id = (0, import_react5.useId)(); + const initValueRef = (0, import_react5.useRef)(initValue); + const languageRef = (0, import_react5.useRef)(language); + const modelRef = (0, import_react5.useRef)(null); + (0, import_react5.useEffect)(() => { + initValueRef.current = initValue; + modelRef.current?.setValue(initValue); + }, [initValue]); + (0, import_react5.useEffect)(() => { + languageRef.current = language; + if (language) modelRef.current?.setLanguage(language); + }, [language]); + return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { ref: divRef, className: "void-relative void-z-0 void-px-2 void-py-1 void-bg-void-bg-3", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)( + WidgetComponent, + { + className: "bg-editor-style-override", + ctor: (0, import_react5.useCallback)((container) => { + return instantiationService.createInstance( + CodeEditorWidget, + container, + { + automaticLayout: true, + wordWrap: "off", + scrollbar: { + alwaysConsumeMouseWheel: false, + ...SHOW_SCROLLBARS ? { + vertical: "auto", + verticalScrollbarSize: 8, + horizontal: "auto", + horizontalScrollbarSize: 8 + } : { + vertical: "hidden", + verticalScrollbarSize: 0, + horizontal: "auto", + horizontalScrollbarSize: 8, + ignoreHorizontalScrollbarInContentHeight: true + } + }, + scrollBeyondLastLine: false, + lineNumbers: "off", + readOnly: true, + domReadOnly: true, + readOnlyMessage: { value: "" }, + minimap: { + enabled: false + // maxColumn: 0, + }, + hover: { enabled: false }, + selectionHighlight: false, + // highlights whole words + renderLineHighlight: "none", + folding: false, + lineDecorationsWidth: 0, + overviewRulerLanes: 0, + hideCursorInOverviewRuler: true, + overviewRulerBorder: false, + glyphMargin: false, + stickyScroll: { + enabled: false + } + }, + { + isSimpleWidget: true + } + ); + }, [instantiationService]), + onCreateInstance: (0, import_react5.useCallback)((editor) => { + const languageId = languageRef.current ? languageRef.current : "plaintext"; + const model = modelOfEditorId[id] ?? modelService.createModel( + initValueRef.current, + { + languageId, + onDidChange: (e) => { + return { dispose: () => { + } }; + } + // no idea why they'd require this + } + ); + modelRef.current = model; + editor.setModel(model); + const container = editor.getDomNode(); + const parentNode = container?.parentElement; + const resize = () => { + const height = editor.getScrollHeight() + 1; + if (parentNode) { + parentNode.style.height = `${height}px`; + parentNode.style.maxHeight = `${MAX_HEIGHT}px`; + editor.layout(); + } + }; + resize(); + const disposable = editor.onDidContentSizeChange(() => { + resize(); + }); + return [disposable, model]; + }, [modelService]), + dispose: (0, import_react5.useCallback)((editor) => { + editor.dispose(); + }, [modelService]), + propsFn: (0, import_react5.useCallback)(() => { + return []; + }, []) + } + ) }); +}; +var VoidButtonBgDarken = ({ children, disabled, onClick, className }) => { + return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)( + "button", + { + disabled, + className: `void-px-3 void-py-1 void-bg-black/10 dark:void-bg-white/10 void-rounded-sm void-overflow-hidden void-whitespace-nowrap void-flex void-items-center void-justify-center ${className || ""}`, + onClick, + children + } + ); +}; +var SingleDiffEditor = ({ block: block2, lang }) => { + const accessor = useAccessor(); + const modelService = accessor.get("IModelService"); + const instantiationService = accessor.get("IInstantiationService"); + const languageService = accessor.get("ILanguageService"); + const languageSelection = (0, import_react5.useMemo)(() => languageService.createById(lang), [lang, languageService]); + const originalModel = (0, import_react5.useMemo)( + () => modelService.createModel(block2.orig, languageSelection), + [block2.orig, languageSelection, modelService] + ); + const modifiedModel = (0, import_react5.useMemo)( + () => modelService.createModel(block2.final, languageSelection), + [block2.final, languageSelection, modelService] + ); + (0, import_react5.useEffect)(() => { + return () => { + originalModel.dispose(); + modifiedModel.dispose(); + }; + }, [originalModel, modifiedModel]); + const divRef = (0, import_react5.useRef)(null); + const editorRef = (0, import_react5.useRef)(null); + (0, import_react5.useEffect)(() => { + if (!divRef.current) return; + const editor = instantiationService.createInstance( + DiffEditorWidget, + divRef.current, + { + automaticLayout: true, + readOnly: true, + renderSideBySide: true, + minimap: { enabled: false }, + lineNumbers: "off", + scrollbar: { + vertical: "hidden", + horizontal: "auto", + verticalScrollbarSize: 0, + horizontalScrollbarSize: 8, + alwaysConsumeMouseWheel: false, + ignoreHorizontalScrollbarInContentHeight: true + }, + hover: { enabled: false }, + folding: false, + selectionHighlight: false, + renderLineHighlight: "none", + overviewRulerLanes: 0, + hideCursorInOverviewRuler: true, + overviewRulerBorder: false, + glyphMargin: false, + stickyScroll: { enabled: false }, + scrollBeyondLastLine: false, + renderGutterMenu: false, + renderIndicators: false + }, + { originalEditor: { isSimpleWidget: true }, modifiedEditor: { isSimpleWidget: true } } + ); + editor.setModel({ original: originalModel, modified: modifiedModel }); + const updateHeight = () => { + const contentHeight = Math.max( + originalModel.getLineCount() * 19, + // approximate line height + modifiedModel.getLineCount() * 19 + ) + 19 * 2 + 1; + const height = Math.min(Math.max(contentHeight, 100), 300); + if (divRef.current) { + divRef.current.style.height = `${height}px`; + editor.layout(); + } + }; + updateHeight(); + editorRef.current = editor; + const disposable1 = originalModel.onDidChangeContent(() => updateHeight()); + const disposable2 = modifiedModel.onDidChangeContent(() => updateHeight()); + return () => { + disposable1.dispose(); + disposable2.dispose(); + editor.dispose(); + editorRef.current = null; + }; + }, [originalModel, modifiedModel, instantiationService]); + return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "void-w-full void-bg-void-bg-3 bg-editor-style-override", ref: divRef }); +}; +var VoidDiffEditor = ({ uri, searchReplaceBlocks, language }) => { + const accessor = useAccessor(); + const languageService = accessor.get("ILanguageService"); + const blocks = extractSearchReplaceBlocks(searchReplaceBlocks); + let lang = language; + if (!lang && blocks.length > 0) { + lang = detectLanguage(languageService, { uri: uri ?? null, fileContents: blocks[0].orig }); + } + if (blocks.length === 0) { + return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "void-w-full void-p-4 void-text-void-fg-4 void-text-sm", children: "No changes found" }); + } + return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "void-w-full void-flex void-flex-col void-gap-2", children: blocks.map( + (block2, index3) => /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "void-w-full", children: [ + blocks.length > 1 && /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "void-text-void-fg-4 void-text-xs void-mb-1 void-px-1 void-void-diff-block-header", children: [ + "Change ", + index3 + 1, + " of ", + blocks.length + ] }), + /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(SingleDiffEditor, { block: block2, lang }) + ] }, index3) + ) }); +}; + +// src2/markdown/ChatMarkdownRender.tsx +var import_jsx_runtime4 = __toESM(require_jsx_runtime(), 1); +var getApplyBoxId = ({ threadId, messageIdx, tokenIdx }) => { + return `${threadId}-${messageIdx}-${tokenIdx}`; +}; +function isValidUri(s) { + return s.length > 5 && isAbsolute(s) && !s.includes("//") && !s.includes("/*"); +} +var LatexRender = ({ latex }) => { + return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "void-katex-error void-text-red-500", children: latex }); +}; +var Codespan = ({ text, className, onClick, tooltip }) => { + return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)( + "code", + { + className: `void-font-mono void-font-medium void-rounded-sm void-bg-void-bg-1 void-px-1 ${className}`, + onClick, + ...tooltip ? { + "data-tooltip-id": "void-tooltip", + "data-tooltip-content": tooltip, + "data-tooltip-place": "top" + } : {}, + children: text + } + ); +}; +var CodespanWithLink = ({ text, rawText, chatMessageLocation }) => { + const accessor = useAccessor(); + const chatThreadService = accessor.get("IChatThreadService"); + accessor.get("ICommandService"); + accessor.get("ICodeEditorService"); + const { messageIdx, threadId } = chatMessageLocation; + const [didComputeCodespanLink, setDidComputeCodespanLink] = (0, import_react7.useState)(false); + let link2 = void 0; + let tooltip = void 0; + let displayText = text; + if (rawText.endsWith("`")) { + link2 = chatThreadService.getCodespanLink({ codespanStr: text, messageIdx, threadId }); + if (link2 === void 0) { + chatThreadService.generateCodespanLink({ codespanStr: text, threadId }).then((link3) => { + chatThreadService.addCodespanLink({ newLinkText: text, newLinkLocation: link3, messageIdx, threadId }); + setDidComputeCodespanLink(true); + }); + } + if (link2?.displayText) { + displayText = link2.displayText; + } + if (isValidUri(displayText)) { + tooltip = getRelative(URI.file(displayText), accessor); + displayText = getBasename(displayText); + } + } + const onClick = () => { + if (!link2) return; + if (link2.selection) + voidOpenFileFn(link2.uri, accessor, [link2.selection.startLineNumber, link2.selection.endLineNumber]); + else + voidOpenFileFn(link2.uri, accessor); + }; + return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)( + Codespan, + { + text: displayText, + onClick, + className: link2 ? "void-underline hover:void-brightness-90 void-transition-all void-duration-200 void-cursor-pointer" : "", + tooltip: tooltip || void 0 + } + ); +}; +var paragraphToLatexSegments = (paragraphText) => { + const segments = []; + if (paragraphText && !(paragraphText.includes("#") || paragraphText.includes("`")) && !/^[\w\s.()[\]{}]+$/.test(paragraphText)) { + const rawText = paragraphText; + const displayMathRegex = /\$\$(.*?)\$\$/g; + const inlineMathRegex = /\$((?!\$).*?)\$/g; + if (displayMathRegex.test(rawText) || inlineMathRegex.test(rawText)) { + displayMathRegex.lastIndex = 0; + inlineMathRegex.lastIndex = 0; + let lastIndex = 0; + let segmentId = 0; + let match; + displayMathRegex.lastIndex = 0; + while ((match = displayMathRegex.exec(rawText)) !== null) { + const [fullMatch, formula] = match; + const matchIndex = match.index; + if (matchIndex > lastIndex) { + const textBefore = rawText.substring(lastIndex, matchIndex); + segments.push( + /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { children: textBefore }, `text-${segmentId++}`) + ); + } + segments.push( + /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(LatexRender, { latex: fullMatch }, `latex-${segmentId++}`) + ); + lastIndex = matchIndex + fullMatch.length; + } + if (lastIndex < rawText.length) { + const remainingText = rawText.substring(lastIndex); + lastIndex = 0; + inlineMathRegex.lastIndex = 0; + const inlineSegments = []; + while ((match = inlineMathRegex.exec(remainingText)) !== null) { + const [fullMatch] = match; + const matchIndex = match.index; + if (matchIndex > lastIndex) { + const textBefore = remainingText.substring(lastIndex, matchIndex); + inlineSegments.push( + /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { children: textBefore }, `inline-text-${segmentId++}`) + ); + } + inlineSegments.push( + /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(LatexRender, { latex: fullMatch }, `inline-latex-${segmentId++}`) + ); + lastIndex = matchIndex + fullMatch.length; + } + if (lastIndex < remainingText.length) { + inlineSegments.push( + /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { children: remainingText.substring(lastIndex) }, `inline-final-${segmentId++}`) + ); + } + segments.push(...inlineSegments); + } + } + } + return segments; +}; +var RenderToken = ({ token, inPTag, codeURI, chatMessageLocation, tokenIdx, ...options2 }) => { + const accessor = useAccessor(); + const languageService = accessor.get("ILanguageService"); + const t = token; + if (t.raw.trim() === "") { + return null; + } + if (t.type === "space") { + return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { children: t.raw }); + } + if (t.type === "code") { + const [firstLine, remainingContents] = separateOutFirstLine(t.text); + const firstLineIsURI = isValidUri(firstLine) && !codeURI; + let contents = firstLineIsURI ? remainingContents?.trimStart() || "" : t.text; + if (!contents) return null; + const secretDetectionService = accessor.get("ISecretDetectionService"); + const config = secretDetectionService.getConfig(); + if (config.enabled) { + const detection = secretDetectionService.detectSecrets(contents); + contents = detection.redactedText; + } + let uri; + let language; + if (codeURI) { + uri = codeURI; + } else if (firstLineIsURI) { + uri = URI.file(firstLine); + } else { + uri = null; + } + if (t.lang) { + language = convertToVscodeLang(languageService, t.lang); + } else { + language = detectLanguage(languageService, { uri, fileContents: contents }); + } + if (options2.isApplyEnabled && chatMessageLocation) { + const isCodeblockClosed = t.raw.trimEnd().endsWith("```"); + const applyBoxId = getApplyBoxId({ + threadId: chatMessageLocation.threadId, + messageIdx: chatMessageLocation.messageIdx, + tokenIdx + }); + return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)( + BlockCodeApplyWrapper, + { + canApply: isCodeblockClosed, + applyBoxId, + codeStr: contents, + language, + uri: uri || "current", + children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)( + BlockCode, + { + initValue: contents.trimEnd(), + language + } + ) + } + ); + } + return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)( + BlockCode, + { + initValue: contents, + language + } + ); + } + if (t.type === "heading") { + const HeadingTag = `h${t.depth}`; + return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(HeadingTag, { children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(ChatMarkdownRender, { chatMessageLocation, string: t.text, inPTag: true, codeURI, ...options2 }) }); + } + if (t.type === "table") { + return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("table", { children: [ + /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("thead", { children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("tr", { children: t.header.map( + (h, hIdx) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("th", { children: h.text }, hIdx) + ) }) }), + /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("tbody", { children: t.rows.map( + (row, rowIdx) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("tr", { children: row.map( + (r, rIdx) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("td", { children: r.text }, rIdx) + ) }, rowIdx) + ) }) + ] }) }); + } + if (t.type === "hr") { + return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("hr", {}); + } + if (t.type === "blockquote") { + return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("blockquote", { children: t.text }); + } + if (t.type === "list_item") { + return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("li", { children: [ + /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("input", { type: "checkbox", checked: t.checked, readOnly: true }), + /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(ChatMarkdownRender, { chatMessageLocation, string: t.text, inPTag: true, codeURI, ...options2 }) }) + ] }); + } + if (t.type === "list") { + const ListTag = t.ordered ? "ol" : "ul"; + return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(ListTag, { start: t.start ? t.start : void 0, children: t.items.map( + (item, index3) => /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("li", { children: [ + item.task && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("input", { type: "checkbox", checked: item.checked, readOnly: true }), + /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(ChatMarkdownRender, { chatMessageLocation, string: item.text, inPTag: true, ...options2 }) }) + ] }, index3) + ) }); + } + if (t.type === "paragraph") { + const latexSegments = paragraphToLatexSegments(t.raw); + if (latexSegments.length !== 0) { + if (inPTag) { + return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "void-block", children: latexSegments }); + } + return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("p", { children: latexSegments }); + } + const contents = /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_jsx_runtime4.Fragment, { children: t.tokens.map( + (token2, index3) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)( + RenderToken, + { + token: token2, + tokenIdx: `${tokenIdx ? `${tokenIdx}-` : ""}${index3}`, + chatMessageLocation, + inPTag: true, + ...options2 + }, + index3 + ) + ) }); + if (inPTag) return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "void-block", children: contents }); + return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("p", { children: contents }); + } + if (t.type === "text" || t.type === "escape" || t.type === "html") { + return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { children: t.raw }); + } + if (t.type === "def") { + return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_jsx_runtime4.Fragment, {}); + } + if (t.type === "link") { + const secretDetectionService = accessor.get("ISecretDetectionService"); + const config = secretDetectionService.getConfig(); + let href = t.href; + let text = t.text; + if (config.enabled) { + const hrefDetection = secretDetectionService.detectSecrets(href); + href = hrefDetection.redactedText; + const textDetection = secretDetectionService.detectSecrets(text); + text = textDetection.redactedText; + } + return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)( + "a", + { + onClick: () => { + window.open(href); + }, + href, + title: t.title ?? void 0, + className: "void-underline void-cursor-pointer hover:void-brightness-90 void-transition-all void-duration-200 void-text-void-fg-2", + children: text + } + ); + } + if (t.type === "image") { + const secretDetectionService = accessor.get("ISecretDetectionService"); + const config = secretDetectionService.getConfig(); + let src = t.href; + let alt = t.text; + if (config.enabled) { + const srcDetection = secretDetectionService.detectSecrets(src); + src = srcDetection.redactedText; + const altDetection = secretDetectionService.detectSecrets(alt); + alt = altDetection.redactedText; + } + return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)( + "img", + { + src, + alt, + title: t.title ?? void 0 + } + ); + } + if (t.type === "strong") { + return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("strong", { children: t.text }); + } + if (t.type === "em") { + return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("em", { children: t.text }); + } + if (t.type === "codespan") { + const secretDetectionService = accessor.get("ISecretDetectionService"); + const config = secretDetectionService.getConfig(); + let text = t.text; + if (config.enabled) { + const detection = secretDetectionService.detectSecrets(text); + text = detection.redactedText; + } + if (options2.isLinkDetectionEnabled && chatMessageLocation) { + return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)( + CodespanWithLink, + { + text, + rawText: t.raw, + chatMessageLocation + } + ); + } + return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(Codespan, { text }); + } + if (t.type === "br") { + return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("br", {}); + } + if (t.type === "del") { + return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("del", { children: t.text }); + } + return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "void-bg-orange-50 void-rounded-sm void-overflow-hidden void-p-2", children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "void-text-sm void-text-orange-500", children: "Unknown token rendered..." }) }); +}; +var ChatMarkdownRender = ({ string, inPTag = false, chatMessageLocation, ...options2 }) => { + const accessor = useAccessor(); + const secretDetectionService = accessor.get("ISecretDetectionService"); + const redactedString = (0, import_react7.useMemo)(() => { + const config = secretDetectionService.getConfig(); + if (!config.enabled) { + return string.replaceAll("\n\u2022", "\n\n\u2022"); + } + const detection = secretDetectionService.detectSecrets(string); + return detection.redactedText.replaceAll("\n\u2022", "\n\n\u2022"); + }, [string, secretDetectionService]); + const [debouncedString, setDebouncedString] = (0, import_react7.useState)(redactedString); + const rafRef = (0, import_react7.useRef)(); + const lastUpdateRef = (0, import_react7.useRef)(redactedString); + (0, import_react7.useEffect)(() => { + lastUpdateRef.current = redactedString; + if (redactedString.length < 500) { + setDebouncedString(redactedString); + return; + } + if (rafRef.current) { + cancelAnimationFrame(rafRef.current); + } + rafRef.current = requestAnimationFrame(() => { + setDebouncedString(lastUpdateRef.current); + rafRef.current = void 0; + }); + return () => { + if (rafRef.current) { + cancelAnimationFrame(rafRef.current); + } + }; + }, [redactedString]); + const tokens = (0, import_react7.useMemo)(() => { + if (debouncedString.length > 1e4) { + try { + return marked.lexer(debouncedString, { async: false }); + } catch (e) { + return []; + } + } + return marked.lexer(debouncedString); + }, [debouncedString]); + return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_jsx_runtime4.Fragment, { children: tokens.map( + (token, index3) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(RenderToken, { token, inPTag, chatMessageLocation, tokenIdx: index3 + "", ...options2 }, index3) + ) }); +}; + +// src2/sidebar-tsx/ErrorDisplay.tsx +var import_react8 = __toESM(require_react(), 1); +var import_jsx_runtime5 = __toESM(require_jsx_runtime(), 1); +var ErrorDisplay = ({ + message: message_, + fullError, + onDismiss, + showDismiss, + onRetry, + onRollback, + onOpenLogs +}) => { + const [isExpanded, setIsExpanded] = (0, import_react8.useState)(false); + const normalizedMessage = fullError ? toErrorMessage(fullError, false) : message_; + const details = isExpanded && fullError ? errorDetails(fullError) : null; + const isExpandable = !!fullError && (fullError.stack || fullError.message !== normalizedMessage); + const message = normalizedMessage + ""; + return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: `void-rounded-lg void-border void-border-red-200 void-bg-red-50 void-p-4 void-overflow-auto`, children: [ + /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "void-flex void-items-start void-justify-between", children: [ + /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "void-flex void-gap-3", children: [ + /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(CircleAlert, { className: "void-h-5 void-w-5 void-text-red-600 void-mt-0.5" }), + /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "void-flex-1", children: [ + /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("h3", { className: "void-font-semibold void-text-red-800", children: "Error" }), + /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("p", { className: "void-text-red-700 void-mt-1", children: message }) + ] }) + ] }), + /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "void-flex void-gap-2", children: [ + isExpandable && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)( + "button", + { + className: "void-text-red-600 hover:void-text-red-800 void-p-1 void-rounded", + onClick: () => setIsExpanded(!isExpanded), + children: isExpanded ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(ChevronUp, { className: "void-h-5 void-w-5" }) : /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(ChevronDown, { className: "void-h-5 void-w-5" }) + } + ), + showDismiss && onDismiss && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)( + "button", + { + className: "void-text-red-600 hover:void-text-red-800 void-p-1 void-rounded", + onClick: onDismiss, + children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(X, { className: "void-h-5 void-w-5" }) + } + ) + ] }) + ] }), + (onRetry || onRollback || onOpenLogs) && /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "void-mt-3 void-flex void-gap-2 void-flex-wrap", children: [ + onRetry && /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)( + "button", + { + className: "void-flex void-items-center void-gap-1 void-px-3 void-py-1.5 void-text-sm void-bg-red-600 void-text-white void-rounded hover:void-bg-red-700 void-transition-colors", + onClick: onRetry, + "aria-label": "Retry operation", + children: [ + /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(RefreshCw, { className: "void-h-4 void-w-4" }), + "Retry" + ] + } + ), + onRollback && /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)( + "button", + { + className: "void-flex void-items-center void-gap-1 void-px-3 void-py-1.5 void-text-sm void-bg-red-500 void-text-white void-rounded hover:void-bg-red-600 void-transition-colors", + onClick: onRollback, + "aria-label": "Rollback changes", + children: [ + /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(RotateCcw, { className: "void-h-4 void-w-4" }), + "Rollback" + ] + } + ), + onOpenLogs && /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)( + "button", + { + className: "void-flex void-items-center void-gap-1 void-px-3 void-py-1.5 void-text-sm void-border void-border-red-300 void-text-red-700 void-rounded hover:void-bg-red-50 void-transition-colors", + onClick: onOpenLogs, + "aria-label": "Open logs", + children: [ + /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(FileText, { className: "void-h-4 void-w-4" }), + "Open Logs" + ] + } + ) + ] }), + isExpanded && details && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: "void-mt-4 void-space-y-3 void-border-t void-border-red-200 void-pt-3 void-overflow-auto", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { children: [ + /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: "void-font-semibold void-text-red-800", children: "Technical Details: " }), + /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("pre", { className: "void-text-red-700 void-text-xs", children: details }) + ] }) }) + ] }); +}; + +// src2/void-settings-tsx/ModelDropdown.tsx +var import_react9 = __toESM(require_react(), 1); +var import_jsx_runtime6 = __toESM(require_jsx_runtime(), 1); +var optionsEqual = (m1, m2) => { + if (m1.length !== m2.length) return false; + for (let i = 0; i < m1.length; i++) { + if (!modelSelectionsEqual(m1[i].selection, m2[i].selection)) return false; + } + return true; +}; +var ModelSelectBox = ({ options: options2, featureName, className }) => { + const accessor = useAccessor(); + const cortexideSettingsService = accessor.get("ICortexideSettingsService"); + const selection = cortexideSettingsService.state.modelSelectionOfFeature[featureName]; + const selectedOption = selection ? cortexideSettingsService.state._modelOptions.find((v) => modelSelectionsEqual(v.selection, selection)) : options2[0]; + const onChangeOption = (0, import_react9.useCallback)((newOption) => { + cortexideSettingsService.setModelSelectionOfFeature(featureName, newOption.selection); + }, [cortexideSettingsService, featureName]); + return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)( + VoidCustomDropdownBox, + { + options: options2, + selectedOption, + onChangeOption, + getOptionDisplayName: (option) => { + if (option.selection.providerName === "auto" && option.selection.modelName === "auto") { + return "Auto"; + } + return option.selection.modelName; + }, + getOptionDropdownName: (option) => { + if (option.selection.providerName === "auto" && option.selection.modelName === "auto") { + return "Auto"; + } + return option.selection.modelName; + }, + getOptionDropdownDetail: (option) => { + if (option.selection.providerName === "auto" && option.selection.modelName === "auto") { + return "Automatic model selection"; + } + return option.selection.providerName; + }, + getOptionsEqual: (a, b) => optionsEqual([a], [b]), + className, + matchInputWidth: false + } + ); +}; +var MemoizedModelDropdown = ({ featureName, className }) => { + const settingsState = useSettingsState(); + const oldOptionsRef = (0, import_react9.useRef)([]); + const [memoizedOptions, setMemoizedOptions] = (0, import_react9.useState)(oldOptionsRef.current); + const { filter, emptyMessage } = modelFilterOfFeatureName[featureName]; + (0, import_react9.useEffect)(() => { + const oldOptions = oldOptionsRef.current; + const allOptions = featureName === "Chat" ? settingsState._modelOptions : settingsState._modelOptions.filter((o) => !(o.selection.providerName === "auto" && o.selection.modelName === "auto")); + const newOptions = allOptions.filter((o) => filter(o.selection, { chatMode: settingsState.globalSettings.chatMode, overridesOfModel: settingsState.overridesOfModel })); + if (!optionsEqual(oldOptions, newOptions)) { + setMemoizedOptions(newOptions); + } + oldOptionsRef.current = newOptions; + }, [settingsState._modelOptions, filter, featureName]); + if (memoizedOptions.length === 0) { + return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(WarningBox, { text: emptyMessage?.message || "No models available" }); + } + return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(ModelSelectBox, { featureName, options: memoizedOptions, className }); +}; +var ModelDropdown = ({ featureName, className }) => { + const settingsState = useSettingsState(); + const accessor = useAccessor(); + const commandService = accessor.get("ICommandService"); + const openSettings = () => { + commandService.executeCommand(CORTEXIDE_OPEN_SETTINGS_ACTION_ID); + }; + const { emptyMessage } = modelFilterOfFeatureName[featureName]; + const isDisabled = isFeatureNameDisabled$1(featureName, settingsState); + if (isDisabled) + return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(WarningBox, { onClick: openSettings, text: emptyMessage && emptyMessage.priority === "always" ? emptyMessage.message : isDisabled === "needToEnableModel" ? "Enable a model" : isDisabled === "addModel" ? "Add a model" : isDisabled === "addProvider" || isDisabled === "notFilledIn" || isDisabled === "providerNotAutoDetected" ? "Provider required" : "Provider required" }); + return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(ErrorBoundary_default, { children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(MemoizedModelDropdown, { featureName, className }) }); +}; + +// src2/sidebar-tsx/SidebarThreadSelector.tsx +var import_react10 = __toESM(require_react(), 1); +var import_jsx_runtime7 = __toESM(require_jsx_runtime(), 1); +var numInitialThreads = 3; +var PastThreadsList = ({ className = "" }) => { + const [showAll, setShowAll] = (0, import_react10.useState)(false); + const [hoveredIdx, setHoveredIdx] = (0, import_react10.useState)(null); + const threadsState = useChatThreadsState(); + const { allThreads } = threadsState; + const streamState = useFullChatThreadsStreamState(); + const runningThreadIds = (0, import_react10.useMemo)(() => { + const result = {}; + for (const threadId in streamState) { + const isRunning = streamState[threadId]?.isRunning; + if (isRunning) { + result[threadId] = isRunning; + } + } + return result; + }, [streamState]); + if (!allThreads) { + return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "void-p-1", children: `Error accessing chat history.` }, "error"); + } + const sortedThreadIds = (0, import_react10.useMemo)(() => { + return Object.keys(allThreads ?? {}).sort((threadId1, threadId2) => (allThreads[threadId1]?.lastModified ?? 0) > (allThreads[threadId2]?.lastModified ?? 0) ? -1 : 1).filter((threadId) => (allThreads[threadId]?.messages.length ?? 0) !== 0); + }, [allThreads]); + const hasMoreThreads = sortedThreadIds.length > numInitialThreads; + const displayThreads = showAll ? sortedThreadIds : sortedThreadIds.slice(0, numInitialThreads); + return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: `void-flex void-flex-col void-mb-2 void-gap-2 void-w-full void-text-nowrap void-text-void-fg-2 void-select-none void-relative ${className}`, children: [ + displayThreads.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_jsx_runtime7.Fragment, {}) : displayThreads.map((threadId, i) => { + const pastThread = allThreads[threadId]; + if (!pastThread) { + return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "void-p-1", children: `Error accessing chat history.` }, i); + } + return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)( + PastThreadElement, + { + pastThread, + idx: i, + hoveredIdx, + setHoveredIdx, + isRunning: runningThreadIds[pastThread.id] + }, + pastThread.id + ); + }), + hasMoreThreads && !showAll && /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)( + "div", + { + className: "void-text-void-fg-3 void-opacity-80 hover:void-opacity-100 hover:void-brightness-115 void-cursor-pointer void-p-1 void-text-xs", + onClick: () => setShowAll(true), + children: [ + "Show ", + sortedThreadIds.length - numInitialThreads, + " more..." + ] + } + ), + hasMoreThreads && showAll && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)( + "div", + { + className: "void-text-void-fg-3 void-opacity-80 hover:void-opacity-100 hover:void-brightness-115 void-cursor-pointer void-p-1 void-text-xs", + onClick: () => setShowAll(false), + children: "Show less" + } + ) + ] }); +}; +var formatDate = (date) => { + const now = /* @__PURE__ */ new Date(); + const today = new Date(now.getFullYear(), now.getMonth(), now.getDate()); + const yesterday = new Date(today); + yesterday.setDate(yesterday.getDate() - 1); + if (date >= today) { + return "Today"; + } else if (date >= yesterday) { + return "Yesterday"; + } else { + return `${date.toLocaleString("default", { month: "short" })} ${date.getDate()}`; + } +}; +var DuplicateButton = ({ threadId }) => { + const accessor = useAccessor(); + const chatThreadsService = accessor.get("IChatThreadService"); + return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)( + IconShell1, + { + Icon: Copy, + className: "void-size-[11px]", + onClick: () => { + chatThreadsService.duplicateThread(threadId); + }, + "data-tooltip-id": "void-tooltip", + "data-tooltip-place": "top", + "data-tooltip-content": "Duplicate thread" + } + ); +}; +var TrashButton = ({ threadId }) => { + const accessor = useAccessor(); + const chatThreadsService = accessor.get("IChatThreadService"); + const [isTrashPressed, setIsTrashPressed] = (0, import_react10.useState)(false); + return isTrashPressed ? /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "void-flex void-flex-nowrap void-text-nowrap void-gap-1", children: [ + /* @__PURE__ */ (0, import_jsx_runtime7.jsx)( + IconShell1, + { + Icon: X, + className: "void-size-[11px]", + onClick: () => { + setIsTrashPressed(false); + }, + "data-tooltip-id": "void-tooltip", + "data-tooltip-place": "top", + "data-tooltip-content": "Cancel" + } + ), + /* @__PURE__ */ (0, import_jsx_runtime7.jsx)( + IconShell1, + { + Icon: Check, + className: "void-size-[11px]", + onClick: () => { + chatThreadsService.deleteThread(threadId); + setIsTrashPressed(false); + }, + "data-tooltip-id": "void-tooltip", + "data-tooltip-place": "top", + "data-tooltip-content": "Confirm" + } + ) + ] }) : /* @__PURE__ */ (0, import_jsx_runtime7.jsx)( + IconShell1, + { + Icon: Trash2, + className: "void-size-[11px]", + onClick: () => { + setIsTrashPressed(true); + }, + "data-tooltip-id": "void-tooltip", + "data-tooltip-place": "top", + "data-tooltip-content": "Delete thread" + } + ); +}; +var PastThreadElement = ({ + pastThread, + idx, + hoveredIdx, + setHoveredIdx, + isRunning +}) => { + const accessor = useAccessor(); + const chatThreadsService = accessor.get("IChatThreadService"); + let firstMsg = null; + const firstUserMsgIdx = pastThread.messages.findIndex((msg) => msg.role === "user"); + if (firstUserMsgIdx !== -1) { + const firsUsertMsgObj = pastThread.messages[firstUserMsgIdx]; + firstMsg = firsUsertMsgObj.role === "user" && firsUsertMsgObj.displayContent || ""; + } else { + firstMsg = '""'; + } + const numMessages = pastThread.messages.filter((msg) => msg.role === "assistant" || msg.role === "user").length; + const detailsHTML = /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("span", { className: "void-inline-flex void-items-center void-gap-1 void-px-2 void-py-0.5 void-rounded-full void-bg-void-bg-2 void-text-[10px] void-tracking-wide void-uppercase void-text-void-fg-3", children: [ + /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("span", { children: [ + numMessages, + " msg" + ] }), + /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "void-opacity-80", children: formatDate(new Date(pastThread.lastModified)) }) + ] }); + return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)( + "div", + { + className: ` void-group void-px-3 void-py-2 void-rounded-xl void-border void-border-void-border-3/70 void-bg-void-bg-1/40 hover:void-bg-void-bg-2/70 void-cursor-pointer void-text-sm void-text-void-fg-1 void-transition-all void-duration-150 void-ease-out void-shadow-[0_8px_20px_rgba(0,0,0,0.35)] hover:-void-translate-y-0.5 `, + onClick: () => { + chatThreadsService.openTab(pastThread.id); + }, + onMouseEnter: () => setHoveredIdx(idx), + onMouseLeave: () => setHoveredIdx(null), + children: /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "void-flex void-items-center void-justify-between void-gap-2", children: [ + /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("span", { className: "void-flex void-items-center void-gap-2 void-min-w-0 void-overflow-hidden void-text-void-fg-2", children: [ + isRunning === "LLM" || isRunning === "tool" || isRunning === "preparing" ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(LoaderCircle, { className: "void-animate-spin void-text-void-fg-1 void-flex-shrink-0 void-flex-grow-0", size: 14 }) : isRunning === "awaiting_user" ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(MessageCircleQuestion, { className: "void-text-void-fg-1 void-flex-shrink-0 void-flex-grow-0", size: 14 }) : null, + /* @__PURE__ */ (0, import_jsx_runtime7.jsx)( + "span", + { + className: "void-truncate void-overflow-hidden void-text-ellipsis void-text-void-fg-1", + "data-tooltip-id": "void-tooltip", + "data-tooltip-content": numMessages + " messages", + "data-tooltip-place": "top", + children: firstMsg + } + ) + ] }), + /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "void-flex void-items-center void-gap-x-1 void-opacity-80 void-text-void-fg-3", children: idx === hoveredIdx ? /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_jsx_runtime7.Fragment, { children: [ + /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(DuplicateButton, { threadId: pastThread.id }), + /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(TrashButton, { threadId: pastThread.id }) + ] }) : /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_jsx_runtime7.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "void-opacity-90", children: detailsHTML }) }) }) + ] }) + }, + pastThread.id + ); +}; + +// src2/sidebar-tsx/ChatTabsBar.tsx +var import_react11 = __toESM(require_react(), 1); +var import_jsx_runtime8 = __toESM(require_jsx_runtime(), 1); +var getThreadTitle = (thread) => { + if (!thread) return "New Chat"; + const firstUserMsgIdx = thread.messages.findIndex((msg) => msg.role === "user"); + if (firstUserMsgIdx !== -1) { + const firstUserMsg = thread.messages[firstUserMsgIdx]; + if (firstUserMsg.role === "user" && firstUserMsg.displayContent) { + const title = firstUserMsg.displayContent; + return title.length > 30 ? title.substring(0, 30) + "..." : title; + } + } + return "New Chat"; +}; +var ChatTab = ({ threadId, isActive, onClick, onClose, isRunning }) => { + const threadsState = useChatThreadsState(); + const thread = threadsState.allThreads[threadId]; + const title = getThreadTitle(thread); + return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)( + "div", + { + className: ` void-group void-flex void-items-center void-gap-1.5 void-px-3 void-py-1.5 void-rounded-t-lg void-border-b-2 void-transition-all void-duration-150 void-cursor-pointer ${isActive ? "void-bg-void-bg-2 void-border-void-fg-1 void-text-void-fg-1" : "void-bg-void-bg-1/40 void-border-transparent void-text-void-fg-2 hover:void-bg-void-bg-1/60 hover:void-text-void-fg-1"} `, + onClick, + children: [ + isRunning === "LLM" || isRunning === "tool" || isRunning === "preparing" ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(LoaderCircle, { className: "void-animate-spin void-text-void-fg-1 void-flex-shrink-0", size: 12 }) : isRunning === "awaiting_user" ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(MessageCircleQuestion, { className: "void-text-void-fg-1 void-flex-shrink-0", size: 12 }) : null, + /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: "void-text-xs void-truncate void-max-w-[120px]", title, children: title }), + /* @__PURE__ */ (0, import_jsx_runtime8.jsx)( + IconShell1, + { + Icon: X, + className: "void-size-[11px] void-opacity-0 group-hover:void-opacity-100 void-transition-opacity void-flex-shrink-0", + onClick: (e) => { + e.stopPropagation(); + onClose(e); + }, + "data-tooltip-id": "void-tooltip", + "data-tooltip-place": "top", + "data-tooltip-content": "Close tab" + } + ) + ] + } + ); +}; +var ChatTabsBar = () => { + const accessor = useAccessor(); + const chatThreadsService = accessor.get("IChatThreadService"); + const threadsState = useChatThreadsState(); + const streamState = useFullChatThreadsStreamState(); + const { openTabs, currentThreadId } = threadsState; + const runningThreadIds = (0, import_react11.useMemo)(() => { + const result = {}; + for (const threadId in streamState) { + const isRunning = streamState[threadId]?.isRunning; + if (isRunning) { + result[threadId] = isRunning; + } + } + return result; + }, [streamState]); + const validTabs = (0, import_react11.useMemo)(() => { + return openTabs.filter((threadId) => threadsState.allThreads[threadId] !== void 0); + }, [openTabs, threadsState.allThreads]); + if (validTabs.length === 0) { + return null; + } + const handleTabClick = (threadId) => { + chatThreadsService.switchToTab(threadId); + }; + const handleTabClose = (threadId) => { + chatThreadsService.closeTab(threadId); + }; + const handleNewTab = () => { + chatThreadsService.openNewThread(); + }; + return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: "void-flex void-items-end void-gap-1 void-px-2 void-pt-2 void-border-b void-border-void-border-3 void-bg-void-bg-1/30", children: [ + /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: "void-flex void-items-end void-gap-1 void-overflow-x-auto void-flex-1 void-min-w-0", children: validTabs.map( + (threadId) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)( + ChatTab, + { + threadId, + isActive: threadId === currentThreadId, + onClick: () => handleTabClick(threadId), + onClose: () => handleTabClose(threadId), + isRunning: runningThreadIds[threadId] + }, + threadId + ) + ) }), + /* @__PURE__ */ (0, import_jsx_runtime8.jsx)( + "button", + { + className: "void-px-2 void-py-1.5 void-rounded-t-lg void-bg-void-bg-1/40 hover:void-bg-void-bg-1/60 void-text-void-fg-2 hover:void-text-void-fg-1 void-transition-all void-duration-150 void-text-xs void-border-b-2 void-border-transparent hover:void-border-void-border-3 void-flex-shrink-0", + onClick: handleNewTab, + "data-tooltip-id": "void-tooltip", + "data-tooltip-place": "top", + "data-tooltip-content": "New chat tab", + children: "+" + } + ) + ] }); +}; + +// src2/util/useImageAttachments.ts +var import_react12 = __toESM(require_react(), 1); + +// src2/util/imageUtils.ts +var ALLOWED_IMAGE_MIME_TYPES = ["image/png", "image/jpeg", "image/webp", "image/gif", "image/svg+xml"]; +var MAX_DIMENSION = 2048; +function toArrayBuffer(data) { + const buffer = new ArrayBuffer(data.byteLength); + new Uint8Array(buffer).set(data); + return buffer; +} +function formatFileSize(bytes) { + if (bytes === 0) return "0 B"; + const k = 1024; + const sizes = ["B", "KB", "MB", "GB"]; + const i = Math.floor(Math.log(bytes) / Math.log(k)); + return `${parseFloat((bytes / Math.pow(k, i)).toFixed(2))} ${sizes[i]}`; +} +function validateImageFile(file) { + if (!ALLOWED_IMAGE_MIME_TYPES.includes(file.type)) { + return { + type: "mime_type", + message: `Unsupported image type: ${file.type}. Supported: PNG, JPEG, WebP, GIF, SVG.` + }; + } + if (file.size > 30 * 1024 * 1024) { + return { + type: "size", + message: `Image is too large: ${formatFileSize(file.size)}. Maximum: 30 MB.` + }; + } + return null; +} +async function processImage(file, onProgress) { + const validationError = validateImageFile(file); + if (validationError) { + throw new Error(validationError.message); + } + onProgress?.(0.1); + const mimeType = file.type; + if (mimeType === "image/svg+xml") { + onProgress?.(0.3); + return await processSvgImage(file, onProgress); + } + onProgress?.(0.2); + const arrayBuffer = await file.arrayBuffer(); + const uint8Array = new Uint8Array(arrayBuffer); + onProgress?.(0.4); + const img = await loadImageWithOrientation(uint8Array, onProgress); + let targetWidth = img.width; + let targetHeight = img.height; + const needsResize = img.width > MAX_DIMENSION || img.height > MAX_DIMENSION; + if (needsResize) { + const scaleFactor = MAX_DIMENSION / Math.max(img.width, img.height); + targetWidth = Math.round(img.width * scaleFactor); + targetHeight = Math.round(img.height * scaleFactor); + } + onProgress?.(0.6); + const canvas = document.createElement("canvas"); + canvas.width = targetWidth; + canvas.height = targetHeight; + const ctx = canvas.getContext("2d", { willReadFrequently: false }); + if (!ctx) { + throw new Error("Failed to get canvas context"); + } + if (img.orientation && img.orientation !== 1) { + applyOrientation(ctx, img.orientation, targetWidth, targetHeight); + } + onProgress?.(0.7); + ctx.drawImage(img.image, 0, 0, targetWidth, targetHeight); + const outputMimeType = mimeType === "image/png" ? "image/png" : "image/jpeg"; + const quality = determineQuality(mimeType, targetWidth, targetHeight); + onProgress?.(0.8); + return new Promise((resolve, reject) => { + canvas.toBlob( + (blob) => { + if (!blob) { + reject(new Error("Failed to create blob from canvas")); + return; + } + onProgress?.(0.9); + const reader = new FileReader(); + reader.onload = () => { + const data = new Uint8Array(reader.result); + onProgress?.(1); + resolve({ + data, + mimeType: outputMimeType, + width: targetWidth, + height: targetHeight, + filename: sanitizeFilename(file.name), + size: data.length, + originalSize: file.size + }); + }; + reader.onerror = () => reject(new Error("Failed to read blob")); + reader.readAsArrayBuffer(blob); + }, + outputMimeType, + quality + ); + }); +} +function parseExifOrientation(data) { + if (data.length < 4 || data[0] !== 255 || data[1] !== 216) { + return 1; + } + let offset3 = 2; + while (offset3 < data.length - 1) { + if (data[offset3] === 255 && data[offset3 + 1] === 225) { + if (offset3 + 6 < data.length) { + const exifMarker = String.fromCharCode( + data[offset3 + 4], + data[offset3 + 5], + data[offset3 + 6], + data[offset3 + 7] + ); + if (exifMarker === "Exif") { + const tiffOffset = offset3 + 10; + if (tiffOffset + 8 < data.length) { + const isIntel = data[tiffOffset] === 73 && data[tiffOffset + 1] === 73; + if (isIntel || data[tiffOffset] === 77 && data[tiffOffset + 1] === 77) { + let ifdOffsetValue = 0; + if (tiffOffset + 8 < data.length) { + if (isIntel) { + ifdOffsetValue = data[tiffOffset + 4] | data[tiffOffset + 5] << 8 | data[tiffOffset + 6] << 16 | data[tiffOffset + 7] << 24; + } else { + ifdOffsetValue = data[tiffOffset + 4] << 24 | data[tiffOffset + 5] << 16 | data[tiffOffset + 6] << 8 | data[tiffOffset + 7]; + } + if (ifdOffsetValue >= 0) { + const ifdOffset = tiffOffset + ifdOffsetValue; + if (ifdOffset < data.length && ifdOffset + 2 < data.length) { + let numEntries = 0; + if (isIntel) { + numEntries = data[ifdOffset] | data[ifdOffset + 1] << 8; + } else { + numEntries = data[ifdOffset] << 8 | data[ifdOffset + 1]; + } + let entryOffset = ifdOffset + 2; + for (let i = 0; i < numEntries && entryOffset + 12 < data.length; i++, entryOffset += 12) { + let tag2 = 0; + if (isIntel) { + tag2 = data[entryOffset] | data[entryOffset + 1] << 8; + } else { + tag2 = data[entryOffset] << 8 | data[entryOffset + 1]; + } + if (tag2 === 274) { + let orientation = 0; + if (isIntel) { + orientation = data[entryOffset + 8] | data[entryOffset + 9] << 8; + } else { + orientation = data[entryOffset + 8] << 8 | data[entryOffset + 9]; + } + if (orientation >= 1 && orientation <= 8) { + return orientation; + } + } + } + } + } + } + } + } + } + } + } + if (offset3 + 2 < data.length) { + const segmentLength = data[offset3 + 2] << 8 | data[offset3 + 3]; + offset3 += 2 + segmentLength; + } else { + break; + } + } + return 1; +} +async function loadImageWithOrientation(data, onProgress) { + return new Promise((resolve, reject) => { + onProgress?.(0.5); + const blob = new Blob([toArrayBuffer(data)]); + const url = URL.createObjectURL(blob); + const img = new Image(); + img.onload = () => { + URL.revokeObjectURL(url); + onProgress?.(0.6); + const orientation = parseExifOrientation(data); + resolve({ + image: img, + width: img.naturalWidth, + height: img.naturalHeight, + orientation + }); + }; + img.onerror = () => { + URL.revokeObjectURL(url); + reject(new Error("Failed to load image")); + }; + img.src = url; + }); +} +async function processSvgImage(file, onProgress) { + onProgress?.(0.3); + const svgText = await file.text(); + let sanitized = svgText.replace(//gi, "").replace(/]*>[\s\S]*?<\/style>/gi, (match) => { + if (/expression\s*\(|javascript:|@import|url\s*\(/i.test(match)) { + return ""; + } + return match; + }).replace(/on\w+\s*=\s*["'][^"']*["']/gi, "").replace(/javascript:/gi, "").replace(/]*href\s*=\s*["'][^"']*["'][^>]*>/gi, "").replace(/]*href\s*=\s*["'][^"']*["'][^>]*>/gi, "").replace(/]*xlink:href\s*=\s*["'][^"']*["'][^>]*>/gi, "").replace(/url\s*\(\s*["']?data:/gi, "url(#blocked)").replace(//gi, "").replace(//gi, "").replace(/]*>/gi, "").replace(/<\?xml-stylesheet[^>]*\?>/gi, "").replace(/]*>/gi, ""); + const originalLength = svgText.length; + const sanitizedLength = sanitized.length; + const removalRatio = (originalLength - sanitizedLength) / originalLength; + if (removalRatio > 0.3) { + console.warn("SVG sanitization removed >30% of content, using raster fallback for safety"); + } + onProgress?.(0.5); + return new Promise((resolve, reject) => { + const img = new Image(); + const blob = new Blob([sanitized], { type: "image/svg+xml" }); + const url = URL.createObjectURL(blob); + const loadTimeout = setTimeout(() => { + URL.revokeObjectURL(url); + reject(new Error("SVG loading timeout - file may be corrupted or malicious")); + }, 1e4); + img.onload = () => { + clearTimeout(loadTimeout); + URL.revokeObjectURL(url); + onProgress?.(0.7); + const canvas = document.createElement("canvas"); + canvas.width = img.naturalWidth || 800; + canvas.height = img.naturalHeight || 600; + const ctx = canvas.getContext("2d"); + if (!ctx) { + reject(new Error("Failed to get canvas context for SVG")); + return; + } + ctx.drawImage(img, 0, 0, canvas.width, canvas.height); + onProgress?.(0.8); + canvas.toBlob((blob2) => { + if (!blob2) { + reject(new Error("Failed to rasterize SVG")); + return; + } + onProgress?.(0.9); + const reader = new FileReader(); + reader.onload = () => { + const data = new Uint8Array(reader.result); + onProgress?.(1); + resolve({ + data, + mimeType: "image/png", + width: canvas.width, + height: canvas.height, + filename: sanitizeFilename(file.name.replace(/\.svg$/i, ".png")), + size: data.length, + originalSize: file.size + }); + }; + reader.onerror = () => reject(new Error("Failed to read rasterized SVG")); + reader.readAsArrayBuffer(blob2); + }, "image/png", 0.95); + }; + img.onerror = () => { + clearTimeout(loadTimeout); + URL.revokeObjectURL(url); + onProgress?.(0.7); + const canvas = document.createElement("canvas"); + canvas.width = 800; + canvas.height = 600; + const ctx = canvas.getContext("2d"); + if (ctx) { + ctx.fillStyle = "#f0f0f0"; + ctx.fillRect(0, 0, canvas.width, canvas.height); + ctx.fillStyle = "#666"; + ctx.font = "16px sans-serif"; + ctx.textAlign = "center"; + ctx.fillText("SVG preview unavailable", canvas.width / 2, canvas.height / 2); + canvas.toBlob((blob2) => { + if (blob2) { + const reader = new FileReader(); + reader.onload = () => { + const data = new Uint8Array(reader.result); + resolve({ + data, + mimeType: "image/png", + width: canvas.width, + height: canvas.height, + filename: sanitizeFilename(file.name.replace(/\.svg$/i, ".png")), + size: data.length, + originalSize: file.size + }); + }; + reader.readAsArrayBuffer(blob2); + } else { + reject(new Error("Failed to load SVG and create fallback")); + } + }, "image/png"); + } else { + reject(new Error("Failed to load SVG")); + } + }; + img.src = url; + }); +} +function applyOrientation(ctx, orientation, width, height) { + ctx.save(); + switch (orientation) { + case 2: + ctx.translate(width, 0); + ctx.scale(-1, 1); + break; + case 3: + ctx.translate(width, height); + ctx.rotate(Math.PI); + break; + case 4: + ctx.translate(0, height); + ctx.scale(1, -1); + break; + case 5: + ctx.translate(height, 0); + ctx.rotate(Math.PI / 2); + ctx.scale(-1, 1); + break; + case 6: + ctx.translate(height, 0); + ctx.rotate(Math.PI / 2); + break; + case 7: + ctx.translate(0, width); + ctx.rotate(-Math.PI / 2); + ctx.scale(-1, 1); + break; + case 8: + ctx.translate(0, width); + ctx.rotate(-Math.PI / 2); + break; + } + ctx.restore(); +} +function determineQuality(mimeType, width, height) { + if (mimeType === "image/png") { + return 1; + } + const pixels = width * height; + if (pixels > 2e6) { + return 0.85; + } else if (pixels > 1e6) { + return 0.9; + } else { + return 0.92; + } +} +function sanitizeFilename(filename) { + return filename.replace(/^.*[\/\\]/, "").replace(/\0/g, "").replace(/[<>:"|?*\x00-\x1f]/g, "_").substring(0, 255); +} +function createImageDataUrl(data, mimeType) { + const blob = new Blob([toArrayBuffer(data)], { type: mimeType }); + return URL.createObjectURL(blob); +} +function revokeImageDataUrl(url) { + URL.revokeObjectURL(url); +} + +// src2/util/useImageAttachments.ts +function useImageAttachments() { + const [attachments, setAttachments] = (0, import_react12.useState)([]); + const [focusedIndex, setFocusedIndex] = (0, import_react12.useState)(null); + const [validationError, setValidationError] = (0, import_react12.useState)(null); + const processingRef = (0, import_react12.useRef)(/* @__PURE__ */ new Set()); + const cancelRef = (0, import_react12.useRef)(/* @__PURE__ */ new Map()); + const originalFilesRef = (0, import_react12.useRef)(/* @__PURE__ */ new Map()); + const addImages = (0, import_react12.useCallback)(async (files) => { + setValidationError(null); + const validationErrors = []; + for (const file of files) { + const error2 = validateImageFile(file); + if (error2) { + if (error2.type === "size") { + validationErrors.push({ + ...error2, + message: `${file.name}: ${error2.message}` + }); + } else { + validationErrors.push({ + ...error2, + message: `${file.name}: ${error2.message}` + }); + } + } + } + if (validationErrors.length > 0) { + setValidationError(validationErrors[0]); + return; + } + if (attachments.length + files.length > 10) { + setValidationError({ + type: "count", + message: `Too many images: ${attachments.length + files.length}. Maximum: 10 images per message.` + }); + return; + } + for (const file of files) { + const id = `${Date.now()}-${Math.random().toString(36).substring(7)}`; + originalFilesRef.current.set(id, file); + const placeholder = { + id, + data: new Uint8Array(0), + mimeType: file.type, + filename: file.name, + width: 0, + height: 0, + size: 0, + uploadStatus: "pending" + }; + setAttachments((prev) => [...prev, placeholder]); + processingRef.current.add(id); + let cancelled = false; + const cancelFn = () => { + cancelled = true; + processingRef.current.delete(id); + cancelRef.current.delete(id); + originalFilesRef.current.delete(id); + setAttachments((prev) => prev.filter((att) => att.id !== id)); + }; + cancelRef.current.set(id, cancelFn); + const updateProgress = (progress) => { + if (cancelled) return; + setAttachments((prev) => prev.map( + (att) => att.id === id ? { ...att, uploadStatus: "uploading", uploadProgress: progress } : att + )); + }; + try { + updateProgress(0.1); + const processed = await processImage(file, (stageProgress) => { + const progress = 0.1 + stageProgress * 0.8; + updateProgress(progress); + }); + if (cancelled) return; + setAttachments((prev) => prev.map( + (att) => att.id === id ? { + ...att, + data: processed.data, + mimeType: processed.mimeType, + filename: processed.filename, + width: processed.width, + height: processed.height, + size: processed.size, + uploadStatus: "success", + uploadProgress: 1 + } : att + )); + setAttachments((prev) => { + const successful = prev.filter((a) => a.uploadStatus === "success"); + const totalSize = successful.reduce((sum, img) => sum + img.size, 0); + const maxTotalSize = 20 * 1024 * 1024; + if (successful.length > 10) { + const error2 = { + type: "count", + message: `Too many images: ${successful.length}. Maximum: 10.` + }; + setValidationError(error2); + return prev.map( + (att) => att.id === id ? { ...att, uploadStatus: "failed", error: error2.message, uploadProgress: void 0 } : att + ); + } + if (totalSize > maxTotalSize) { + const error2 = { + type: "size", + message: `Total image size too large: ${formatFileSize(totalSize)}. Maximum: ${formatFileSize(maxTotalSize)}.` + }; + setValidationError(error2); + return prev.map( + (att) => att.id === id ? { ...att, uploadStatus: "failed", error: error2.message, uploadProgress: void 0 } : att + ); + } + return prev; + }); + cancelRef.current.delete(id); + } catch (error2) { + if (cancelled) return; + const errorMessage = error2 instanceof Error ? error2.message : "Failed to process image"; + setAttachments((prev) => prev.map( + (att) => att.id === id ? { + ...att, + uploadStatus: "failed", + error: errorMessage, + uploadProgress: void 0 + } : att + )); + setValidationError({ + type: "corrupt", + message: errorMessage + }); + } finally { + if (!cancelled) { + processingRef.current.delete(id); + cancelRef.current.delete(id); + } + } + } + }, [attachments.length]); + const removeImage = (0, import_react12.useCallback)((id) => { + const cancelFn = cancelRef.current.get(id); + if (cancelFn) { + cancelFn(); + return; + } + setAttachments((prev) => prev.filter((att) => att.id !== id)); + originalFilesRef.current.delete(id); + setValidationError(null); + if (focusedIndex !== null && focusedIndex >= attachments.length - 1) { + setFocusedIndex(Math.max(0, attachments.length - 2)); + } + }, [attachments.length, focusedIndex]); + const cancelImage = (0, import_react12.useCallback)((id) => { + const cancelFn = cancelRef.current.get(id); + if (cancelFn) { + cancelFn(); + } + }, []); + const retryImage = (0, import_react12.useCallback)(async (id) => { + const attachment = attachments.find((att) => att.id === id); + if (!attachment) return; + const originalFile = originalFilesRef.current.get(id); + if (!originalFile) { + setAttachments((prev) => prev.map( + (att) => att.id === id ? { + ...att, + uploadStatus: "failed", + error: "Cannot retry: original file not available" + } : att + )); + return; + } + setAttachments((prev) => prev.map( + (att) => att.id === id ? { ...att, uploadStatus: "pending", error: void 0, uploadProgress: void 0 } : att + )); + processingRef.current.add(id); + let cancelled = false; + const cancelFn = () => { + cancelled = true; + processingRef.current.delete(id); + cancelRef.current.delete(id); + }; + cancelRef.current.set(id, cancelFn); + const updateProgress = (progress) => { + if (cancelled) return; + setAttachments((prev) => prev.map( + (att) => att.id === id ? { ...att, uploadStatus: "uploading", uploadProgress: progress } : att + )); + }; + try { + updateProgress(0.1); + const processed = await processImage(originalFile, (stageProgress) => { + const progress = 0.1 + stageProgress * 0.8; + updateProgress(progress); + }); + if (cancelled) return; + setAttachments((prev) => prev.map( + (att) => att.id === id ? { + ...att, + data: processed.data, + mimeType: processed.mimeType, + filename: processed.filename, + width: processed.width, + height: processed.height, + size: processed.size, + uploadStatus: "success", + uploadProgress: 1 + } : att + )); + } catch (error2) { + if (cancelled) return; + const errorMessage = error2 instanceof Error ? error2.message : "Failed to process image"; + setAttachments((prev) => prev.map( + (att) => att.id === id ? { + ...att, + uploadStatus: "failed", + error: errorMessage, + uploadProgress: void 0 + } : att + )); + } finally { + if (!cancelled) { + processingRef.current.delete(id); + cancelRef.current.delete(id); + } + } + }, [attachments]); + const clearAll = (0, import_react12.useCallback)(() => { + cancelRef.current.forEach((cancelFn) => cancelFn()); + cancelRef.current.clear(); + processingRef.current.clear(); + originalFilesRef.current.clear(); + setAttachments([]); + setValidationError(null); + setFocusedIndex(null); + }, []); + return { + attachments, + addImages, + removeImage, + retryImage, + cancelImage, + clearAll, + focusedIndex, + setFocusedIndex, + validationError + }; +} + +// src2/util/usePDFAttachments.ts +var import_react13 = __toESM(require_react(), 1); +var MAX_PDF_SIZE = 50 * 1024 * 1024; +var MAX_PDFS = 5; +function usePDFAttachments() { + const [attachments, setAttachments] = (0, import_react13.useState)([]); + const [focusedIndex, setFocusedIndex] = (0, import_react13.useState)(null); + const [validationError, setValidationError] = (0, import_react13.useState)(null); + const processingRef = (0, import_react13.useRef)(/* @__PURE__ */ new Set()); + const cancelRef = (0, import_react13.useRef)(/* @__PURE__ */ new Map()); + const originalFilesRef = (0, import_react13.useRef)(/* @__PURE__ */ new Map()); + const pdfServiceRef = (0, import_react13.useRef)(null); + const getPDFServiceInstance = (0, import_react13.useCallback)(async () => { + if (!pdfServiceRef.current) { + pdfServiceRef.current = getPDFService(); + } + return pdfServiceRef.current; + }, []); + const addPDFs = (0, import_react13.useCallback)(async (files) => { + setValidationError(null); + for (const file of files) { + if (file.type !== "application/pdf") { + setValidationError(`${file.name} is not a PDF file.`); + return; + } + if (file.size > MAX_PDF_SIZE) { + setValidationError(`${file.name} is too large (${(file.size / 1024 / 1024).toFixed(1)}MB). Maximum: ${MAX_PDF_SIZE / 1024 / 1024}MB.`); + return; + } + } + if (attachments.length + files.length > MAX_PDFS) { + setValidationError(`Too many PDFs: ${attachments.length + files.length}. Maximum: ${MAX_PDFS} PDFs per message.`); + return; + } + const fileIds = files.map(() => `${Date.now()}-${Math.random().toString(36).substring(7)}`); + const placeholders = files.map((file, index3) => ({ + id: fileIds[index3], + data: new Uint8Array(0), + filename: file.name, + size: file.size, + uploadStatus: "pending" + })); + setAttachments((prev) => [...prev, ...placeholders]); + files.forEach((file, index3) => { + const id = fileIds[index3]; + originalFilesRef.current.set(id, file); + processingRef.current.add(id); + const cancelFn = () => { + processingRef.current.delete(id); + cancelRef.current.delete(id); + originalFilesRef.current.delete(id); + setAttachments((prev) => prev.filter((att) => att.id !== id)); + }; + cancelRef.current.set(id, cancelFn); + }); + const pdfService = await getPDFServiceInstance(); + const processingPromises = files.map(async (file, index3) => { + const id = fileIds[index3]; + let cancelled = false; + const checkCancelled = () => { + if (!processingRef.current.has(id)) { + cancelled = true; + } + return cancelled; + }; + const updateProgress = (progress, status = "uploading") => { + if (checkCancelled()) return; + setAttachments((prev) => prev.map( + (att) => att.id === id ? { ...att, uploadStatus: status, uploadProgress: progress } : att + )); + }; + try { + updateProgress(0.1, "uploading"); + const arrayBuffer = await file.arrayBuffer(); + if (checkCancelled()) return; + updateProgress(0.3, "uploading"); + const data = new Uint8Array(arrayBuffer); + if (checkCancelled()) return; + updateProgress(0.5, "processing"); + const previewPageCount = 3; + const previewPageNumbers = Array.from({ length: previewPageCount }, (_, i) => i + 1); + const pdfDocWithPreviews = await pdfService.extractPDFWithPreviews(data, { + extractImages: false, + extractMetadata: true, + previewPages: previewPageNumbers, + // Only generate previews for first 3 pages + previewMaxWidth: 200, + previewMaxHeight: 300 + }); + if (checkCancelled()) return; + updateProgress(0.9, "processing"); + const selectedPages = Array.from({ length: pdfDocWithPreviews.pageCount }, (_, i) => i + 1); + const extractedText = pdfDocWithPreviews.pages.map((p) => `[Page ${p.pageNumber}] +${p.text}`).join("\n\n"); + if (checkCancelled()) return; + setAttachments((prev) => prev.map( + (att) => att.id === id ? { + ...att, + data, + pageCount: pdfDocWithPreviews.pageCount, + selectedPages, + extractedText, + pagePreviews: pdfDocWithPreviews.pagePreviews || [], + uploadStatus: "success", + uploadProgress: 1 + } : att + )); + processingRef.current.delete(id); + cancelRef.current.delete(id); + } catch (error2) { + if (checkCancelled()) return; + console.error("Error processing PDF:", error2); + setAttachments((prev) => prev.map( + (att) => att.id === id ? { + ...att, + uploadStatus: "failed", + error: error2.message || "Failed to process PDF" + } : att + )); + processingRef.current.delete(id); + cancelRef.current.delete(id); + } + }); + await Promise.allSettled(processingPromises); + }, [attachments.length, getPDFServiceInstance]); + const removePDF = (0, import_react13.useCallback)((id) => { + cancelRef.current.get(id)?.(); + setAttachments((prev) => prev.filter((att) => att.id !== id)); + originalFilesRef.current.delete(id); + }, []); + const retryPDF = (0, import_react13.useCallback)(async (id) => { + const originalFile = originalFilesRef.current.get(id); + if (!originalFile) return; + removePDF(id); + await addPDFs([originalFile]); + }, [addPDFs, removePDF]); + const cancelPDF = (0, import_react13.useCallback)((id) => { + cancelRef.current.get(id)?.(); + }, []); + const clearAll = (0, import_react13.useCallback)(() => { + attachments.forEach((att) => cancelRef.current.get(att.id)?.()); + setAttachments([]); + processingRef.current.clear(); + cancelRef.current.clear(); + originalFilesRef.current.clear(); + setValidationError(null); + }, [attachments]); + const updateSelectedPages = (0, import_react13.useCallback)((id, pages) => { + setAttachments((prev) => prev.map( + (att) => att.id === id ? { ...att, selectedPages: pages } : att + )); + }, []); + return { + attachments, + addPDFs, + removePDF, + retryPDF, + cancelPDF, + clearAll, + updateSelectedPages, + focusedIndex, + setFocusedIndex, + validationError + }; +} + +// src2/util/PDFAttachmentList.tsx +var import_react14 = __toESM(require_react(), 1); +var import_jsx_runtime9 = __toESM(require_jsx_runtime(), 1); +var formatFileSize2 = (bytes) => { + if (bytes < 1024) return `${bytes} B`; + if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`; + return `${(bytes / (1024 * 1024)).toFixed(1)} MB`; +}; +var PDFAttachmentList = ({ + attachments, + onRemove, + onRetry, + onCancel, + focusedIndex, + onFocusChange +}) => { + const handleKeyDown = (0, import_react14.useCallback)((e, index3) => { + if (e.key === "ArrowLeft" && index3 > 0) { + e.preventDefault(); + onFocusChange(index3 - 1); + } else if (e.key === "ArrowRight" && index3 < attachments.length - 1) { + e.preventDefault(); + onFocusChange(index3 + 1); + } + }, [attachments.length, onFocusChange]); + if (attachments.length === 0) { + return null; + } + return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)( + "div", + { + className: "void-flex void-flex-wrap void-gap-2 void-p-2 void-max-h-[300px] void-overflow-y-auto", + role: "list", + "aria-label": `${attachments.length} PDF attachment${attachments.length !== 1 ? "s" : ""}`, + children: attachments.map((attachment, index3) => { + const isUploading = attachment.uploadStatus === "uploading" || attachment.uploadStatus === "processing"; + const isFailed = attachment.uploadStatus === "failed"; + attachment.uploadStatus === "success" || !attachment.uploadStatus; + const focused = focusedIndex === index3; + return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)( + "div", + { + role: "listitem", + tabIndex: 0, + onKeyDown: (e) => { + handleKeyDown(e, index3); + if (e.key === "Delete" || e.key === "Backspace") { + e.preventDefault(); + onRemove(attachment.id); + } else if (e.key === "Enter" && isFailed && onRetry) { + e.preventDefault(); + onRetry(attachment.id); + } + }, + onFocus: () => onFocusChange(index3), + className: ` void-relative void-group void-flex void-flex-col void-w-[200px] void-min-h-[120px] void-rounded-md void-border void-border-void-border-3 void-bg-void-bg-2-alt void-overflow-hidden void-cursor-pointer void-transition-all void-duration-200 ${focused ? "void-ring-2 void-ring-blue-500 void-border-blue-500" : "hover:void-border-void-border-1"} ${isFailed ? "void-border-red-500" : ""} `, + children: [ + /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: "void-relative void-flex-1 void-w-full void-overflow-hidden void-bg-void-bg-1 void-flex void-items-center void-justify-center", children: [ + attachment.pagePreviews && attachment.pagePreviews.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)( + "img", + { + src: attachment.pagePreviews[0], + alt: `Page 1 of ${attachment.filename}`, + className: "void-w-full void-h-full void-object-contain", + loading: "lazy" + } + ) : /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(FileText, { className: "void-w-12 void-h-12 void-text-void-fg-3" }), + isUploading && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: "void-absolute void-inset-0 void-bg-black/50 void-flex void-items-center void-justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: "void-flex void-flex-col void-items-center void-gap-2", children: [ + /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(LoaderCircle, { className: "void-w-5 void-h-5 void-text-white void-animate-spin" }), + attachment.uploadProgress !== void 0 ? /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: "void-text-xs void-text-white", children: [ + Math.round(attachment.uploadProgress * 100), + "%" + ] }) : /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: "void-text-xs void-text-white", children: "Processing..." }), + onCancel && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)( + "button", + { + type: "button", + onClick: (e) => { + e.stopPropagation(); + onCancel(attachment.id); + }, + className: "void-text-xs void-text-white/80 hover:void-text-white void-underline void-mt-1", + "aria-label": "Cancel processing", + children: "Cancel" + } + ) + ] }) }), + isFailed && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: "void-absolute void-inset-0 void-bg-red-500/20 void-flex void-items-center void-justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(CircleAlert, { className: "void-w-5 void-h-5 void-text-red-500" }) }), + /* @__PURE__ */ (0, import_jsx_runtime9.jsx)( + "button", + { + type: "button", + onClick: (e) => { + e.stopPropagation(); + onRemove(attachment.id); + }, + "aria-label": `Remove ${attachment.filename}`, + className: "void-absolute void-top-1 void-right-1 void-p-1 void-rounded-md void-bg-black/60 hover:void-bg-black/80 void-text-white void-transition-opacity void-z-10 void-opacity-0 group-hover:void-opacity-100", + children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(X, { size: 14 }) + } + ) + ] }), + /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: "void-px-2 void-py-1.5 void-bg-void-bg-2-alt void-border-t void-border-void-border-3", children: [ + /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: "void-text-xs void-font-medium void-text-void-fg-1 void-truncate", title: attachment.filename, children: attachment.filename }), + /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: "void-flex void-items-center void-justify-between void-mt-0.5", children: [ + /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: "void-text-[10px] void-text-void-fg-3", children: attachment.pageCount ? `${attachment.pageCount} page${attachment.pageCount !== 1 ? "s" : ""}` : formatFileSize2(attachment.size) }), + isFailed && attachment.error && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: "void-text-[10px] void-text-red-500 void-truncate void-max-w-[120px]", title: attachment.error, children: attachment.error }) + ] }) + ] }) + ] + }, + attachment.id + ); + }) + } + ); +}; + +// src2/util/ImageAttachmentList.tsx +var import_react16 = __toESM(require_react(), 1); + +// src2/util/ImageAttachmentChip.tsx +var import_react15 = __toESM(require_react(), 1); +var import_jsx_runtime10 = __toESM(require_jsx_runtime(), 1); +var ImageAttachmentChip = ({ + attachment, + onRemove, + onRetry, + onCancel, + index: index3, + focused, + onFocus +}) => { + const [previewUrl, setPreviewUrl] = (0, import_react15.useState)(null); + const chipRef = (0, import_react15.useRef)(null); + (0, import_react15.useEffect)(() => { + const url = createImageDataUrl(attachment.data, attachment.mimeType); + setPreviewUrl(url); + return () => { + if (url) { + revokeImageDataUrl(url); + } + }; + }, [attachment.data, attachment.mimeType]); + (0, import_react15.useEffect)(() => { + if (focused && chipRef.current) { + chipRef.current.focus(); + } + }, [focused]); + const handleKeyDown = (e) => { + if (e.key === "Delete" || e.key === "Backspace") { + e.preventDefault(); + onRemove(); + } else if (e.key === "Enter" && attachment.uploadStatus === "failed" && onRetry) { + e.preventDefault(); + onRetry(); + } + }; + const isUploading = attachment.uploadStatus === "uploading"; + const isFailed = attachment.uploadStatus === "failed"; + attachment.uploadStatus === "success" || !attachment.uploadStatus; + return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)( + "div", + { + ref: chipRef, + role: "button", + tabIndex: 0, + "aria-label": `Image attachment: ${attachment.filename}, ${formatFileSize(attachment.size)}. ${isUploading ? "Uploading" : isFailed ? "Failed" : "Ready"}`, + onFocus, + onKeyDown: handleKeyDown, + className: ` void-relative void-group void-flex void-flex-col void-w-[160px] void-h-[120px] void-rounded-md void-border void-border-void-border-3 void-bg-void-bg-2-alt void-overflow-hidden void-cursor-pointer void-transition-all void-duration-200 ${focused ? "void-ring-2 void-ring-blue-500 void-border-blue-500" : "hover:void-border-void-border-1"} ${isFailed ? "void-border-red-500" : ""} `, + children: [ + /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: "void-relative void-flex-1 void-w-full void-overflow-hidden void-bg-void-bg-1", children: [ + previewUrl ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)( + "img", + { + src: previewUrl, + alt: attachment.filename, + className: "void-w-full void-h-full void-object-cover", + loading: "lazy" + } + ) : /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "void-w-full void-h-full void-flex void-items-center void-justify-center void-text-void-fg-3", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(LoaderCircle, { className: "void-w-6 void-h-6 void-animate-spin" }) }), + isUploading && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "void-absolute void-inset-0 void-bg-black/50 void-flex void-items-center void-justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: "void-flex void-flex-col void-items-center void-gap-2", children: [ + /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(LoaderCircle, { className: "void-w-5 void-h-5 void-text-white void-animate-spin" }), + attachment.uploadProgress !== void 0 ? /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: "void-text-xs void-text-white", children: [ + Math.round(attachment.uploadProgress * 100), + "%" + ] }) : /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "void-text-xs void-text-white", children: "Processing..." }), + onCancel && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)( + "button", + { + type: "button", + onClick: (e) => { + e.stopPropagation(); + onCancel(); + }, + className: "void-text-xs void-text-white/80 hover:void-text-white void-underline void-mt-1", + "aria-label": "Cancel upload", + children: "Cancel" + } + ) + ] }) }), + isFailed && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "void-absolute void-inset-0 void-bg-red-500/20 void-flex void-items-center void-justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(CircleAlert, { className: "void-w-5 void-h-5 void-text-red-500" }) }), + /* @__PURE__ */ (0, import_jsx_runtime10.jsx)( + "button", + { + type: "button", + onClick: (e) => { + e.stopPropagation(); + onRemove(); + }, + "aria-label": `Remove ${attachment.filename}`, + className: "void-absolute void-top-1 void-right-1 void-p-1 void-rounded-md void-bg-black/60 hover:void-bg-black/80 void-text-white void-transition-opacity void-z-10", + onMouseEnter: (e) => { + e.currentTarget.style.opacity = "1"; + }, + onMouseLeave: (e) => { + if (!isFailed && !isUploading) { + e.currentTarget.style.opacity = "0.7"; + } + }, + style: { opacity: isFailed || isUploading ? 1 : 0.7 }, + children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(X, { size: 14 }) + } + ) + ] }), + /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: "void-px-2 void-py-1 void-bg-void-bg-2-alt void-border-t void-border-void-border-3", children: [ + /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "void-text-xs void-text-void-fg-1 void-truncate", title: attachment.filename, children: attachment.filename }), + /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "void-text-xs void-text-void-fg-3", children: formatFileSize(attachment.size) }) + ] }), + isFailed && attachment.error && /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: "void-px-2 void-py-1 void-bg-red-500/10 void-border-t void-border-red-500", children: [ + /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "void-text-xs void-text-red-500 void-truncate", title: attachment.error, children: attachment.error }), + onRetry && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)( + "button", + { + type: "button", + onClick: (e) => { + e.stopPropagation(); + onRetry(); + }, + className: "void-text-xs void-text-blue-500 hover:void-text-blue-400 void-mt-1", + children: "Retry" + } + ) + ] }), + isUploading && attachment.uploadProgress !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "void-absolute void-bottom-0 void-left-0 void-right-0 void-h-1 void-bg-void-bg-1", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)( + "div", + { + className: "void-h-full void-bg-blue-500 void-transition-all void-duration-300", + style: { width: `${attachment.uploadProgress * 100}%` } + } + ) }) + ] + } + ); +}; + +// src2/util/ImageAttachmentList.tsx +var import_jsx_runtime11 = __toESM(require_jsx_runtime(), 1); +var ImageAttachmentList = ({ + attachments, + onRemove, + onRetry, + onCancel, + focusedIndex, + onFocusChange +}) => { + const handleKeyDown = (0, import_react16.useCallback)((e, index3) => { + if (e.key === "ArrowLeft" && index3 > 0) { + e.preventDefault(); + onFocusChange(index3 - 1); + } else if (e.key === "ArrowRight" && index3 < attachments.length - 1) { + e.preventDefault(); + onFocusChange(index3 + 1); + } + }, [attachments.length, onFocusChange]); + if (attachments.length === 0) { + return null; + } + return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)( + "div", + { + className: "void-flex void-flex-wrap void-gap-2 void-p-2 void-max-h-[300px] void-overflow-y-auto", + role: "list", + "aria-label": `${attachments.length} image attachment${attachments.length !== 1 ? "s" : ""}`, + children: attachments.map( + (attachment, index3) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)( + "div", + { + role: "listitem", + onKeyDown: (e) => handleKeyDown(e, index3), + children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)( + ImageAttachmentChip, + { + attachment, + onRemove: () => onRemove(attachment.id), + onRetry: onRetry ? () => onRetry(attachment.id) : void 0, + onCancel: onCancel ? () => onCancel(attachment.id) : void 0, + index: index3, + focused: focusedIndex === index3, + onFocus: () => onFocusChange(index3) + } + ) + }, + attachment.id + ) + ) + } + ); +}; + +// src2/util/ImageMessageRenderer.tsx +var import_react18 = __toESM(require_react(), 1); + +// src2/util/ImageLightbox.tsx +var import_react17 = __toESM(require_react(), 1); +var import_jsx_runtime12 = __toESM(require_jsx_runtime(), 1); +var ImageLightbox = ({ + images, + initialIndex, + previewUrls, + onClose, + onNavigate +}) => { + const [currentIndex, setCurrentIndex] = (0, import_react17.useState)(initialIndex); + const [scale, setScale] = (0, import_react17.useState)(1); + const [position, setPosition] = (0, import_react17.useState)({ x: 0, y: 0 }); + const [isDragging, setIsDragging] = (0, import_react17.useState)(false); + const [dragStart, setDragStart] = (0, import_react17.useState)({ x: 0, y: 0 }); + const [lastTouchDistance, setLastTouchDistance] = (0, import_react17.useState)(null); + const [lastTouchCenter, setLastTouchCenter] = (0, import_react17.useState)(null); + const imageRef = (0, import_react17.useRef)(null); + const containerRef = (0, import_react17.useRef)(null); + const previousFocusRef = (0, import_react17.useRef)(null); + const currentImage = images[currentIndex]; + const currentUrl = currentImage ? previewUrls.get(currentImage.id) : null; + (0, import_react17.useEffect)(() => { + setCurrentIndex(initialIndex); + setScale(1); + setPosition({ x: 0, y: 0 }); + }, [initialIndex]); + (0, import_react17.useEffect)(() => { + const handleKeyDown = (e) => { + if (e.key === "Escape") { + onClose(); + } else if (e.key === "ArrowLeft") { + e.preventDefault(); + onNavigate("prev"); + setCurrentIndex((prev) => Math.max(0, prev - 1)); + } else if (e.key === "ArrowRight") { + e.preventDefault(); + onNavigate("next"); + setCurrentIndex((prev) => Math.min(images.length - 1, prev + 1)); + } + }; + window.addEventListener("keydown", handleKeyDown); + return () => { + window.removeEventListener("keydown", handleKeyDown); + }; + }, [images.length, onClose, onNavigate]); + (0, import_react17.useEffect)(() => { + if (containerRef.current) { + previousFocusRef.current = document.activeElement; + containerRef.current.focus(); + } + return () => { + if (previousFocusRef.current) { + previousFocusRef.current.focus(); + } + }; + }, []); + const handleWheel = (0, import_react17.useCallback)((e) => { + if (e.ctrlKey || e.metaKey) { + e.preventDefault(); + const delta = e.deltaY > 0 ? 0.9 : 1.1; + setScale((prev) => Math.max(0.5, Math.min(5, prev * delta))); + } + }, []); + const handleMouseDown = (0, import_react17.useCallback)((e) => { + if (e.button === 0 && scale > 1) { + setIsDragging(true); + setDragStart({ x: e.clientX - position.x, y: e.clientY - position.y }); + } + }, [scale, position]); + const handleMouseMove = (0, import_react17.useCallback)((e) => { + if (isDragging) { + setPosition({ + x: e.clientX - dragStart.x, + y: e.clientY - dragStart.y + }); + } + }, [isDragging, dragStart]); + const handleMouseUp = (0, import_react17.useCallback)(() => { + setIsDragging(false); + }, []); + const handleDoubleClick = (0, import_react17.useCallback)(() => { + if (scale > 1) { + setScale(1); + setPosition({ x: 0, y: 0 }); + } else { + setScale(2); + } + }, [scale]); + const handlePrev = (0, import_react17.useCallback)(() => { + if (currentIndex > 0) { + setCurrentIndex(currentIndex - 1); + setScale(1); + setPosition({ x: 0, y: 0 }); + } + }, [currentIndex]); + const handleNext = (0, import_react17.useCallback)(() => { + if (currentIndex < images.length - 1) { + setCurrentIndex(currentIndex + 1); + setScale(1); + setPosition({ x: 0, y: 0 }); + } + }, [currentIndex, images.length]); + const handleTouchStart = (0, import_react17.useCallback)((e) => { + if (e.touches.length === 2) { + const touch1 = e.touches[0]; + const touch2 = e.touches[1]; + const distance = Math.hypot( + touch2.clientX - touch1.clientX, + touch2.clientY - touch1.clientY + ); + setLastTouchDistance(distance); + setLastTouchCenter({ + x: (touch1.clientX + touch2.clientX) / 2, + y: (touch1.clientY + touch2.clientY) / 2 + }); + } else if (e.touches.length === 1 && scale > 1) { + const touch = e.touches[0]; + setIsDragging(true); + setDragStart({ x: touch.clientX - position.x, y: touch.clientY - position.y }); + } + }, [scale, position]); + const handleTouchMove = (0, import_react17.useCallback)((e) => { + e.preventDefault(); + if (e.touches.length === 2 && lastTouchDistance !== null && lastTouchCenter) { + const touch1 = e.touches[0]; + const touch2 = e.touches[1]; + const distance = Math.hypot( + touch2.clientX - touch1.clientX, + touch2.clientY - touch1.clientY + ); + const scaleFactor = distance / lastTouchDistance; + setScale((prev) => Math.max(0.5, Math.min(5, prev * scaleFactor))); + setLastTouchDistance(distance); + const newCenter = { + x: (touch1.clientX + touch2.clientX) / 2, + y: (touch1.clientY + touch2.clientY) / 2 + }; + const centerDelta = { + x: newCenter.x - lastTouchCenter.x, + y: newCenter.y - lastTouchCenter.y + }; + setPosition((prev) => ({ + x: prev.x + centerDelta.x, + y: prev.y + centerDelta.y + })); + setLastTouchCenter(newCenter); + } else if (e.touches.length === 1 && isDragging) { + const touch = e.touches[0]; + setPosition({ + x: touch.clientX - dragStart.x, + y: touch.clientY - dragStart.y + }); + } + }, [lastTouchDistance, lastTouchCenter, isDragging, dragStart]); + const handleTouchEnd = (0, import_react17.useCallback)(() => { + setLastTouchDistance(null); + setLastTouchCenter(null); + setIsDragging(false); + }, []); + if (!currentImage || !currentUrl) { + return null; + } + return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)( + "div", + { + ref: containerRef, + role: "dialog", + "aria-modal": "true", + "aria-label": `Image ${currentIndex + 1} of ${images.length}: ${currentImage.filename}`, + tabIndex: -1, + className: "void-fixed void-inset-0 void-z-[9999] void-bg-black/90 void-flex void-items-center void-justify-center", + onClick: (e) => { + if (e.target === e.currentTarget) { + onClose(); + } + }, + onKeyDown: (e) => { + if (e.key === "Escape") { + onClose(); + } + }, + children: [ + /* @__PURE__ */ (0, import_jsx_runtime12.jsx)( + "button", + { + type: "button", + onClick: onClose, + className: "void-absolute void-top-4 void-right-4 void-z-10 void-p-2 void-rounded-full void-bg-black/60 hover:void-bg-black/80 void-text-white void-transition-colors", + "aria-label": "Close lightbox", + children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(X, { size: 24 }) + } + ), + currentIndex > 0 && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)( + "button", + { + type: "button", + onClick: handlePrev, + className: "void-absolute void-left-4 void-top-1/2 -void-translate-y-1/2 void-z-10 void-p-2 void-rounded-full void-bg-black/60 hover:void-bg-black/80 void-text-white void-transition-colors", + "aria-label": "Previous image", + children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(ChevronLeft, { size: 24 }) + } + ), + currentIndex < images.length - 1 && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)( + "button", + { + type: "button", + onClick: handleNext, + className: "void-absolute void-right-4 void-top-1/2 -void-translate-y-1/2 void-z-10 void-p-2 void-rounded-full void-bg-black/60 hover:void-bg-black/80 void-text-white void-transition-colors", + "aria-label": "Next image", + children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(ChevronRight, { size: 24 }) + } + ), + /* @__PURE__ */ (0, import_jsx_runtime12.jsx)( + "div", + { + className: "void-relative void-w-full void-h-full void-flex void-items-center void-justify-center void-overflow-hidden void-touch-none", + onWheel: handleWheel, + onMouseDown: handleMouseDown, + onMouseMove: handleMouseMove, + onMouseUp: handleMouseUp, + onMouseLeave: handleMouseUp, + onTouchStart: handleTouchStart, + onTouchMove: handleTouchMove, + onTouchEnd: handleTouchEnd, + children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)( + "img", + { + ref: imageRef, + src: currentUrl, + alt: currentImage.filename || `Image ${currentIndex + 1}`, + onDoubleClick: handleDoubleClick, + className: "void-max-w-full void-max-h-full void-object-contain void-transition-transform void-duration-200", + style: { + transform: `scale(${scale}) translate(${position.x}px, ${position.y}px)`, + cursor: scale > 1 ? isDragging ? "grabbing" : "grab" : "zoom-in" + }, + draggable: false + } + ) + } + ), + /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "void-absolute void-bottom-4 void-left-1/2 -void-translate-x-1/2 void-bg-black/60 void-text-white void-px-4 void-py-2 void-rounded-md void-text-sm", children: [ + /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "void-font-medium", children: currentImage.filename }), + /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "void-text-xs void-opacity-75", children: [ + currentImage.width, + " \xD7 ", + currentImage.height, + " \u2022 ", + formatFileSize(currentImage.size), + images.length > 1 && ` \u2022 ${currentIndex + 1} of ${images.length}` + ] }) + ] }), + images.length > 1 && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "void-absolute void-bottom-16 void-left-1/2 -void-translate-x-1/2 void-flex void-gap-2", children: images.map( + (_, index3) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)( + "button", + { + type: "button", + onClick: () => { + setCurrentIndex(index3); + setScale(1); + setPosition({ x: 0, y: 0 }); + }, + className: ` void-w-2 void-h-2 void-rounded-full void-transition-all ${index3 === currentIndex ? "void-bg-white" : "void-bg-white/40"} hover:void-bg-white/60 `, + "aria-label": `Go to image ${index3 + 1}` + }, + index3 + ) + ) }) + ] + } + ); +}; + +// src2/util/ImageMessageRenderer.tsx +var import_jsx_runtime13 = __toESM(require_jsx_runtime(), 1); +var ImageMessageRenderer = ({ + images, + caption +}) => { + const [previewUrls, setPreviewUrls] = (0, import_react18.useState)(/* @__PURE__ */ new Map()); + const [lightboxImageIndex, setLightboxImageIndex] = (0, import_react18.useState)(null); + (0, import_react18.useEffect)(() => { + const urls = /* @__PURE__ */ new Map(); + images.forEach((img) => { + const url = createImageDataUrl(img.data, img.mimeType); + urls.set(img.id, url); + }); + setPreviewUrls(urls); + return () => { + urls.forEach((url) => revokeImageDataUrl(url)); + }; + }, [images]); + const handleImageClick = (0, import_react18.useCallback)((index3) => { + setLightboxImageIndex(index3); + }, []); + const handleCloseLightbox = (0, import_react18.useCallback)(() => { + setLightboxImageIndex(null); + }, []); + const handleNavigate = (0, import_react18.useCallback)((direction) => { + if (lightboxImageIndex === null) return; + if (direction === "prev") { + setLightboxImageIndex(Math.max(0, lightboxImageIndex - 1)); + } else { + setLightboxImageIndex(Math.min(images.length - 1, lightboxImageIndex + 1)); + } + }, [lightboxImageIndex, images.length]); + if (images.length === 0) { + return null; + } + const gridCols = images.length === 1 ? 1 : images.length <= 4 ? 2 : 3; + return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [ + /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "void-flex void-flex-col void-gap-2", children: [ + caption && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: "void-text-void-fg-1 void-whitespace-pre-wrap void-break-words", children: caption }), + /* @__PURE__ */ (0, import_jsx_runtime13.jsx)( + "div", + { + className: ` void-grid void-gap-2 ${gridCols === 1 ? "void-grid-cols-1" : ""} ${gridCols === 2 ? "void-grid-cols-2" : ""} ${gridCols === 3 ? "void-grid-cols-3" : ""} `, + role: "group", + "aria-label": `${images.length} image${images.length !== 1 ? "s" : ""}`, + children: images.map((img, index3) => { + const previewUrl = previewUrls.get(img.id); + if (!previewUrl) { + return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)( + "div", + { + className: "void-aspect-square void-bg-void-bg-2-alt void-rounded-md void-flex void-items-center void-justify-center", + children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "void-text-void-fg-3 void-text-sm", children: "Loading..." }) + }, + img.id + ); + } + return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)( + "div", + { + className: "void-relative void-group void-cursor-pointer", + role: "button", + tabIndex: 0, + onClick: () => handleImageClick(index3), + onKeyDown: (e) => { + if (e.key === "Enter" || e.key === " ") { + e.preventDefault(); + handleImageClick(index3); + } + }, + "aria-label": `Image: ${img.filename}. Click to zoom.`, + children: [ + /* @__PURE__ */ (0, import_jsx_runtime13.jsx)( + "img", + { + src: previewUrl, + alt: img.filename ? `${img.filename} (${img.width}\xD7${img.height})` : `Image ${index3 + 1}`, + className: ` void-w-full void-rounded-md void-object-cover void-transition-transform void-duration-200 group-hover:void-scale-[1.02] ${gridCols === 1 ? "void-max-h-[320px] md:void-max-h-[400px]" : "void-aspect-square void-max-h-[240px] md:void-max-h-[300px]"} `, + loading: "lazy" + } + ), + /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "void-absolute void-bottom-0 void-left-0 void-right-0 void-bg-black/60 void-text-white void-text-xs void-px-2 void-py-1 void-rounded-b-md void-opacity-0 group-hover:void-opacity-100 void-transition-opacity", children: [ + /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: "void-truncate", children: img.filename }), + /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: "void-text-xs void-opacity-75", children: formatFileSize(img.size) }) + ] }) + ] + }, + img.id + ); + }) + } + ) + ] }), + lightboxImageIndex !== null && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)( + ImageLightbox, + { + images, + initialIndex: lightboxImageIndex, + previewUrls, + onClose: handleCloseLightbox, + onNavigate: handleNavigate + } + ) + ] }); +}; + +// src2/util/PDFMessageRenderer.tsx +var import_jsx_runtime14 = __toESM(require_jsx_runtime(), 1); +var formatFileSize3 = (bytes) => { + if (bytes < 1024) return `${bytes} B`; + if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`; + return `${(bytes / (1024 * 1024)).toFixed(1)} MB`; +}; +var PDFMessageRenderer = ({ + pdfs, + caption +}) => { + if (pdfs.length === 0) { + return null; + } + const gridCols = pdfs.length === 1 ? 1 : pdfs.length <= 4 ? 2 : 3; + return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "void-flex void-flex-col void-gap-2", children: [ + caption && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "void-text-void-fg-1 void-whitespace-pre-wrap void-break-words", children: caption }), + /* @__PURE__ */ (0, import_jsx_runtime14.jsx)( + "div", + { + className: ` void-grid void-gap-2 ${gridCols === 1 ? "void-grid-cols-1" : ""} ${gridCols === 2 ? "void-grid-cols-2" : ""} ${gridCols === 3 ? "void-grid-cols-3" : ""} `, + role: "group", + "aria-label": `${pdfs.length} PDF${pdfs.length !== 1 ? "s" : ""}`, + children: pdfs.map((pdf, index3) => { + const hasPreview = pdf.pagePreviews && pdf.pagePreviews.length > 0; + return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)( + "div", + { + className: "void-relative void-group", + role: "button", + tabIndex: 0, + "aria-label": `PDF: ${pdf.filename}`, + children: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)( + "div", + { + className: ` void-relative void-bg-void-bg-2-alt void-border void-border-void-border-3 void-rounded-md void-overflow-hidden void-transition-all void-duration-200 group-hover:void-border-void-border-1 ${gridCols === 1 ? "void-max-h-[320px] md:void-max-h-[400px]" : "void-aspect-[3/4] void-max-h-[240px] md:void-max-h-[300px]"} `, + children: [ + /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "void-w-full void-h-full void-flex void-items-center void-justify-center void-bg-void-bg-1", children: hasPreview ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)( + "img", + { + src: pdf.pagePreviews[0], + alt: `Page 1 of ${pdf.filename}`, + className: "void-w-full void-h-full void-object-contain", + loading: "lazy" + } + ) : /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(FileText, { className: "void-w-12 void-h-12 void-text-void-fg-3" }) }), + /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "void-absolute void-bottom-0 void-left-0 void-right-0 void-bg-black/60 void-text-white void-text-xs void-px-2 void-py-1.5 void-rounded-b-md void-opacity-0 group-hover:void-opacity-100 void-transition-opacity", children: [ + /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "void-truncate void-font-medium", children: pdf.filename }), + /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "void-flex void-items-center void-justify-between void-mt-0.5", children: [ + /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "void-text-[10px] void-opacity-75", children: pdf.pageCount ? `${pdf.pageCount} page${pdf.pageCount !== 1 ? "s" : ""}` : formatFileSize3(pdf.size) }), + hasPreview && pdf.pagePreviews.length > 1 && /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "void-text-[10px] void-opacity-75", children: [ + "+", + pdf.pagePreviews.length - 1, + " more" + ] }) + ] }) + ] }) + ] + } + ) + }, + pdf.id + ); + }) + } + ) + ] }); +}; + +// src2/sidebar-tsx/SidebarChat.tsx +var import_jsx_runtime15 = __toESM(require_jsx_runtime(), 1); +var IconX = ({ size: size3, className = "", ...props }) => { + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + "svg", + { + xmlns: "http://www.w3.org/2000/svg", + width: size3, + height: size3, + viewBox: "0 0 24 24", + fill: "none", + stroke: "currentColor", + className, + ...props, + children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + "path", + { + strokeLinecap: "round", + strokeLinejoin: "round", + d: "M6 18 18 6M6 6l12 12" + } + ) + } + ); +}; +var IconArrowUp = ({ size: size3, className = "" }) => { + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + "svg", + { + width: size3, + height: size3, + className, + viewBox: "0 0 20 20", + fill: "none", + xmlns: "http://www.w3.org/2000/svg", + children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + "path", + { + fill: "black", + fillRule: "evenodd", + clipRule: "evenodd", + d: "M5.293 9.707a1 1 0 010-1.414l4-4a1 1 0 011.414 0l4 4a1 1 0 01-1.414 1.414L11 7.414V15a1 1 0 11-2 0V7.414L6.707 9.707a1 1 0 01-1.414 0z" + } + ) + } + ); +}; +var IconSquare = ({ size: size3, className = "" }) => { + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + "svg", + { + className, + stroke: "black", + fill: "black", + strokeWidth: "0", + viewBox: "0 0 24 24", + width: size3, + height: size3, + xmlns: "http://www.w3.org/2000/svg", + children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("rect", { x: "2", y: "2", width: "20", height: "20", rx: "4", ry: "4" }) + } + ); +}; +var IconWarning = ({ size: size3, className = "" }) => { + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + "svg", + { + className, + stroke: "currentColor", + fill: "currentColor", + strokeWidth: "0", + viewBox: "0 0 16 16", + width: size3, + height: size3, + xmlns: "http://www.w3.org/2000/svg", + children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + "path", + { + fillRule: "evenodd", + clipRule: "evenodd", + d: "M7.56 1h.88l6.54 12.26-.44.74H1.44L1 13.26 7.56 1zM8 2.28L2.28 13H13.7L8 2.28zM8.625 12v-1h-1.25v1h1.25zm-1.25-2V6h1.25v4h-1.25z" + } + ) + } + ); +}; +var IconLoading = ({ className = "", showTokenCount }) => { + const [dots, setDots] = (0, import_react19.useState)(1); + (0, import_react19.useEffect)(() => { + let frameId; + let lastUpdate = Date.now(); + const animate = () => { + const now = Date.now(); + if (now - lastUpdate >= 400) { + setDots((prev) => prev >= 3 ? 1 : prev + 1); + lastUpdate = now; + } + frameId = requestAnimationFrame(animate); + }; + frameId = requestAnimationFrame(animate); + return () => cancelAnimationFrame(frameId); + }, []); + const dotsText = ".".repeat(dots); + const tokenText = showTokenCount !== void 0 ? ` (${showTokenCount} tokens)` : ""; + return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: `${className}`, children: [ + dotsText, + tokenText + ] }); +}; +var ReasoningOptionSlider = ({ featureName }) => { + const accessor = useAccessor(); + const cortexideSettingsService = accessor.get("ICortexideSettingsService"); + const voidSettingsState = useSettingsState(); + const modelSelection = voidSettingsState.modelSelectionOfFeature[featureName]; + const overridesOfModel = voidSettingsState.overridesOfModel; + if (!modelSelection) return null; + if (!isValidProviderModelSelection(modelSelection)) { + return null; + } + const { modelName, providerName } = modelSelection; + const { reasoningCapabilities } = getModelCapabilities(providerName, modelName, overridesOfModel); + const { canTurnOffReasoning, reasoningSlider: reasoningBudgetSlider } = reasoningCapabilities || {}; + const modelSelectionOptions = voidSettingsState.optionsOfModelSelection[featureName][providerName]?.[modelName]; + const isReasoningEnabled = getIsReasoningEnabledState(featureName, providerName, modelName, modelSelectionOptions, overridesOfModel); + if (canTurnOffReasoning && !reasoningBudgetSlider) { + return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "void-flex void-items-center void-gap-x-2", children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "void-text-void-fg-3 void-text-xs void-pointer-events-none void-inline-block void-w-10 void-pr-1", children: "Thinking" }), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + VoidSwitch, + { + size: "xxs", + value: isReasoningEnabled, + onChange: (newVal) => { + const isOff = canTurnOffReasoning && !newVal; + cortexideSettingsService.setOptionsOfModelSelection(featureName, modelSelection.providerName, modelSelection.modelName, { reasoningEnabled: !isOff }); + } + } + ) + ] }); + } + if (reasoningBudgetSlider?.type === "budget_slider") { + const { min: min_, max, default: defaultVal } = reasoningBudgetSlider; + const nSteps = 8; + const stepSize = Math.round((max - min_) / nSteps); + const valueIfOff = min_ - stepSize; + const min = canTurnOffReasoning ? valueIfOff : min_; + const value = isReasoningEnabled ? voidSettingsState.optionsOfModelSelection[featureName][modelSelection.providerName]?.[modelSelection.modelName]?.reasoningBudget ?? defaultVal : valueIfOff; + return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "void-flex void-items-center void-gap-x-2", children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "void-text-void-fg-3 void-text-xs void-pointer-events-none void-inline-block void-w-10 void-pr-1", children: "Thinking" }), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + VoidSlider, + { + width: 50, + size: "xs", + min, + max, + step: stepSize, + value, + onChange: (newVal) => { + if (modelSelection.providerName === "auto" && modelSelection.modelName === "auto") return; + const isOff = canTurnOffReasoning && newVal === valueIfOff; + cortexideSettingsService.setOptionsOfModelSelection(featureName, modelSelection.providerName, modelSelection.modelName, { reasoningEnabled: !isOff, reasoningBudget: newVal }); + } + } + ), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "void-text-void-fg-3 void-text-xs void-pointer-events-none", children: isReasoningEnabled ? `${value} tokens` : "Thinking disabled" }) + ] }); + } + if (reasoningBudgetSlider?.type === "effort_slider") { + const { values, default: defaultVal } = reasoningBudgetSlider; + const min = canTurnOffReasoning ? -1 : 0; + const max = values.length - 1; + const currentEffort = voidSettingsState.optionsOfModelSelection[featureName][modelSelection.providerName]?.[modelSelection.modelName]?.reasoningEffort ?? defaultVal; + const valueIfOff = -1; + const value = isReasoningEnabled && currentEffort ? values.indexOf(currentEffort) : valueIfOff; + const currentEffortCapitalized = currentEffort.charAt(0).toUpperCase() + currentEffort.slice(1, Infinity); + return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "void-flex void-items-center void-gap-x-2", children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "void-text-void-fg-3 void-text-xs void-pointer-events-none void-inline-block void-w-10 void-pr-1", children: "Thinking" }), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + VoidSlider, + { + width: 30, + size: "xs", + min, + max, + step: 1, + value, + onChange: (newVal) => { + if (modelSelection.providerName === "auto" && modelSelection.modelName === "auto") return; + const isOff = canTurnOffReasoning && newVal === valueIfOff; + cortexideSettingsService.setOptionsOfModelSelection(featureName, modelSelection.providerName, modelSelection.modelName, { reasoningEnabled: !isOff, reasoningEffort: values[newVal] ?? void 0 }); + } + } + ), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "void-text-void-fg-3 void-text-xs void-pointer-events-none", children: isReasoningEnabled ? `${currentEffortCapitalized}` : "Thinking disabled" }) + ] }); + } + return null; +}; +var nameOfChatMode = { + "normal": "Chat", + "gather": "Gather", + "agent": "Agent" +}; +var detailOfChatMode = { + "normal": "Normal chat", + "gather": "Reads files, but can't edit", + "agent": "Edits files and uses tools" +}; +var ChatModeDropdown = ({ className }) => { + const accessor = useAccessor(); + const cortexideSettingsService = accessor.get("ICortexideSettingsService"); + const settingsState = useSettingsState(); + const options2 = (0, import_react19.useMemo)(() => ["normal", "gather", "agent"], []); + const onChangeOption = (0, import_react19.useCallback)((newVal) => { + cortexideSettingsService.setGlobalSetting("chatMode", newVal); + }, [cortexideSettingsService]); + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + VoidCustomDropdownBox, + { + className, + options: options2, + selectedOption: settingsState.globalSettings.chatMode, + onChangeOption, + getOptionDisplayName: (val) => nameOfChatMode[val], + getOptionDropdownName: (val) => nameOfChatMode[val], + getOptionDropdownDetail: (val) => detailOfChatMode[val], + getOptionsEqual: (a, b) => a === b + } + ); +}; +var VoidChatArea = ({ + children, + onSubmit, + onAbort, + onClose, + onClickAnywhere, + divRef, + isStreaming = false, + isDisabled = false, + className = "", + showModelDropdown = true, + showSelections = false, + showProspectiveSelections = false, + selections, + setSelections, + imageAttachments, + onImagePaste, + onImageDrop, + onImageUpload, + onPDFDrop, + pdfAttachments, + featureName, + loadingIcon +}) => { + const [isDragOver, setIsDragOver] = import_react19.default.useState(false); + const imageInputRef = import_react19.default.useRef(null); + const pdfInputRef = import_react19.default.useRef(null); + const containerRef = import_react19.default.useRef(null); + import_react19.default.useEffect(() => { + const handlePaste = (e) => { + const items = Array.from(e.clipboardData?.items || []); + const imageFiles = []; + const pdfFiles = []; + for (const item of items) { + if (item.type.startsWith("image/")) { + const file = item.getAsFile(); + if (file) { + imageFiles.push(file); + } + } else if (item.type === "application/pdf") { + const file = item.getAsFile(); + if (file) { + pdfFiles.push(file); + } + } + } + if (imageFiles.length > 0 && onImagePaste) { + e.preventDefault(); + onImagePaste(imageFiles); + } + if (pdfFiles.length > 0 && onPDFDrop) { + e.preventDefault(); + onPDFDrop(pdfFiles); + } + }; + const container = containerRef.current || divRef?.current; + if (container) { + container.addEventListener("paste", handlePaste); + return () => { + container.removeEventListener("paste", handlePaste); + }; + } + }, [divRef, onImagePaste]); + const lastDragOverTimeRef = import_react19.default.useRef(0); + const DRAG_THROTTLE_MS = 50; + const handleDragOver = import_react19.default.useCallback((e) => { + e.preventDefault(); + e.stopPropagation(); + const now = Date.now(); + if (now - lastDragOverTimeRef.current < DRAG_THROTTLE_MS) { + return; + } + lastDragOverTimeRef.current = now; + const hasFiles = Array.from(e.dataTransfer.items).some( + (item) => item.type.startsWith("image/") || item.type === "application/pdf" + ); + if (hasFiles) { + setIsDragOver(true); + } + }, []); + const handleDragLeave = (e) => { + e.preventDefault(); + e.stopPropagation(); + setIsDragOver(false); + }; + const handleDrop = (e) => { + e.preventDefault(); + e.stopPropagation(); + setIsDragOver(false); + const imageFiles = Array.from(e.dataTransfer.files).filter( + (file) => file.type.startsWith("image/") + ); + const pdfFiles = Array.from(e.dataTransfer.files).filter( + (file) => file.type === "application/pdf" + ); + if (imageFiles.length > 0 && onImageDrop) { + onImageDrop(imageFiles); + } + if (pdfFiles.length > 0 && onPDFDrop) { + onPDFDrop(pdfFiles); + } + }; + const handleImageUploadClick = () => { + imageInputRef.current?.click(); + }; + const handlePDFUploadClick = () => { + pdfInputRef.current?.click(); + }; + const handleImageInputChange = (e) => { + const files = Array.from(e.target.files || []).filter( + (file) => file.type.startsWith("image/") + ); + if (files.length > 0 && onImageDrop) { + onImageDrop(files); + } + e.target.value = ""; + }; + const handlePDFInputChange = (e) => { + const files = Array.from(e.target.files || []).filter( + (file) => file.type === "application/pdf" + ); + if (files.length > 0 && onPDFDrop) { + onPDFDrop(files); + } + e.target.value = ""; + }; + return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)( + "div", + { + ref: (node) => { + if (divRef) { + if (typeof divRef === "function") { + divRef(node); + } else { + divRef.current = node; + } + } + containerRef.current = node; + }, + className: ` void-gap-x-1 void-flex void-flex-col void-p-2.5 void-relative void-input void-text-left void-shrink-0 void-rounded-2xl void-bg-[#030304] void-transition-all void-duration-200 void-border void-border-[rgba(255,255,255,0.08)] focus-within:void-border-[rgba(255,255,255,0.12)] hover:void-border-[rgba(255,255,255,0.12)] ${isDragOver ? "void-border-blue-500 void-bg-blue-500/10" : ""} void-max-h-[80vh] void-overflow-y-auto ${className} `, + onClick: (e) => { + onClickAnywhere?.(); + }, + onDragOver: handleDragOver, + onDragLeave: handleDragLeave, + onDrop: handleDrop, + children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + "input", + { + ref: imageInputRef, + type: "file", + accept: "image/png,image/jpeg,image/webp,image/gif,image/svg+xml", + multiple: true, + className: "void-hidden", + onChange: handleImageInputChange + } + ), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + "input", + { + ref: pdfInputRef, + type: "file", + accept: "application/pdf", + multiple: true, + className: "void-hidden", + onChange: handlePDFInputChange + } + ), + imageAttachments, + pdfAttachments, + showSelections && selections && setSelections && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + SelectedFiles, + { + type: "staging", + selections, + setSelections, + showProspectiveSelections + } + ), + /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "void-relative void-w-full void-flex void-items-end void-gap-2", children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-flex-1 void-min-w-0", children }), + /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "void-flex void-items-center void-gap-1 void-flex-shrink-0 void-pb-0.5", children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + "button", + { + type: "button", + onClick: handleImageUploadClick, + className: "void-flex-shrink-0 void-p-1.5 void-rounded hover:void-bg-void-bg-2-alt void-text-void-fg-4 hover:void-text-void-fg-2 void-transition-colors disabled:void-opacity-40 disabled:void-cursor-not-allowed", + "aria-label": "Upload images", + title: "Upload images (or paste/drag & drop)", + children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Image$1, { size: 16 }) + } + ), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + "button", + { + type: "button", + onClick: handlePDFUploadClick, + className: "void-flex-shrink-0 void-p-1.5 void-rounded hover:void-bg-void-bg-2-alt void-text-void-fg-4 hover:void-text-void-fg-2 void-transition-colors disabled:void-opacity-40 disabled:void-cursor-not-allowed", + "aria-label": "Upload PDFs", + title: "Upload PDFs (or paste/drag & drop)", + children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(FileText, { size: 16 }) + } + ), + isStreaming ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ButtonStop, { onClick: onAbort }) : /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + ButtonSubmit, + { + onClick: onSubmit, + disabled: isDisabled + } + ) + ] }), + onClose && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-absolute -void-top-1 -void-right-1 void-cursor-pointer void-z-1", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + IconX, + { + size: 12, + className: "void-stroke-[2] void-opacity-80 void-text-void-fg-3 hover:void-brightness-95", + onClick: onClose + } + ) }) + ] }), + /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "void-flex void-flex-row void-justify-between void-items-center void-gap-2 void-mt-1 void-pt-1 void-border-t void-border-void-border-3/50", children: [ + showModelDropdown && /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "void-flex void-items-center void-flex-wrap void-gap-x-2 void-gap-y-1 void-text-nowrap void-flex-1 void-min-w-0", children: [ + featureName === "Chat" && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ChatModeDropdown, { className: "void-text-xs void-text-void-fg-3 void-bg-void-bg-1 void-border void-border-void-border-2 void-rounded void-py-0.5 void-px-1.5" }), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ModelDropdown, { featureName, className: "void-text-xs void-text-void-fg-3 void-bg-void-bg-1 void-rounded" }), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ReasoningOptionSlider, { featureName }) + ] }), + isStreaming && loadingIcon && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-flex void-items-center", children: loadingIcon }) + ] }) + ] + } + ); +}; +var DEFAULT_BUTTON_SIZE = 22; +var ButtonSubmit = ({ className, disabled, ...props }) => { + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + "button", + { + type: "button", + className: `void-rounded-full void-flex-shrink-0 void-flex-grow-0 void-flex void-items-center void-justify-center ${disabled ? "void-bg-vscode-disabled-fg void-cursor-default" : "void-bg-white void-cursor-pointer"} ${className} `, + ...props, + children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(IconArrowUp, { size: DEFAULT_BUTTON_SIZE, className: "void-stroke-[2] void-p-[2px]" }) + } + ); +}; +var ButtonStop = ({ className, ...props }) => { + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + "button", + { + className: `void-rounded-full void-flex-shrink-0 void-flex-grow-0 void-cursor-pointer void-flex void-items-center void-justify-center void-bg-white ${className} `, + type: "button", + ...props, + children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(IconSquare, { size: DEFAULT_BUTTON_SIZE, className: "void-stroke-[3] void-p-[7px]" }) + } + ); +}; +var scrollToBottom = (divRef) => { + if (divRef.current) { + divRef.current.scrollTop = divRef.current.scrollHeight; + } +}; +var ScrollToBottomContainer = ({ children, className, style, scrollContainerRef }) => { + const [isAtBottom, setIsAtBottom] = (0, import_react19.useState)(true); + const divRef = scrollContainerRef; + const onScroll = () => { + const div = divRef.current; + if (!div) return; + const isBottom = Math.abs( + div.scrollHeight - div.clientHeight - div.scrollTop + ) < 4; + setIsAtBottom(isBottom); + }; + (0, import_react19.useEffect)(() => { + if (isAtBottom) { + scrollToBottom(divRef); + } + }, [children, isAtBottom]); + (0, import_react19.useEffect)(() => { + scrollToBottom(divRef); + }, []); + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + "div", + { + ref: divRef, + onScroll, + className, + style, + children + } + ); +}; +var getRelative = (uri, accessor) => { + const workspaceContextService = accessor.get("IWorkspaceContextService"); + let path; + const isInside = workspaceContextService.isInsideWorkspace(uri); + if (isInside) { + const f = workspaceContextService.getWorkspace().folders.find((f2) => uri.fsPath?.startsWith(f2.uri.fsPath)); + if (f) { + path = uri.fsPath.replace(f.uri.fsPath, ""); + } else { + path = uri.fsPath; + } + } else { + path = uri.fsPath; + } + return path || void 0; +}; +var getFolderName = (pathStr) => { + pathStr = pathStr.replace(/[/\\]+/g, "/"); + const parts = pathStr.split("/"); + const nonEmptyParts = parts.filter((part) => part.length > 0); + if (nonEmptyParts.length === 0) return "/"; + if (nonEmptyParts.length === 1) return nonEmptyParts[0] + "/"; + const lastTwo = nonEmptyParts.slice(-2); + return lastTwo.join("/") + "/"; +}; +var getBasename = (pathStr, parts = 1) => { + pathStr = pathStr.replace(/[/\\]+/g, "/"); + const allParts = pathStr.split("/"); + if (allParts.length === 0) return pathStr; + return allParts.slice(-parts).join("/"); +}; +var voidOpenFileFn = (uri, accessor, range) => { + const commandService = accessor.get("ICommandService"); + const editorService = accessor.get("ICodeEditorService"); + let editorSelection = void 0; + if (range) { + editorSelection = { + startLineNumber: range[0], + startColumn: 1, + endLineNumber: range[1], + endColumn: Number.MAX_SAFE_INTEGER + }; + } + commandService.executeCommand("vscode.open", uri).then(() => { + setTimeout(() => { + if (!editorSelection) return; + const editor = editorService.getActiveCodeEditor(); + if (!editor) return; + editor.setSelection(editorSelection); + editor.revealRange(editorSelection, ScrollType.Immediate); + }, 50); + }); +}; +var SelectedFiles = ({ + type, + selections, + setSelections, + showProspectiveSelections, + messageIdx +}) => { + const accessor = useAccessor(); + accessor.get("ICommandService"); + const modelReferenceService = accessor.get("ICortexideModelService"); + const { uri: currentURI } = useActiveURI(); + const [recentUris, setRecentUris] = (0, import_react19.useState)([]); + const maxRecentUris = 10; + const maxProspectiveFiles = 3; + (0, import_react19.useEffect)(() => { + if (!currentURI) return; + setRecentUris((prev) => { + const withoutCurrent = prev.filter((uri) => uri.fsPath !== currentURI.fsPath); + const withCurrent = [currentURI, ...withoutCurrent]; + return withCurrent.slice(0, maxRecentUris); + }); + }, [currentURI]); + const [prospectiveSelections, setProspectiveSelections] = (0, import_react19.useState)([]); + (0, import_react19.useEffect)(() => { + const computeRecents = async () => { + const prospectiveURIs = recentUris.filter((uri) => !selections.find((s) => s.type === "File" && s.uri.fsPath === uri.fsPath)).slice(0, maxProspectiveFiles); + const answer = []; + for (const uri of prospectiveURIs) { + answer.push({ + type: "File", + uri, + language: (await modelReferenceService.getModelSafe(uri)).model?.getLanguageId() || "plaintext", + state: { wasAddedAsCurrentFile: false } + }); + } + return answer; + }; + if (type === "staging" && showProspectiveSelections) { + computeRecents().then((a) => setProspectiveSelections(a)); + } else { + setProspectiveSelections([]); + } + }, [recentUris, selections, type, showProspectiveSelections]); + const allSelections = [...selections, ...prospectiveSelections]; + if (allSelections.length === 0) { + return null; + } + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-flex void-items-center void-flex-wrap void-text-left void-relative void-gap-x-0.5 void-gap-y-1 void-pb-0.5", children: allSelections.map((selection, i) => { + const isThisSelectionProspective = i > selections.length - 1; + const thisKey = selection.type === "CodeSelection" ? selection.type + selection.language + selection.range + selection.state.wasAddedAsCurrentFile + selection.uri.fsPath : selection.type === "File" ? selection.type + selection.language + selection.state.wasAddedAsCurrentFile + selection.uri.fsPath : selection.type === "Folder" ? selection.type + selection.language + selection.state + selection.uri.fsPath : i; + const SelectionIcon = selection.type === "File" ? File : selection.type === "Folder" ? Folder : selection.type === "CodeSelection" ? Text : void 0; + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + "div", + { + className: `void-flex void-flex-col void-space-y-[1px]`, + children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + "span", + { + className: "void-truncate void-overflow-hidden void-text-ellipsis", + "data-tooltip-id": "void-tooltip", + "data-tooltip-content": getRelative(selection.uri, accessor), + "data-tooltip-place": "top", + "data-tooltip-delay-show": 3e3, + children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)( + "div", + { + className: ` void-flex void-items-center void-gap-1 void-relative void-px-1 void-w-fit void-h-fit void-select-none void-text-xs void-text-nowrap void-border void-rounded-sm ${isThisSelectionProspective ? "void-bg-void-bg-1 void-text-void-fg-3 void-opacity-80" : "void-bg-void-bg-1 hover:void-brightness-95 void-text-void-fg-1"} ${isThisSelectionProspective ? "void-border-void-border-2" : "void-border-void-border-1"} hover:void-border-void-border-1 void-transition-all void-duration-150 `, + onClick: () => { + if (type !== "staging") return; + if (isThisSelectionProspective) { + setSelections([...selections, selection]); + } else if (selection.type === "File") { + voidOpenFileFn(selection.uri, accessor); + const wasAddedAsCurrentFile = selection.state.wasAddedAsCurrentFile; + if (wasAddedAsCurrentFile) { + const newSelection = { ...selection, state: { ...selection.state, wasAddedAsCurrentFile: false } }; + setSelections( + [ + ...selections.slice(0, i), + newSelection, + ...selections.slice(i + 1) + ] + ); + } + } else if (selection.type === "CodeSelection") { + voidOpenFileFn(selection.uri, accessor, selection.range); + } else if (selection.type === "Folder") ; + }, + children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(SelectionIcon, { size: 10 }), + // file name and range + getBasename(selection.uri.fsPath) + (selection.type === "CodeSelection" ? ` (${selection.range[0]}-${selection.range[1]})` : ""), + selection.type === "File" && selection.state.wasAddedAsCurrentFile && messageIdx === void 0 && currentURI?.fsPath === selection.uri.fsPath ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: `void-text-[8px] void-'void-opacity-60 void-text-void-fg-4`, children: `(Current File)` }) : null, + type === "staging" && !isThisSelectionProspective ? ( + // X button + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + "div", + { + className: "void-cursor-pointer void-z-1 void-self-stretch void-flex void-items-center void-justify-center", + onClick: (e) => { + e.stopPropagation(); + if (type !== "staging") return; + setSelections([...selections.slice(0, i), ...selections.slice(i + 1)]); + }, + children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + IconX, + { + className: "void-stroke-[2]", + size: 10 + } + ) + } + ) + ) : /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_jsx_runtime15.Fragment, {}) + ] + } + ) + } + ) + }, + thisKey + ); + }) }); +}; +var ToolHeaderWrapper = ({ + icon, + title, + desc1, + desc1OnClick, + desc1Info, + desc2, + numResults, + hasNextPage, + children, + info, + bottomChildren, + isError, + onClick, + desc2OnClick, + isOpen, + isRejected, + className + // applies to the main content +}) => { + const [isOpen_, setIsOpen] = (0, import_react19.useState)(false); + const isExpanded = isOpen !== void 0 ? isOpen : isOpen_; + const isDropdown = children !== void 0; + const isClickable = !!(isDropdown || onClick); + const isDesc1Clickable = !!desc1OnClick; + const desc1HTML = /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + "span", + { + className: `void-text-void-fg-4 void-text-xs void-italic void-truncate void-ml-2 ${isDesc1Clickable ? "void-cursor-pointer hover:void-brightness-125 void-transition-all void-duration-150" : ""} `, + onClick: desc1OnClick, + ...desc1Info ? { + "data-tooltip-id": "void-tooltip", + "data-tooltip-content": desc1Info, + "data-tooltip-place": "top", + "data-tooltip-delay-show": 1e3 + } : {}, + children: desc1 + } + ); + return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "", children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: `void-w-full void-border void-border-void-border-3 void-rounded void-px-2 void-py-1 void-bg-void-bg-3 void-overflow-hidden ${className}`, children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: `void-select-none void-flex void-items-center void-min-h-[24px]`, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: `void-flex void-items-center void-w-full void-gap-x-2 void-overflow-hidden void-justify-between ${isRejected ? "void-line-through" : ""}`, children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)( + "div", + { + className: "void-ml-1 void-flex void-items-center void-overflow-hidden", + children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)( + "div", + { + className: ` void-flex void-items-center void-min-w-0 void-overflow-hidden void-grow ${isClickable ? "void-cursor-pointer hover:void-brightness-125 void-transition-all void-duration-150" : ""} `, + onClick: () => { + if (isDropdown) { + setIsOpen((v) => !v); + } + if (onClick) { + onClick(); + } + }, + children: [ + isDropdown && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + ChevronRight, + { + className: ` void-text-void-fg-3 void-mr-0.5 void-h-4 void-w-4 void-flex-shrink-0 void-transition-transform void-duration-100 void-ease-[cubic-bezier(0.4,0,0.2,1)] ${isExpanded ? "void-rotate-90" : ""} ` + } + ), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "void-text-void-fg-3 void-flex-shrink-0", children: title }), + !isDesc1Clickable && desc1HTML + ] + } + ), + isDesc1Clickable && desc1HTML + ] + } + ), + /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "void-flex void-items-center void-gap-x-2 void-flex-shrink-0", children: [ + info && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + CircleEllipsis, + { + className: "void-ml-2 void-text-void-fg-4 void-opacity-60 void-flex-shrink-0", + size: 14, + "data-tooltip-id": "void-tooltip", + "data-tooltip-content": info, + "data-tooltip-place": "top-end" + } + ), + isError && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + TriangleAlert, + { + className: "void-text-void-warning void-opacity-90 void-flex-shrink-0", + size: 14, + "data-tooltip-id": "void-tooltip", + "data-tooltip-content": "Error running tool", + "data-tooltip-place": "top" + } + ), + isRejected && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + Ban, + { + className: "void-text-void-fg-4 void-opacity-90 void-flex-shrink-0", + size: 14, + "data-tooltip-id": "void-tooltip", + "data-tooltip-content": "Canceled", + "data-tooltip-place": "top" + } + ), + desc2 && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "void-text-void-fg-4 void-text-xs", onClick: desc2OnClick, children: desc2 }), + numResults !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "void-text-void-fg-4 void-text-xs void-ml-auto void-mr-1", children: `${numResults}${hasNextPage ? "+" : ""} result${numResults !== 1 ? "s" : ""}` }) + ] }) + ] }) }), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + "div", + { + className: `void-overflow-hidden void-transition-all void-duration-200 void-ease-in-out ${isExpanded ? "void-opacity-100 void-py-1" : "void-max-h-0 void-opacity-0"} void-text-void-fg-4 void-rounded-sm void-overflow-x-auto `, + children + } + ) + ] }), + bottomChildren + ] }); +}; +var EditTool = ({ toolMessage, threadId, messageIdx, content }) => { + const accessor = useAccessor(); + const isError = false; + const isRejected = toolMessage.type === "rejected"; + const title = getTitle(toolMessage); + const { desc1, desc1Info } = toolNameToDesc(toolMessage.name, toolMessage.params, accessor); + const icon = null; + const { rawParams, params, name } = toolMessage; + const desc1OnClick = () => voidOpenFileFn(params.uri, accessor); + const componentParams = { title, desc1, desc1OnClick, desc1Info, isError, icon, isRejected }; + const editToolType = toolMessage.name === "edit_file" ? "diff" : "rewrite"; + if (toolMessage.type === "running_now" || toolMessage.type === "tool_request") { + componentParams.children = /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ToolChildrenWrapper, { className: "void-bg-void-bg-3", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + EditToolChildren, + { + uri: params.uri, + code: content, + type: editToolType + } + ) }); + } else if (toolMessage.type === "success" || toolMessage.type === "rejected" || toolMessage.type === "tool_error") { + const applyBoxId = getApplyBoxId({ + threadId, + messageIdx, + tokenIdx: "N/A" + }); + componentParams.desc2 = /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + EditToolHeaderButtons, + { + applyBoxId, + uri: params.uri, + codeStr: content, + toolName: name, + threadId + } + ); + componentParams.children = /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ToolChildrenWrapper, { className: "void-bg-void-bg-3", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + EditToolChildren, + { + uri: params.uri, + code: content, + type: editToolType + } + ) }); + if (toolMessage.type === "success" || toolMessage.type === "rejected") { + const { result } = toolMessage; + componentParams.bottomChildren = /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(BottomChildren, { title: "Lint errors", children: result?.lintErrors?.map( + (error2, i) => /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "void-whitespace-nowrap", children: [ + "Lines ", + error2.startLineNumber, + "-", + error2.endLineNumber, + ": ", + error2.message + ] }, i) + ) }); + } else if (toolMessage.type === "tool_error") { + const { result } = toolMessage; + componentParams.bottomChildren = /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(BottomChildren, { title: "Error", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(CodeChildren, { children: result }) }); + } + } + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ToolHeaderWrapper, { ...componentParams }); +}; +var UserMessageComponent = ({ chatMessage, messageIdx, isCheckpointGhost, currCheckpointIdx, _scrollToBottom }) => { + const accessor = useAccessor(); + const chatThreadsService = accessor.get("IChatThreadService"); + const chatThreadsState = useChatThreadsState(); + const currentThreadId = chatThreadsState.currentThreadId; + let isBeingEdited = false; + let stagingSelections = []; + let setIsBeingEdited = (_) => { + }; + let setStagingSelections = (_) => { + }; + if (messageIdx !== void 0) { + const _state = chatThreadsService.getCurrentMessageState(messageIdx); + isBeingEdited = _state.isBeingEdited; + stagingSelections = _state.stagingSelections; + setIsBeingEdited = (v) => chatThreadsService.setCurrentMessageState(messageIdx, { isBeingEdited: v }); + setStagingSelections = (s) => chatThreadsService.setCurrentMessageState(messageIdx, { stagingSelections: s }); + } + const mode = isBeingEdited ? "edit" : "display"; + const [isFocused, setIsFocused] = (0, import_react19.useState)(false); + const [isHovered, setIsHovered] = (0, import_react19.useState)(false); + const [isDisabled, setIsDisabled] = (0, import_react19.useState)(false); + const [textAreaRefState, setTextAreaRef] = (0, import_react19.useState)(null); + const textAreaFnsRef = (0, import_react19.useRef)(null); + const _mustInitialize = (0, import_react19.useRef)(true); + const _justEnabledEdit = (0, import_react19.useRef)(false); + (0, import_react19.useEffect)(() => { + const canInitialize = mode === "edit" && textAreaRefState; + const shouldInitialize = _justEnabledEdit.current || _mustInitialize.current; + if (canInitialize && shouldInitialize) { + setStagingSelections( + (chatMessage.selections || []).map((s) => { + if (s.type === "File") return { ...s, state: { ...s.state, wasAddedAsCurrentFile: false } }; + else + return s; + }) + ); + if (textAreaFnsRef.current) + textAreaFnsRef.current.setValue(chatMessage.displayContent || ""); + textAreaRefState.focus(); + _justEnabledEdit.current = false; + _mustInitialize.current = false; + } + }, [chatMessage, mode, textAreaRefState, setStagingSelections]); + const onOpenEdit = () => { + setIsBeingEdited(true); + chatThreadsService.setCurrentlyFocusedMessageIdx(messageIdx); + _justEnabledEdit.current = true; + }; + const onCloseEdit = () => { + setIsFocused(false); + setIsHovered(false); + setIsBeingEdited(false); + chatThreadsService.setCurrentlyFocusedMessageIdx(void 0); + }; + const EditSymbol = mode === "display" ? Pencil : X; + let chatbubbleContents; + if (mode === "display") { + const hasImages = chatMessage.images && chatMessage.images.length > 0; + const hasPDFs = chatMessage.pdfs && chatMessage.pdfs.length > 0; + chatbubbleContents = /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_jsx_runtime15.Fragment, { children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(SelectedFiles, { type: "past", messageIdx, selections: chatMessage.selections || [] }), + hasImages && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-px-0.5 void-py-2", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + ImageMessageRenderer, + { + images: chatMessage.images + } + ) }), + hasPDFs && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-px-0.5 void-py-2", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + PDFMessageRenderer, + { + pdfs: chatMessage.pdfs + } + ) }), + chatMessage.displayContent && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "void-px-0.5", children: chatMessage.displayContent }) + ] }); + } else if (mode === "edit") { + const onSubmit = async () => { + if (isDisabled) return; + if (!textAreaRefState) return; + if (messageIdx === void 0) return; + const threadId = currentThreadId; + const thread = chatThreadsState.allThreads[threadId]; + if (!thread || !thread.messages || thread.messages[messageIdx]?.role !== "user") { + console.error("Error while editing message: Message is not a user message or no longer exists"); + setIsBeingEdited(false); + chatThreadsService.setCurrentlyFocusedMessageIdx(void 0); + return; + } + await chatThreadsService.abortRunning(threadId); + setIsBeingEdited(false); + chatThreadsService.setCurrentlyFocusedMessageIdx(void 0); + const userMessage = textAreaRefState.value; + try { + await chatThreadsService.editUserMessageAndStreamResponse({ userMessage, messageIdx, threadId }); + } catch (e) { + console.error("Error while editing message:", e); + } + await chatThreadsService.focusCurrentChat(); + requestAnimationFrame(() => _scrollToBottom?.()); + }; + const onAbort = async () => { + const threadId = currentThreadId; + await chatThreadsService.abortRunning(threadId); + }; + const onKeyDown = (e) => { + if (e.key === "Escape") { + onCloseEdit(); + } + if (e.key === "Enter" && !e.shiftKey && !e.nativeEvent.isComposing) { + onSubmit(); + } + }; + if (!chatMessage.content) { + return null; + } + chatbubbleContents = /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + VoidChatArea, + { + featureName: "Chat", + onSubmit, + onAbort, + isStreaming: false, + isDisabled, + showSelections: true, + showProspectiveSelections: false, + selections: stagingSelections, + setSelections: setStagingSelections, + children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + VoidInputBox2, + { + enableAtToMention: true, + appearance: "chatDark", + ref: setTextAreaRef, + className: "void-min-h-[60px] void-px-3 void-py-3 void-rounded-2xl", + placeholder: "Plan, @ for context, / for commands", + onChangeText: (text) => setIsDisabled(!text), + onFocus: () => { + setIsFocused(true); + chatThreadsService.setCurrentlyFocusedMessageIdx(messageIdx); + }, + onBlur: () => { + setIsFocused(false); + }, + onKeyDown, + fnsRef: textAreaFnsRef, + multiline: true + } + ) + } + ); + } + const isMsgAfterCheckpoint = currCheckpointIdx !== void 0 && currCheckpointIdx === messageIdx - 1; + return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)( + "div", + { + className: ` void-relative void-ml-auto ${mode === "edit" ? "void-w-full void-max-w-full" : mode === "display" ? `void-self-end void-w-fit void-max-w-full void-whitespace-pre-wrap` : ""} ${isCheckpointGhost && !isMsgAfterCheckpoint ? "void-opacity-50 void-pointer-events-none" : ""} `, + onMouseEnter: () => setIsHovered(true), + onMouseLeave: () => setIsHovered(false), + children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + "div", + { + className: ` void-text-left void-rounded-lg void-max-w-full ${mode === "edit" ? "" : mode === "display" ? "void-p-2 void-flex void-flex-col void-bg-void-bg-1 void-text-void-fg-1 void-overflow-x-auto void-cursor-pointer" : ""} `, + onClick: () => { + if (mode === "display") { + onOpenEdit(); + } + }, + children: chatbubbleContents + } + ), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + "div", + { + className: "void-absolute -void-top-1 -void-right-1 void-translate-x-0 -void-translate-y-0 void-z-1", + children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + EditSymbol, + { + size: 18, + className: ` void-cursor-pointer void-p-[2px] void-bg-void-bg-1 void-border void-border-void-border-1 void-rounded-md void-transition-opacity void-duration-200 void-ease-in-out ${isHovered || isFocused && mode === "edit" ? "void-opacity-100" : "void-opacity-0"} `, + onClick: () => { + if (mode === "display") { + onOpenEdit(); + } else if (mode === "edit") { + onCloseEdit(); + } + } + } + ) + } + ) + ] + } + ); +}; +var SmallProseWrapper = ({ children }) => { + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: " void-text-void-fg-4 void-prose void-prose-sm void-break-words void-max-w-none void-leading-snug void-text-[13px] [&>:first-child]:!void-mt-0 [&>:last-child]:!void-mb-0 prose-h1:void-text-[14px] prose-h1:void-my-4 prose-h2:void-text-[13px] prose-h2:void-my-4 prose-h3:void-text-[13px] prose-h3:void-my-3 prose-h4:void-text-[13px] prose-h4:void-my-2 prose-p:void-my-2 prose-p:void-leading-snug prose-hr:void-my-2 prose-ul:void-my-2 prose-ul:void-pl-4 prose-ul:void-list-outside prose-ul:void-list-disc prose-ul:void-leading-snug prose-ol:void-my-2 prose-ol:void-pl-4 prose-ol:void-list-outside prose-ol:void-list-decimal prose-ol:void-leading-snug marker:void-text-inherit prose-blockquote:void-pl-2 prose-blockquote:void-my-2 prose-code:void-text-void-fg-3 prose-code:void-text-[12px] prose-code:before:void-content-none prose-code:after:void-content-none prose-pre:void-text-[12px] prose-pre:void-p-2 prose-pre:void-my-2 prose-table:void-text-[13px] ", children }); +}; +var ProseWrapper = ({ children }) => { + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: " void-text-void-fg-2 void-prose void-prose-sm void-break-words prose-p:void-block prose-hr:void-my-4 prose-pre:void-my-2 marker:void-text-inherit prose-ol:void-list-outside prose-ol:void-list-decimal prose-ul:void-list-outside prose-ul:void-list-disc prose-li:void-my-0 prose-code:before:void-content-none prose-code:after:void-content-none prose-headings:void-prose-sm prose-headings:void-font-bold prose-p:void-leading-normal prose-ol:void-leading-normal prose-ul:void-leading-normal void-max-w-none ", children }); +}; +var AssistantMessageComponent = import_react19.default.memo(({ chatMessage, isCheckpointGhost, isCommitted, messageIdx }) => { + const accessor = useAccessor(); + const chatThreadsService = accessor.get("IChatThreadService"); + const reasoningStr = chatMessage.reasoning?.trim() || null; + const hasReasoning = !!reasoningStr; + const isDoneReasoning = !!chatMessage.displayContent; + const thread = chatThreadsService.getCurrentThread(); + const chatMessageLocation = (0, import_react19.useMemo)(() => ({ + threadId: thread.id, + messageIdx + }), [thread.id, messageIdx]); + const isEmpty = !chatMessage.displayContent && !chatMessage.reasoning; + if (isEmpty) return null; + return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_jsx_runtime15.Fragment, { children: [ + hasReasoning && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: `${isCheckpointGhost ? "void-opacity-50" : ""}`, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ReasoningWrapper, { isDoneReasoning, isStreaming: !isCommitted, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(SmallProseWrapper, { children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + ChatMarkdownRender, + { + string: reasoningStr, + chatMessageLocation, + isApplyEnabled: false, + isLinkDetectionEnabled: true + } + ) }) }) }), + chatMessage.displayContent && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: `${isCheckpointGhost ? "void-opacity-50" : ""}`, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ProseWrapper, { children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + ChatMarkdownRender, + { + string: chatMessage.displayContent || "", + chatMessageLocation, + isApplyEnabled: true, + isLinkDetectionEnabled: true + } + ) }) }) + ] }); +}, (prev, next) => { + return prev.chatMessage.displayContent === next.chatMessage.displayContent && prev.chatMessage.reasoning === next.chatMessage.reasoning && prev.isCheckpointGhost === next.isCheckpointGhost && prev.isCommitted === next.isCommitted && prev.messageIdx === next.messageIdx; +}); +var ReasoningWrapper = ({ isDoneReasoning, isStreaming, children }) => { + const isDone = isDoneReasoning || !isStreaming; + const isWriting = !isDone; + const [isOpen, setIsOpen] = (0, import_react19.useState)(isWriting); + (0, import_react19.useEffect)(() => { + if (!isWriting) setIsOpen(false); + }, [isWriting]); + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ToolHeaderWrapper, { title: "Reasoning", desc1: isWriting ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(IconLoading, {}) : "", isOpen, onClick: () => setIsOpen((v) => !v), children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ToolChildrenWrapper, { children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "!void-select-text void-cursor-auto", children }) }) }); +}; +var loadingTitleWrapper = (item) => { + return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("span", { className: "void-flex void-items-center void-flex-nowrap", children: [ + item, + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(IconLoading, { className: "void-w-3 void-text-sm" }) + ] }); +}; +var titleOfBuiltinToolName = { + "read_file": { done: "Read file", proposed: "Read file", running: loadingTitleWrapper("Reading file") }, + "ls_dir": { done: "Inspected folder", proposed: "Inspect folder", running: loadingTitleWrapper("Inspecting folder") }, + "get_dir_tree": { done: "Inspected folder tree", proposed: "Inspect folder tree", running: loadingTitleWrapper("Inspecting folder tree") }, + "search_pathnames_only": { done: "Searched by file name", proposed: "Search by file name", running: loadingTitleWrapper("Searching by file name") }, + "search_for_files": { done: "Searched", proposed: "Search", running: loadingTitleWrapper("Searching") }, + "create_file_or_folder": { done: `Created`, proposed: `Create`, running: loadingTitleWrapper(`Creating`) }, + "delete_file_or_folder": { done: `Deleted`, proposed: `Delete`, running: loadingTitleWrapper(`Deleting`) }, + "edit_file": { done: `Edited file`, proposed: "Edit file", running: loadingTitleWrapper("Editing file") }, + "rewrite_file": { done: `Wrote file`, proposed: "Write file", running: loadingTitleWrapper("Writing file") }, + "run_command": { done: `Ran terminal`, proposed: "Run terminal", running: loadingTitleWrapper("Running terminal") }, + "run_persistent_command": { done: `Ran terminal`, proposed: "Run terminal", running: loadingTitleWrapper("Running terminal") }, + "open_persistent_terminal": { done: `Opened terminal`, proposed: "Open terminal", running: loadingTitleWrapper("Opening terminal") }, + "kill_persistent_terminal": { done: `Killed terminal`, proposed: "Kill terminal", running: loadingTitleWrapper("Killing terminal") }, + "read_lint_errors": { done: `Read lint errors`, proposed: "Read lint errors", running: loadingTitleWrapper("Reading lint errors") }, + "search_in_file": { done: "Searched in file", proposed: "Search in file", running: loadingTitleWrapper("Searching in file") }, + "web_search": { done: "Searched the web", proposed: "Search the web", running: loadingTitleWrapper("Searching the web") }, + "browse_url": { done: "Fetched web page", proposed: "Fetch web page", running: loadingTitleWrapper("Fetching web page") } +}; +var getTitle = (toolMessage) => { + const t = toolMessage; + if (!builtinToolNames.includes(t.name)) { + const descriptor = t.type === "success" ? "Called" : t.type === "running_now" ? "Calling" : t.type === "tool_request" ? "Call" : t.type === "rejected" ? "Call" : t.type === "invalid_params" ? "Call" : t.type === "tool_error" ? "Call" : "Call"; + const title = `${descriptor} ${toolMessage.mcpServerName || "MCP"}`; + if (t.type === "running_now" || t.type === "tool_request") + return loadingTitleWrapper(title); + return title; + } else { + const toolName = t.name; + if (t.type === "success") return titleOfBuiltinToolName[toolName].done; + if (t.type === "running_now") return titleOfBuiltinToolName[toolName].running; + return titleOfBuiltinToolName[toolName].proposed; + } +}; +var toolNameToDesc = (toolName, _toolParams, accessor) => { + if (!_toolParams) { + return { desc1: "" }; + } + const x = { + "read_file": () => { + const toolParams = _toolParams; + return { + desc1: getBasename(toolParams.uri.fsPath), + desc1Info: getRelative(toolParams.uri, accessor) + }; + }, + "ls_dir": () => { + const toolParams = _toolParams; + return { + desc1: getFolderName(toolParams.uri.fsPath), + desc1Info: getRelative(toolParams.uri, accessor) + }; + }, + "search_pathnames_only": () => { + const toolParams = _toolParams; + return { + desc1: `"${toolParams.query}"` + }; + }, + "search_for_files": () => { + const toolParams = _toolParams; + return { + desc1: `"${toolParams.query}"` + }; + }, + "search_in_file": () => { + const toolParams = _toolParams; + return { + desc1: `"${toolParams.query}"`, + desc1Info: getRelative(toolParams.uri, accessor) + }; + }, + "create_file_or_folder": () => { + const toolParams = _toolParams; + return { + desc1: toolParams.isFolder ? getFolderName(toolParams.uri.fsPath) ?? "/" : getBasename(toolParams.uri.fsPath), + desc1Info: getRelative(toolParams.uri, accessor) + }; + }, + "delete_file_or_folder": () => { + const toolParams = _toolParams; + return { + desc1: toolParams.isFolder ? getFolderName(toolParams.uri.fsPath) ?? "/" : getBasename(toolParams.uri.fsPath), + desc1Info: getRelative(toolParams.uri, accessor) + }; + }, + "rewrite_file": () => { + const toolParams = _toolParams; + return { + desc1: getBasename(toolParams.uri.fsPath), + desc1Info: getRelative(toolParams.uri, accessor) + }; + }, + "edit_file": () => { + const toolParams = _toolParams; + return { + desc1: getBasename(toolParams.uri.fsPath), + desc1Info: getRelative(toolParams.uri, accessor) + }; + }, + "run_command": () => { + const toolParams = _toolParams; + return { + desc1: `"${toolParams.command}"` + }; + }, + "run_persistent_command": () => { + const toolParams = _toolParams; + return { + desc1: `"${toolParams.command}"` + }; + }, + "open_persistent_terminal": () => { + return { desc1: "" }; + }, + "kill_persistent_terminal": () => { + const toolParams = _toolParams; + return { desc1: toolParams.persistentTerminalId }; + }, + "get_dir_tree": () => { + const toolParams = _toolParams; + return { + desc1: getFolderName(toolParams.uri.fsPath) ?? "/", + desc1Info: getRelative(toolParams.uri, accessor) + }; + }, + "read_lint_errors": () => { + const toolParams = _toolParams; + return { + desc1: getBasename(toolParams.uri.fsPath), + desc1Info: getRelative(toolParams.uri, accessor) + }; + }, + "web_search": () => { + const toolParams = _toolParams; + return { + desc1: `"${toolParams.query}"` + }; + }, + "browse_url": () => { + const toolParams = _toolParams; + return { + desc1: toolParams.url, + desc1Info: new URL(toolParams.url).hostname + }; + } + }; + try { + return x[toolName]?.() || { desc1: "" }; + } catch { + return { desc1: "" }; + } +}; +var ToolRequestAcceptRejectButtons = ({ toolName }) => { + const accessor = useAccessor(); + const chatThreadsService = accessor.get("IChatThreadService"); + const metricsService = accessor.get("IMetricsService"); + accessor.get("ICortexideSettingsService"); + useSettingsState(); + const chatThreadsState = useChatThreadsState(); + const currentThreadId = chatThreadsState.currentThreadId; + const onAccept = (0, import_react19.useCallback)(() => { + try { + chatThreadsService.approveLatestToolRequest(currentThreadId); + metricsService.capture("Tool Request Accepted", {}); + } catch (e) { + console.error("Error while approving message in chat:", e); + } + }, [chatThreadsService, metricsService, currentThreadId]); + const onReject = (0, import_react19.useCallback)(() => { + try { + chatThreadsService.rejectLatestToolRequest(currentThreadId); + } catch (e) { + console.error("Error while approving message in chat:", e); + } + metricsService.capture("Tool Request Rejected", {}); + }, [chatThreadsService, metricsService, currentThreadId]); + const approveButton = /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + "button", + { + onClick: onAccept, + className: ` void-px-2 void-py-1 void-bg-[var(--vscode-button-background)] void-text-[var(--vscode-button-foreground)] hover:void-bg-[var(--vscode-button-hoverBackground)] void-rounded void-text-sm void-font-medium `, + children: "Approve" + } + ); + const cancelButton = /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + "button", + { + onClick: onReject, + className: ` void-px-2 void-py-1 void-bg-[var(--vscode-button-secondaryBackground)] void-text-[var(--vscode-button-secondaryForeground)] hover:void-bg-[var(--vscode-button-secondaryHoverBackground)] void-rounded void-text-sm void-font-medium `, + children: "Cancel" + } + ); + const approvalType = isABuiltinToolName(toolName) ? approvalTypeOfBuiltinToolName[toolName] : "MCP tools"; + const approvalToggle = approvalType ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-flex void-items-center void-ml-2 void-gap-x-1", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ToolApprovalTypeSwitch, { size: "xs", approvalType, desc: `Auto-approve ${approvalType}` }) }, approvalType) : null; + return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "void-flex void-gap-2 void-mx-0.5 void-items-center", children: [ + approveButton, + cancelButton, + approvalToggle + ] }); +}; +var ToolChildrenWrapper = ({ children, className }) => { + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: `${className ? className : ""} void-cursor-default void-select-none`, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-px-2 void-min-w-full void-overflow-hidden", children }) }); +}; +var CodeChildren = ({ children, className }) => { + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: `${className ?? ""} void-p-1 void-rounded-sm void-overflow-auto void-text-sm`, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "!void-select-text void-cursor-auto", children }) }); +}; +var ListableToolItem = ({ name, onClick, isSmall, className, showDot }) => { + return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)( + "div", + { + className: ` ${onClick ? "hover:void-brightness-125 hover:void-cursor-pointer void-transition-all void-duration-200 " : ""} void-flex void-items-center void-flex-nowrap void-whitespace-nowrap ${className ? className : ""} `, + onClick, + children: [ + showDot === false ? null : /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-flex-shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("svg", { className: "void-w-1 void-h-1 void-opacity-60 void-mr-1.5 void-fill-current", viewBox: "0 0 100 40", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("rect", { x: "0", y: "15", width: "100", height: "10" }) }) }), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: `${isSmall ? "void-italic void-text-void-fg-4 void-flex void-items-center" : ""}`, children: name }) + ] + } + ); +}; +var EditToolChildren = ({ uri, code, type }) => { + const content = type === "diff" ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(VoidDiffEditor, { uri, searchReplaceBlocks: code }) : /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ChatMarkdownRender, { string: `\`\`\` +${code} +\`\`\``, codeURI: uri, chatMessageLocation: void 0 }); + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "!void-select-text void-cursor-auto", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(SmallProseWrapper, { children: content }) }); +}; +var LintErrorChildren = ({ lintErrors }) => { + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-text-xs void-text-void-fg-4 void-opacity-80 void-border-l-2 void-border-void-warning void-px-2 void-py-0.5 void-flex void-flex-col void-gap-0.5 void-overflow-x-auto void-whitespace-nowrap", children: lintErrors.map( + (error2, i) => /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { children: [ + "Lines ", + error2.startLineNumber, + "-", + error2.endLineNumber, + ": ", + error2.message + ] }, i) + ) }); +}; +var BottomChildren = ({ children, title }) => { + const [isOpen, setIsOpen] = (0, import_react19.useState)(false); + if (!children) return null; + return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "void-w-full void-px-2 void-mt-0.5", children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)( + "div", + { + className: `void-flex void-items-center void-cursor-pointer void-select-none void-transition-colors void-duration-150 void-pl-0 void-py-0.5 void-rounded void-group`, + onClick: () => setIsOpen((o) => !o), + style: { background: "none" }, + children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + ChevronRight, + { + className: `void-mr-1 void-h-3 void-w-3 void-flex-shrink-0 void-transition-transform void-duration-100 void-text-void-fg-4 group-hover:void-text-void-fg-3 ${isOpen ? "void-rotate-90" : ""}` + } + ), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "void-font-medium void-text-void-fg-4 group-hover:void-text-void-fg-3 void-text-xs", children: title }) + ] + } + ), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + "div", + { + className: `void-overflow-hidden void-transition-all void-duration-200 void-ease-in-out ${isOpen ? "void-opacity-100" : "void-max-h-0 void-opacity-0"} void-text-xs void-pl-4`, + children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-overflow-x-auto void-text-void-fg-4 void-opacity-90 void-border-l-2 void-border-void-warning void-px-2 void-py-0.5", children }) + } + ) + ] }); +}; +var EditToolHeaderButtons = ({ applyBoxId, uri, codeStr, toolName, threadId }) => { + const { streamState } = useEditToolStreamState({ applyBoxId, uri }); + return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "void-flex void-items-center void-gap-1", children: [ + streamState === "idle-no-changes" && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(CopyButton, { codeStr, toolTipName: "Copy" }), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(EditToolAcceptRejectButtonsHTML, { type: toolName, codeStr, applyBoxId, uri, threadId }) + ] }); +}; +var InvalidTool = ({ toolName, message, mcpServerName }) => { + useAccessor(); + const title = getTitle({ name: toolName, type: "invalid_params", mcpServerName }); + const desc1 = "Invalid parameters"; + const icon = null; + const isError = true; + const componentParams = { title, desc1, isError, icon }; + componentParams.children = /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ToolChildrenWrapper, { children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(CodeChildren, { className: "void-bg-void-bg-3", children: message }) }); + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ToolHeaderWrapper, { ...componentParams }); +}; +var CanceledTool = ({ toolName, mcpServerName }) => { + useAccessor(); + const title = getTitle({ name: toolName, type: "rejected", mcpServerName }); + const desc1 = ""; + const icon = null; + const isRejected = true; + const componentParams = { title, desc1, icon, isRejected }; + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ToolHeaderWrapper, { ...componentParams }); +}; +var CommandTool = ({ + toolMessage, + type, + threadId +}) => { + const accessor = useAccessor(); + accessor.get("ICommandService"); + const terminalToolsService = accessor.get("ITerminalToolService"); + const toolsService = accessor.get("IToolsService"); + const isError = false; + const title = getTitle(toolMessage); + const { desc1, desc1Info } = toolNameToDesc(toolMessage.name, toolMessage.params, accessor); + const icon = null; + const streamState = useChatThreadsStreamState(threadId); + const divRef = (0, import_react19.useRef)(null); + const isRejected = toolMessage.type === "rejected"; + const { rawParams, params } = toolMessage; + const componentParams = { title, desc1, desc1Info, isError, icon, isRejected }; + const effect = async () => { + if (streamState?.isRunning !== "tool") return; + if (type !== "run_command" || toolMessage.type !== "running_now") return; + await streamState?.interrupt; + const container = divRef.current; + if (!container) return; + const terminal = terminalToolsService.getTemporaryTerminal(toolMessage.params.terminalId); + if (!terminal) return; + try { + terminal.attachToElement(container); + terminal.setVisible(true); + } catch { + } + const resizeObserver = new ResizeObserver((entries) => { + if (!entries[0]) return; + let width; + let height; + if (entries[0].borderBoxSize && entries[0].borderBoxSize.length > 0) { + width = entries[0].borderBoxSize[0].inlineSize; + height = entries[0].borderBoxSize[0].blockSize; + } else if (entries[0].contentRect) { + width = entries[0].contentRect.width; + height = entries[0].contentRect.height; + } else { + const target = entries[0].target; + width = target.clientWidth; + height = target.clientHeight; + } + if (width > 0 && height > 0 && typeof terminal.layout === "function") { + terminal.layout({ width, height }); + } + }); + resizeObserver.observe(container); + return () => { + terminal.detachFromElement(); + resizeObserver?.disconnect(); + }; + }; + (0, import_react19.useEffect)(() => { + effect(); + }, [terminalToolsService, toolMessage, toolMessage.type, type]); + if (toolMessage.type === "success") { + const { result } = toolMessage; + let msg; + if (type === "run_command") msg = toolsService.stringOfResult["run_command"](toolMessage.params, result); + else + msg = toolsService.stringOfResult["run_persistent_command"](toolMessage.params, result); + if (type === "run_persistent_command") { + componentParams.info = persistentTerminalNameOfId(toolMessage.params.persistentTerminalId); + } + componentParams.children = /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ToolChildrenWrapper, { className: "void-whitespace-pre void-text-nowrap void-overflow-auto void-text-sm", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "!void-select-text void-cursor-auto", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(BlockCode, { initValue: `${msg.trim()}`, language: "shellscript" }) }) }); + } else if (toolMessage.type === "tool_error") { + const { result } = toolMessage; + componentParams.bottomChildren = /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(BottomChildren, { title: "Error", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(CodeChildren, { children: result }) }); + } else if (toolMessage.type === "running_now") { + if (type === "run_command") + componentParams.children = /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { ref: divRef, className: "void-relative void-h-[300px] void-text-sm" }); + } else if (toolMessage.type === "rejected" || toolMessage.type === "tool_request") ; + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_jsx_runtime15.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ToolHeaderWrapper, { ...componentParams, isOpen: type === "run_command" && toolMessage.type === "running_now" ? true : void 0 }) }); +}; +var MCPToolWrapper = ({ toolMessage }) => { + const accessor = useAccessor(); + const mcpService = accessor.get("IMCPService"); + const title = getTitle(toolMessage); + const desc1 = removeMCPToolNamePrefix(toolMessage.name); + const icon = null; + if (toolMessage.type === "running_now") return null; + const isError = false; + const isRejected = toolMessage.type === "rejected"; + const { rawParams, params } = toolMessage; + const redactParams = (value) => { + const SENSITIVE_KEYS = /* @__PURE__ */ new Set(["token", "apiKey", "apikey", "password", "authorization", "auth", "secret", "clientSecret", "accessToken", "bearer"]); + const redactValue = (v) => typeof v === "string" ? v.length > 6 ? v.slice(0, 3) + "***" + v.slice(-2) : "***" : v; + if (Array.isArray(value)) return value.map(redactParams); + if (value && typeof value === "object") { + const out = Array.isArray(value) ? [] : {}; + for (const k of Object.keys(value)) { + if (SENSITIVE_KEYS.has(k.toLowerCase())) out[k] = redactValue(value[k]); + else + out[k] = redactParams(value[k]); + } + return out; + } + return value; + }; + const componentParams = { title, desc1, isError, icon, isRejected }; + const redactedParams = redactParams(params); + const paramsStr = JSON.stringify(redactedParams, null, 2); + componentParams.desc2 = /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(CopyButton, { codeStr: paramsStr, toolTipName: `Copy inputs (redacted): ${paramsStr}` }); + componentParams.info = !toolMessage.mcpServerName ? "MCP tool not found" : void 0; + if (toolMessage.type === "success" || toolMessage.type === "tool_request") { + const { result } = toolMessage; + const resultStr = result ? mcpService.stringifyResult(result) : "null"; + componentParams.children = /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ToolChildrenWrapper, { children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(SmallProseWrapper, { children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + ChatMarkdownRender, + { + string: `\`\`\`json +${resultStr} +\`\`\``, + chatMessageLocation: void 0, + isApplyEnabled: false, + isLinkDetectionEnabled: true + } + ) }) }); + } else if (toolMessage.type === "tool_error") { + const { result } = toolMessage; + componentParams.bottomChildren = /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(BottomChildren, { title: "Error", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(CodeChildren, { children: result }) }); + } + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ToolHeaderWrapper, { ...componentParams }); +}; +var builtinToolNameToComponent = { + "read_file": { + resultWrapper: ({ toolMessage }) => { + const accessor = useAccessor(); + accessor.get("ICommandService"); + const title = getTitle(toolMessage); + const { desc1, desc1Info } = toolNameToDesc(toolMessage.name, toolMessage.params, accessor); + const icon = null; + if (toolMessage.type === "tool_request") return null; + if (toolMessage.type === "running_now") return null; + const isError = false; + const isRejected = toolMessage.type === "rejected"; + const { rawParams, params } = toolMessage; + const componentParams = { title, desc1, desc1Info, isError, icon, isRejected }; + let range = void 0; + if (toolMessage.params.startLine !== null || toolMessage.params.endLine !== null) { + const start = toolMessage.params.startLine === null ? `1` : `${toolMessage.params.startLine}`; + const end = toolMessage.params.endLine === null ? `` : `${toolMessage.params.endLine}`; + const addStr = `(${start}-${end})`; + componentParams.desc1 += ` ${addStr}`; + range = [params.startLine || 1, params.endLine || 1]; + } + if (toolMessage.type === "success") { + const { result } = toolMessage; + componentParams.onClick = () => { + voidOpenFileFn(params.uri, accessor, range); + }; + if (result.hasNextPage && params.pageNumber === 1) + componentParams.desc2 = `(truncated after ${Math.round(MAX_FILE_CHARS_PAGE) / 1e3}k)`; + else if (params.pageNumber > 1) + componentParams.desc2 = `(part ${params.pageNumber})`; + } else if (toolMessage.type === "tool_error") { + const { result } = toolMessage; + componentParams.bottomChildren = /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(BottomChildren, { title: "Error", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(CodeChildren, { children: result }) }); + } + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ToolHeaderWrapper, { ...componentParams }); + } + }, + "get_dir_tree": { + resultWrapper: ({ toolMessage }) => { + const accessor = useAccessor(); + accessor.get("ICommandService"); + const title = getTitle(toolMessage); + const { desc1, desc1Info } = toolNameToDesc(toolMessage.name, toolMessage.params, accessor); + const icon = null; + if (toolMessage.type === "tool_request") return null; + if (toolMessage.type === "running_now") return null; + const isError = false; + const isRejected = toolMessage.type === "rejected"; + const { rawParams, params } = toolMessage; + const componentParams = { title, desc1, desc1Info, isError, icon, isRejected }; + if (params.uri) { + const rel = getRelative(params.uri, accessor); + if (rel) componentParams.info = `Only search in ${rel}`; + } + if (toolMessage.type === "success") { + const { result } = toolMessage; + componentParams.children = /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ToolChildrenWrapper, { children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(SmallProseWrapper, { children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + ChatMarkdownRender, + { + string: `\`\`\` +${result.str} +\`\`\``, + chatMessageLocation: void 0, + isApplyEnabled: false, + isLinkDetectionEnabled: true + } + ) }) }); + } else if (toolMessage.type === "tool_error") { + const { result } = toolMessage; + componentParams.bottomChildren = /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(BottomChildren, { title: "Error", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(CodeChildren, { children: result }) }); + } + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ToolHeaderWrapper, { ...componentParams }); + } + }, + "ls_dir": { + resultWrapper: ({ toolMessage }) => { + const accessor = useAccessor(); + accessor.get("ICommandService"); + accessor.get("IExplorerService"); + const title = getTitle(toolMessage); + const { desc1, desc1Info } = toolNameToDesc(toolMessage.name, toolMessage.params, accessor); + const icon = null; + if (toolMessage.type === "tool_request") return null; + if (toolMessage.type === "running_now") return null; + const isError = false; + const isRejected = toolMessage.type === "rejected"; + const { rawParams, params } = toolMessage; + const componentParams = { title, desc1, desc1Info, isError, icon, isRejected }; + if (params.uri) { + const rel = getRelative(params.uri, accessor); + if (rel) componentParams.info = `Only search in ${rel}`; + } + if (toolMessage.type === "success") { + const { result } = toolMessage; + componentParams.numResults = result.children?.length; + componentParams.hasNextPage = result.hasNextPage; + componentParams.children = !result.children || (result.children.length ?? 0) === 0 ? void 0 : /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(ToolChildrenWrapper, { children: [ + result.children.map( + (child, i) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + ListableToolItem, + { + name: `${child.name}${child.isDirectory ? "/" : ""}`, + className: "void-w-full void-overflow-auto", + onClick: () => { + voidOpenFileFn(child.uri, accessor); + } + }, + i + ) + ), + result.hasNextPage && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ListableToolItem, { name: `Results truncated (${result.itemsRemaining} remaining).`, isSmall: true, className: "void-w-full void-overflow-auto" }) + ] }); + } else if (toolMessage.type === "tool_error") { + const { result } = toolMessage; + componentParams.bottomChildren = /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(BottomChildren, { title: "Error", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(CodeChildren, { children: result }) }); + } + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ToolHeaderWrapper, { ...componentParams }); + } + }, + "search_pathnames_only": { + resultWrapper: ({ toolMessage }) => { + const accessor = useAccessor(); + accessor.get("ICommandService"); + const isError = false; + const isRejected = toolMessage.type === "rejected"; + const title = getTitle(toolMessage); + const { desc1, desc1Info } = toolNameToDesc(toolMessage.name, toolMessage.params, accessor); + const icon = null; + if (toolMessage.type === "tool_request") return null; + if (toolMessage.type === "running_now") return null; + const { rawParams, params } = toolMessage; + const componentParams = { title, desc1, desc1Info, isError, icon, isRejected }; + if (params.includePattern) { + componentParams.info = `Only search in ${params.includePattern}`; + } + if (toolMessage.type === "success") { + const { result, rawParams: rawParams2 } = toolMessage; + componentParams.numResults = result.uris.length; + componentParams.hasNextPage = result.hasNextPage; + componentParams.children = result.uris.length === 0 ? void 0 : /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(ToolChildrenWrapper, { children: [ + result.uris.map( + (uri, i) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + ListableToolItem, + { + name: getBasename(uri.fsPath), + className: "void-w-full void-overflow-auto", + onClick: () => { + voidOpenFileFn(uri, accessor); + } + }, + i + ) + ), + result.hasNextPage && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ListableToolItem, { name: "Results truncated.", isSmall: true, className: "void-w-full void-overflow-auto" }) + ] }); + } else if (toolMessage.type === "tool_error") { + const { result } = toolMessage; + componentParams.bottomChildren = /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(BottomChildren, { title: "Error", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(CodeChildren, { children: result }) }); + } + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ToolHeaderWrapper, { ...componentParams }); + } + }, + "search_for_files": { + resultWrapper: ({ toolMessage }) => { + const accessor = useAccessor(); + accessor.get("ICommandService"); + const isError = false; + const isRejected = toolMessage.type === "rejected"; + const title = getTitle(toolMessage); + const { desc1, desc1Info } = toolNameToDesc(toolMessage.name, toolMessage.params, accessor); + const icon = null; + if (toolMessage.type === "tool_request") return null; + if (toolMessage.type === "running_now") return null; + const { rawParams, params } = toolMessage; + const componentParams = { title, desc1, desc1Info, isError, icon, isRejected }; + if (params.searchInFolder || params.isRegex) { + let info = []; + if (params.searchInFolder) { + const rel = getRelative(params.searchInFolder, accessor); + if (rel) info.push(`Only search in ${rel}`); + } + if (params.isRegex) { + info.push(`Uses regex search`); + } + componentParams.info = info.join("; "); + } + if (toolMessage.type === "success") { + const { result, rawParams: rawParams2 } = toolMessage; + componentParams.numResults = result.uris.length; + componentParams.hasNextPage = result.hasNextPage; + componentParams.children = result.uris.length === 0 ? void 0 : /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(ToolChildrenWrapper, { children: [ + result.uris.map( + (uri, i) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + ListableToolItem, + { + name: getBasename(uri.fsPath), + className: "void-w-full void-overflow-auto", + onClick: () => { + voidOpenFileFn(uri, accessor); + } + }, + i + ) + ), + result.hasNextPage && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ListableToolItem, { name: `Results truncated.`, isSmall: true, className: "void-w-full void-overflow-auto" }) + ] }); + } else if (toolMessage.type === "tool_error") { + const { result } = toolMessage; + componentParams.bottomChildren = /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(BottomChildren, { title: "Error", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(CodeChildren, { children: result }) }); + } + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ToolHeaderWrapper, { ...componentParams }); + } + }, + "search_in_file": { + resultWrapper: ({ toolMessage }) => { + const accessor = useAccessor(); + const toolsService = accessor.get("IToolsService"); + const title = getTitle(toolMessage); + const isError = false; + const isRejected = toolMessage.type === "rejected"; + const { desc1, desc1Info } = toolNameToDesc(toolMessage.name, toolMessage.params, accessor); + const icon = null; + if (toolMessage.type === "tool_request") return null; + if (toolMessage.type === "running_now") return null; + const { rawParams, params } = toolMessage; + const componentParams = { title, desc1, desc1Info, isError, icon, isRejected }; + const infoarr = []; + const uriStr = getRelative(params.uri, accessor); + if (uriStr) infoarr.push(uriStr); + if (params.isRegex) infoarr.push("Uses regex search"); + componentParams.info = infoarr.join("; "); + if (toolMessage.type === "success") { + const { result } = toolMessage; + componentParams.numResults = result.lines.length; + componentParams.children = result.lines.length === 0 ? void 0 : /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ToolChildrenWrapper, { children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(CodeChildren, { className: "void-bg-void-bg-3", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("pre", { className: "void-font-mono void-whitespace-pre", children: toolsService.stringOfResult["search_in_file"](params, result) }) }) }); + } else if (toolMessage.type === "tool_error") { + const { result } = toolMessage; + componentParams.bottomChildren = /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(BottomChildren, { title: "Error", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(CodeChildren, { children: result }) }); + } + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ToolHeaderWrapper, { ...componentParams }); + } + }, + "read_lint_errors": { + resultWrapper: ({ toolMessage }) => { + const accessor = useAccessor(); + accessor.get("ICommandService"); + const title = getTitle(toolMessage); + const { uri } = toolMessage.params ?? {}; + const { desc1, desc1Info } = toolNameToDesc(toolMessage.name, toolMessage.params, accessor); + const icon = null; + if (toolMessage.type === "tool_request") return null; + if (toolMessage.type === "running_now") return null; + const isError = false; + const isRejected = toolMessage.type === "rejected"; + const { rawParams, params } = toolMessage; + const componentParams = { title, desc1, desc1Info, isError, icon, isRejected }; + componentParams.info = getRelative(uri, accessor); + if (toolMessage.type === "success") { + const { result } = toolMessage; + componentParams.onClick = () => { + voidOpenFileFn(params.uri, accessor); + }; + if (result.lintErrors) + componentParams.children = /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(LintErrorChildren, { lintErrors: result.lintErrors }); + else + componentParams.children = `No lint errors found.`; + } else if (toolMessage.type === "tool_error") { + const { result } = toolMessage; + componentParams.bottomChildren = /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(BottomChildren, { title: "Error", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(CodeChildren, { children: result }) }); + } + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ToolHeaderWrapper, { ...componentParams }); + } + }, + // --- + "create_file_or_folder": { + resultWrapper: ({ toolMessage }) => { + const accessor = useAccessor(); + accessor.get("ICommandService"); + const isError = false; + const isRejected = toolMessage.type === "rejected"; + const title = getTitle(toolMessage); + const { desc1, desc1Info } = toolNameToDesc(toolMessage.name, toolMessage.params, accessor); + const icon = null; + const { rawParams, params } = toolMessage; + const componentParams = { title, desc1, desc1Info, isError, icon, isRejected }; + componentParams.info = getRelative(params.uri, accessor); + if (toolMessage.type === "success") { + const { result } = toolMessage; + componentParams.onClick = () => { + voidOpenFileFn(params.uri, accessor); + }; + } else if (toolMessage.type === "rejected") { + componentParams.onClick = () => { + voidOpenFileFn(params.uri, accessor); + }; + } else if (toolMessage.type === "tool_error") { + const { result } = toolMessage; + if (params) { + componentParams.onClick = () => { + voidOpenFileFn(params.uri, accessor); + }; + } + componentParams.bottomChildren = /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(BottomChildren, { title: "Error", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(CodeChildren, { children: result }) }); + } else if (toolMessage.type === "running_now") ; else if (toolMessage.type === "tool_request") ; + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ToolHeaderWrapper, { ...componentParams }); + } + }, + "delete_file_or_folder": { + resultWrapper: ({ toolMessage }) => { + const accessor = useAccessor(); + accessor.get("ICommandService"); + toolMessage.params?.isFolder ?? false; + const isError = false; + const isRejected = toolMessage.type === "rejected"; + const title = getTitle(toolMessage); + const { desc1, desc1Info } = toolNameToDesc(toolMessage.name, toolMessage.params, accessor); + const icon = null; + const { rawParams, params } = toolMessage; + const componentParams = { title, desc1, desc1Info, isError, icon, isRejected }; + componentParams.info = getRelative(params.uri, accessor); + if (toolMessage.type === "success") { + const { result } = toolMessage; + componentParams.onClick = () => { + voidOpenFileFn(params.uri, accessor); + }; + } else if (toolMessage.type === "rejected") { + componentParams.onClick = () => { + voidOpenFileFn(params.uri, accessor); + }; + } else if (toolMessage.type === "tool_error") { + const { result } = toolMessage; + if (params) { + componentParams.onClick = () => { + voidOpenFileFn(params.uri, accessor); + }; + } + componentParams.bottomChildren = /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(BottomChildren, { title: "Error", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(CodeChildren, { children: result }) }); + } else if (toolMessage.type === "running_now") { + const { result } = toolMessage; + componentParams.onClick = () => { + voidOpenFileFn(params.uri, accessor); + }; + } else if (toolMessage.type === "tool_request") { + const { result } = toolMessage; + componentParams.onClick = () => { + voidOpenFileFn(params.uri, accessor); + }; + } + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ToolHeaderWrapper, { ...componentParams }); + } + }, + "rewrite_file": { + resultWrapper: (params) => { + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(EditTool, { ...params, content: params.toolMessage.params.newContent }); + } + }, + "edit_file": { + resultWrapper: (params) => { + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(EditTool, { ...params, content: params.toolMessage.params.searchReplaceBlocks }); + } + }, + // --- + "run_command": { + resultWrapper: (params) => { + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(CommandTool, { ...params, type: "run_command" }); + } + }, + "run_persistent_command": { + resultWrapper: (params) => { + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(CommandTool, { ...params, type: "run_persistent_command" }); + } + }, + "open_persistent_terminal": { + resultWrapper: ({ toolMessage }) => { + const accessor = useAccessor(); + const terminalToolsService = accessor.get("ITerminalToolService"); + const { desc1, desc1Info } = toolNameToDesc(toolMessage.name, toolMessage.params, accessor); + const title = getTitle(toolMessage); + const icon = null; + if (toolMessage.type === "tool_request") return null; + if (toolMessage.type === "running_now") return null; + const isError = false; + const isRejected = toolMessage.type === "rejected"; + const { rawParams, params } = toolMessage; + const componentParams = { title, desc1, desc1Info, isError, icon, isRejected }; + const relativePath = params.cwd ? getRelative(URI.file(params.cwd), accessor) : ""; + componentParams.info = relativePath ? `Running in ${relativePath}` : void 0; + if (toolMessage.type === "success") { + const { result } = toolMessage; + const { persistentTerminalId } = result; + componentParams.desc1 = persistentTerminalNameOfId(persistentTerminalId); + componentParams.onClick = () => terminalToolsService.focusPersistentTerminal(persistentTerminalId); + } else if (toolMessage.type === "tool_error") { + const { result } = toolMessage; + componentParams.bottomChildren = /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(BottomChildren, { title: "Error", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(CodeChildren, { children: result }) }); + } + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ToolHeaderWrapper, { ...componentParams }); + } + }, + "kill_persistent_terminal": { + resultWrapper: ({ toolMessage }) => { + const accessor = useAccessor(); + accessor.get("ICommandService"); + const terminalToolsService = accessor.get("ITerminalToolService"); + const { desc1, desc1Info } = toolNameToDesc(toolMessage.name, toolMessage.params, accessor); + const title = getTitle(toolMessage); + const icon = null; + if (toolMessage.type === "tool_request") return null; + if (toolMessage.type === "running_now") return null; + const isError = false; + const isRejected = toolMessage.type === "rejected"; + const { rawParams, params } = toolMessage; + const componentParams = { title, desc1, desc1Info, isError, icon, isRejected }; + if (toolMessage.type === "success") { + const { persistentTerminalId } = params; + componentParams.desc1 = persistentTerminalNameOfId(persistentTerminalId); + componentParams.onClick = () => terminalToolsService.focusPersistentTerminal(persistentTerminalId); + } else if (toolMessage.type === "tool_error") { + const { result } = toolMessage; + componentParams.bottomChildren = /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(BottomChildren, { title: "Error", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(CodeChildren, { children: result }) }); + } + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ToolHeaderWrapper, { ...componentParams }); + } + }, + "web_search": { + resultWrapper: ({ toolMessage }) => { + const accessor = useAccessor(); + accessor.get("IToolsService"); + const title = getTitle(toolMessage); + const { desc1, desc1Info } = toolNameToDesc(toolMessage.name, toolMessage.params, accessor); + const icon = null; + if (toolMessage.type === "tool_request") return null; + if (toolMessage.type === "running_now") { + const componentParams2 = { title, desc1, desc1Info, isError: false, icon, isRejected: false }; + componentParams2.children = /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ToolChildrenWrapper, { children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "void-flex void-items-center void-gap-2 void-text-sm void-text-void-fg-3", children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(IconLoading, {}), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { children: "Searching the web..." }) + ] }) }); + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ToolHeaderWrapper, { ...componentParams2 }); + } + const isError = false; + const isRejected = toolMessage.type === "rejected"; + const { rawParams, params } = toolMessage; + const componentParams = { title, desc1, desc1Info, isError, icon, isRejected }; + if (toolMessage.type === "success") { + const { result } = toolMessage; + componentParams.numResults = result.results?.length || 0; + if (result.results && result.results.length > 0) { + componentParams.children = /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ToolChildrenWrapper, { children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-space-y-3", children: result.results.map( + (r, i) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-border void-border-void-border-2 void-bg-void-bg-2 void-rounded void-p-3 hover:void-bg-void-bg-3 void-transition-colors", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)( + "a", + { + href: r.url, + target: "_blank", + rel: "noopener noreferrer", + className: "void-block void-group", + children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-text-sm void-font-semibold void-text-blue-400 group-hover:void-text-blue-300 void-mb-1 void-line-clamp-2", children: r.title }), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-text-xs void-text-void-fg-4 void-mb-2 void-truncate", children: r.url }), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-text-sm void-text-void-fg-2 void-line-clamp-3", children: r.snippet }) + ] + } + ) }, i) + ) }) }); + } else { + componentParams.children = /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ToolChildrenWrapper, { children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-text-sm void-text-void-fg-3", children: "No search results found." }) }); + } + } else if (toolMessage.type === "tool_error") { + const { result } = toolMessage; + componentParams.bottomChildren = /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(BottomChildren, { title: "Error", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(CodeChildren, { children: result }) }); + } + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ToolHeaderWrapper, { ...componentParams }); + } + }, + "browse_url": { + resultWrapper: ({ toolMessage }) => { + const accessor = useAccessor(); + accessor.get("IToolsService"); + const title = getTitle(toolMessage); + const { desc1, desc1Info } = toolNameToDesc(toolMessage.name, toolMessage.params, accessor); + const icon = null; + if (toolMessage.type === "tool_request") return null; + if (toolMessage.type === "running_now") { + const componentParams2 = { title, desc1, desc1Info, isError: false, icon, isRejected: false }; + componentParams2.children = /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ToolChildrenWrapper, { children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "void-flex void-items-center void-gap-2 void-text-sm void-text-void-fg-3", children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(IconLoading, {}), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { children: "Fetching content from URL..." }) + ] }) }); + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ToolHeaderWrapper, { ...componentParams2 }); + } + const isError = false; + const isRejected = toolMessage.type === "rejected"; + const { rawParams, params } = toolMessage; + const componentParams = { title, desc1, desc1Info, isError, icon, isRejected }; + if (toolMessage.type === "success") { + const { result } = toolMessage; + const urlStr = result.url || params.url; + componentParams.onClick = () => { + if (urlStr) { + window.open(urlStr, "_blank", "noopener,noreferrer"); + } + }; + componentParams.info = urlStr ? `Source: ${new URL(urlStr).hostname}` : void 0; + if (result.content) { + const contentPreview = result.content.length > 2e3 ? result.content.substring(0, 2e3) + "\n\n... (content truncated)" : result.content; + componentParams.children = /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ToolChildrenWrapper, { children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "void-space-y-3", children: [ + result.title && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-text-lg void-font-semibold void-text-void-fg-1", children: result.title }), + result.metadata?.publishedDate && /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "void-text-xs void-text-void-fg-4", children: [ + "Published: ", + result.metadata.publishedDate + ] }), + urlStr && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + "a", + { + href: urlStr, + target: "_blank", + rel: "noopener noreferrer", + className: "void-text-sm void-text-blue-400 hover:void-text-blue-300 void-block void-truncate", + children: urlStr + } + ), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-text-sm void-text-void-fg-2 void-whitespace-pre-wrap void-max-h-96 void-overflow-y-auto void-border void-border-void-border-2 void-bg-void-bg-3 void-rounded void-p-3", children: contentPreview }) + ] }) }); + } else { + componentParams.children = /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ToolChildrenWrapper, { children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-text-sm void-text-void-fg-3", children: "No content extracted from URL." }) }); + } + } else if (toolMessage.type === "tool_error") { + const { result } = toolMessage; + componentParams.bottomChildren = /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(BottomChildren, { title: "Error", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(CodeChildren, { children: result }) }); + } + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ToolHeaderWrapper, { ...componentParams }); + } + } +}; +var Checkpoint = ({ message, threadId, messageIdx, isCheckpointGhost, threadIsRunning }) => { + const accessor = useAccessor(); + const chatThreadService = accessor.get("IChatThreadService"); + const streamState = useFullChatThreadsStreamState(); + const chatThreadsState = useChatThreadsState(); + const isRunning = useChatThreadsStreamState(threadId)?.isRunning; + const isDisabled = (0, import_react19.useMemo)(() => { + if (isRunning) return true; + return Object.values(streamState).some((threadState) => threadState?.isRunning); + }, [isRunning, streamState]); + const threadMessagesLength = chatThreadsState.allThreads[threadId]?.messages.length ?? 0; + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + "div", + { + className: `void-flex void-items-center void-justify-center void-px-2 `, + children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + "div", + { + className: ` void-text-xs void-text-void-fg-3 void-select-none ${isCheckpointGhost ? "void-opacity-50" : "void-opacity-100"} ${isDisabled ? "void-cursor-default" : "void-cursor-pointer"} `, + style: { position: "relative", display: "inline-block" }, + onClick: () => { + if (threadIsRunning) return; + if (isDisabled) return; + chatThreadService.jumpToCheckpointBeforeMessageIdx({ + threadId, + messageIdx, + jumpToUserModified: messageIdx === threadMessagesLength - 1 + }); + }, + ...isDisabled ? { + "data-tooltip-id": "void-tooltip", + "data-tooltip-content": `Disabled ${isRunning ? "when running" : "because another thread is running"}`, + "data-tooltip-place": "top" + } : {}, + children: "Checkpoint" + } + ) + } + ); +}; +var PlanComponent = import_react19.default.memo(({ message, isCheckpointGhost, threadId, messageIdx }) => { + const accessor = useAccessor(); + const chatThreadService = accessor.get("IChatThreadService"); + const [expandedSteps, setExpandedSteps] = (0, import_react19.useState)(/* @__PURE__ */ new Set()); + const [isCollapsed, setIsCollapsed] = (0, import_react19.useState)(false); + const chatThreadsState = useChatThreadsState(); + const approvalState = message.approvalState || "pending"; + const isRunning = useChatThreadsStreamState(threadId)?.isRunning; + const isBusy = isRunning === "LLM" || isRunning === "tool" || isRunning === "preparing"; + const isIdleLike = isRunning === void 0 || isRunning === "idle"; + const thread = chatThreadsState.allThreads[threadId]; + const threadMessages = thread?.messages ?? []; + const toolMessagesMap = (0, import_react19.useMemo)(() => { + const map = /* @__PURE__ */ new Map(); + for (const msg of threadMessages) { + if (msg.role === "tool") { + const toolMsg = msg; + map.set(toolMsg.id, toolMsg); + } + } + return map; + }, [threadMessages]); + const totalSteps = message.steps.length; + const completedSteps = (0, import_react19.useMemo)( + () => message.steps.filter((s) => s.status === "succeeded" || s.status === "skipped").length, + [message.steps] + ); + const progressText = (0, import_react19.useMemo)( + () => `${completedSteps} of ${totalSteps} ${totalSteps === 1 ? "Step" : "Steps"} Completed`, + [completedSteps, totalSteps] + ); + const hasPausedSteps = (0, import_react19.useMemo)( + () => message.steps.some((s) => s.status === "paused"), + [message.steps] + ); + const getCheckmarkIcon = (status, isDisabled) => { + if (isDisabled) { + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-w-5 void-h-5 void-rounded-full void-border-2 void-border-void-fg-4 void-flex void-items-center void-justify-center void-opacity-40" }); + } + switch (status) { + case "succeeded": + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-w-5 void-h-5 void-rounded-full void-border-2 void-border-green-500 void-bg-green-500/20 void-flex void-items-center void-justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Check, { size: 12, className: "void-text-green-400", strokeWidth: 3 }) }); + case "failed": + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-w-5 void-h-5 void-rounded-full void-border-2 void-border-red-500 void-bg-red-500/20 void-flex void-items-center void-justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(X, { size: 12, className: "void-text-red-400", strokeWidth: 3 }) }); + case "running": + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-w-5 void-h-5 void-rounded-full void-border-2 void-border-yellow-500 void-bg-yellow-500/20 void-flex void-items-center void-justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(CircleEllipsis, { size: 12, className: "void-text-yellow-400 void-animate-spin" }) }); + case "paused": + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-w-5 void-h-5 void-rounded-full void-border-2 void-border-orange-500 void-bg-orange-500/20 void-flex void-items-center void-justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Dot, { size: 12, className: "void-text-orange-400" }) }); + case "skipped": + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-w-5 void-h-5 void-rounded-full void-border-2 void-border-gray-500 void-bg-gray-500/20 void-flex void-items-center void-justify-center void-opacity-60", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Ban, { size: 12, className: "void-text-gray-400" }) }); + default: + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-w-5 void-h-5 void-rounded-full void-border-2 void-border-void-fg-3 void-flex void-items-center void-justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-w-1.5 void-h-1.5 void-rounded-full void-bg-void-fg-3 void-opacity-60" }) }); + } + }; + const toggleStepExpanded = (stepNumber) => { + setExpandedSteps((prev) => { + const next = new Set(prev); + if (next.has(stepNumber)) { + next.delete(stepNumber); + } else { + next.add(stepNumber); + } + return next; + }); + }; + const handleApprove = () => { + if (isCheckpointGhost || isBusy) return; + chatThreadService.approvePlan({ threadId, messageIdx }); + }; + const handleReject = () => { + if (isCheckpointGhost || isBusy) return; + chatThreadService.rejectPlan({ threadId, messageIdx }); + }; + const handleToggleStep = (stepNumber) => { + if (isCheckpointGhost || isBusy) return; + chatThreadService.toggleStepDisabled({ threadId, messageIdx, stepNumber }); + }; + const getStatusBadge = (status) => { + switch (status) { + case "running": + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "void-px-1.5 void-py-0.5 void-text-xs void-rounded void-bg-yellow-500/20 void-text-yellow-400 void-border void-border-yellow-500/30", children: "Running" }); + case "failed": + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "void-px-1.5 void-py-0.5 void-text-xs void-rounded void-bg-red-500/20 void-text-red-400 void-border void-border-red-500/30", children: "Failed" }); + case "paused": + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "void-px-1.5 void-py-0.5 void-text-xs void-rounded void-bg-orange-500/20 void-text-orange-400 void-border void-border-orange-500/30", children: "Paused" }); + case "skipped": + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "void-px-1.5 void-py-0.5 void-text-xs void-rounded void-bg-gray-500/20 void-text-gray-400 void-border void-border-gray-500/30", children: "Skipped" }); + default: + return null; + } + }; + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: `${isCheckpointGhost ? "void-opacity-50 void-pointer-events-none" : ""} void-my-3`, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "void-bg-void-bg-1 void-border void-border-void-border-1 void-rounded-lg void-overflow-hidden", children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-px-4 void-py-3 void-border-b void-border-void-border-1 void-bg-void-bg-2/30", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "void-flex void-items-center void-justify-between", children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "void-flex void-items-center void-gap-2 void-flex-1 void-min-w-0", children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + "button", + { + onClick: () => setIsCollapsed(!isCollapsed), + className: "void-flex-shrink-0 void-p-1 hover:void-bg-void-bg-2 void-rounded void-transition-colors", + disabled: isCheckpointGhost, + children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + ChevronRight, + { + size: 16, + className: `void-text-void-fg-3 void-transition-transform ${isCollapsed ? "" : "void-rotate-90"}` + } + ) + } + ), + /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "void-flex void-items-center void-gap-2 void-flex-1 void-min-w-0", children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("h3", { className: "void-text-void-fg-1 void-font-medium void-text-sm void-truncate", children: message.summary }), + approvalState === "pending" && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "void-px-2 void-py-0.5 void-text-xs void-rounded void-bg-blue-500/20 void-text-blue-400 void-border void-border-blue-500/30 void-flex-shrink-0", children: "Pending Approval" }), + approvalState === "executing" && /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("span", { className: "void-px-2 void-py-0.5 void-text-xs void-rounded void-bg-yellow-500/20 void-text-yellow-400 void-border void-border-yellow-500/30 void-flex void-items-center void-gap-1 void-flex-shrink-0", children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(CircleEllipsis, { size: 12, className: "void-animate-spin" }), + "Executing" + ] }), + approvalState === "completed" && /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("span", { className: "void-px-2 void-py-0.5 void-text-xs void-rounded void-bg-green-500/20 void-text-green-400 void-border void-border-green-500/30 void-flex void-items-center void-gap-1 void-flex-shrink-0", children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Check, { size: 12 }), + "Completed" + ] }) + ] }) + ] }), + !isCollapsed && /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "void-flex void-items-center void-gap-3 void-flex-shrink-0", children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "void-text-void-fg-3 void-text-xs", "aria-live": "polite", children: progressText }), + approvalState === "pending" && isIdleLike && /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "void-flex void-gap-2", children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + "button", + { + title: "Reject plan", + "aria-label": "Reject plan", + onClick: handleReject, + className: "void-px-3 void-py-1.5 void-text-xs void-rounded void-bg-red-500/10 void-text-red-400 void-border void-border-red-500/20 hover:void-bg-red-500/20 void-transition-colors focus:void-outline-none focus:void-ring-2 focus:void-ring-red-500/40", + children: "Reject" + } + ), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + "button", + { + title: "Approve and execute", + "aria-label": "Approve and execute plan", + onClick: handleApprove, + className: "void-px-3 void-py-1.5 void-text-xs void-rounded void-bg-green-500/10 void-text-green-400 void-border void-border-green-500/20 hover:void-bg-green-500/20 void-transition-colors focus:void-outline-none focus:void-ring-2 focus:void-ring-green-500/40", + children: "Approve & Execute" + } + ) + ] }), + approvalState === "executing" && isBusy && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + "button", + { + "aria-label": "Pause plan execution", + onClick: () => chatThreadService.pauseAgentExecution({ threadId }), + className: "void-px-3 void-py-1.5 void-text-xs void-rounded void-bg-orange-500/10 void-text-orange-400 void-border void-border-orange-500/20 hover:void-bg-orange-500/20 void-transition-colors focus:void-outline-none focus:void-ring-2 focus:void-ring-orange-500/40", + children: "Pause" + } + ), + hasPausedSteps && !isBusy && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + "button", + { + "aria-label": "Resume plan execution", + onClick: () => chatThreadService.resumeAgentExecution({ threadId }), + className: "void-px-3 void-py-1.5 void-text-xs void-rounded void-bg-green-500/10 void-text-green-400 void-border void-border-green-500/20 hover:void-bg-green-500/20 void-transition-colors focus:void-outline-none focus:void-ring-2 focus:void-ring-green-500/40", + children: "Resume" + } + ) + ] }) + ] }) }), + !isCollapsed && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-py-2", children: message.steps.map((step, idx) => { + const isExpanded = expandedSteps.has(step.stepNumber); + const isDisabled = step.disabled; + const status = step.status || "queued"; + const hasDetails = step.tools || step.files || step.error || step.toolCalls; + return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)( + "div", + { + className: `void-flex void-items-start void-gap-3 void-px-4 void-py-2.5 hover:void-bg-void-bg-2/30 void-transition-colors ${isDisabled ? "void-opacity-50" : ""} ${status === "failed" ? "void-bg-red-500/5" : ""}`, + children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-flex-shrink-0 void-mt-0.5", children: getCheckmarkIcon(status, isDisabled) }), + /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "void-flex-1 void-min-w-0", children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "void-flex void-items-start void-justify-between void-gap-3", children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { className: `void-text-void-fg-1 void-text-sm void-flex-1 void-leading-relaxed ${isDisabled ? "void-line-through void-text-void-fg-3" : ""} ${status === "succeeded" ? "void-text-void-fg-2" : ""}`, children: step.description }), + getStatusBadge(status) + ] }), + (approvalState === "pending" || approvalState === "executing" && status === "failed") && !isCheckpointGhost && /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "void-flex void-items-center void-gap-2 void-mt-2", children: [ + approvalState === "pending" && !isRunning && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + "button", + { + "aria-label": `${isDisabled ? "Enable" : "Disable"} step ${step.stepNumber}`, + onClick: () => handleToggleStep(step.stepNumber), + className: "void-px-2 void-py-0.5 void-text-xs void-rounded void-bg-void-bg-2 void-text-void-fg-2 hover:void-bg-void-bg-2/80 void-border void-border-void-border-1 void-transition-colors", + children: isDisabled ? "Enable" : "Disable" + } + ), + approvalState === "executing" && status === "failed" && /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_jsx_runtime15.Fragment, { children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + "button", + { + "aria-label": `Retry step ${step.stepNumber}`, + onClick: () => chatThreadService.retryStep({ threadId, messageIdx, stepNumber: step.stepNumber }), + className: "void-px-2 void-py-0.5 void-text-xs void-rounded void-bg-green-500/10 void-text-green-400 hover:void-bg-green-500/20 void-border void-border-green-500/20 void-transition-colors", + children: "Retry" + } + ), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + "button", + { + "aria-label": `Skip step ${step.stepNumber}`, + onClick: () => chatThreadService.skipStep({ threadId, messageIdx, stepNumber: step.stepNumber }), + className: "void-px-2 void-py-0.5 void-text-xs void-rounded void-bg-gray-500/10 void-text-gray-400 hover:void-bg-gray-500/20 void-border void-border-gray-500/20 void-transition-colors", + children: "Skip" + } + ), + step.checkpointIdx !== void 0 && step.checkpointIdx !== null && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + "button", + { + "aria-label": `Rollback step ${step.stepNumber}`, + onClick: () => { + if (confirm("Rollback to the checkpoint before this step?")) chatThreadService.rollbackToStep({ threadId, messageIdx, stepNumber: step.stepNumber }); + }, + className: "void-px-2 void-py-0.5 void-text-xs void-rounded void-bg-orange-500/10 void-text-orange-400 hover:void-bg-orange-500/20 void-border void-border-orange-500/20 void-transition-colors", + children: "Rollback" + } + ) + ] }) + ] }), + hasDetails && /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)( + "button", + { + onClick: () => toggleStepExpanded(step.stepNumber), + className: "void-mt-2 void-flex void-items-center void-gap-1 void-text-void-fg-3 hover:void-text-void-fg-2 void-text-xs void-transition-colors", + children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + ChevronRight, + { + size: 12, + className: `void-transition-transform ${isExpanded ? "void-rotate-90" : ""}` + } + ), + /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("span", { children: [ + isExpanded ? "Hide" : "Show", + " details" + ] }) + ] + } + ), + isExpanded && hasDetails && /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "void-mt-3 void-space-y-3 void-pt-3 void-border-t void-border-void-border-1", children: [ + step.tools && step.tools.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-text-void-fg-3 void-text-xs void-mb-2 void-font-medium", children: "Expected Tools:" }), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-flex void-flex-wrap void-gap-1.5", children: step.tools.map( + (tool, i) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "void-px-2 void-py-0.5 void-bg-blue-500/10 void-text-blue-400 void-text-xs void-rounded void-border void-border-blue-500/20", children: tool }, `${step.stepNumber}-tool-${tool}-${i}`) + ) }) + ] }), + step.toolCalls && step.toolCalls.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "void-text-void-fg-3 void-text-xs void-mb-2 void-font-medium void-flex void-items-center void-gap-2", children: [ + "Tool Calls Executed ", + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "void-inline-flex void-items-center void-justify-center void-rounded-full void-bg-void-bg-2 void-text-void-fg-3 void-text-[10px] void-px-1.5 void-py-0.5 void-border void-border-void-border-1", children: step.toolCalls.length }) + ] }), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-space-y-1.5", children: step.toolCalls.map((toolId, i) => { + const toolMsg = toolMessagesMap.get(toolId); + if (!toolMsg) return null; + const isSuccess = toolMsg.type === "success"; + const isError = toolMsg.type === "tool_error"; + return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: `void-p-2 void-rounded void-border void-text-xs ${isSuccess ? "void-bg-green-500/10 void-border-green-500/20" : isError ? "void-bg-red-500/10 void-border-red-500/20" : "void-bg-blue-500/10 void-border-blue-500/20"}`, children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "void-flex void-items-center void-justify-between void-mb-1", children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "void-font-medium void-text-void-fg-1", children: toolMsg.name }), + isSuccess && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Check, { size: 12, className: "void-text-green-400" }), + isError && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(X, { size: 12, className: "void-text-red-400" }) + ] }), + isError && toolMsg.result && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-mt-1 void-text-red-400 void-text-xs", children: toolMsg.result }), + isSuccess && toolMsg.result && typeof toolMsg.result === "object" && /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("details", { className: "void-mt-1", children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("summary", { className: "void-text-void-fg-3 void-cursor-pointer void-text-xs hover:void-text-void-fg-2", children: "View result" }), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("pre", { className: "void-mt-1 void-p-2 void-bg-void-bg-2 void-rounded void-text-xs void-overflow-auto void-max-h-32 void-border void-border-void-border-1", children: JSON.stringify(toolMsg.result, null, 2) }) + ] }), + isError && toolMsg.params && /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("details", { className: "void-mt-1", children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("summary", { className: "void-text-void-fg-3 void-cursor-pointer void-text-xs hover:void-text-void-fg-2", children: "View params" }), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("pre", { className: "void-mt-1 void-p-2 void-bg-void-bg-2 void-rounded void-text-xs void-overflow-auto void-max-h-32 void-border void-border-void-border-1", children: JSON.stringify(toolMsg.params, null, 2) }) + ] }) + ] }, toolId); + }) }) + ] }), + step.files && step.files.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-text-void-fg-3 void-text-xs void-mb-2 void-font-medium", children: "Files Affected:" }), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-flex void-flex-wrap void-gap-1.5", children: step.files.map( + (file, i) => /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("span", { className: "void-px-2 void-py-0.5 void-bg-purple-500/10 void-text-purple-400 void-text-xs void-rounded void-border void-border-purple-500/20 void-flex void-items-center void-gap-1", children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(File, { size: 12 }), + file.split("/").pop() + ] }, i) + ) }) + ] }), + step.error && /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "void-p-2 void-bg-red-500/10 void-border void-border-red-500/20 void-rounded void-text-red-400 void-text-xs void-flex void-items-start void-gap-2", children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(TriangleAlert, { size: 14, className: "void-flex-shrink-0 void-mt-0.5" }), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { children: step.error }) + ] }), + step.startTime && step.endTime && /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "void-text-void-fg-3 void-text-xs", children: [ + "Duration: ", + ((step.endTime - step.startTime) / 1e3).toFixed(1), + "s" + ] }), + step.checkpointIdx !== void 0 && step.checkpointIdx !== null && /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "void-text-void-fg-3 void-text-xs", children: [ + "Checkpoint: #", + step.checkpointIdx + ] }) + ] }) + ] }) + ] + }, + step.stepNumber + ); + }) }) + ] }) }); +}, (prev, next) => { + return prev.message === next.message && prev.isCheckpointGhost === next.isCheckpointGhost && prev.threadId === next.threadId && prev.messageIdx === next.messageIdx; +}); +var ReviewComponent = ({ message, isCheckpointGhost }) => { + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: `${isCheckpointGhost ? "void-opacity-50" : ""} void-my-2`, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: `void-border void-rounded-lg void-p-4 ${message.completed ? "void-bg-green-500/10 void-border-green-500/30" : "void-bg-amber-500/10 void-border-amber-500/30"}`, children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "void-flex void-items-center void-justify-between void-mb-3", children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "void-flex void-items-center void-gap-2", children: [ + message.completed ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Check, { className: "void-text-green-400", size: 18 }) : /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(TriangleAlert, { className: "void-text-amber-400", size: 18 }), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("h3", { className: `void-font-semibold void-text-sm ${message.completed ? "void-text-green-300" : "void-text-amber-300"}`, children: message.completed ? "Review Complete" : "Review: Issues Found" }) + ] }), + (message.executionTime || message.stepsCompleted !== void 0) && /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "void-text-xs void-text-void-fg-3", children: [ + message.executionTime && `${(message.executionTime / 1e3).toFixed(1)}s`, + message.stepsCompleted !== void 0 && message.stepsTotal !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("span", { className: "void-ml-2", children: [ + message.stepsCompleted, + "/", + message.stepsTotal, + " steps" + ] }) + ] }) + ] }), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { className: "void-text-void-fg-2 void-text-sm void-mb-3", children: message.summary }), + message.filesChanged && message.filesChanged.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "void-mb-3", children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("h4", { className: "void-text-void-fg-2 void-text-xs void-font-semibold void-mb-2", children: "Files Changed:" }), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-space-y-1", children: message.filesChanged.map( + (file, i) => /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "void-flex void-items-center void-gap-2 void-text-xs", children: [ + file.changeType === "created" && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(CirclePlus, { className: "void-text-green-400", size: 12 }), + file.changeType === "modified" && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Pencil, { className: "void-text-blue-400", size: 12 }), + file.changeType === "deleted" && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(X, { className: "void-text-red-400", size: 12 }), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "void-text-void-fg-2", children: file.path }) + ] }, i) + ) }) + ] }), + message.issues && message.issues.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-space-y-2 void-mb-3", children: message.issues.map( + (issue, i) => /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: `void-flex void-gap-2 void-text-sm void-p-2 void-rounded ${issue.severity === "error" ? "void-bg-red-500/10 void-border void-border-red-500/20" : issue.severity === "warning" ? "void-bg-amber-500/10 void-border void-border-amber-500/20" : "void-bg-blue-500/10 void-border void-border-blue-500/20"}`, children: [ + issue.severity === "error" ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(X, { className: "void-text-red-400 void-flex-shrink-0 void-mt-0.5", size: 16 }) : issue.severity === "warning" ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(TriangleAlert, { className: "void-text-amber-400 void-flex-shrink-0 void-mt-0.5", size: 16 }) : /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Info, { className: "void-text-blue-400 void-flex-shrink-0 void-mt-0.5", size: 16 }), + /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "void-flex-1", children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { className: `${issue.severity === "error" ? "void-text-red-300" : issue.severity === "warning" ? "void-text-amber-300" : "void-text-blue-300"}`, children: issue.message }), + issue.file && /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("p", { className: "void-text-void-fg-3 void-text-xs void-mt-1 void-flex void-items-center void-gap-1", children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(File, { size: 12 }), + issue.file + ] }) + ] }) + ] }, i) + ) }), + message.nextSteps && message.nextSteps.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "void-mt-3 void-pt-3 void-border-t void-border-void-border-2", children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { className: "void-text-void-fg-3 void-text-xs void-mb-2 void-font-medium", children: "Recommended Next Steps:" }), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("ul", { className: "void-space-y-1", children: message.nextSteps.map( + (step, i) => /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("li", { className: "void-text-void-fg-2 void-text-xs void-flex void-items-start void-gap-2", children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "void-text-void-fg-4 void-mt-1", children: "\u2022" }), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { children: step }) + ] }, i) + ) }) + ] }) + ] }) }); +}; +var ChatBubble = import_react19.default.memo((props) => { + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ErrorBoundary_default, { children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(_ChatBubble, { ...props }) }); +}, (prev, next) => { + return prev.chatMessage === next.chatMessage && prev.messageIdx === next.messageIdx && prev.isCommitted === next.isCommitted && prev.chatIsRunning === next.chatIsRunning && prev.currCheckpointIdx === next.currCheckpointIdx && prev.threadId === next.threadId && prev._scrollToBottom === next._scrollToBottom; +}); +var _ChatBubble = import_react19.default.memo(({ threadId, chatMessage, currCheckpointIdx, isCommitted, messageIdx, chatIsRunning, _scrollToBottom }) => { + const role = chatMessage.role; + const isCheckpointGhost = messageIdx > (currCheckpointIdx ?? Infinity) && !chatIsRunning; + if (role === "user") { + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + UserMessageComponent, + { + chatMessage, + isCheckpointGhost, + currCheckpointIdx, + messageIdx, + _scrollToBottom + } + ); + } else if (role === "assistant") { + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + AssistantMessageComponent, + { + chatMessage, + isCheckpointGhost, + messageIdx, + isCommitted + } + ); + } else if (role === "tool") { + if (chatMessage.type === "invalid_params") { + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: `${isCheckpointGhost ? "void-opacity-50" : ""}`, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(InvalidTool, { toolName: chatMessage.name, message: chatMessage.content, mcpServerName: chatMessage.mcpServerName }) }); + } + const toolName = chatMessage.name; + const isBuiltInTool = isABuiltinToolName(toolName); + const ToolResultWrapper = isBuiltInTool ? builtinToolNameToComponent[toolName]?.resultWrapper : MCPToolWrapper; + if (ToolResultWrapper) + return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_jsx_runtime15.Fragment, { children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: `${isCheckpointGhost ? "void-opacity-50" : ""}`, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + ToolResultWrapper, + { + toolMessage: chatMessage, + messageIdx, + threadId + } + ) }), + chatMessage.type === "tool_request" ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: `${isCheckpointGhost ? "void-opacity-50 void-pointer-events-none" : ""}`, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ToolRequestAcceptRejectButtons, { toolName: chatMessage.name }) }) : null + ] }); + return null; + } else if (role === "interrupted_streaming_tool") { + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: `${isCheckpointGhost ? "void-opacity-50" : ""}`, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(CanceledTool, { toolName: chatMessage.name, mcpServerName: chatMessage.mcpServerName }) }); + } else if (role === "checkpoint") { + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + Checkpoint, + { + threadId, + message: chatMessage, + messageIdx, + isCheckpointGhost, + threadIsRunning: !!chatIsRunning + } + ); + } else if (role === "plan") { + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + PlanComponent, + { + message: chatMessage, + isCheckpointGhost, + threadId, + messageIdx + } + ); + } else if (role === "review") { + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + ReviewComponent, + { + message: chatMessage, + isCheckpointGhost + } + ); + } +}, (prev, next) => { + return prev.chatMessage === next.chatMessage && prev.messageIdx === next.messageIdx && prev.isCommitted === next.isCommitted && prev.chatIsRunning === next.chatIsRunning && prev.currCheckpointIdx === next.currCheckpointIdx && prev.threadId === next.threadId && prev._scrollToBottom === next._scrollToBottom; +}); +var CommandBarInChat = () => { + const { stateOfURI: commandBarStateOfURI, sortedURIs: sortedCommandBarURIs } = useCommandBarState(); + const numFilesChanged = sortedCommandBarURIs.length; + const accessor = useAccessor(); + const editCodeService = accessor.get("IEditCodeService"); + accessor.get("ICommandService"); + const chatThreadsState = useChatThreadsState(); + const commandBarState = useCommandBarState(); + const chatThreadsStreamState = useChatThreadsStreamState(chatThreadsState.currentThreadId); + const [fileDetailsOpenedState, setFileDetailsOpenedState] = (0, import_react19.useState)("auto-closed"); + const isFileDetailsOpened = fileDetailsOpenedState === "auto-opened" || fileDetailsOpenedState === "user-opened"; + (0, import_react19.useEffect)(() => { + if (numFilesChanged === 0) { + setFileDetailsOpenedState("auto-closed"); + } + if (numFilesChanged > 0 && fileDetailsOpenedState !== "user-closed") { + setFileDetailsOpenedState("auto-opened"); + } + }, [fileDetailsOpenedState, setFileDetailsOpenedState, numFilesChanged]); + const isFinishedMakingThreadChanges = ( + // there are changed files + commandBarState.sortedURIs.length !== 0 && commandBarState.sortedURIs.every((uri) => !commandBarState.stateOfURI[uri.fsPath]?.isStreaming) + ); + const threadStatus = chatThreadsStreamState?.isRunning === "awaiting_user" ? { title: "Needs Approval", color: "yellow" } : chatThreadsStreamState?.isRunning === "LLM" || chatThreadsStreamState?.isRunning === "tool" || chatThreadsStreamState?.isRunning === "preparing" ? { title: chatThreadsStreamState?.isRunning === "preparing" ? "Preparing" : "Running", color: "orange" } : { title: "Done", color: "dark" }; + const threadStatusHTML = /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(StatusIndicator, { className: "void-mx-1", indicatorColor: threadStatus.color, title: threadStatus.title }); + const numFilesChangedStr = numFilesChanged === 0 ? "No files with changes" : `${sortedCommandBarURIs.length} file${numFilesChanged === 1 ? "" : "s"} with changes`; + const acceptRejectAllButtons = /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)( + "div", + { + className: `void-flex void-items-center void-gap-0.5 ${isFinishedMakingThreadChanges ? "" : "void-opacity-0 void-pointer-events-none"}`, + children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + IconShell1, + { + Icon: X, + onClick: () => { + sortedCommandBarURIs.forEach((uri) => { + editCodeService.acceptOrRejectAllDiffAreas({ + uri, + removeCtrlKs: true, + behavior: "reject", + _addToHistory: true + }); + }); + }, + "data-tooltip-id": "void-tooltip", + "data-tooltip-place": "top", + "data-tooltip-content": "Reject all" + } + ), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + IconShell1, + { + Icon: Check, + onClick: () => { + sortedCommandBarURIs.forEach((uri) => { + editCodeService.acceptOrRejectAllDiffAreas({ + uri, + removeCtrlKs: true, + behavior: "accept", + _addToHistory: true + }); + }); + }, + "data-tooltip-id": "void-tooltip", + "data-tooltip-place": "top", + "data-tooltip-content": "Accept all" + } + ) + ] + } + ); + const fileDetailsContent = /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-px-2 void-gap-1 void-w-full void-overflow-y-auto", children: sortedCommandBarURIs.map((uri, i) => { + const basename = getBasename(uri.fsPath); + const { sortedDiffIds, isStreaming } = commandBarStateOfURI[uri.fsPath] ?? {}; + const isFinishedMakingFileChanges = !isStreaming; + const numDiffs = sortedDiffIds?.length || 0; + const fileStatus = isFinishedMakingFileChanges ? { title: "Done", color: "dark" } : { title: "Running", color: "orange" }; + const fileNameHTML = /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + "div", + { + className: "void-flex void-items-center void-gap-1.5 void-text-void-fg-3 hover:void-brightness-125 void-transition-all void-duration-200 void-cursor-pointer", + onClick: () => voidOpenFileFn(uri, accessor), + children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "void-text-void-fg-3", children: basename }) + } + ); + const detailsContent = /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-flex void-px-4", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("span", { className: "void-text-void-fg-3 void-opacity-80", children: [ + numDiffs, + " diff", + numDiffs !== 1 ? "s" : "" + ] }) }); + const acceptRejectButtons = /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)( + "div", + { + className: `void-flex void-items-center void-gap-0.5 ${isFinishedMakingFileChanges ? "" : "void-opacity-0 void-pointer-events-none"} `, + children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + IconShell1, + { + Icon: X, + onClick: () => { + editCodeService.acceptOrRejectAllDiffAreas({ uri, removeCtrlKs: true, behavior: "reject", _addToHistory: true }); + }, + "data-tooltip-id": "void-tooltip", + "data-tooltip-place": "top", + "data-tooltip-content": "Reject file" + } + ), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + IconShell1, + { + Icon: Check, + onClick: () => { + editCodeService.acceptOrRejectAllDiffAreas({ uri, removeCtrlKs: true, behavior: "accept", _addToHistory: true }); + }, + "data-tooltip-id": "void-tooltip", + "data-tooltip-place": "top", + "data-tooltip-content": "Accept file" + } + ) + ] + } + ); + const fileStatusHTML = /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(StatusIndicator, { className: "void-mx-1", indicatorColor: fileStatus.color, title: fileStatus.title }); + return ( + // name, details + /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "void-flex void-justify-between void-items-center", children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "void-flex void-items-center", children: [ + fileNameHTML, + detailsContent + ] }), + /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "void-flex void-items-center void-gap-2", children: [ + acceptRejectButtons, + fileStatusHTML + ] }) + ] }, i) + ); + }) }); + const fileDetailsButton = /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)( + "button", + { + className: `void-flex void-items-center void-gap-1 void-rounded ${numFilesChanged === 0 ? "void-cursor-pointer" : "void-cursor-pointer hover:void-brightness-125 void-transition-all void-duration-200"}`, + onClick: () => isFileDetailsOpened ? setFileDetailsOpenedState("user-closed") : setFileDetailsOpenedState("user-opened"), + type: "button", + disabled: numFilesChanged === 0, + children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + "svg", + { + className: "void-transition-transform void-duration-200 void-size-3.5", + style: { + transform: isFileDetailsOpened ? "rotate(0deg)" : "rotate(180deg)", + transition: "transform 0.2s cubic-bezier(0.25, 0.1, 0.25, 1)" + }, + xmlns: "http://www.w3.org/2000/svg", + width: "16", + height: "16", + viewBox: "0 0 24 24", + fill: "none", + stroke: "currentColor", + strokeWidth: "2", + strokeLinecap: "round", + strokeLinejoin: "round", + children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("polyline", { points: "18 15 12 9 6 15" }) + } + ), + numFilesChangedStr + ] + } + ); + return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_jsx_runtime15.Fragment, { children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-px-2", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + "div", + { + className: ` void-select-none void-flex void-w-full void-rounded-t-lg void-bg-void-bg-3 void-text-void-fg-3 void-text-xs void-text-nowrap void-overflow-hidden void-transition-all void-duration-200 void-ease-in-out ${isFileDetailsOpened ? "void-max-h-24" : "void-max-h-0"} `, + children: fileDetailsContent + } + ) }), + /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)( + "div", + { + className: ` void-select-none void-flex void-w-full void-rounded-t-lg void-bg-void-bg-3 void-text-void-fg-3 void-text-xs void-text-nowrap void-border-t void-border-l void-border-r void-border-zinc-300/10 void-px-2 void-py-1 void-justify-between `, + children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-flex void-gap-2 void-items-center", children: fileDetailsButton }), + /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "void-flex void-gap-2 void-items-center", children: [ + acceptRejectAllButtons, + threadStatusHTML + ] }) + ] + } + ) + ] }); +}; +var EditToolSoFar = ({ toolCallSoFar }) => { + if (!isABuiltinToolName(toolCallSoFar.name)) return null; + const accessor = useAccessor(); + const uri = toolCallSoFar.rawParams.uri ? URI.file(toolCallSoFar.rawParams.uri) : void 0; + const title = titleOfBuiltinToolName[toolCallSoFar.name].proposed; + const uriDone = toolCallSoFar.doneParams.includes("uri"); + const desc1 = /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("span", { className: "void-flex void-items-center", children: [ + uriDone ? getBasename(toolCallSoFar.rawParams["uri"] ?? "unknown") : `Generating`, + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(IconLoading, {}) + ] }); + const desc1OnClick = () => { + uri && voidOpenFileFn(uri, accessor); + }; + return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)( + ToolHeaderWrapper, + { + title, + desc1, + desc1OnClick, + children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + EditToolChildren, + { + uri, + code: toolCallSoFar.rawParams.search_replace_blocks ?? toolCallSoFar.rawParams.new_content ?? "", + type: "rewrite" + } + ), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(IconLoading, {}) + ] + } + ); +}; +var SidebarChat = () => { + const textAreaRef = (0, import_react19.useRef)(null); + const textAreaFnsRef = (0, import_react19.useRef)(null); + const accessor = useAccessor(); + const commandService = accessor.get("ICommandService"); + const chatThreadsService = accessor.get("IChatThreadService"); + const settingsState = useSettingsState(); + const chatThreadsState = useChatThreadsState(); + const currentThread = chatThreadsService.getCurrentThread(); + const previousMessages = currentThread?.messages ?? []; + const selections = currentThread.state.stagingSelections; + const setSelections = (s) => { + chatThreadsService.setCurrentThreadState({ stagingSelections: s }); + }; + const currThreadStreamState = useChatThreadsStreamState(chatThreadsState.currentThreadId); + const isRunning = currThreadStreamState?.isRunning; + const latestError = currThreadStreamState?.error; + const { displayContentSoFar, toolCallSoFar, reasoningSoFar } = currThreadStreamState?.llmInfo ?? {}; + const toolIsGenerating = toolCallSoFar && !toolCallSoFar.isDone; + const [instructionsAreEmpty, setInstructionsAreEmpty] = (0, import_react19.useState)(true); + const { + attachments: imageAttachments, + addImages: addImagesRaw, + removeImage, + retryImage, + cancelImage, + clearAll: clearImages, + focusedIndex: focusedImageIndex, + setFocusedIndex: setFocusedImageIndex, + validationError: imageValidationError + } = useImageAttachments(); + const { + attachments: pdfAttachments, + addPDFs: addPDFsRaw, + removePDF, + retryPDF, + cancelPDF, + clearAll: clearPDFs, + focusedIndex: focusedPDFIndex, + setFocusedIndex: setFocusedPDFIndex, + validationError: pdfValidationError + } = usePDFAttachments(); + const addPDFs = (0, import_react19.useCallback)(async (files) => { + const currentModelSel = settingsState.modelSelectionOfFeature["Chat"]; + if (currentModelSel?.providerName === "auto" && currentModelSel?.modelName === "auto") { + await addPDFsRaw(files); + return; + } + await addPDFsRaw(files); + }, [addPDFsRaw, settingsState]); + const addImages = (0, import_react19.useCallback)(async (files) => { + const currentModelSel = settingsState.modelSelectionOfFeature["Chat"]; + if (currentModelSel?.providerName === "auto" && currentModelSel?.modelName === "auto") { + await addImagesRaw(files); + return; + } + const { isSelectedModelVisionCapable, checkOllamaModelVisionCapable, hasVisionCapableApiKey, hasOllamaVisionModel, isOllamaAccessible } = await import('./visionModelHelper-N2YMBODM.js'); + let selectedIsVision = isSelectedModelVisionCapable(currentModelSel, settingsState.settingsOfProvider); + if (!selectedIsVision && currentModelSel?.providerName === "ollama") { + const ollamaAccessible2 = await isOllamaAccessible(); + if (ollamaAccessible2) { + selectedIsVision = await checkOllamaModelVisionCapable(currentModelSel.modelName); + } + } + if (selectedIsVision) { + await addImagesRaw(files); + return; + } + const hasApiKey = hasVisionCapableApiKey(settingsState.settingsOfProvider, currentModelSel); + const ollamaAccessible = await isOllamaAccessible(); + const hasOllamaVision = ollamaAccessible && await hasOllamaVisionModel(); + if (!hasApiKey && !hasOllamaVision) { + const notificationService2 = accessor.get("INotificationService"); + const commandService2 = accessor.get("ICommandService"); + notificationService2.notify({ + severity: 2, + // Severity.Warning + message: "No vision-capable models available. Please set up an API key (Anthropic, OpenAI, or Gemini) or install an Ollama vision model (e.g., llava, bakllava).", + actions: { + primary: [{ + id: "void.vision.setup", + label: "Setup Ollama Vision Models", + tooltip: "", + class: void 0, + enabled: true, + run: () => commandService2.executeCommand(CORTEXIDE_OPEN_SETTINGS_ACTION_ID) + }] + } + }); + return; + } + await addImagesRaw(files); + }, [addImagesRaw, settingsState, accessor]); + const isDisabled = instructionsAreEmpty && imageAttachments.length === 0 && pdfAttachments.length === 0 || !!isFeatureNameDisabled$1("Chat", settingsState); + const sidebarRef = (0, import_react19.useRef)(null); + const scrollContainerRef = (0, import_react19.useRef)(null); + const scrollToBottomCallback = (0, import_react19.useCallback)(() => { + scrollToBottom(scrollContainerRef); + }, [scrollContainerRef]); + const onSubmit = (0, import_react19.useCallback)(async (_forceSubmit) => { + if (isDisabled && !_forceSubmit) return; + if (isRunning) return; + const threadId2 = currentThread.id; + const userMessage = _forceSubmit || textAreaRef.current?.value || ""; + try { + const toolsService = accessor.get("IToolsService"); + const workspaceService = accessor.get("IWorkspaceContextService"); + const editorService = accessor.get("IEditorService"); + const languageService = accessor.get("ILanguageService"); + const historyService = accessor.get("IHistoryService"); + const notificationService2 = accessor.get("INotificationService"); + let outlineService = void 0; + try { + outlineService = accessor.get("IOutlineModelService"); + } catch { + } + const existing = /* @__PURE__ */ new Set(); + const existingSelections = chatThreadsState.allThreads[currentThread.id]?.state?.stagingSelections || []; + for (const s of existingSelections) existing.add(s.uri?.fsPath || ""); + const addFileSelection = async (uri) => { + if (!uri) return; + const key = uri.fsPath || uri.path || ""; + if (key && existing.has(key)) return; + existing.add(key); + const newSel = { + type: "File", + uri, + language: languageService.guessLanguageIdByFilepathOrFirstLine(uri) || "", + state: { wasAddedAsCurrentFile: false } + }; + await chatThreadsService.addNewStagingSelection(newSel); + }; + const addFolderSelection = async (uri) => { + if (!uri) return; + const key = uri.fsPath || uri.path || ""; + if (key && existing.has(key)) return; + existing.add(key); + const newSel = { + type: "Folder", + uri, + language: void 0, + state: void 0 + }; + await chatThreadsService.addNewStagingSelection(newSel); + }; + const tokens = []; + { + const quoted = [...userMessage.matchAll(/@"([^"]+)"/g)].map((m) => m[1]); + tokens.push(...quoted); + for (const m of userMessage.matchAll(/@([\w\.\-_/]+(?::\d+(?:-\d+)?)?)/g)) { + const t = m[1]; + if (t) tokens.push(t); + } + } + const special = /* @__PURE__ */ new Set(["selection", "workspace", "recent", "folder"]); + const unresolvedRefs = []; + for (const raw of tokens) { + if (raw === "selection") { + const active = editorService.activeTextEditorControl; + const activeResource = editorService.activeEditor?.resource; + const sel = active?.getSelection?.(); + if (activeResource && sel && !sel.isEmpty()) { + const newSel = { + type: "File", + uri: activeResource, + language: languageService.guessLanguageIdByFilepathOrFirstLine(activeResource) || "", + state: { wasAddedAsCurrentFile: false }, + range: sel + }; + const key = activeResource.fsPath || ""; + if (!existing.has(key)) { + existing.add(key); + await chatThreadsService.addNewStagingSelection(newSel); + } + } else { + unresolvedRefs.push("@selection (no active selection)"); + } + continue; + } + if (raw === "workspace") { + for (const folder of workspaceService.getWorkspace().folders) { + await addFolderSelection(folder.uri); + } + continue; + } + if (raw === "recent") { + for (const h of historyService.getHistory()) { + if (h.resource) await addFileSelection(h.resource); + } + continue; + } + if (raw.startsWith("sym:") || raw.startsWith("symbol:")) { + const symName = raw.replace(/^symbol?:/, ""); + let symbolFound = false; + if (outlineService && typeof outlineService.getCachedModels === "function") { + try { + const models = outlineService.getCachedModels(); + for (const om of models) { + const list2 = typeof om.asListOfDocumentSymbols === "function" ? om.asListOfDocumentSymbols() : []; + for (const s of list2) { + if ((s?.name || "").toLowerCase() === symName.toLowerCase()) { + symbolFound = true; + const uri = om.uri; + const range = s.range; + const key = uri?.fsPath || ""; + if (!existing.has(key)) { + existing.add(key); + await chatThreadsService.addNewStagingSelection({ + type: "File", + uri, + language: languageService.guessLanguageIdByFilepathOrFirstLine(uri) || "", + state: { wasAddedAsCurrentFile: false }, + range + }); + } + } + } + } + } catch (err) { + console.warn("Error resolving symbol:", err); + } + } + if (!symbolFound) { + unresolvedRefs.push(`@${raw} (symbol not found)`); + } + continue; + } + let query = raw; + let isFolderHint = false; + if (raw.startsWith("folder:")) { + isFolderHint = true; + query = raw.slice("folder:".length); + } + let resolved = false; + try { + const res = await (await toolsService.callTool.search_pathnames_only({ query, includePattern: null, pageNumber: 1 })).result; + const [first] = res.uris || []; + if (first) { + resolved = true; + if (isFolderHint) await addFolderSelection(first); + else + await addFileSelection(first); + } + } catch (err) { + console.warn("Error resolving reference:", err); + } + if (!resolved) { + unresolvedRefs.push(`@${raw}`); + } + } + if (unresolvedRefs.length > 0) { + const refList = unresolvedRefs.slice(0, 3).join(", "); + const moreText = unresolvedRefs.length > 3 ? ` and ${unresolvedRefs.length - 3} more` : ""; + notificationService2.warn(`Could not resolve reference${unresolvedRefs.length > 1 ? "s" : ""}: ${refList}${moreText}. Please check the file path or symbol name.`); + } + } catch (err) { + console.warn("Error resolving @references:", err); + } + const images = imageAttachments.filter((att) => att.uploadStatus === "success" || !att.uploadStatus).map((att) => ({ + id: att.id, + data: att.data, + mimeType: att.mimeType, + filename: att.filename, + width: att.width, + height: att.height, + size: att.size + })); + const processingPDFs = pdfAttachments.filter( + (att) => att.uploadStatus === "uploading" || att.uploadStatus === "processing" + ); + if (processingPDFs.length > 0) { + const processingNames = processingPDFs.map((p) => p.filename).join(", "); + notificationService.warn(`Some PDFs are still processing: ${processingNames}. They will be sent but may not have extracted text available yet.`); + } + const pdfs = pdfAttachments.filter((att) => att.uploadStatus !== "failed").map((att) => ({ + id: att.id, + data: att.data, + filename: att.filename, + size: att.size, + pageCount: att.pageCount, + selectedPages: att.selectedPages, + extractedText: att.extractedText, + pagePreviews: att.pagePreviews + })); + const currentModelSel = settingsState.modelSelectionOfFeature["Chat"]; + if ((images.length > 0 || pdfs.length > 0) && currentModelSel) { + const { isSelectedModelVisionCapable, checkOllamaModelVisionCapable, hasVisionCapableApiKey, hasOllamaVisionModel, isOllamaAccessible } = await import('./visionModelHelper-N2YMBODM.js'); + if (currentModelSel.providerName === "auto" && currentModelSel.modelName === "auto") { + if (images.length > 0) { + const hasApiKey = hasVisionCapableApiKey(settingsState.settingsOfProvider, currentModelSel); + const ollamaAccessible = await isOllamaAccessible(); + const hasOllamaVision = ollamaAccessible && await hasOllamaVisionModel(); + if (!hasApiKey && !hasOllamaVision) { + notificationService.error("No vision-capable models available. Please set up an API key (Anthropic, OpenAI, or Gemini) or install an Ollama vision model (e.g., llava, bakllava) to use images."); + return; + } + } + } else { + let isVisionCapable = isSelectedModelVisionCapable(currentModelSel, settingsState.settingsOfProvider); + if (!isVisionCapable && currentModelSel.providerName === "ollama") { + const ollamaAccessible = await isOllamaAccessible(); + if (ollamaAccessible) { + isVisionCapable = await checkOllamaModelVisionCapable(currentModelSel.modelName); + } + } + if (!isVisionCapable) { + const hasApiKey = hasVisionCapableApiKey(settingsState.settingsOfProvider, currentModelSel); + const ollamaAccessible = await isOllamaAccessible(); + const hasOllamaVision = ollamaAccessible && await hasOllamaVisionModel(); + if (!hasApiKey && !hasOllamaVision) { + notificationService.error("The selected model does not support images or PDFs. Please select a vision-capable model (e.g., Claude, GPT-4, Gemini, or an Ollama vision model like llava)."); + return; + } else { + notificationService.warn("The selected model may not support images or PDFs. Consider switching to a vision-capable model for better results."); + } + } + } + } + const stagingSelections = chatThreadsState.allThreads[currentThread.id]?.state?.stagingSelections || []; + setSelections([]); + if (textAreaFnsRef.current) { + textAreaFnsRef.current.setValue(""); + } + clearImages(); + clearPDFs(); + textAreaRef.current?.focus(); + try { + await chatThreadsService.addUserMessageAndStreamResponse({ userMessage, threadId: threadId2, images, pdfs, _chatSelections: stagingSelections }); + } catch (e) { + console.error("Error while sending message in chat:", e); + } + }, [chatThreadsService, isDisabled, isRunning, textAreaRef, textAreaFnsRef, setSelections, settingsState, imageAttachments, pdfAttachments, clearImages, clearPDFs, currentThread.id]); + const onAbort = async () => { + const threadId2 = currentThread.id; + await chatThreadsService.abortRunning(threadId2); + }; + accessor.get("IKeybindingService").lookupKeybinding(CORTEXIDE_CTRL_L_ACTION_ID)?.getLabel(); + const threadId = currentThread.id; + const currCheckpointIdx = chatThreadsState.allThreads[threadId]?.state?.currCheckpointIdx ?? void 0; + const mountedInfo = chatThreadsState.allThreads[threadId]?.state.mountedInfo; + const isResolved = mountedInfo?.mountedIsResolvedRef.current; + (0, import_react19.useEffect)(() => { + if (isResolved) return; + mountedInfo?._whenMountedResolver?.({ + textAreaRef, + scrollToBottom: scrollToBottomCallback + }); + }, [threadId, textAreaRef, scrollContainerRef, isResolved, mountedInfo, scrollToBottomCallback]); + const previousMessagesHTML = (0, import_react19.useMemo)(() => { + return previousMessages.map((message, i) => { + const messageKey = message.id || `msg-${i}`; + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + ChatBubble, + { + currCheckpointIdx, + chatMessage: message, + messageIdx: i, + isCommitted: true, + chatIsRunning: isRunning, + threadId, + _scrollToBottom: scrollToBottomCallback + }, + messageKey + ); + }); + }, [previousMessages, threadId, currCheckpointIdx, isRunning, scrollToBottomCallback]); + const streamingChatIdx = previousMessagesHTML.length; + const streamingChatMessage = (0, import_react19.useMemo)(() => ({ + role: "assistant", + displayContent: displayContentSoFar ?? "", + reasoning: reasoningSoFar ?? "", + anthropicReasoning: null + }), [displayContentSoFar, reasoningSoFar]); + const isActivelyStreaming = isRunning === "LLM" || isRunning === "preparing"; + const currStreamingMessageHTML = isActivelyStreaming && (reasoningSoFar || displayContentSoFar) ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + ChatBubble, + { + currCheckpointIdx, + chatMessage: streamingChatMessage, + messageIdx: streamingChatIdx, + isCommitted: false, + chatIsRunning: isRunning, + threadId, + _scrollToBottom: null + }, + "curr-streaming-msg" + ) : null; + const generatingTool = toolIsGenerating ? toolCallSoFar.name === "edit_file" || toolCallSoFar.name === "rewrite_file" ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + EditToolSoFar, + { + toolCallSoFar + }, + "curr-streaming-tool" + ) : null : null; + const messagesHTML = /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)( + ScrollToBottomContainer, + { + scrollContainerRef, + className: ` void-flex void-flex-col void-px-3 void-py-3 void-space-y-3 void-w-full void-h-full void-overflow-x-hidden void-overflow-y-auto ${previousMessagesHTML.length === 0 && !displayContentSoFar ? "void-hidden" : ""} `, + children: [ + previousMessagesHTML, + currStreamingMessageHTML, + generatingTool, + isRunning === "LLM" || isRunning === "preparing" ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ProseWrapper, { children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + IconLoading, + { + className: "void-opacity-50 void-text-sm", + showTokenCount: ( + // Only show token count when actively streaming (LLM) + // When isRunning is 'idle' or undefined, the message is complete and token count should stop + displayContentSoFar && isRunning === "LLM" ? Math.ceil(displayContentSoFar.length / 4) : void 0 + ) + } + ) }) : null, + latestError === void 0 ? null : /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "void-px-2 void-my-1", children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + ErrorDisplay, + { + message: latestError.message, + fullError: latestError.fullError, + onDismiss: () => { + chatThreadsService.dismissStreamError(currentThread.id); + }, + showDismiss: true + } + ), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(WarningBox, { className: "void-text-sm void-my-1 void-mx-3", onClick: () => { + commandService.executeCommand(CORTEXIDE_OPEN_SETTINGS_ACTION_ID); + }, text: "Open settings" }) + ] }) + ] + }, + "messages" + chatThreadsState.currentThreadId + ); + const onChangeText = (0, import_react19.useCallback)((newStr) => { + setInstructionsAreEmpty(!newStr); + }, [setInstructionsAreEmpty]); + const onKeyDown = (0, import_react19.useCallback)((e) => { + if (e.key === "Enter" && !e.shiftKey && !e.nativeEvent.isComposing) { + onSubmit(); + } else if (e.key === "Escape" && isRunning) { + onAbort(); + } + }, [onSubmit, onAbort, isRunning]); + const [ctxWarned, setCtxWarned] = (0, import_react19.useState)(false); + const estimateTokens = (0, import_react19.useCallback)((s) => Math.ceil((s || "").length / 4), []); + const modelSel = settingsState.modelSelectionOfFeature["Chat"]; + const { contextBudget, messagesTokens } = (0, import_react19.useMemo)(() => { + let budget = 0; + let tokens = 0; + if (modelSel && isValidProviderModelSelection(modelSel)) { + const { providerName, modelName } = modelSel; + const caps = getModelCapabilities(providerName, modelName, settingsState.overridesOfModel); + const contextWindow = caps.contextWindow; + const msOpts = settingsState.optionsOfModelSelection["Chat"][providerName]?.[modelName]; + const isReasoningEnabled2 = getIsReasoningEnabledState("Chat", providerName, modelName, msOpts, settingsState.overridesOfModel); + const rot = getReservedOutputTokenSpace(providerName, modelName, { isReasoningEnabled: isReasoningEnabled2, overridesOfModel: settingsState.overridesOfModel }) || 0; + budget = Math.max(256, Math.floor(contextWindow * 0.8) - rot); + tokens = previousMessages.reduce((acc, m) => { + if (m.role === "user") return acc + estimateTokens(m.content || ""); + if (m.role === "assistant") return acc + estimateTokens(m.displayContent || m.content || "" || ""); + return acc; + }, 0); + } + return { contextBudget: budget, messagesTokens: tokens }; + }, [modelSel, previousMessages, settingsState.overridesOfModel, estimateTokens]); + const draftTokens = estimateTokens(textAreaRef.current?.value || ""); + const contextTotal = messagesTokens + draftTokens; + const contextPct = contextBudget > 0 ? contextTotal / contextBudget : 0; + (0, import_react19.useEffect)(() => { + if (contextPct > 0.8 && contextPct < 1 && !ctxWarned) { + try { + accessor.get("INotificationService").info(`Context nearing limit: ~${contextTotal} / ${contextBudget} tokens. Older messages may be summarized.`); + } catch { + } + setCtxWarned(true); + } + if (contextPct < 0.6 && ctxWarned) setCtxWarned(false); + }, [contextPct, ctxWarned, contextTotal, contextBudget, accessor]); + const inputChatArea = /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)( + VoidChatArea, + { + featureName: "Chat", + onSubmit: () => onSubmit(), + onAbort, + isStreaming: !!isRunning, + isDisabled, + showSelections: true, + selections, + setSelections, + onClickAnywhere: () => { + textAreaRef.current?.focus(); + }, + imageAttachments: imageAttachments.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_jsx_runtime15.Fragment, { children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + ImageAttachmentList, + { + attachments: imageAttachments, + onRemove: removeImage, + onRetry: retryImage, + onCancel: cancelImage, + focusedIndex: focusedImageIndex, + onFocusChange: setFocusedImageIndex + } + ), + imageValidationError && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-px-2 void-py-1 void-text-xs void-text-red-500 void-bg-red-500/10 void-border void-border-red-500/20 void-rounded-md void-mx-2", children: imageValidationError.message }) + ] }) : null, + onImagePaste: addImages, + onImageDrop: addImages, + onPDFDrop: addPDFs, + pdfAttachments: pdfAttachments.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_jsx_runtime15.Fragment, { children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + PDFAttachmentList, + { + attachments: pdfAttachments, + onRemove: removePDF, + onRetry: retryPDF, + onCancel: cancelPDF, + focusedIndex: focusedPDFIndex, + onFocusChange: setFocusedPDFIndex + } + ), + pdfValidationError && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-px-2 void-py-1 void-text-xs void-text-red-500 void-bg-red-500/10 void-border void-border-red-500/20 void-rounded-md void-mx-2", children: pdfValidationError }) + ] }) : null, + children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + VoidInputBox2, + { + enableAtToMention: true, + appearance: "chatDark", + className: `void-min-h-[60px] void-px-3 void-py-3 void-rounded-2xl`, + placeholder: "Plan, @ for context", + onChangeText, + onKeyDown, + onFocus: () => { + chatThreadsService.setCurrentlyFocusedMessageIdx(void 0); + }, + ref: textAreaRef, + fnsRef: textAreaFnsRef, + multiline: true + } + ), + selections.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-mt-1 void-flex void-flex-wrap void-gap-1 void-px-1", children: selections.map((sel, idx) => { + const name = sel.type === "Folder" ? sel.uri?.path?.split("/").filter(Boolean).pop() || "folder" : sel.uri?.path?.split("/").pop() || "file"; + const fullPath = sel.uri?.fsPath || sel.uri?.path || name; + const rangeLabel = sel.range ? ` \u2022 ${sel.range.startLineNumber}-${sel.range.endLineNumber}` : ""; + const tooltipText = sel.range ? `${fullPath} (lines ${sel.range.startLineNumber}-${sel.range.endLineNumber})` : fullPath; + return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)( + "span", + { + className: "void-inline-flex void-items-center void-gap-1 void-px-2 void-py-0.5 void-rounded void-border void-border-void-border-3 void-bg-void-bg-1 void-text-void-fg-2 void-text-[11px]", + title: tooltipText, + "aria-label": tooltipText, + children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "void-opacity-80", children: sel.type === "Folder" ? "Folder" : "File" }), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "void-text-void-fg-1", children: name }), + rangeLabel && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "void-opacity-70", children: rangeLabel }), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + "button", + { + className: "void-ml-1 void-text-void-fg-3 hover:void-text-void-fg-1", + onClick: () => { + chatThreadsService.popStagingSelections(1); + }, + "aria-label": `Remove ${name}`, + children: "\xD7" + } + ) + ] + }, + idx + ); + }) }) + ] + } + ); + const isLandingPage = previousMessages.length === 0; + const initiallySuggestedPromptsHTML = /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-flex void-flex-col void-gap-2 void-w-full void-text-nowrap void-text-void-fg-3 void-select-none", children: [ + "Summarize my codebase", + "How do types work in Rust?", + "Create a .voidrules file for me" + ].map( + (text, index3) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + "div", + { + className: "void-py-1 void-px-2 void-rounded void-text-sm void-bg-zinc-700/5 hover:void-bg-zinc-700/10 dark:void-bg-zinc-300/5 dark:hover:void-bg-zinc-300/10 void-cursor-pointer void-opacity-80 hover:void-opacity-100", + onClick: () => onSubmit(text), + children: text + }, + index3 + ) + ) }); + const threadPageInput = /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-px-4", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(CommandBarInChat, {}) }), + /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "void-px-2 void-pb-2", children: [ + inputChatArea, + modelSel ? (() => { + const pctNum = Math.max(0, Math.min(100, Math.round(contextPct * 100))); + const color = contextPct >= 1 ? "text-red-500" : contextPct > 0.8 ? "text-amber-500" : "text-void-fg-3"; + const barColor = contextPct >= 1 ? "bg-red-500" : contextPct > 0.8 ? "bg-amber-500" : "bg-void-fg-3/60"; + return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "void-mt-1", children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: `void-text-[10px] ${color}`, children: [ + "Context ~", + contextTotal, + " / ", + contextBudget, + " tokens (", + pctNum, + "%)" + ] }), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-h-[3px] void-w-full void-bg-void-border-3 void-rounded void-mt-0.5", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: `void-h-[3px] ${barColor} void-rounded`, style: { width: `${pctNum}%` }, "aria-label": `Context usage ${pctNum}%` }) }) + ] }); + })() : null + ] }) + ] }, "input" + chatThreadsState.currentThreadId); + const landingPageInput = /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "void-pt-8", children: [ + inputChatArea, + modelSel ? (() => { + const pctNum = Math.max(0, Math.min(100, Math.round(contextPct * 100))); + const color = contextPct >= 1 ? "text-red-500" : contextPct > 0.8 ? "text-amber-500" : "text-void-fg-3"; + const barColor = contextPct >= 1 ? "bg-red-500" : contextPct > 0.8 ? "bg-amber-500" : "bg-void-fg-3/60"; + return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "void-mt-1 void-px-2", children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: `void-text-[10px] ${color}`, children: [ + "Context ~", + contextTotal, + " / ", + contextBudget, + " tokens (", + pctNum, + "%)" + ] }), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-h-[3px] void-w-full void-bg-void-border-3 void-rounded void-mt-0.5", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: `void-h-[3px] ${barColor} void-rounded`, style: { width: `${pctNum}%` }, "aria-label": `Context usage ${pctNum}%` }) }) + ] }); + })() : null + ] }) }); + const keybindingService = accessor.get("IKeybindingService"); + const quickActions = [ + { id: "void.explainCode", label: "Explain" }, + { id: "void.refactorCode", label: "Refactor" }, + { id: "void.addTests", label: "Add Tests" }, + { id: "void.fixTests", label: "Fix Tests" }, + { id: "void.writeDocstring", label: "Docstring" }, + { id: "void.optimizeCode", label: "Optimize" }, + { id: "void.debugCode", label: "Debug" } + ]; + const QuickActionsBar = () => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-w-full void-flex void-items-center void-justify-center void-gap-2 void-flex-wrap void-mt-3 void-select-none void-px-1", children: quickActions.map(({ id, label }) => { + const kb = keybindingService.lookupKeybinding(id)?.getLabel(); + return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)( + "button", + { + className: "void-px-3 void-py-1.5 void-rounded-full void-bg-gradient-to-br void-from-[var(--cortex-surface-2)] void-via-[var(--cortex-surface-3)] void-to-[var(--cortex-surface-4)] void-border void-border-void-border-3 void-text-xs void-text-void-fg-1 void-shadow-[0_3px_12px_rgba(0,0,0,0.45)] hover:-void-translate-y-0.5 void-transition-all void-duration-150 void-ease-out void-void-focus-ring", + onClick: () => commandService.executeCommand(id), + title: kb ? `${label} (${kb})` : label, + children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { children: label }), + kb && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "void-ml-1 void-px-1 void-rounded void-bg-[var(--vscode-keybindingLabel-background)] void-text-[var(--vscode-keybindingLabel-foreground)] void-border void-border-[var(--vscode-keybindingLabel-border)]", children: kb }) + ] + }, + id + ); + }) }); + const ContextChipsBar = () => { + const editorService = accessor.get("IEditorService"); + const activeEditor = editorService?.activeEditor; + const activeResource = activeEditor?.resource; + const activeFileLabel = activeResource ? activeResource.path?.split("/").pop() : void 0; + const modelSel2 = settingsState.modelSelectionOfFeature["Chat"]; + const modelLabel = modelSel2 ? `${modelSel2.providerName}:${modelSel2.modelName}` : void 0; + if (!activeFileLabel && !modelLabel) return null; + return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "void-w-full void-flex void-items-center void-gap-2 void-flex-wrap void-mt-2 void-mb-1 void-px-1", children: [ + activeFileLabel && /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("span", { className: "void-inline-flex void-items-center void-gap-1 void-px-2 void-py-0.5 void-rounded void-border void-border-void-border-3 void-bg-void-bg-1 void-text-void-fg-2 void-text-[11px]", children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { children: "File" }), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "void-text-void-fg-1", children: activeFileLabel }) + ] }), + modelLabel && /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("span", { className: "void-inline-flex void-items-center void-gap-1 void-px-2 void-py-0.5 void-rounded void-border void-border-void-border-3 void-bg-void-bg-1 void-text-void-fg-2 void-text-[11px]", children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { children: "Model" }), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "void-text-void-fg-1", children: modelLabel }) + ] }) + ] }); + }; + const landingPageContent = /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)( + "div", + { + ref: sidebarRef, + className: "void-w-full void-h-full void-max-h-full void-flex void-flex-col void-overflow-auto", + children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ErrorBoundary_default, { children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ChatTabsBar, {}) }), + /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "void-px-3", children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ErrorBoundary_default, { children: landingPageInput }), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ErrorBoundary_default, { children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ContextChipsBar, {}) }), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ErrorBoundary_default, { children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(QuickActionsBar, {}) }), + Object.keys(chatThreadsState.allThreads).length > 1 ? ( + // show if there are threads + /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(ErrorBoundary_default, { children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-pt-6 void-mb-2 void-text-void-fg-3 void-text-root void-select-none void-pointer-events-none", children: "Previous Threads" }), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(PastThreadsList, {}) + ] }) + ) : /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(ErrorBoundary_default, { children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "void-pt-6 void-mb-2 void-text-void-fg-3 void-text-root void-select-none void-pointer-events-none", children: "Suggestions" }), + initiallySuggestedPromptsHTML + ] }) + ] }) + ] + } + ); + const threadPageContent = /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)( + "div", + { + ref: sidebarRef, + className: "void-w-full void-h-full void-flex void-flex-col void-overflow-hidden", + children: [ + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ErrorBoundary_default, { children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ChatTabsBar, {}) }), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ErrorBoundary_default, { children: messagesHTML }), + /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ErrorBoundary_default, { children: threadPageInput }) + ] + } + ); + return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)( + import_react19.Fragment, + { + children: isLandingPage ? landingPageContent : threadPageContent + }, + threadId + ); +}; + +// src2/void-settings-tsx/WarningBox.tsx +var import_jsx_runtime16 = __toESM(require_jsx_runtime(), 1); +var WarningBox = ({ text, onClick, className }) => { + return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)( + "div", + { + className: ` void-text-void-warning void-brightness-90 void-opacity-90 void-w-fit void-text-xs void-text-ellipsis ${onClick ? `hover:void-brightness-75 void-transition-all void-duration-200 void-cursor-pointer` : ""} void-flex void-items-center void-flex-nowrap ${className} `, + onClick, + children: [ + /* @__PURE__ */ (0, import_jsx_runtime16.jsx)( + IconWarning, + { + size: 14, + className: "void-mr-1 void-flex-shrink-0" + } + ), + /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { children: text }) + ] + } + ); +}; + +// src2/sidebar-tsx/ErrorBoundary.tsx +var import_jsx_runtime17 = __toESM(require_jsx_runtime(), 1); +var ErrorBoundary = class extends import_react20.Component { + constructor(props) { + super(props); + this.state = { + hasError: false, + error: null, + errorInfo: null + }; + } + static getDerivedStateFromError(error2) { + return { + hasError: true, + error: error2 + }; + } + componentDidCatch(error2, errorInfo) { + this.setState({ + error: error2, + errorInfo + }); + } + render() { + if (this.state.hasError && this.state.error) { + if (this.props.fallback) { + return this.props.fallback; + } + return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(WarningBox, { text: this.state.error + "" }); + } + return this.props.children; + } +}; +var ErrorBoundary_default = ErrorBoundary; +var import_jsx_runtime18 = __toESM(require_jsx_runtime(), 1); +var ButtonLeftTextRightOption = ({ text, leftButton }) => { + return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "void-flex void-items-center void-text-void-fg-3 void-px-3 void-py-0.5 void-rounded-sm void-overflow-hidden void-gap-2", children: [ + leftButton ? leftButton : null, + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { children: text }) + ] }); +}; +var RefreshModelButton = ({ providerName }) => { + const refreshModelState = useRefreshModelState(); + const accessor = useAccessor(); + const refreshModelService = accessor.get("IRefreshModelService"); + const metricsService = accessor.get("IMetricsService"); + const [justFinished, setJustFinished] = (0, import_react21.useState)(null); + useRefreshModelListener( + (0, import_react21.useCallback)((providerName2, refreshModelState2) => { + if (providerName2 !== providerName) return; + const { state: state2 } = refreshModelState2[providerName]; + if (!(state2 === "finished" || state2 === "error")) return; + setJustFinished(state2); + const tid = setTimeout(() => { + setJustFinished(null); + }, 2e3); + return () => clearTimeout(tid); + }, [providerName]) + ); + const { state } = refreshModelState[providerName]; + const { title: providerTitle } = displayInfoOfProviderName(providerName); + return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + ButtonLeftTextRightOption, + { + leftButton: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + "button", + { + className: "void-flex void-items-center", + disabled: state === "refreshing" || justFinished !== null, + onClick: () => { + refreshModelService.startRefreshingModels(providerName, { enableProviderOnSuccess: false, doNotFire: false }); + metricsService.capture("Click", { providerName, action: "Refresh Models" }); + }, + children: justFinished === "finished" ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Check, { className: "void-stroke-green-500 void-size-3" }) : justFinished === "error" ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(X, { className: "void-stroke-red-500 void-size-3" }) : state === "refreshing" ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(LoaderCircle, { className: "void-size-3 void-animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(RefreshCw, { className: "void-size-3" }) + } + ), + text: justFinished === "finished" ? `${providerTitle} Models are up-to-date!` : justFinished === "error" ? `${providerTitle} not found!` : `Manually refresh ${providerTitle} models.` + } + ); +}; +var RefreshableModels = () => { + const settingsState = useSettingsState(); + const buttons = refreshableProviderNames.map((providerName) => { + if (!settingsState.settingsOfProvider[providerName]._didFillInProviderSettings) return null; + return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(RefreshModelButton, { providerName }, providerName); + }); + return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_jsx_runtime18.Fragment, { children: buttons }); +}; +var RefreshRemoteCatalogButton = ({ providerName }) => { + const accessor = useAccessor(); + const refreshModelService = accessor.get("IRefreshModelService"); + const metricsService = accessor.get("IMetricsService"); + const [isRefreshing, setIsRefreshing] = (0, import_react21.useState)(false); + const [justFinished, setJustFinished] = (0, import_react21.useState)(null); + const { title: providerTitle } = displayInfoOfProviderName(providerName); + const handleRefresh = async () => { + if (isRefreshing) return; + setIsRefreshing(true); + setJustFinished(null); + try { + await refreshModelService.refreshRemoteCatalog(providerName, true); + setJustFinished("finished"); + metricsService.capture("Click", { providerName, action: "Refresh Remote Catalog" }); + } catch (error2) { + console.error("Failed to refresh remote catalog:", error2); + setJustFinished("error"); + } finally { + setIsRefreshing(false); + const tid = setTimeout(() => { + setJustFinished(null); + }, 2e3); + return () => clearTimeout(tid); + } + }; + return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + ButtonLeftTextRightOption, + { + leftButton: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + "button", + { + className: "void-flex void-items-center", + disabled: isRefreshing || justFinished !== null, + onClick: handleRefresh, + children: justFinished === "finished" ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Check, { className: "void-stroke-green-500 void-size-3" }) : justFinished === "error" ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(X, { className: "void-stroke-red-500 void-size-3" }) : isRefreshing ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(LoaderCircle, { className: "void-size-3 void-animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(RefreshCw, { className: "void-size-3" }) + } + ), + text: justFinished === "finished" ? `${providerTitle} catalog refreshed!` : justFinished === "error" ? `Failed to refresh ${providerTitle} catalog` : `Refresh ${providerTitle} model catalog` + } + ); +}; +var RefreshableRemoteCatalogs = () => { + const settingsState = useSettingsState(); + const buttons = nonlocalProviderNames.map((providerName) => { + if (!settingsState.settingsOfProvider[providerName]._didFillInProviderSettings) return null; + return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(RefreshRemoteCatalogButton, { providerName }, providerName); + }); + const validButtons = buttons.filter(Boolean); + if (validButtons.length === 0) return null; + return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_jsx_runtime18.Fragment, { children: validButtons }); +}; +var AnimatedCheckmarkButton = ({ text, className }) => { + const [dashOffset, setDashOffset] = (0, import_react21.useState)(40); + (0, import_react21.useEffect)(() => { + const startTime = performance.now(); + const duration = 500; + const animate = (currentTime) => { + const elapsed = currentTime - startTime; + const progress = Math.min(elapsed / duration, 1); + const newOffset = 40 - progress * 40; + setDashOffset(newOffset); + if (progress < 1) { + requestAnimationFrame(animate); + } + }; + const animationId = requestAnimationFrame(animate); + return () => cancelAnimationFrame(animationId); + }, []); + return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)( + "div", + { + className: `void-flex void-items-center void-gap-1.5 void-w-fit ${className ? className : `void-px-2 void-py-0.5 void-text-xs void-text-zinc-900 void-bg-zinc-100 void-rounded-sm`} `, + children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("svg", { className: "void-size-4", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + "path", + { + d: "M5 13l4 4L19 7", + stroke: "currentColor", + strokeWidth: "2", + strokeLinecap: "round", + strokeLinejoin: "round", + style: { + strokeDasharray: 40, + strokeDashoffset: dashOffset + } + } + ) }), + text + ] + } + ); +}; +var AddButton = ({ disabled, text = "Add", ...props }) => { + return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + "button", + { + disabled, + className: `void-bg-[#0e70c0] void-px-3 void-py-1 void-text-white void-rounded-sm ${!disabled ? "hover:void-bg-[#1177cb] void-cursor-pointer" : "void-opacity-50 void-cursor-not-allowed void-bg-opacity-70"}`, + ...props, + children: text + } + ); +}; +var ConfirmButton = ({ children, onConfirm, className }) => { + const [confirm2, setConfirm] = (0, import_react21.useState)(false); + const ref = (0, import_react21.useRef)(null); + (0, import_react21.useEffect)(() => { + if (!confirm2) return; + const handleClickOutside = (e) => { + if (ref.current && !ref.current.contains(e.target)) { + setConfirm(false); + } + }; + document.addEventListener("click", handleClickOutside); + return () => document.removeEventListener("click", handleClickOutside); + }, [confirm2]); + return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { ref, className: `void-inline-block`, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(VoidButtonBgDarken, { className, onClick: () => { + if (!confirm2) { + setConfirm(true); + } else { + onConfirm(); + setConfirm(false); + } + }, children: confirm2 ? `Confirm Reset` : children }) }); +}; +var SimpleModelSettingsDialog = ({ + isOpen, + onClose, + modelInfo +}) => { + if (!isOpen || !modelInfo) return null; + const { modelName, providerName, type } = modelInfo; + const accessor = useAccessor(); + const settingsState = useSettingsState(); + const mouseDownInsideModal = (0, import_react21.useRef)(false); + const settingsStateService = accessor.get("ICortexideSettingsService"); + const defaultModelCapabilities = getModelCapabilities(providerName, modelName, void 0); + const currentOverrides = settingsState.overridesOfModel?.[providerName]?.[modelName] ?? void 0; + const { recognizedModelName, isUnrecognizedModel } = defaultModelCapabilities; + const partialDefaults = {}; + for (const k of modelOverrideKeys) { + if (defaultModelCapabilities[k]) partialDefaults[k] = defaultModelCapabilities[k]; + } + const placeholder = JSON.stringify(partialDefaults, null, 2); + const [overrideEnabled, setOverrideEnabled] = (0, import_react21.useState)(() => !!currentOverrides); + const [errorMsg, setErrorMsg] = (0, import_react21.useState)(null); + const textAreaRef = (0, import_react21.useRef)(null); + (0, import_react21.useEffect)(() => { + if (!isOpen) return; + const cur = settingsState.overridesOfModel?.[providerName]?.[modelName]; + setOverrideEnabled(!!cur); + setErrorMsg(null); + }, [isOpen, providerName, modelName, settingsState.overridesOfModel, placeholder]); + const onSave = async () => { + if (!overrideEnabled) { + await settingsStateService.setOverridesOfModel(providerName, modelName, void 0); + onClose(); + return; + } + let parsedInput; + if (textAreaRef.current?.value) { + try { + parsedInput = JSON.parse(textAreaRef.current.value); + } catch (e) { + setErrorMsg("Invalid JSON"); + return; + } + } else { + setErrorMsg("Invalid JSON"); + return; + } + const cleaned = {}; + for (const k of modelOverrideKeys) { + if (!(k in parsedInput)) continue; + const isEmpty = parsedInput[k] === "" || parsedInput[k] === null || parsedInput[k] === void 0; + if (!isEmpty) { + cleaned[k] = parsedInput[k]; + } + } + await settingsStateService.setOverridesOfModel(providerName, modelName, cleaned); + onClose(); + }; + const sourcecodeOverridesLink = `https://github.com/opencortexide/cortexide/blob/main/src/vs/workbench/contrib/cortexide/common/modelCapabilities.ts#L146-L172`; + return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + "div", + { + className: "void-fixed void-inset-0 void-bg-black/50 void-flex void-items-center void-justify-center void-z-[9999999]", + onMouseDown: () => { + mouseDownInsideModal.current = false; + }, + onMouseUp: () => { + if (!mouseDownInsideModal.current) { + onClose(); + } + mouseDownInsideModal.current = false; + }, + children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)( + "div", + { + className: "void-bg-void-bg-1 void-rounded-md void-p-4 void-max-w-xl void-w-full void-shadow-xl void-overflow-y-auto void-max-h-[90vh]", + onClick: (e) => e.stopPropagation(), + onMouseDown: (e) => { + mouseDownInsideModal.current = true; + e.stopPropagation(); + }, + children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "void-flex void-justify-between void-items-center void-mb-4", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("h3", { className: "void-text-lg void-font-medium", children: [ + "Change Defaults for ", + modelName, + " (", + displayInfoOfProviderName(providerName).title, + ")" + ] }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + "button", + { + onClick: onClose, + className: "void-text-void-fg-3 hover:void-text-void-fg-1", + children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(X, { className: "void-size-5" }) + } + ) + ] }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "void-text-sm void-text-void-fg-3 void-mb-4", children: type === "default" ? `${modelName} comes packaged with CortexIDE, so you shouldn't need to change these settings.` : isUnrecognizedModel ? `Model not recognized by CortexIDE.` : `CortexIDE recognizes ${modelName} ("${recognizedModelName}").` }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "void-flex void-items-center void-gap-2 void-mb-4", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(VoidSwitch, { size: "xs", value: overrideEnabled, onChange: setOverrideEnabled }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "void-text-void-fg-3 void-text-sm", children: "Override model defaults" }) + ] }), + overrideEnabled && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "void-text-sm void-text-void-fg-3 void-mb-4", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ChatMarkdownRender, { string: `See the [sourcecode](${sourcecodeOverridesLink}) for a reference on how to set this JSON (advanced).`, chatMessageLocation: void 0 }) }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + "textarea", + { + ref: textAreaRef, + className: `void-w-full void-min-h-[200px] void-p-2 void-rounded-sm void-border void-border-void-border-2 void-bg-void-bg-2 void-resize-none void-font-mono void-text-sm ${!overrideEnabled ? "void-text-void-fg-3" : ""}`, + defaultValue: overrideEnabled && currentOverrides ? JSON.stringify(currentOverrides, null, 2) : placeholder, + placeholder, + readOnly: !overrideEnabled + }, + overrideEnabled + "" + ), + errorMsg && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "void-text-red-500 void-mt-2 void-text-sm", children: errorMsg }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "void-flex void-justify-end void-gap-2 void-mt-4", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(VoidButtonBgDarken, { onClick: onClose, className: "void-px-3 void-py-1", children: "Cancel" }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + VoidButtonBgDarken, + { + onClick: onSave, + className: "void-px-3 void-py-1 void-bg-[#0e70c0] void-text-white", + children: "Save" + } + ) + ] }) + ] + } + ) + } + ); +}; +var ModelDump = ({ filteredProviders }) => { + const accessor = useAccessor(); + const settingsStateService = accessor.get("ICortexideSettingsService"); + const settingsState = useSettingsState(); + const [openSettingsModel, setOpenSettingsModel] = (0, import_react21.useState)(null); + const [isAddModelOpen, setIsAddModelOpen] = (0, import_react21.useState)(false); + const [showCheckmark, setShowCheckmark] = (0, import_react21.useState)(false); + const [userChosenProviderName, setUserChosenProviderName] = (0, import_react21.useState)(null); + const [modelName, setModelName] = (0, import_react21.useState)(""); + const [errorString, setErrorString] = (0, import_react21.useState)(""); + const modelDump = []; + const providersToShow = filteredProviders || providerNames; + for (let providerName of providersToShow) { + const providerSettings = settingsState.settingsOfProvider[providerName]; + modelDump.push(...providerSettings.models.map((model) => ({ ...model, providerName, providerEnabled: !!providerSettings._didFillInProviderSettings }))); + } + modelDump.sort((a, b) => { + return Number(b.providerEnabled) - Number(a.providerEnabled); + }); + const handleAddModel = () => { + if (!userChosenProviderName) { + setErrorString("Please select a provider."); + return; + } + if (!modelName) { + setErrorString("Please enter a model name."); + return; + } + if (settingsState.settingsOfProvider[userChosenProviderName].models.find((m) => m.modelName === modelName)) { + setErrorString(`This model already exists.`); + return; + } + settingsStateService.addModel(userChosenProviderName, modelName); + setShowCheckmark(true); + setTimeout(() => { + setShowCheckmark(false); + setIsAddModelOpen(false); + setUserChosenProviderName(null); + setModelName(""); + }, 1500); + setErrorString(""); + }; + return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "", children: [ + modelDump.map((m, i) => { + const { isHidden, type, modelName: modelName2, providerName, providerEnabled } = m; + const isNewProviderName = (i > 0 ? modelDump[i - 1] : void 0)?.providerName !== providerName; + const providerTitle = displayInfoOfProviderName(providerName).title; + const disabled = !providerEnabled; + const value = disabled ? false : !isHidden; + const tooltipName = disabled ? `Add ${providerTitle} to enable` : value === true ? "Show in Dropdown" : "Hide from Dropdown"; + const detailAboutModel = type === "autodetected" ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Asterisk, { size: 14, className: "void-inline-block void-align-text-top void-brightness-115 void-stroke-[2] void-text-[#0e70c0]", "data-tooltip-id": "void-tooltip", "data-tooltip-place": "right", "data-tooltip-content": "Detected locally" }) : type === "custom" ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Asterisk, { size: 14, className: "void-inline-block void-align-text-top void-brightness-115 void-stroke-[2] void-text-[#0e70c0]", "data-tooltip-id": "void-tooltip", "data-tooltip-place": "right", "data-tooltip-content": "Custom model" }) : void 0; + const hasOverrides = !!settingsState.overridesOfModel?.[providerName]?.[modelName2]; + return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)( + "div", + { + className: `void-flex void-items-center void-justify-between void-gap-4 hover:void-bg-black/10 dark:hover:void-bg-gray-300/10 void-py-1 void-px-3 void-rounded-sm void-overflow-hidden void-cursor-default void-truncate void-group `, + children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: `void-flex void-flex-grow void-items-center void-gap-4`, children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "void-w-full void-max-w-32", children: isNewProviderName ? providerTitle : "" }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "void-w-fit void-max-w-[400px] void-truncate", children: modelName2 }) + ] }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "void-flex void-items-center void-gap-2 void-w-fit", children: [ + disabled ? null : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "void-w-5 void-flex void-items-center void-justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + "button", + { + onClick: () => { + setOpenSettingsModel({ modelName: modelName2, providerName, type }); + }, + "data-tooltip-id": "void-tooltip", + "data-tooltip-place": "right", + "data-tooltip-content": "Advanced Settings", + className: `${hasOverrides ? "" : "void-opacity-0 group-hover:void-opacity-100"} void-transition-opacity`, + children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Plus, { size: 12, className: "void-text-void-fg-3 void-opacity-50" }) + } + ) }), + detailAboutModel, + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + VoidSwitch, + { + value, + onChange: () => { + settingsStateService.toggleModelHidden(providerName, modelName2); + }, + disabled, + size: "sm", + "data-tooltip-id": "void-tooltip", + "data-tooltip-place": "right", + "data-tooltip-content": tooltipName + } + ), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: `void-w-5 void-flex void-items-center void-justify-center`, children: type === "default" || type === "autodetected" ? null : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + "button", + { + onClick: () => { + settingsStateService.deleteModel(providerName, modelName2); + }, + "data-tooltip-id": "void-tooltip", + "data-tooltip-place": "right", + "data-tooltip-content": "Delete", + className: `${hasOverrides ? "" : "void-opacity-0 group-hover:void-opacity-100"} void-transition-opacity`, + children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(X, { size: 12, className: "void-text-void-fg-3 void-opacity-50" }) + } + ) }) + ] }) + ] + }, + `${modelName2}${providerName}` + ); + }), + showCheckmark ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "void-mt-4", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(AnimatedCheckmarkButton, { text: "Added", className: "void-bg-[#0e70c0] void-text-white void-px-3 void-py-1 void-rounded-sm" }) }) : isAddModelOpen ? /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "void-mt-4", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("form", { className: "void-flex void-items-center void-gap-2", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ErrorBoundary_default, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + VoidCustomDropdownBox, + { + options: providersToShow, + selectedOption: userChosenProviderName, + onChangeOption: (pn) => setUserChosenProviderName(pn), + getOptionDisplayName: (pn) => pn ? displayInfoOfProviderName(pn).title : "Provider Name", + getOptionDropdownName: (pn) => pn ? displayInfoOfProviderName(pn).title : "Provider Name", + getOptionsEqual: (a, b) => a === b, + className: "void-max-w-32 void-mx-2 void-w-full void-resize-none void-bg-void-bg-1 void-text-void-fg-1 placeholder:void-text-void-fg-3 void-border void-border-void-border-2 focus:void-border-void-border-1 void-py-1 void-px-2 void-rounded", + arrowTouchesText: false + } + ) }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ErrorBoundary_default, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + VoidSimpleInputBox, + { + value: modelName, + compact: true, + onChangeValue: setModelName, + placeholder: "Model Name", + className: "void-max-w-32" + } + ) }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ErrorBoundary_default, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + AddButton, + { + type: "button", + disabled: !modelName || !userChosenProviderName, + onClick: handleAddModel + } + ) }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + "button", + { + type: "button", + onClick: () => { + setIsAddModelOpen(false); + setErrorString(""); + setModelName(""); + setUserChosenProviderName(null); + }, + className: "void-text-void-fg-4", + children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(X, { className: "void-size-4" }) + } + ) + ] }), + errorString && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "void-text-red-500 void-truncate void-whitespace-nowrap void-mt-1", children: errorString }) + ] }) : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + "div", + { + className: "void-text-void-fg-4 void-flex void-flex-nowrap void-text-nowrap void-items-center hover:void-brightness-110 void-cursor-pointer void-mt-4", + onClick: () => setIsAddModelOpen(true), + children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "void-flex void-items-center void-gap-1", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Plus, { size: 16 }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { children: "Add a model" }) + ] }) + } + ), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + SimpleModelSettingsDialog, + { + isOpen: openSettingsModel !== null, + onClose: () => setOpenSettingsModel(null), + modelInfo: openSettingsModel + } + ) + ] }); +}; +var ProviderSetting = ({ providerName, settingName, subTextMd }) => { + const { title: settingTitle, placeholder, isPasswordField } = displayInfoOfSettingName(providerName, settingName); + const accessor = useAccessor(); + const cortexideSettingsService = accessor.get("ICortexideSettingsService"); + const settingsState = useSettingsState(); + const settingValue = settingsState.settingsOfProvider[providerName][settingName]; + if (typeof settingValue !== "string") { + console.log("Error: Provider setting had a non-string value."); + return; + } + const handleChangeValue = (0, import_react21.useCallback)((newVal) => { + cortexideSettingsService.setSettingOfProvider(providerName, settingName, newVal); + }, [cortexideSettingsService, providerName, settingName]); + return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ErrorBoundary_default, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "void-my-1", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + VoidSimpleInputBox, + { + value: settingValue, + onChangeValue: handleChangeValue, + placeholder: `${settingTitle} (${placeholder})`, + passwordBlur: isPasswordField, + compact: true + } + ), + !subTextMd ? null : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "void-py-1 void-px-3 void-opacity-50 void-text-sm", children: subTextMd }) + ] }) }); +}; +var SettingsForProvider = ({ providerName, showProviderTitle, showProviderSuggestions }) => { + const voidSettingsState = useSettingsState(); + const needsModel = isProviderNameDisabled(providerName, voidSettingsState) === "addModel"; + const settingNames = customSettingNamesOfProvider(providerName); + const { title: providerTitle } = displayInfoOfProviderName(providerName); + return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "void-flex void-items-center void-w-full void-gap-4", children: showProviderTitle && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("h3", { className: "void-text-xl void-truncate", children: providerTitle }) }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "void-px-0", children: [ + settingNames.map((settingName, i) => { + return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + ProviderSetting, + { + providerName, + settingName, + subTextMd: i !== settingNames.length - 1 ? null : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ChatMarkdownRender, { string: subTextMdOfProviderName(providerName), chatMessageLocation: void 0 }) + }, + settingName + ); + }), + showProviderSuggestions && needsModel ? providerName === "ollama" ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(WarningBox, { className: "void-pl-2 void-mb-4", text: `Please install an Ollama model. We'll auto-detect it.` }) : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(WarningBox, { className: "void-pl-2 void-mb-4", text: `Please add a model for ${providerTitle} (Models section).` }) : null + ] }) + ] }); +}; +var VoidProviderSettings = ({ providerNames: providerNames3 }) => { + return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_jsx_runtime18.Fragment, { children: providerNames3.map( + (providerName) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(SettingsForProvider, { providerName, showProviderTitle: true, showProviderSuggestions: true }, providerName) + ) }); +}; +var AutoDetectLocalModelsToggle = () => { + const settingName = "autoRefreshModels"; + const accessor = useAccessor(); + const cortexideSettingsService = accessor.get("ICortexideSettingsService"); + const metricsService = accessor.get("IMetricsService"); + const voidSettingsState = useSettingsState(); + const enabled = voidSettingsState.globalSettings[settingName]; + return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + ButtonLeftTextRightOption, + { + leftButton: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + VoidSwitch, + { + size: "xxs", + value: enabled, + onChange: (newVal) => { + cortexideSettingsService.setGlobalSetting(settingName, newVal); + metricsService.capture("Click", { action: "Autorefresh Toggle", settingName, enabled: newVal }); + } + } + ), + text: `Automatically detect local providers and models (${refreshableProviderNames.map((providerName) => displayInfoOfProviderName(providerName).title).join(", ")}).` + } + ); +}; +var AIInstructionsBox = () => { + const accessor = useAccessor(); + const cortexideSettingsService = accessor.get("ICortexideSettingsService"); + const voidSettingsState = useSettingsState(); + return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + VoidInputBox2, + { + className: "void-min-h-[81px] void-p-3 void-rounded-sm", + initValue: voidSettingsState.globalSettings.aiInstructions, + placeholder: `Do not change my indentation or delete my comments. When writing TS or JS, do not add ;'s. Write new code using Rust if possible. `, + multiline: true, + onChangeText: (newText) => { + cortexideSettingsService.setGlobalSetting("aiInstructions", newText); + } + } + ); +}; +var FastApplyMethodDropdown = () => { + const accessor = useAccessor(); + const cortexideSettingsService = accessor.get("ICortexideSettingsService"); + const options2 = (0, import_react21.useMemo)(() => [true, false], []); + const onChangeOption = (0, import_react21.useCallback)((newVal) => { + cortexideSettingsService.setGlobalSetting("enableFastApply", newVal); + }, [cortexideSettingsService]); + return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + VoidCustomDropdownBox, + { + className: "void-text-xs void-text-void-fg-3 void-bg-void-bg-1 void-border void-border-void-border-1 void-rounded void-p-0.5 void-px-1", + options: options2, + selectedOption: cortexideSettingsService.state.globalSettings.enableFastApply, + onChangeOption, + getOptionDisplayName: (val) => val ? "Fast Apply" : "Slow Apply", + getOptionDropdownName: (val) => val ? "Fast Apply" : "Slow Apply", + getOptionDropdownDetail: (val) => val ? "Output Search/Replace blocks" : "Rewrite whole files", + getOptionsEqual: (a, b) => a === b + } + ); +}; +var OllamaSetupInstructions = ({ sayWeAutoDetect }) => { + const accessor = useAccessor(); + const terminalToolService = accessor.get("ITerminalToolService"); + const nativeHostService = accessor.get("INativeHostService"); + const notificationService2 = accessor.get("INotificationService"); + const refreshModelService = accessor.get("IRefreshModelService"); + const repoIndexerService = accessor.get("IRepoIndexerService"); + const cortexideSettingsService = accessor.get("ICortexideSettingsService"); + const [status, setStatus] = (0, import_react21.useState)("idle"); + const [statusText, setStatusText] = (0, import_react21.useState)(""); + const [method, setMethod] = (0, import_react21.useState)("auto"); + const [currentTerminalId, setCurrentTerminalId] = (0, import_react21.useState)(null); + const [terminalOutput, setTerminalOutput] = (0, import_react21.useState)(""); + const [modelTag, setModelTag] = (0, import_react21.useState)("llava"); + const [isHealthy, setIsHealthy] = (0, import_react21.useState)(null); + (0, import_react21.useEffect)(() => { + (async () => { + try { + const osProps = await nativeHostService.getOSProperties(); + const t = (osProps.type + "").toLowerCase(); + if (t.includes("windows")) setMethod("winget"); + else if (t.includes("darwin") || t.includes("mac")) setMethod("brew"); + else + setMethod("curl"); + } catch { + } + })(); + }, [nativeHostService]); + const onInstall = (0, import_react21.useCallback)(async () => { + try { + const osProps = await nativeHostService.getOSProperties(); + const isWindows = (osProps.type + "").toLowerCase().includes("windows"); + setStatus("running"); + setStatusText("Starting Ollama installation and opening the terminal..."); + const persistentTerminalId = await terminalToolService.createPersistentTerminal({ cwd: null }); + setCurrentTerminalId(persistentTerminalId); + try { + const commandService = accessor.get("ICommandService"); + await commandService.executeCommand("workbench.action.terminal.focus"); + } catch { + } + await terminalToolService.focusPersistentTerminal(persistentTerminalId); + let installCmd = ""; + if (isWindows) { + const m = method === "choco" ? "choco install ollama -y" : method === "winget" || method === "auto" ? "winget install --id Ollama.Ollama -e --accept-source-agreements --accept-package-agreements" : "winget install --id Ollama.Ollama -e --accept-source-agreements --accept-package-agreements"; + installCmd = `powershell -ExecutionPolicy Bypass -Command "${m}; Start-Sleep -Seconds 2; Start-Process -WindowStyle Hidden ollama serve"`; + } else { + const osName = (osProps.type + "").toLowerCase(); + if (osName.includes("darwin") || osName.includes("mac")) { + installCmd = 'bash -lc "set -e; if [ -d /Applications/Ollama.app ]; then \\\n+ echo [CortexIDE] Found /Applications/Ollama.app; open -a Ollama; \\\n+ else \\\n+ if [ -x /opt/homebrew/bin/brew ] || [ -x /usr/local/bin/brew ]; then \\\n+ eval "$([ -x /opt/homebrew/bin/brew ] && /opt/homebrew/bin/brew shellenv || /usr/local/bin/brew shellenv)"; \\\n+ else \\\n+ echo [CortexIDE] Bootstrapping Homebrew...; /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"; \\\n+ eval "$([ -x /opt/homebrew/bin/brew ] && /opt/homebrew/bin/brew shellenv || /usr/local/bin/brew shellenv)"; \\\n+ fi; \\\n+ echo [CortexIDE] Installing Ollama via Homebrew Cask...; brew install --cask ollama || true; open -a Ollama; \\\n+ fi; \\\n+ echo [CortexIDE] Health check...; sleep 2; curl -fsS http://127.0.0.1:11434/api/tags >/dev/null 2>&1 && echo [CortexIDE] Ollama running || echo [CortexIDE] Ollama not reachable yet; "'; + } else { + installCmd = 'bash -lc "set -e; echo [CortexIDE] Installing Ollama (Linux); curl -fsSL https://ollama.com/install.sh | sh; (ollama serve >/dev/null 2>&1 &) || true; sleep 2; echo [CortexIDE] Health check; curl -fsS http://127.0.0.1:11434/api/tags >/dev/null 2>&1 && echo [CortexIDE] Ollama running || echo [CortexIDE] Ollama not reachable yet;"'; + } + } + setStatusText("Running installer in terminal..."); + const { resPromise } = await terminalToolService.runCommand(installCmd, { type: "persistent", persistentTerminalId }); + resPromise.catch(() => { + }); + cortexideSettingsService.setSettingOfProvider("ollama", "endpoint", "http://127.0.0.1:11434"); + refreshModelService.startRefreshingModels("ollama", { enableProviderOnSuccess: true, doNotFire: false }); + setStatus("running"); + setStatusText("Installer launched. Detecting models..."); + notificationService2.info("Ollama install started in the integrated terminal. Models will appear when ready."); + } catch (e) { + notificationService2.error("Failed to start Ollama install. Please try again or install manually."); + setStatus("error"); + setStatusText("Failed to start install. See terminal or try manual install."); + } + }, [terminalToolService, nativeHostService, notificationService2, refreshModelService, cortexideSettingsService, method]); + (0, import_react21.useCallback)(async () => { + if (currentTerminalId) { + await terminalToolService.focusPersistentTerminal(currentTerminalId); + } else { + try { + const commandService = accessor.get("ICommandService"); + await commandService.executeCommand("workbench.action.terminal.focus"); + } catch { + } + } + }, [currentTerminalId, terminalToolService]); + (0, import_react21.useEffect)(() => { + let tid; + const poll = async () => { + if (!currentTerminalId) return; + try { + const output = await terminalToolService.readTerminal(currentTerminalId); + setTerminalOutput(output); + } catch { + } + }; + if (currentTerminalId) { + poll(); + tid = setInterval(poll, 1500); + } + return () => { + if (tid) clearInterval(tid); + }; + }, [currentTerminalId, terminalToolService]); + (0, import_react21.useEffect)(() => { + let tid; + const ping = async () => { + try { + const res = await fetch("http://127.0.0.1:11434/api/tags", { method: "GET" }); + setIsHealthy(res.ok); + if (res.ok && status === "running") { + setStatus("done"); + setStatusText("Ollama is running. Models will appear shortly."); + } + } catch { + setIsHealthy(false); + } + }; + if (status === "running" || status === "done") { + ping(); + tid = setInterval(ping, 3e3); + } + return () => { + if (tid) clearInterval(tid); + }; + }, [status]); + return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "prose-p:void-my-0 prose-ol:void-list-decimal prose-p:void-py-0 prose-ol:void-my-0 prose-ol:void-py-0 prose-span:void-my-0 prose-span:void-py-0 void-text-void-fg-3 void-text-sm void-list-decimal void-select-text", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "void-flex void-items-center void-gap-3", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ChatMarkdownRender, { string: `Ollama Setup (rev 2025-10-30-1)`, chatMessageLocation: void 0 }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)( + "select", + { + className: "void-text-xs void-bg-void-bg-1 void-text-void-fg-1 void-border void-border-void-border-1 void-rounded void-px-1 void-py-0.5", + value: method, + onChange: (e) => setMethod(e.target.value), + title: "Install method", + children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("option", { value: "auto", children: "Auto" }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("option", { value: "brew", children: "Homebrew (macOS)" }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("option", { value: "curl", children: "Curl Script (macOS/Linux)" }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("option", { value: "winget", children: "Winget (Windows)" }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("option", { value: "choco", children: "Chocolatey (Windows)" }) + ] + } + ), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + "button", + { + className: "void-px-2 void-py-1 void-bg-void-bg-2 void-text-void-fg-1 void-border void-border-void-border-1 void-rounded hover:void-brightness-110 disabled:void-opacity-60", + onClick: onInstall, + disabled: status === "running", + children: status === "running" ? "Installing\u2026" : "Install Ollama" + } + ), + status === "error" && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + "button", + { + className: "void-px-2 void-py-1 void-bg-void-bg-1 void-text-void-fg-3 void-border void-border-void-border-2 void-rounded hover:void-brightness-110", + onClick: () => { + setStatus("idle"); + setStatusText(""); + setTerminalOutput(""); + setIsHealthy(null); + }, + children: "Retry" + } + ), + isHealthy !== null && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: `void-text-xs void-px-2 void-py-0.5 void-rounded void-border ${isHealthy ? "void-border-green-500 void-text-green-500" : "void-border-void-border-2 void-text-void-fg-3"}`, children: isHealthy ? "Healthy" : "Waiting" }) + ] }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: " void-pl-6 void-mt-2 void-flex void-items-center void-gap-2", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "void-flex void-items-center void-gap-2", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + VoidSwitch, + { + size: "xxs", + value: !!cortexideSettingsService.state.globalSettings.enableAutoTuneOnPull, + onChange: (v) => cortexideSettingsService.setGlobalSetting("enableAutoTuneOnPull", !!v) + } + ), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "void-text-void-fg-3 void-text-xs", children: "Auto-tune after pull" }) + ] }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "void-flex void-items-center void-gap-2 void-ml-4", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + VoidSwitch, + { + size: "xxs", + value: !!cortexideSettingsService.state.globalSettings.enableRepoIndexer, + onChange: (v) => cortexideSettingsService.setGlobalSetting("enableRepoIndexer", !!v) + } + ), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "void-text-void-fg-3 void-text-xs", children: "Enable repo indexer" }) + ] }) + ] }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: " void-pl-6 void-mt-2 void-flex void-items-center void-gap-2", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "void-flex void-items-center void-gap-2", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + VoidSwitch, + { + size: "xxs", + value: cortexideSettingsService.state.globalSettings.useHeadlessBrowsing !== false, + onChange: (v) => cortexideSettingsService.setGlobalSetting("useHeadlessBrowsing", v) + } + ), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "void-text-void-fg-3 void-text-xs", children: "Use headless browsing" }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "void-text-void-fg-4 void-text-xs", title: "Use headless BrowserWindow for better content extraction from complex pages. Disable to use direct HTTP fetch instead.", children: "(\u2139\uFE0F)" }) + ] }) }), + status !== "idle" && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: " void-pl-6 void-text-void-fg-3", children: statusText }), + !!terminalOutput && /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: " void-pl-6 void-mt-2", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "void-flex void-items-center void-gap-2 void-mb-1", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + "button", + { + className: "void-px-2 void-py-0.5 void-bg-void-bg-1 void-text-void-fg-3 void-border void-border-void-border-2 void-rounded hover:void-brightness-110", + onClick: async () => { + try { + await navigator.clipboard.writeText(terminalOutput); + } catch { + } + }, + children: "Copy log" + } + ), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + "button", + { + className: "void-px-2 void-py-0.5 void-bg-void-bg-1 void-text-void-fg-3 void-border void-border-void-border-2 void-rounded hover:void-brightness-110", + onClick: () => setTerminalOutput(""), + children: "Clear" + } + ) + ] }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "void-border void-border-void-border-2 void-bg-void-bg-1 void-rounded void-p-2 void-max-h-48 void-overflow-auto void-text-xs void-whitespace-pre-wrap", children: terminalOutput }) + ] }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: " void-pl-6 void-mt-2 void-flex void-items-center void-gap-2 void-whitespace-nowrap", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "void-text-void-fg-3 void-text-xs", children: "Pull model:" }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)( + "select", + { + className: "void-text-xs void-bg-void-bg-1 void-text-void-fg-1 void-border void-border-void-border-1 void-rounded void-px-1 void-py-0.5 void-shrink-0", + value: modelTag, + onChange: (e) => setModelTag(e.target.value), + children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("optgroup", { label: "Code Models", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("option", { value: "llama3.1", children: "llama3.1" }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("option", { value: "llama3.2", children: "llama3.2" }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("option", { value: "qwen2.5-coder", children: "qwen2.5-coder" }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("option", { value: "deepseek-coder", children: "deepseek-coder" }) + ] }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("optgroup", { label: "Vision Models (Image Analysis)", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("option", { value: "llava", children: "llava (Vision)" }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("option", { value: "bakllava", children: "bakllava (Vision)" }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("option", { value: "llava:13b", children: "llava:13b (Vision, Better Quality)" }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("option", { value: "llava:7b", children: "llava:7b (Vision, Faster)" }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("option", { value: "bakllava:7b", children: "bakllava:7b (Vision)" }) + ] }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("optgroup", { label: "General Purpose", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("option", { value: "llama3", children: "llama3" }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("option", { value: "mistral", children: "mistral" }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("option", { value: "mixtral", children: "mixtral" }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("option", { value: "qwen", children: "qwen" }) + ] }) + ] + } + ), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + "button", + { + className: "void-px-2 void-py-1 void-bg-void-bg-2 void-text-void-fg-1 void-border void-border-void-border-1 void-rounded hover:void-brightness-110 void-shrink-0 disabled:void-opacity-50 disabled:void-cursor-not-allowed", + disabled: !modelTag || status === "running", + onClick: async () => { + if (!modelTag) { + notificationService2.warn("Please select a model to pull."); + return; + } + try { + setStatus("running"); + setStatusText(`Pulling ${modelTag}...`); + let terminalId = currentTerminalId; + if (!terminalId || !terminalToolService.persistentTerminalExists(terminalId)) { + terminalId = await terminalToolService.createPersistentTerminal({ cwd: null }); + setCurrentTerminalId(terminalId); + } + await terminalToolService.focusPersistentTerminal(terminalId); + const { resPromise } = await terminalToolService.runCommand(`ollama pull ${modelTag}`, { type: "persistent", persistentTerminalId: terminalId }); + resPromise.then(async ({ result, resolveReason }) => { + if (resolveReason.type === "done") { + if (resolveReason.exitCode === 0) { + const resultText = result || ""; + if (resultText.toLowerCase().includes("error") || resultText.toLowerCase().includes("failed")) { + setStatus("error"); + setStatusText(`Failed to pull ${modelTag}. Check terminal for details.`); + notificationService2.error(`Failed to pull model "${modelTag}". See terminal for details.`); + return; + } + setStatus("done"); + setStatusText(`Successfully pulled ${modelTag}`); + notificationService2.info(`Model "${modelTag}" pulled successfully.`); + setTimeout(() => { + refreshModelService.startRefreshingModels("ollama", { enableProviderOnSuccess: true, doNotFire: false }); + try { + if (cortexideSettingsService.state.globalSettings.enableAutoTuneOnPull) { + const mt = (modelTag || "").toLowerCase(); + const looksFIM = mt.includes("coder") || mt.includes("starcoder") || mt.includes("code"); + cortexideSettingsService.setOverridesOfModel("ollama", modelTag, { + supportsFIM: looksFIM, + contextWindow: looksFIM ? 128e3 : 64e3, + reservedOutputTokenSpace: 8192, + supportsSystemMessage: "system-role" + }); + if (looksFIM) { + cortexideSettingsService.setGlobalSetting("enableAutocomplete", true); + cortexideSettingsService.setModelSelectionOfFeature("Autocomplete", { providerName: "ollama", modelName: modelTag }); + cortexideSettingsService.setModelSelectionOfFeature("Apply", { providerName: "ollama", modelName: modelTag }); + } else { + cortexideSettingsService.setModelSelectionOfFeature("Chat", { providerName: "ollama", modelName: modelTag }); + } + } + } catch (e) { + console.error("Auto-tune error:", e); + } + try { + if (cortexideSettingsService.state.globalSettings.enableRepoIndexer) { + notificationService2.info("Warming project index..."); + repoIndexerService.warmIndex(void 0).then(() => { + notificationService2.info("Project index warmed."); + }).catch(() => { + }); + } + } catch { + } + }, 3e3); + } else { + const resultText = result || "Unknown error"; + setStatus("error"); + setStatusText(`Failed to pull ${modelTag} (exit code ${resolveReason.exitCode}). Check terminal for details.`); + notificationService2.error(`Failed to pull model "${modelTag}": ${resultText}. See terminal for details.`); + } + } else if (resolveReason.type === "timeout") { + setStatus("done"); + setStatusText(`Pulling ${modelTag}... (may take time for large models)`); + notificationService2.info(`Started pulling "${modelTag}". This may take a while for large models. Check terminal for progress.`); + setTimeout(() => { + refreshModelService.startRefreshingModels("ollama", { enableProviderOnSuccess: true, doNotFire: false }); + }, 5e3); + } + }).catch((error2) => { + setStatus("error"); + const errorMsg = error2?.message || String(error2) || "Unknown error"; + setStatusText(`Error pulling ${modelTag}: ${errorMsg}`); + notificationService2.error(`Failed to pull model "${modelTag}": ${errorMsg}`); + console.error("Pull error:", error2); + }); + } catch (error2) { + setStatus("error"); + const errorMsg = error2?.message || String(error2) || "Unknown error"; + setStatusText(`Failed to start pull: ${errorMsg}`); + notificationService2.error(`Failed to start pulling model "${modelTag}": ${errorMsg}`); + console.error("Pull setup error:", error2); + } + }, + children: "Pull" + } + ), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + "button", + { + className: "void-px-2 void-py-1 void-bg-red-600/80 void-text-white void-border void-border-red-500/80 void-rounded hover:void-brightness-110 void-shrink-0 disabled:void-opacity-50 disabled:void-cursor-not-allowed", + disabled: !modelTag || status === "running", + onClick: async () => { + if (!modelTag) { + notificationService2.warn("Please select a model to delete."); + return; + } + const ok = window.confirm(`Delete model "${modelTag}" from Ollama?`); + if (!ok) return; + try { + setStatus("running"); + setStatusText(`Deleting ${modelTag}...`); + let terminalId = currentTerminalId; + if (!terminalId || !terminalToolService.persistentTerminalExists(terminalId)) { + terminalId = await terminalToolService.createPersistentTerminal({ cwd: null }); + setCurrentTerminalId(terminalId); + } + await terminalToolService.focusPersistentTerminal(terminalId); + const { resPromise } = await terminalToolService.runCommand(`ollama rm ${modelTag}`, { type: "persistent", persistentTerminalId: terminalId }); + resPromise.then(async ({ result, resolveReason }) => { + if (resolveReason.type === "done") { + if (resolveReason.exitCode === 0) { + setStatus("done"); + setStatusText(`Successfully deleted ${modelTag}`); + notificationService2.info(`Model "${modelTag}" deleted successfully.`); + setTimeout(() => { + refreshModelService.startRefreshingModels("ollama", { enableProviderOnSuccess: true, doNotFire: false }); + }, 2e3); + } else { + const resultText = result || "Unknown error"; + setStatus("error"); + setStatusText(`Failed to delete ${modelTag} (exit code ${resolveReason.exitCode}). Check terminal for details.`); + notificationService2.error(`Failed to delete model "${modelTag}": ${resultText}. See terminal for details.`); + } + } else if (resolveReason.type === "timeout") { + setStatus("error"); + setStatusText(`Delete command timed out for ${modelTag}. The command may still be running.`); + notificationService2.warn(`Delete command for "${modelTag}" timed out. Check terminal to see if it completed.`); + setTimeout(() => { + refreshModelService.startRefreshingModels("ollama", { enableProviderOnSuccess: true, doNotFire: false }); + }, 2e3); + } + }).catch((error2) => { + setStatus("error"); + const errorMsg = error2?.message || String(error2) || "Unknown error"; + setStatusText(`Error deleting ${modelTag}: ${errorMsg}`); + notificationService2.error(`Failed to delete model "${modelTag}": ${errorMsg}`); + console.error("Delete error:", error2); + }); + } catch (error2) { + setStatus("error"); + const errorMsg = error2?.message || String(error2) || "Unknown error"; + setStatusText(`Failed to start delete: ${errorMsg}`); + notificationService2.error(`Failed to start deleting model "${modelTag}": ${errorMsg}`); + console.error("Delete setup error:", error2); + } + }, + children: "Delete" + } + ) + ] }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: " void-pl-6", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ChatMarkdownRender, { string: `1. If the install does not start, download Ollama manually from [ollama.com/download](https://ollama.com/download).`, chatMessageLocation: void 0 }) }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: " void-pl-6", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ChatMarkdownRender, { string: `2. Optionally, run \`ollama pull llama3.1\` to install a starter model.`, chatMessageLocation: void 0 }) }), + sayWeAutoDetect && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: " void-pl-6", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ChatMarkdownRender, { string: `CortexIDE automatically detects locally running models and enables them.`, chatMessageLocation: void 0 }) }) + ] }); +}; +var RedoOnboardingButton = ({ className }) => { + const accessor = useAccessor(); + const cortexideSettingsService = accessor.get("ICortexideSettingsService"); + return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + "div", + { + className: `void-text-void-fg-4 void-flex void-flex-nowrap void-text-nowrap void-items-center hover:void-brightness-110 void-cursor-pointer ${className}`, + onClick: () => { + cortexideSettingsService.setGlobalSetting("isOnboardingComplete", false); + }, + children: "See onboarding screen?" + } + ); +}; +var ToolApprovalTypeSwitch = ({ approvalType, size: size3, desc }) => { + const accessor = useAccessor(); + const cortexideSettingsService = accessor.get("ICortexideSettingsService"); + const voidSettingsState = useSettingsState(); + const metricsService = accessor.get("IMetricsService"); + const onToggleAutoApprove = (0, import_react21.useCallback)((approvalType2, newValue) => { + cortexideSettingsService.setGlobalSetting("autoApprove", { + ...cortexideSettingsService.state.globalSettings.autoApprove, + [approvalType2]: newValue + }); + metricsService.capture("Tool Auto-Accept Toggle", { enabled: newValue }); + }, [cortexideSettingsService, metricsService]); + return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_jsx_runtime18.Fragment, { children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + VoidSwitch, + { + size: size3, + value: voidSettingsState.globalSettings.autoApprove[approvalType] ?? false, + onChange: (newVal) => onToggleAutoApprove(approvalType, newVal) + } + ), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "void-text-void-fg-3 void-text-xs", children: desc }) + ] }); +}; +var OneClickSwitchButton = ({ fromEditor = "VS Code", className = "" }) => { + const accessor = useAccessor(); + const extensionTransferService = accessor.get("IExtensionTransferService"); + const [transferState, setTransferState] = (0, import_react21.useState)({ type: "done" }); + const onClick = async () => { + if (transferState.type !== "done") return; + setTransferState({ type: "loading" }); + const errAcc = await extensionTransferService.transferExtensions(os, fromEditor); + const hadError = !!errAcc; + if (hadError) { + setTransferState({ type: "done", error: errAcc }); + } else { + setTransferState({ type: "justfinished" }); + setTimeout(() => { + setTransferState({ type: "done" }); + }, 3e3); + } + }; + return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_jsx_runtime18.Fragment, { children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(VoidButtonBgDarken, { className: `void-max-w-48 void-p-4 ${className}`, disabled: transferState.type !== "done", onClick, children: transferState.type === "done" ? `Transfer from ${fromEditor}` : transferState.type === "loading" ? /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("span", { className: "void-text-nowrap void-flex void-flex-nowrap", children: [ + "Transferring", + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(IconLoading, {}) + ] }) : transferState.type === "justfinished" ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(AnimatedCheckmarkButton, { text: "Settings Transferred", className: "void-bg-none" }) : null }), + transferState.type === "done" && transferState.error ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(WarningBox, { text: transferState.error }) : null + ] }); +}; +var MCPServerComponent = ({ name, server }) => { + const accessor = useAccessor(); + const mcpService = accessor.get("IMCPService"); + const voidSettings = useSettingsState(); + const isOn = voidSettings.mcpUserStateOfName[name]?.isOn; + const removeUniquePrefix = (name2) => name2.split("_").slice(1).join("_"); + return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "void-border void-border-void-border-2 void-bg-void-bg-1 void-py-3 void-px-4 void-rounded-sm void-my-2", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "void-flex void-items-center void-justify-between", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "void-flex void-items-center void-gap-2", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: `void-w-2 void-h-2 void-rounded-full ${server.status === "success" ? "void-bg-green-500" : server.status === "error" ? "void-bg-red-500" : server.status === "loading" ? "void-bg-yellow-500" : server.status === "offline" ? "void-bg-void-fg-3" : ""} ` }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "void-text-sm void-font-medium void-text-void-fg-1", children: name }) + ] }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + VoidSwitch, + { + value: isOn ?? false, + size: "xs", + disabled: server.status === "error", + onChange: () => mcpService.toggleServerIsOn(name, !isOn) + } + ) + ] }), + isOn && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "void-mt-3", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "void-flex void-flex-wrap void-gap-2 void-max-h-32 void-overflow-y-auto", children: (server.tools ?? []).length > 0 ? (server.tools ?? []).map( + (tool) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + "span", + { + className: "void-px-2 void-py-0.5 void-bg-void-bg-2 void-text-void-fg-3 void-rounded-sm void-text-xs", + "data-tooltip-id": "void-tooltip", + "data-tooltip-content": tool.description || "", + "data-tooltip-class-name": "void-max-w-[300px]", + children: removeUniquePrefix(tool.name) + }, + tool.name + ) + ) : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "void-text-xs void-text-void-fg-3", children: "No tools available" }) }) }), + isOn && server.command && /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "void-mt-3", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "void-text-xs void-text-void-fg-3 void-mb-1", children: "Command:" }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "void-px-2 void-py-1 void-bg-void-bg-2 void-text-xs void-font-mono void-overflow-x-auto void-whitespace-nowrap void-text-void-fg-2 void-rounded-sm", children: server.command }) + ] }), + server.error && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "void-mt-3", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(WarningBox, { text: server.error }) }) + ] }); +}; +var MCPServersList = () => { + const mcpServiceState = useMCPServiceState(); + let content; + if (mcpServiceState.error) { + content = /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "void-text-void-fg-3 void-text-sm void-mt-2", children: mcpServiceState.error }); + } else { + const entries = Object.entries(mcpServiceState.mcpServerOfName); + if (entries.length === 0) { + content = /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "void-text-void-fg-3 void-text-sm void-mt-2", children: "No servers found" }); + } else { + content = entries.map( + ([name, server]) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(MCPServerComponent, { name, server }, name) + ); + } + } + return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "void-my-2", children: content }); +}; +var Settings = () => { + const isDark = useIsDark(); + const [selectedSection, setSelectedSection] = (0, import_react21.useState)("models"); + const navItems = [ + { tab: "models", label: "Models" }, + { tab: "localProviders", label: "Local Providers" }, + { tab: "providers", label: "Main Providers" }, + { tab: "featureOptions", label: "Feature Options" }, + { tab: "general", label: "General" }, + { tab: "mcp", label: "MCP" }, + { tab: "all", label: "All Settings" } + ]; + const shouldShowTab = (tab) => selectedSection === "all" || selectedSection === tab; + const accessor = useAccessor(); + const commandService = accessor.get("ICommandService"); + const environmentService = accessor.get("IEnvironmentService"); + const nativeHostService = accessor.get("INativeHostService"); + const settingsState = useSettingsState(); + const cortexideSettingsService = accessor.get("ICortexideSettingsService"); + const chatThreadsService = accessor.get("IChatThreadService"); + const notificationService2 = accessor.get("INotificationService"); + const mcpService = accessor.get("IMCPService"); + const storageService = accessor.get("IStorageService"); + const metricsService = accessor.get("IMetricsService"); + const isOptedOut = useIsOptedOut(); + const onDownload = (t) => { + let dataStr; + let downloadName; + if (t === "Chats") { + dataStr = JSON.stringify(chatThreadsService.state, null, 2); + downloadName = "void-chats.json"; + } else if (t === "Settings") { + dataStr = JSON.stringify(cortexideSettingsService.state, null, 2); + downloadName = "void-settings.json"; + } else { + dataStr = ""; + downloadName = ""; + } + const blob = new Blob([dataStr], { type: "application/json" }); + const url = URL.createObjectURL(blob); + const a = document.createElement("a"); + a.href = url; + a.download = downloadName; + a.click(); + URL.revokeObjectURL(url); + }; + const fileInputSettingsRef = (0, import_react21.useRef)(null); + const fileInputChatsRef = (0, import_react21.useRef)(null); + const [s, ss] = (0, import_react21.useState)(0); + const handleUpload = (t) => (e) => { + const files = e.target.files; + if (!files) return; + const file = files[0]; + if (!file) return; + const reader = new FileReader(); + reader.onload = () => { + try { + const json = JSON.parse(reader.result); + if (t === "Chats") { + chatThreadsService.dangerousSetState(json); + } else if (t === "Settings") { + cortexideSettingsService.dangerousSetState(json); + } + notificationService2.info(`${t} imported successfully!`); + } catch (err) { + notificationService2.notify({ message: `Failed to import ${t}`, source: err + "", severity: Severity.Error }); + } + }; + reader.readAsText(file); + e.target.value = ""; + ss((s2) => s2 + 1); + }; + return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: `void-scope ${isDark ? "void-dark" : ""}`, style: { height: "100%", width: "100%", overflow: "auto" }, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "void-flex void-flex-col md:void-flex-row void-w-full void-gap-6 void-max-w-[900px] void-mx-auto void-mb-32", style: { minHeight: "80vh" }, children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("aside", { className: "md:void-w-1/4 void-w-full void-p-6 void-shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "void-flex void-flex-col void-gap-2 void-mt-12", children: navItems.map( + ({ tab, label }) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + "button", + { + onClick: () => { + if (tab === "all") { + setSelectedSection("all"); + window.scrollTo({ top: 0, behavior: "smooth" }); + } else { + setSelectedSection(tab); + } + }, + className: ` void-py-2 void-px-4 void-rounded-md void-text-left void-transition-all void-duration-200 ${selectedSection === tab ? "void-bg-[#0e70c0]/80 void-text-white void-font-medium void-shadow-sm" : "void-bg-void-bg-2 hover:void-bg-void-bg-2/80 void-text-void-fg-1"} `, + children: label + }, + tab + ) + ) }) }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("main", { className: "void-flex-1 void-p-6 void-select-none", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "void-max-w-3xl", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("h1", { className: "void-text-2xl void-w-full", children: `CortexIDE Settings` }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "void-w-full void-h-[1px] void-my-2" }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ErrorBoundary_default, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(RedoOnboardingButton, {}) }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "void-w-full void-h-[1px] void-my-4" }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "void-flex void-flex-col void-gap-12", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: shouldShowTab("models") ? `` : "void-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(ErrorBoundary_default, { children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("h2", { className: `void-text-3xl void-mb-2`, children: "Models" }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ModelDump, {}), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "void-w-full void-h-[1px] void-my-4" }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(AutoDetectLocalModelsToggle, {}), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(RefreshableModels, {}) + ] }) }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: shouldShowTab("localProviders") ? `` : "void-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(ErrorBoundary_default, { children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("h2", { className: `void-text-3xl void-mb-2`, children: "Local Providers" }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("h3", { className: `void-text-void-fg-3 void-mb-2`, children: `CortexIDE can access any model that you host locally. We automatically detect your local models by default.` }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "void-opacity-80 void-mb-4", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(OllamaSetupInstructions, { sayWeAutoDetect: true }) }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(VoidProviderSettings, { providerNames: localProviderNames }) + ] }) }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: shouldShowTab("providers") ? `` : "void-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(ErrorBoundary_default, { children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("h2", { className: `void-text-3xl void-mb-2`, children: "Main Providers" }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("h3", { className: `void-text-void-fg-3 void-mb-2`, children: `CortexIDE can access models from Anthropic, OpenAI, OpenRouter, and more.` }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(VoidProviderSettings, { providerNames: nonlocalProviderNames }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "void-w-full void-h-[1px] void-my-4" }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(RefreshableRemoteCatalogs, {}) + ] }) }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: shouldShowTab("featureOptions") ? `` : "void-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(ErrorBoundary_default, { children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("h2", { className: `void-text-3xl void-mb-2`, children: "Feature Options" }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "void-flex void-flex-col void-gap-y-8 void-my-4", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ErrorBoundary_default, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("h4", { className: `void-text-base`, children: displayInfoOfFeatureName("Autocomplete") }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "void-text-sm void-text-void-fg-3 void-mt-1", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("span", { children: [ + "Experimental.", + " " + ] }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + "span", + { + className: "hover:void-brightness-110", + "data-tooltip-id": "void-tooltip", + "data-tooltip-content": "We recommend using the largest qwen2.5-coder model you can with Ollama (try qwen2.5-coder:3b).", + "data-tooltip-class-name": "void-max-w-[20px]", + children: "Only works with FIM models.*" + } + ) + ] }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "void-my-2", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ErrorBoundary_default, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "void-flex void-items-center void-gap-x-2 void-my-2", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + VoidSwitch, + { + size: "xs", + value: settingsState.globalSettings.enableAutocomplete, + onChange: (newVal) => cortexideSettingsService.setGlobalSetting("enableAutocomplete", newVal) + } + ), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "void-text-void-fg-3 void-text-xs void-pointer-events-none", children: settingsState.globalSettings.enableAutocomplete ? "Enabled" : "Disabled" }) + ] }) }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ErrorBoundary_default, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: `void-my-2 ${!settingsState.globalSettings.enableAutocomplete ? "void-hidden" : ""}`, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ModelDropdown, { featureName: "Autocomplete", className: "void-text-xs void-text-void-fg-3 void-bg-void-bg-1 void-border void-border-void-border-1 void-rounded void-p-0.5 void-px-1" }) }) }) + ] }) + ] }) }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ErrorBoundary_default, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "void-w-full", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("h4", { className: `void-text-base`, children: displayInfoOfFeatureName("Apply") }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "void-text-sm void-text-void-fg-3 void-mt-1", children: "Settings that control the behavior of the Apply button." }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "void-my-2", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "void-flex void-items-center void-gap-x-2 void-my-2", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + VoidSwitch, + { + size: "xs", + value: settingsState.globalSettings.syncApplyToChat, + onChange: (newVal) => cortexideSettingsService.setGlobalSetting("syncApplyToChat", newVal) + } + ), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "void-text-void-fg-3 void-text-xs void-pointer-events-none", children: settingsState.globalSettings.syncApplyToChat ? "Same as Chat model" : "Different model" }) + ] }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: `void-my-2 ${settingsState.globalSettings.syncApplyToChat ? "void-hidden" : ""}`, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ModelDropdown, { featureName: "Apply", className: "void-text-xs void-text-void-fg-3 void-bg-void-bg-1 void-border void-border-void-border-1 void-rounded void-p-0.5 void-px-1" }) }) + ] }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "void-my-2", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "void-flex void-items-center void-gap-x-2 void-my-2", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(FastApplyMethodDropdown, {}) }) }) + ] }) }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("h4", { className: `void-text-base`, children: "Tools" }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "void-text-sm void-text-void-fg-3 void-mt-1", children: `Tools are functions that LLMs can call. Some tools require user approval.` }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "void-my-2", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ErrorBoundary_default, { children: [...toolApprovalTypes].map((approvalType) => { + return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "void-flex void-items-center void-gap-x-2 void-my-2", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ToolApprovalTypeSwitch, { size: "xs", approvalType, desc: `Auto-approve ${approvalType}` }) }, approvalType); + }) }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ErrorBoundary_default, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "void-flex void-items-center void-gap-x-2 void-my-2", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + VoidSwitch, + { + size: "xs", + value: settingsState.globalSettings.includeToolLintErrors, + onChange: (newVal) => cortexideSettingsService.setGlobalSetting("includeToolLintErrors", newVal) + } + ), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "void-text-void-fg-3 void-text-xs void-pointer-events-none", children: settingsState.globalSettings.includeToolLintErrors ? "Fix lint errors" : `Fix lint errors` }) + ] }) }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ErrorBoundary_default, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "void-flex void-items-center void-gap-x-2 void-my-2", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + VoidSwitch, + { + size: "xs", + value: settingsState.globalSettings.autoAcceptLLMChanges, + onChange: (newVal) => cortexideSettingsService.setGlobalSetting("autoAcceptLLMChanges", newVal) + } + ), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "void-text-void-fg-3 void-text-xs void-pointer-events-none", children: "Auto-accept LLM changes" }) + ] }) }) + ] }) + ] }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ErrorBoundary_default, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("h4", { className: `void-text-base`, children: "YOLO Mode" }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "void-text-sm void-text-void-fg-3 void-mt-1", children: "Automatically apply low-risk edits without approval. High-risk edits always require approval." }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "void-my-2", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ErrorBoundary_default, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "void-flex void-items-center void-gap-x-2 void-my-2", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + VoidSwitch, + { + size: "xs", + value: settingsState.globalSettings.enableYOLOMode ?? false, + onChange: (newVal) => cortexideSettingsService.setGlobalSetting("enableYOLOMode", newVal) + } + ), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "void-text-void-fg-3 void-text-xs void-pointer-events-none", children: settingsState.globalSettings.enableYOLOMode ? "Enabled" : "Disabled" }) + ] }) }), + settingsState.globalSettings.enableYOLOMode && /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "void-my-4 void-space-y-3", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("label", { className: "void-text-sm void-text-void-fg-2 void-mb-1 void-block", children: [ + "Risk Threshold: ", + (settingsState.globalSettings.yoloRiskThreshold ?? 0.2).toFixed(2) + ] }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "void-text-xs void-text-void-fg-3 void-mb-2", children: "Edits with risk below this threshold will auto-apply (0.0 = safe, 1.0 = dangerous)" }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + "input", + { + type: "range", + min: "0", + max: "1", + step: "0.05", + value: settingsState.globalSettings.yoloRiskThreshold ?? 0.2, + onChange: (e) => cortexideSettingsService.setGlobalSetting("yoloRiskThreshold", parseFloat(e.target.value)), + className: "void-w-full" + } + ) + ] }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("label", { className: "void-text-sm void-text-void-fg-2 void-mb-1 void-block", children: [ + "Confidence Threshold: ", + (settingsState.globalSettings.yoloConfidenceThreshold ?? 0.7).toFixed(2) + ] }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "void-text-xs void-text-void-fg-3 void-mb-2", children: "Edits with confidence above this threshold will auto-apply (0.0 = uncertain, 1.0 = confident)" }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + "input", + { + type: "range", + min: "0", + max: "1", + step: "0.05", + value: settingsState.globalSettings.yoloConfidenceThreshold ?? 0.7, + onChange: (e) => cortexideSettingsService.setGlobalSetting("yoloConfidenceThreshold", parseFloat(e.target.value)), + className: "void-w-full" + } + ) + ] }) + ] }) + ] }) + ] }) }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "void-w-full", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("h4", { className: `void-text-base`, children: "Editor" }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "void-text-sm void-text-void-fg-3 void-mt-1", children: `Settings that control the visibility of CortexIDE suggestions in the code editor.` }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "void-my-2", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ErrorBoundary_default, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "void-flex void-items-center void-gap-x-2 void-my-2", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + VoidSwitch, + { + size: "xs", + value: settingsState.globalSettings.showInlineSuggestions, + onChange: (newVal) => cortexideSettingsService.setGlobalSetting("showInlineSuggestions", newVal) + } + ), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "void-text-void-fg-3 void-text-xs void-pointer-events-none", children: settingsState.globalSettings.showInlineSuggestions ? "Show suggestions on select" : "Show suggestions on select" }) + ] }) }) }) + ] }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ErrorBoundary_default, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "void-w-full", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("h4", { className: `void-text-base`, children: displayInfoOfFeatureName("SCM") }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "void-text-sm void-text-void-fg-3 void-mt-1", children: "Settings that control the behavior of the commit message generator." }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "void-my-2", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "void-flex void-items-center void-gap-x-2 void-my-2", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + VoidSwitch, + { + size: "xs", + value: settingsState.globalSettings.syncSCMToChat, + onChange: (newVal) => cortexideSettingsService.setGlobalSetting("syncSCMToChat", newVal) + } + ), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "void-text-void-fg-3 void-text-xs void-pointer-events-none", children: settingsState.globalSettings.syncSCMToChat ? "Same as Chat model" : "Different model" }) + ] }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: `void-my-2 ${settingsState.globalSettings.syncSCMToChat ? "void-hidden" : ""}`, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ModelDropdown, { featureName: "SCM", className: "void-text-xs void-text-void-fg-3 void-bg-void-bg-1 void-border void-border-void-border-1 void-rounded void-p-0.5 void-px-1" }) }) + ] }) + ] }) }) + ] }) + ] }) }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: `${shouldShowTab("general") ? `` : "void-hidden"} void-flex void-flex-col void-gap-12`, children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(ErrorBoundary_default, { children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("h2", { className: "void-text-3xl void-mb-2", children: "One-Click Switch" }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("h4", { className: "void-text-void-fg-3 void-mb-4", children: `Transfer your editor settings into CortexIDE.` }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "void-flex void-flex-col void-gap-2", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(OneClickSwitchButton, { className: "void-w-48", fromEditor: "VS Code" }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(OneClickSwitchButton, { className: "void-w-48", fromEditor: "Cursor" }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(OneClickSwitchButton, { className: "void-w-48", fromEditor: "Windsurf" }) + ] }) + ] }) }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("h2", { className: "void-text-3xl void-mb-2", children: "Import/Export" }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("h4", { className: "void-text-void-fg-3 void-mb-4", children: `Transfer CortexIDE's settings and chats in and out of CortexIDE.` }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "void-flex void-flex-col void-gap-8", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "void-flex void-flex-col void-gap-2 void-max-w-48 void-w-full", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("input", { ref: fileInputSettingsRef, type: "file", accept: ".json", className: "void-hidden", onChange: handleUpload("Settings") }, 2 * s), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(VoidButtonBgDarken, { className: "void-px-4 void-py-1 void-w-full", onClick: () => { + fileInputSettingsRef.current?.click(); + }, children: "Import Settings" }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(VoidButtonBgDarken, { className: "void-px-4 void-py-1 void-w-full", onClick: () => onDownload("Settings"), children: "Export Settings" }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ConfirmButton, { className: "void-px-4 void-py-1 void-w-full", onConfirm: () => { + cortexideSettingsService.resetState(); + }, children: "Reset Settings" }) + ] }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "void-flex void-flex-col void-gap-2 void-max-w-48 void-w-full", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("input", { ref: fileInputChatsRef, type: "file", accept: ".json", className: "void-hidden", onChange: handleUpload("Chats") }, 2 * s + 1), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(VoidButtonBgDarken, { className: "void-px-4 void-py-1 void-w-full", onClick: () => { + fileInputChatsRef.current?.click(); + }, children: "Import Chats" }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(VoidButtonBgDarken, { className: "void-px-4 void-py-1 void-w-full", onClick: () => onDownload("Chats"), children: "Export Chats" }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ConfirmButton, { className: "void-px-4 void-py-1 void-w-full", onConfirm: () => { + chatThreadsService.resetState(); + }, children: "Reset Chats" }) + ] }) + ] }) + ] }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("h2", { className: `void-text-3xl void-mb-2`, children: "Built-in Settings" }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("h4", { className: `void-text-void-fg-3 void-mb-4`, children: `IDE settings, keyboard settings, and theme customization.` }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ErrorBoundary_default, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "void-flex void-flex-col void-gap-2 void-justify-center void-max-w-48 void-w-full", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(VoidButtonBgDarken, { className: "void-px-4 void-py-1", onClick: () => { + commandService.executeCommand("workbench.action.openSettings"); + }, children: "General Settings" }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(VoidButtonBgDarken, { className: "void-px-4 void-py-1", onClick: () => { + commandService.executeCommand("workbench.action.openGlobalKeybindings"); + }, children: "Keyboard Settings" }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(VoidButtonBgDarken, { className: "void-px-4 void-py-1", onClick: () => { + commandService.executeCommand("workbench.action.selectTheme"); + }, children: "Theme Settings" }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(VoidButtonBgDarken, { className: "void-px-4 void-py-1", onClick: () => { + nativeHostService.showItemInFolder(environmentService.logsHome.fsPath); + }, children: "Open Logs" }) + ] }) }) + ] }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "void-max-w-[600px]", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("h2", { className: `void-text-3xl void-mb-2`, children: "Metrics" }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("h4", { className: `void-text-void-fg-3 void-mb-4`, children: "Very basic anonymous usage tracking helps us keep CortexIDE running smoothly. You may opt out below. Regardless of this setting, CortexIDE never sees your code, messages, or API keys." }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "void-my-2", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ErrorBoundary_default, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "void-flex void-items-center void-gap-x-2 void-my-2", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + VoidSwitch, + { + size: "xs", + value: isOptedOut, + onChange: (newVal) => { + storageService.store(OPT_OUT_KEY, newVal, StorageScope.APPLICATION, StorageTarget.MACHINE); + metricsService.capture(`Set metrics opt-out to ${newVal}`, {}); + } + } + ), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "void-text-void-fg-3 void-text-xs void-pointer-events-none", children: "Opt-out (requires restart)" }) + ] }) }) }) + ] }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "void-max-w-[600px]", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("h2", { className: `void-text-3xl void-mb-2`, children: "AI Instructions" }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("h4", { className: `void-text-void-fg-3 void-mb-4`, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ChatMarkdownRender, { inPTag: true, string: ` +System instructions to include with all AI requests. +Alternatively, place a \`.voidrules\` file in the root of your workspace. + `, chatMessageLocation: void 0 }) }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ErrorBoundary_default, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(AIInstructionsBox, {}) }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "void-my-4", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ErrorBoundary_default, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: "void-flex void-items-center void-gap-x-2", children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)( + VoidSwitch, + { + size: "xs", + value: !!settingsState.globalSettings.disableSystemMessage, + onChange: (newValue) => { + cortexideSettingsService.setGlobalSetting("disableSystemMessage", newValue); + } + } + ), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "void-text-void-fg-3 void-text-xs void-pointer-events-none", children: "Disable system message" }) + ] }) }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "void-text-void-fg-3 void-text-xs void-mt-1", children: `When disabled, CortexIDE will not include anything in the system message except for content you specified above.` }) + ] }) + ] }) + ] }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: shouldShowTab("mcp") ? `` : "void-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(ErrorBoundary_default, { children: [ + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("h2", { className: "void-text-3xl void-mb-2", children: "MCP" }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("h4", { className: `void-text-void-fg-3 void-mb-4`, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ChatMarkdownRender, { inPTag: true, string: ` +Use Model Context Protocol to provide Agent mode with more tools. + `, chatMessageLocation: void 0 }) }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "void-my-2", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(VoidButtonBgDarken, { className: "void-px-4 void-py-1 void-w-full void-max-w-48", onClick: async () => { + await mcpService.revealMCPConfigFile(); + }, children: "Add MCP Server" }) }), + /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ErrorBoundary_default, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(MCPServersList, {}) }) + ] }) }) + ] }) + ] }) }) + ] }) }); +}; + +export { ErrorBoundary_default, ModelDump, OllamaSetupInstructions, OneClickSwitchButton, Settings, SettingsForProvider, SidebarChat, VoidChatArea, VoidInputBox2, useRefState }; diff --git a/src/out/vs/workbench/contrib/cortexide/browser/react/out/chunk-JSBRDJBE.js b/src/out/vs/workbench/contrib/cortexide/browser/react/out/chunk-JSBRDJBE.js new file mode 100644 index 00000000000..8702359e0f2 --- /dev/null +++ b/src/out/vs/workbench/contrib/cortexide/browser/react/out/chunk-JSBRDJBE.js @@ -0,0 +1,27 @@ +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __commonJS = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); + +export { __commonJS, __toESM }; diff --git a/src/out/vs/workbench/contrib/cortexide/browser/react/out/chunk-PT4A2IRQ.js b/src/out/vs/workbench/contrib/cortexide/browser/react/out/chunk-PT4A2IRQ.js new file mode 100644 index 00000000000..53dbfb52026 --- /dev/null +++ b/src/out/vs/workbench/contrib/cortexide/browser/react/out/chunk-PT4A2IRQ.js @@ -0,0 +1,415 @@ +import { require_react } from './chunk-RJP66NWB.js'; +import { __toESM } from './chunk-JSBRDJBE.js'; + +// ../../../../../../../node_modules/lucide-react/dist/esm/createLucideIcon.js +var import_react2 = __toESM(require_react()); + +// ../../../../../../../node_modules/lucide-react/dist/esm/shared/src/utils.js +var toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(); +var toCamelCase = (string) => string.replace( + /^([A-Z])|[\s-_]+(\w)/g, + (match, p1, p2) => p2 ? p2.toUpperCase() : p1.toLowerCase() +); +var toPascalCase = (string) => { + const camelCase = toCamelCase(string); + return camelCase.charAt(0).toUpperCase() + camelCase.slice(1); +}; +var mergeClasses = (...classes) => classes.filter((className, index, array) => { + return Boolean(className) && className.trim() !== "" && array.indexOf(className) === index; +}).join(" ").trim(); +var hasA11yProp = (props) => { + for (const prop in props) { + if (prop.startsWith("aria-") || prop === "role" || prop === "title") { + return true; + } + } +}; + +// ../../../../../../../node_modules/lucide-react/dist/esm/Icon.js +var import_react = __toESM(require_react()); + +// ../../../../../../../node_modules/lucide-react/dist/esm/defaultAttributes.js +var defaultAttributes = { + xmlns: "http://www.w3.org/2000/svg", + width: 24, + height: 24, + viewBox: "0 0 24 24", + fill: "none", + stroke: "currentColor", + strokeWidth: 2, + strokeLinecap: "round", + strokeLinejoin: "round" +}; + +// ../../../../../../../node_modules/lucide-react/dist/esm/Icon.js +var Icon = (0, import_react.forwardRef)( + ({ + color = "currentColor", + size = 24, + strokeWidth = 2, + absoluteStrokeWidth, + className = "", + children, + iconNode, + ...rest + }, ref) => { + return (0, import_react.createElement)( + "svg", + { + ref, + ...defaultAttributes, + width: size, + height: size, + stroke: color, + strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth, + className: mergeClasses("lucide", className), + ...!children && !hasA11yProp(rest) && { "aria-hidden": "true" }, + ...rest + }, + [ + ...iconNode.map(([tag, attrs]) => (0, import_react.createElement)(tag, attrs)), + ...Array.isArray(children) ? children : [children] + ] + ); + } +); + +// ../../../../../../../node_modules/lucide-react/dist/esm/createLucideIcon.js +var createLucideIcon = (iconName, iconNode) => { + const Component = (0, import_react2.forwardRef)( + ({ className, ...props }, ref) => (0, import_react2.createElement)(Icon, { + ref, + iconNode, + className: mergeClasses( + `lucide-${toKebabCase(toPascalCase(iconName))}`, + `lucide-${iconName}`, + className + ), + ...props + }) + ); + Component.displayName = toPascalCase(iconName); + return Component; +}; + +// ../../../../../../../node_modules/lucide-react/dist/esm/icons/asterisk.js +var __iconNode = [ + ["path", { d: "M12 6v12", key: "1vza4d" }], + ["path", { d: "M17.196 9 6.804 15", key: "1ah31z" }], + ["path", { d: "m6.804 9 10.392 6", key: "1b6pxd" }] +]; +var Asterisk = createLucideIcon("asterisk", __iconNode); + +// ../../../../../../../node_modules/lucide-react/dist/esm/icons/check.js +var __iconNode2 = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]]; +var Check = createLucideIcon("check", __iconNode2); + +// ../../../../../../../node_modules/lucide-react/dist/esm/icons/chevron-right.js +var __iconNode3 = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]]; +var ChevronRight = createLucideIcon("chevron-right", __iconNode3); + +// ../../../../../../../node_modules/lucide-react/dist/esm/icons/ellipsis-vertical.js +var __iconNode4 = [ + ["circle", { cx: "12", cy: "12", r: "1", key: "41hilf" }], + ["circle", { cx: "12", cy: "5", r: "1", key: "gxeob9" }], + ["circle", { cx: "12", cy: "19", r: "1", key: "lyex9k" }] +]; +var EllipsisVertical = createLucideIcon("ellipsis-vertical", __iconNode4); + +// ../../../../../../../node_modules/lucide-react/dist/esm/icons/loader-circle.js +var __iconNode5 = [["path", { d: "M21 12a9 9 0 1 1-6.219-8.56", key: "13zald" }]]; +var LoaderCircle = createLucideIcon("loader-circle", __iconNode5); + +// ../../../../../../../node_modules/lucide-react/dist/esm/icons/lock.js +var __iconNode6 = [ + ["rect", { width: "18", height: "11", x: "3", y: "11", rx: "2", ry: "2", key: "1w4ew1" }], + ["path", { d: "M7 11V7a5 5 0 0 1 10 0v4", key: "fwvmzm" }] +]; +var Lock = createLucideIcon("lock", __iconNode6); + +// ../../../../../../../node_modules/lucide-react/dist/esm/icons/move-down.js +var __iconNode7 = [ + ["path", { d: "M8 18L12 22L16 18", key: "cskvfv" }], + ["path", { d: "M12 2V22", key: "r89rzk" }] +]; +var MoveDown = createLucideIcon("move-down", __iconNode7); + +// ../../../../../../../node_modules/lucide-react/dist/esm/icons/move-left.js +var __iconNode8 = [ + ["path", { d: "M6 8L2 12L6 16", key: "kyvwex" }], + ["path", { d: "M2 12H22", key: "1m8cig" }] +]; +var MoveLeft = createLucideIcon("move-left", __iconNode8); + +// ../../../../../../../node_modules/lucide-react/dist/esm/icons/move-right.js +var __iconNode9 = [ + ["path", { d: "M18 8L22 12L18 16", key: "1r0oui" }], + ["path", { d: "M2 12H22", key: "1m8cig" }] +]; +var MoveRight = createLucideIcon("move-right", __iconNode9); + +// ../../../../../../../node_modules/lucide-react/dist/esm/icons/move-up.js +var __iconNode10 = [ + ["path", { d: "M8 6L12 2L16 6", key: "1yvkyx" }], + ["path", { d: "M12 2V22", key: "r89rzk" }] +]; +var MoveUp = createLucideIcon("move-up", __iconNode10); + +// ../../../../../../../node_modules/lucide-react/dist/esm/icons/plus.js +var __iconNode11 = [ + ["path", { d: "M5 12h14", key: "1ays0h" }], + ["path", { d: "M12 5v14", key: "s699le" }] +]; +var Plus = createLucideIcon("plus", __iconNode11); + +// ../../../../../../../node_modules/lucide-react/dist/esm/icons/refresh-cw.js +var __iconNode12 = [ + ["path", { d: "M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8", key: "v9h5vc" }], + ["path", { d: "M21 3v5h-5", key: "1q7to0" }], + ["path", { d: "M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16", key: "3uifl3" }], + ["path", { d: "M8 16H3v5", key: "1cv678" }] +]; +var RefreshCw = createLucideIcon("refresh-cw", __iconNode12); + +// ../../../../../../../node_modules/lucide-react/dist/esm/icons/x.js +var __iconNode13 = [ + ["path", { d: "M18 6 6 18", key: "1bl5f8" }], + ["path", { d: "m6 6 12 12", key: "d8bk6v" }] +]; +var X = createLucideIcon("x", __iconNode13); + +// ../../../../../../../node_modules/lucide-react/dist/esm/icons/ban.js +var __iconNode14 = [ + ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }], + ["path", { d: "m4.9 4.9 14.2 14.2", key: "1m5liu" }] +]; +var Ban = createLucideIcon("ban", __iconNode14); + +// ../../../../../../../node_modules/lucide-react/dist/esm/icons/chevron-down.js +var __iconNode15 = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]]; +var ChevronDown = createLucideIcon("chevron-down", __iconNode15); + +// ../../../../../../../node_modules/lucide-react/dist/esm/icons/chevron-left.js +var __iconNode16 = [["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }]]; +var ChevronLeft = createLucideIcon("chevron-left", __iconNode16); + +// ../../../../../../../node_modules/lucide-react/dist/esm/icons/chevron-up.js +var __iconNode17 = [["path", { d: "m18 15-6-6-6 6", key: "153udz" }]]; +var ChevronUp = createLucideIcon("chevron-up", __iconNode17); + +// ../../../../../../../node_modules/lucide-react/dist/esm/icons/circle-alert.js +var __iconNode18 = [ + ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }], + ["line", { x1: "12", x2: "12", y1: "8", y2: "12", key: "1pkeuh" }], + ["line", { x1: "12", x2: "12.01", y1: "16", y2: "16", key: "4dfq90" }] +]; +var CircleAlert = createLucideIcon("circle-alert", __iconNode18); + +// ../../../../../../../node_modules/lucide-react/dist/esm/icons/circle-ellipsis.js +var __iconNode19 = [ + ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }], + ["path", { d: "M17 12h.01", key: "1m0b6t" }], + ["path", { d: "M12 12h.01", key: "1mp3jc" }], + ["path", { d: "M7 12h.01", key: "eqddd0" }] +]; +var CircleEllipsis = createLucideIcon("circle-ellipsis", __iconNode19); + +// ../../../../../../../node_modules/lucide-react/dist/esm/icons/circle-plus.js +var __iconNode20 = [ + ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }], + ["path", { d: "M8 12h8", key: "1wcyev" }], + ["path", { d: "M12 8v8", key: "napkw2" }] +]; +var CirclePlus = createLucideIcon("circle-plus", __iconNode20); + +// ../../../../../../../node_modules/lucide-react/dist/esm/icons/copy.js +var __iconNode21 = [ + ["rect", { width: "14", height: "14", x: "8", y: "8", rx: "2", ry: "2", key: "17jyea" }], + ["path", { d: "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2", key: "zix9uf" }] +]; +var Copy = createLucideIcon("copy", __iconNode21); + +// ../../../../../../../node_modules/lucide-react/dist/esm/icons/dot.js +var __iconNode22 = [["circle", { cx: "12.1", cy: "12.1", r: "1", key: "18d7e5" }]]; +var Dot = createLucideIcon("dot", __iconNode22); + +// ../../../../../../../node_modules/lucide-react/dist/esm/icons/file-symlink.js +var __iconNode23 = [ + ["path", { d: "m10 18 3-3-3-3", key: "18f6ys" }], + ["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }], + [ + "path", + { + d: "M4 11V4a2 2 0 0 1 2-2h9l5 5v13a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h7", + key: "50q2rw" + } + ] +]; +var FileSymlink = createLucideIcon("file-symlink", __iconNode23); + +// ../../../../../../../node_modules/lucide-react/dist/esm/icons/file-text.js +var __iconNode24 = [ + ["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z", key: "1rqfz7" }], + ["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }], + ["path", { d: "M10 9H8", key: "b1mrlr" }], + ["path", { d: "M16 13H8", key: "t4e002" }], + ["path", { d: "M16 17H8", key: "z1uh3a" }] +]; +var FileText = createLucideIcon("file-text", __iconNode24); + +// ../../../../../../../node_modules/lucide-react/dist/esm/icons/file.js +var __iconNode25 = [ + ["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z", key: "1rqfz7" }], + ["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }] +]; +var File = createLucideIcon("file", __iconNode25); + +// ../../../../../../../node_modules/lucide-react/dist/esm/icons/folder.js +var __iconNode26 = [ + [ + "path", + { + d: "M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z", + key: "1kt360" + } + ] +]; +var Folder = createLucideIcon("folder", __iconNode26); + +// ../../../../../../../node_modules/lucide-react/dist/esm/icons/image.js +var __iconNode27 = [ + ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", ry: "2", key: "1m3agn" }], + ["circle", { cx: "9", cy: "9", r: "2", key: "af1f0g" }], + ["path", { d: "m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21", key: "1xmnt7" }] +]; +var Image = createLucideIcon("image", __iconNode27); + +// ../../../../../../../node_modules/lucide-react/dist/esm/icons/info.js +var __iconNode28 = [ + ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }], + ["path", { d: "M12 16v-4", key: "1dtifu" }], + ["path", { d: "M12 8h.01", key: "e9boi3" }] +]; +var Info = createLucideIcon("info", __iconNode28); + +// ../../../../../../../node_modules/lucide-react/dist/esm/icons/message-circle-question.js +var __iconNode29 = [ + ["path", { d: "M7.9 20A9 9 0 1 0 4 16.1L2 22Z", key: "vv11sd" }], + ["path", { d: "M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3", key: "1u773s" }], + ["path", { d: "M12 17h.01", key: "p32p05" }] +]; +var MessageCircleQuestion = createLucideIcon("message-circle-question", __iconNode29); + +// ../../../../../../../node_modules/lucide-react/dist/esm/icons/pencil.js +var __iconNode30 = [ + [ + "path", + { + d: "M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z", + key: "1a8usu" + } + ], + ["path", { d: "m15 5 4 4", key: "1mk7zo" }] +]; +var Pencil = createLucideIcon("pencil", __iconNode30); + +// ../../../../../../../node_modules/lucide-react/dist/esm/icons/play.js +var __iconNode31 = [["polygon", { points: "6 3 20 12 6 21 6 3", key: "1oa8hb" }]]; +var Play = createLucideIcon("play", __iconNode31); + +// ../../../../../../../node_modules/lucide-react/dist/esm/icons/rotate-ccw.js +var __iconNode32 = [ + ["path", { d: "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8", key: "1357e3" }], + ["path", { d: "M3 3v5h5", key: "1xhq8a" }] +]; +var RotateCcw = createLucideIcon("rotate-ccw", __iconNode32); + +// ../../../../../../../node_modules/lucide-react/dist/esm/icons/square.js +var __iconNode33 = [ + ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }] +]; +var Square = createLucideIcon("square", __iconNode33); + +// ../../../../../../../node_modules/lucide-react/dist/esm/icons/text.js +var __iconNode34 = [ + ["path", { d: "M15 18H3", key: "olowqp" }], + ["path", { d: "M17 6H3", key: "16j9eg" }], + ["path", { d: "M21 12H3", key: "2avoz0" }] +]; +var Text = createLucideIcon("text", __iconNode34); + +// ../../../../../../../node_modules/lucide-react/dist/esm/icons/trash-2.js +var __iconNode35 = [ + ["path", { d: "M3 6h18", key: "d0wm0j" }], + ["path", { d: "M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6", key: "4alrt4" }], + ["path", { d: "M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2", key: "v07s0e" }], + ["line", { x1: "10", x2: "10", y1: "11", y2: "17", key: "1uufr5" }], + ["line", { x1: "14", x2: "14", y1: "11", y2: "17", key: "xtxkd" }] +]; +var Trash2 = createLucideIcon("trash-2", __iconNode35); + +// ../../../../../../../node_modules/lucide-react/dist/esm/icons/triangle-alert.js +var __iconNode36 = [ + [ + "path", + { + d: "m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3", + key: "wmoenq" + } + ], + ["path", { d: "M12 9v4", key: "juzpu7" }], + ["path", { d: "M12 17h.01", key: "p32p05" }] +]; +var TriangleAlert = createLucideIcon("triangle-alert", __iconNode36); +/*! Bundled license information: + +lucide-react/dist/esm/shared/src/utils.js: +lucide-react/dist/esm/defaultAttributes.js: +lucide-react/dist/esm/Icon.js: +lucide-react/dist/esm/createLucideIcon.js: +lucide-react/dist/esm/icons/asterisk.js: +lucide-react/dist/esm/icons/check.js: +lucide-react/dist/esm/icons/chevron-right.js: +lucide-react/dist/esm/icons/ellipsis-vertical.js: +lucide-react/dist/esm/icons/loader-circle.js: +lucide-react/dist/esm/icons/lock.js: +lucide-react/dist/esm/icons/move-down.js: +lucide-react/dist/esm/icons/move-left.js: +lucide-react/dist/esm/icons/move-right.js: +lucide-react/dist/esm/icons/move-up.js: +lucide-react/dist/esm/icons/plus.js: +lucide-react/dist/esm/icons/refresh-cw.js: +lucide-react/dist/esm/icons/x.js: +lucide-react/dist/esm/icons/ban.js: +lucide-react/dist/esm/icons/chevron-down.js: +lucide-react/dist/esm/icons/chevron-left.js: +lucide-react/dist/esm/icons/chevron-up.js: +lucide-react/dist/esm/icons/circle-alert.js: +lucide-react/dist/esm/icons/circle-ellipsis.js: +lucide-react/dist/esm/icons/circle-plus.js: +lucide-react/dist/esm/icons/copy.js: +lucide-react/dist/esm/icons/dot.js: +lucide-react/dist/esm/icons/file-symlink.js: +lucide-react/dist/esm/icons/file-text.js: +lucide-react/dist/esm/icons/file.js: +lucide-react/dist/esm/icons/folder.js: +lucide-react/dist/esm/icons/image.js: +lucide-react/dist/esm/icons/info.js: +lucide-react/dist/esm/icons/message-circle-question.js: +lucide-react/dist/esm/icons/pencil.js: +lucide-react/dist/esm/icons/play.js: +lucide-react/dist/esm/icons/rotate-ccw.js: +lucide-react/dist/esm/icons/square.js: +lucide-react/dist/esm/icons/text.js: +lucide-react/dist/esm/icons/trash-2.js: +lucide-react/dist/esm/icons/triangle-alert.js: +lucide-react/dist/esm/lucide-react.js: + (** + * @license lucide-react v0.503.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) +*/ + +export { Asterisk, Ban, Check, ChevronDown, ChevronLeft, ChevronRight, ChevronUp, CircleAlert, CircleEllipsis, CirclePlus, Copy, Dot, EllipsisVertical, File, FileSymlink, FileText, Folder, Image, Info, LoaderCircle, Lock, MessageCircleQuestion, MoveDown, MoveLeft, MoveRight, MoveUp, Pencil, Play, Plus, RefreshCw, RotateCcw, Square, Text, Trash2, TriangleAlert, X }; diff --git a/src/out/vs/workbench/contrib/cortexide/browser/react/out/chunk-RJP66NWB.js b/src/out/vs/workbench/contrib/cortexide/browser/react/out/chunk-RJP66NWB.js new file mode 100644 index 00000000000..c826294934b --- /dev/null +++ b/src/out/vs/workbench/contrib/cortexide/browser/react/out/chunk-RJP66NWB.js @@ -0,0 +1,22073 @@ +import { __commonJS, __toESM } from './chunk-JSBRDJBE.js'; +import { DisposableStore } from 'vs/base/common/lifecycle.js'; +import { ColorScheme } from 'vs/platform/theme/common/theme.js'; +import { IExplorerService } from 'vs/workbench/contrib/files/browser/files.js'; +import { IModelService } from 'vs/editor/common/services/model.js'; +import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService.js'; +import { IContextMenuService, IContextViewService } from 'vs/platform/contextview/browser/contextView.js'; +import { IFileService } from 'vs/platform/files/common/files.js'; +import { IHoverService } from 'vs/platform/hover/browser/hover.js'; +import { IThemeService } from 'vs/platform/theme/common/themeService.js'; +import { ILLMMessageService } from 'vs/workbench/contrib/cortexide/common/sendLLMMessageService.js'; +import { IRefreshModelService } from 'vs/workbench/contrib/cortexide/common/refreshModelService.js'; +import { ICortexideSettingsService } from 'vs/workbench/contrib/cortexide/common/cortexideSettingsService.js'; +import { IExtensionTransferService } from 'vs/workbench/contrib/cortexide/browser/extensionTransferService.js'; +import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation.js'; +import { ICodeEditorService } from 'vs/editor/browser/services/codeEditorService.js'; +import { ICommandService } from 'vs/platform/commands/common/commands.js'; +import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey.js'; +import { INotificationService } from 'vs/platform/notification/common/notification.js'; +import { IAccessibilityService } from 'vs/platform/accessibility/common/accessibility.js'; +import { ILanguageConfigurationService } from 'vs/editor/common/languages/languageConfigurationRegistry.js'; +import { ILanguageFeaturesService } from 'vs/editor/common/services/languageFeatures.js'; +import { ILanguageDetectionService } from 'vs/services/languageDetection/common/languageDetectionWorkerService.js'; +import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding.js'; +import { IEnvironmentService } from 'vs/platform/environment/common/environment.js'; +import { IConfigurationService } from 'vs/platform/configuration/common/configuration.js'; +import { IPathService } from 'vs/workbench/services/path/common/pathService.js'; +import { IMetricsService } from 'vs/workbench/contrib/cortexide/common/metricsService.js'; +import { IChatThreadService } from 'vs/workbench/contrib/cortexide/chatThreadService.js'; +import { ITerminalToolService } from 'vs/workbench/contrib/cortexide/browser/terminalToolService.js'; +import { ILanguageService } from 'vs/editor/common/languages/language.js'; +import { ICortexideModelService } from 'vs/workbench/contrib/cortexide/common/cortexideModelService.js'; +import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace.js'; +import { ICortexideCommandBarService } from 'vs/workbench/contrib/cortexide/cortexideCommandBarService.js'; +import { INativeHostService } from 'vs/platform/native/common/native.js'; +import { IEditCodeService } from 'vs/workbench/contrib/cortexide/editCodeServiceInterface.js'; +import { IToolsService } from 'vs/workbench/contrib/cortexide/toolsService.js'; +import { IConvertToLLMMessageService } from 'vs/workbench/contrib/cortexide/convertToLLMMessageService.js'; +import { ITerminalService } from 'vs/workbench/terminal/browser/terminal.js'; +import { ISearchService } from 'vs/services/search/common/search.js'; +import { IExtensionManagementService } from 'vs/platform/extensionManagement/common/extensionManagement.js'; +import { IMCPService } from 'vs/workbench/contrib/cortexide/common/mcpService.js'; +import { StorageScope, IStorageService } from 'vs/platform/storage/common/storage.js'; +import { OPT_OUT_KEY } from 'vs/workbench/contrib/cortexide/common/storageKeys.js'; +import { IRepoIndexerService } from 'vs/workbench/contrib/cortexide/repoIndexerService.js'; +import { ISecretDetectionService } from 'vs/workbench/contrib/cortexide/common/secretDetectionService.js'; + +// ../../../../../../../node_modules/scheduler/cjs/scheduler.development.js +var require_scheduler_development = __commonJS({ + "../../../../../../../node_modules/scheduler/cjs/scheduler.development.js"(exports$1) { + (function() { + function performWorkUntilDeadline() { + needsPaint = false; + if (isMessageLoopRunning) { + var currentTime = exports$1.unstable_now(); + startTime = currentTime; + var hasMoreWork = true; + try { + a: { + isHostCallbackScheduled = false; + isHostTimeoutScheduled && (isHostTimeoutScheduled = false, localClearTimeout(taskTimeoutID), taskTimeoutID = -1); + isPerformingWork = true; + var previousPriorityLevel = currentPriorityLevel; + try { + b: { + advanceTimers(currentTime); + for (currentTask = peek(taskQueue); null !== currentTask && !(currentTask.expirationTime > currentTime && shouldYieldToHost()); ) { + var callback = currentTask.callback; + if ("function" === typeof callback) { + currentTask.callback = null; + currentPriorityLevel = currentTask.priorityLevel; + var continuationCallback = callback( + currentTask.expirationTime <= currentTime + ); + currentTime = exports$1.unstable_now(); + if ("function" === typeof continuationCallback) { + currentTask.callback = continuationCallback; + advanceTimers(currentTime); + hasMoreWork = true; + break b; + } + currentTask === peek(taskQueue) && pop(taskQueue); + advanceTimers(currentTime); + } else pop(taskQueue); + currentTask = peek(taskQueue); + } + if (null !== currentTask) hasMoreWork = true; + else { + var firstTimer = peek(timerQueue); + null !== firstTimer && requestHostTimeout( + handleTimeout, + firstTimer.startTime - currentTime + ); + hasMoreWork = false; + } + } + break a; + } finally { + currentTask = null, currentPriorityLevel = previousPriorityLevel, isPerformingWork = false; + } + hasMoreWork = void 0; + } + } finally { + hasMoreWork ? schedulePerformWorkUntilDeadline() : isMessageLoopRunning = false; + } + } + } + function push(heap, node) { + var index = heap.length; + heap.push(node); + a: for (; 0 < index; ) { + var parentIndex = index - 1 >>> 1, parent = heap[parentIndex]; + if (0 < compare(parent, node)) + heap[parentIndex] = node, heap[index] = parent, index = parentIndex; + else break a; + } + } + function peek(heap) { + return 0 === heap.length ? null : heap[0]; + } + function pop(heap) { + if (0 === heap.length) return null; + var first = heap[0], last = heap.pop(); + if (last !== first) { + heap[0] = last; + a: for (var index = 0, length = heap.length, halfLength = length >>> 1; index < halfLength; ) { + var leftIndex = 2 * (index + 1) - 1, left = heap[leftIndex], rightIndex = leftIndex + 1, right = heap[rightIndex]; + if (0 > compare(left, last)) + rightIndex < length && 0 > compare(right, left) ? (heap[index] = right, heap[rightIndex] = last, index = rightIndex) : (heap[index] = left, heap[leftIndex] = last, index = leftIndex); + else if (rightIndex < length && 0 > compare(right, last)) + heap[index] = right, heap[rightIndex] = last, index = rightIndex; + else break a; + } + } + return first; + } + function compare(a, b) { + var diff = a.sortIndex - b.sortIndex; + return 0 !== diff ? diff : a.id - b.id; + } + function advanceTimers(currentTime) { + for (var timer = peek(timerQueue); null !== timer; ) { + if (null === timer.callback) pop(timerQueue); + else if (timer.startTime <= currentTime) + pop(timerQueue), timer.sortIndex = timer.expirationTime, push(taskQueue, timer); + else break; + timer = peek(timerQueue); + } + } + function handleTimeout(currentTime) { + isHostTimeoutScheduled = false; + advanceTimers(currentTime); + if (!isHostCallbackScheduled) + if (null !== peek(taskQueue)) + isHostCallbackScheduled = true, isMessageLoopRunning || (isMessageLoopRunning = true, schedulePerformWorkUntilDeadline()); + else { + var firstTimer = peek(timerQueue); + null !== firstTimer && requestHostTimeout( + handleTimeout, + firstTimer.startTime - currentTime + ); + } + } + function shouldYieldToHost() { + return needsPaint ? true : exports$1.unstable_now() - startTime < frameInterval ? false : true; + } + function requestHostTimeout(callback, ms) { + taskTimeoutID = localSetTimeout(function() { + callback(exports$1.unstable_now()); + }, ms); + } + "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error()); + exports$1.unstable_now = void 0; + if ("object" === typeof performance && "function" === typeof performance.now) { + var localPerformance = performance; + exports$1.unstable_now = function() { + return localPerformance.now(); + }; + } else { + var localDate = Date, initialTime = localDate.now(); + exports$1.unstable_now = function() { + return localDate.now() - initialTime; + }; + } + var taskQueue = [], timerQueue = [], taskIdCounter = 1, currentTask = null, currentPriorityLevel = 3, isPerformingWork = false, isHostCallbackScheduled = false, isHostTimeoutScheduled = false, needsPaint = false, localSetTimeout = "function" === typeof setTimeout ? setTimeout : null, localClearTimeout = "function" === typeof clearTimeout ? clearTimeout : null, localSetImmediate = "undefined" !== typeof setImmediate ? setImmediate : null, isMessageLoopRunning = false, taskTimeoutID = -1, frameInterval = 5, startTime = -1; + if ("function" === typeof localSetImmediate) + var schedulePerformWorkUntilDeadline = function() { + localSetImmediate(performWorkUntilDeadline); + }; + else if ("undefined" !== typeof MessageChannel) { + var channel = new MessageChannel(), port = channel.port2; + channel.port1.onmessage = performWorkUntilDeadline; + schedulePerformWorkUntilDeadline = function() { + port.postMessage(null); + }; + } else + schedulePerformWorkUntilDeadline = function() { + localSetTimeout(performWorkUntilDeadline, 0); + }; + exports$1.unstable_IdlePriority = 5; + exports$1.unstable_ImmediatePriority = 1; + exports$1.unstable_LowPriority = 4; + exports$1.unstable_NormalPriority = 3; + exports$1.unstable_Profiling = null; + exports$1.unstable_UserBlockingPriority = 2; + exports$1.unstable_cancelCallback = function(task) { + task.callback = null; + }; + exports$1.unstable_forceFrameRate = function(fps) { + 0 > fps || 125 < fps ? console.error( + "forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported" + ) : frameInterval = 0 < fps ? Math.floor(1e3 / fps) : 5; + }; + exports$1.unstable_getCurrentPriorityLevel = function() { + return currentPriorityLevel; + }; + exports$1.unstable_next = function(eventHandler) { + switch (currentPriorityLevel) { + case 1: + case 2: + case 3: + var priorityLevel = 3; + break; + default: + priorityLevel = currentPriorityLevel; + } + var previousPriorityLevel = currentPriorityLevel; + currentPriorityLevel = priorityLevel; + try { + return eventHandler(); + } finally { + currentPriorityLevel = previousPriorityLevel; + } + }; + exports$1.unstable_requestPaint = function() { + needsPaint = true; + }; + exports$1.unstable_runWithPriority = function(priorityLevel, eventHandler) { + switch (priorityLevel) { + case 1: + case 2: + case 3: + case 4: + case 5: + break; + default: + priorityLevel = 3; + } + var previousPriorityLevel = currentPriorityLevel; + currentPriorityLevel = priorityLevel; + try { + return eventHandler(); + } finally { + currentPriorityLevel = previousPriorityLevel; + } + }; + exports$1.unstable_scheduleCallback = function(priorityLevel, callback, options) { + var currentTime = exports$1.unstable_now(); + "object" === typeof options && null !== options ? (options = options.delay, options = "number" === typeof options && 0 < options ? currentTime + options : currentTime) : options = currentTime; + switch (priorityLevel) { + case 1: + var timeout = -1; + break; + case 2: + timeout = 250; + break; + case 5: + timeout = 1073741823; + break; + case 4: + timeout = 1e4; + break; + default: + timeout = 5e3; + } + timeout = options + timeout; + priorityLevel = { + id: taskIdCounter++, + callback, + priorityLevel, + startTime: options, + expirationTime: timeout, + sortIndex: -1 + }; + options > currentTime ? (priorityLevel.sortIndex = options, push(timerQueue, priorityLevel), null === peek(taskQueue) && priorityLevel === peek(timerQueue) && (isHostTimeoutScheduled ? (localClearTimeout(taskTimeoutID), taskTimeoutID = -1) : isHostTimeoutScheduled = true, requestHostTimeout(handleTimeout, options - currentTime))) : (priorityLevel.sortIndex = timeout, push(taskQueue, priorityLevel), isHostCallbackScheduled || isPerformingWork || (isHostCallbackScheduled = true, isMessageLoopRunning || (isMessageLoopRunning = true, schedulePerformWorkUntilDeadline()))); + return priorityLevel; + }; + exports$1.unstable_shouldYield = shouldYieldToHost; + exports$1.unstable_wrapCallback = function(callback) { + var parentPriorityLevel = currentPriorityLevel; + return function() { + var previousPriorityLevel = currentPriorityLevel; + currentPriorityLevel = parentPriorityLevel; + try { + return callback.apply(this, arguments); + } finally { + currentPriorityLevel = previousPriorityLevel; + } + }; + }; + "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error()); + })(); + } +}); + +// ../../../../../../../node_modules/scheduler/index.js +var require_scheduler = __commonJS({ + "../../../../../../../node_modules/scheduler/index.js"(exports$1, module) { + { + module.exports = require_scheduler_development(); + } + } +}); + +// ../../../../../../../node_modules/react/cjs/react.development.js +var require_react_development = __commonJS({ + "../../../../../../../node_modules/react/cjs/react.development.js"(exports$1, module) { + (function() { + function defineDeprecationWarning(methodName, info) { + Object.defineProperty(Component.prototype, methodName, { + get: function() { + console.warn( + "%s(...) is deprecated in plain JavaScript React classes. %s", + info[0], + info[1] + ); + } + }); + } + function getIteratorFn(maybeIterable) { + if (null === maybeIterable || "object" !== typeof maybeIterable) + return null; + maybeIterable = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable["@@iterator"]; + return "function" === typeof maybeIterable ? maybeIterable : null; + } + function warnNoop(publicInstance, callerName) { + publicInstance = (publicInstance = publicInstance.constructor) && (publicInstance.displayName || publicInstance.name) || "ReactClass"; + var warningKey = publicInstance + "." + callerName; + didWarnStateUpdateForUnmountedComponent[warningKey] || (console.error( + "Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.", + callerName, + publicInstance + ), didWarnStateUpdateForUnmountedComponent[warningKey] = true); + } + function Component(props, context, updater) { + this.props = props; + this.context = context; + this.refs = emptyObject; + this.updater = updater || ReactNoopUpdateQueue; + } + function ComponentDummy() { + } + function PureComponent(props, context, updater) { + this.props = props; + this.context = context; + this.refs = emptyObject; + this.updater = updater || ReactNoopUpdateQueue; + } + function noop() { + } + function testStringCoercion(value) { + return "" + value; + } + function checkKeyStringCoercion(value) { + try { + testStringCoercion(value); + var JSCompiler_inline_result = false; + } catch (e) { + JSCompiler_inline_result = true; + } + if (JSCompiler_inline_result) { + JSCompiler_inline_result = console; + var JSCompiler_temp_const = JSCompiler_inline_result.error; + var JSCompiler_inline_result$jscomp$0 = "function" === typeof Symbol && Symbol.toStringTag && value[Symbol.toStringTag] || value.constructor.name || "Object"; + JSCompiler_temp_const.call( + JSCompiler_inline_result, + "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.", + JSCompiler_inline_result$jscomp$0 + ); + return testStringCoercion(value); + } + } + function getComponentNameFromType(type) { + if (null == type) return null; + if ("function" === typeof type) + return type.$$typeof === REACT_CLIENT_REFERENCE ? null : type.displayName || type.name || null; + if ("string" === typeof type) return type; + switch (type) { + case REACT_FRAGMENT_TYPE: + return "Fragment"; + case REACT_PROFILER_TYPE: + return "Profiler"; + case REACT_STRICT_MODE_TYPE: + return "StrictMode"; + case REACT_SUSPENSE_TYPE: + return "Suspense"; + case REACT_SUSPENSE_LIST_TYPE: + return "SuspenseList"; + case REACT_ACTIVITY_TYPE: + return "Activity"; + } + if ("object" === typeof type) + switch ("number" === typeof type.tag && console.error( + "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue." + ), type.$$typeof) { + case REACT_PORTAL_TYPE: + return "Portal"; + case REACT_CONTEXT_TYPE: + return type.displayName || "Context"; + case REACT_CONSUMER_TYPE: + return (type._context.displayName || "Context") + ".Consumer"; + case REACT_FORWARD_REF_TYPE: + var innerType = type.render; + type = type.displayName; + type || (type = innerType.displayName || innerType.name || "", type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef"); + return type; + case REACT_MEMO_TYPE: + return innerType = type.displayName || null, null !== innerType ? innerType : getComponentNameFromType(type.type) || "Memo"; + case REACT_LAZY_TYPE: + innerType = type._payload; + type = type._init; + try { + return getComponentNameFromType(type(innerType)); + } catch (x) { + } + } + return null; + } + function getTaskName(type) { + if (type === REACT_FRAGMENT_TYPE) return "<>"; + if ("object" === typeof type && null !== type && type.$$typeof === REACT_LAZY_TYPE) + return "<...>"; + try { + var name = getComponentNameFromType(type); + return name ? "<" + name + ">" : "<...>"; + } catch (x) { + return "<...>"; + } + } + function getOwner() { + var dispatcher = ReactSharedInternals.A; + return null === dispatcher ? null : dispatcher.getOwner(); + } + function UnknownOwner() { + return Error("react-stack-top-frame"); + } + function hasValidKey(config) { + if (hasOwnProperty.call(config, "key")) { + var getter = Object.getOwnPropertyDescriptor(config, "key").get; + if (getter && getter.isReactWarning) return false; + } + return void 0 !== config.key; + } + function defineKeyPropWarningGetter(props, displayName) { + function warnAboutAccessingKey() { + specialPropKeyWarningShown || (specialPropKeyWarningShown = true, console.error( + "%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)", + displayName + )); + } + warnAboutAccessingKey.isReactWarning = true; + Object.defineProperty(props, "key", { + get: warnAboutAccessingKey, + configurable: true + }); + } + function elementRefGetterWithDeprecationWarning() { + var componentName = getComponentNameFromType(this.type); + didWarnAboutElementRef[componentName] || (didWarnAboutElementRef[componentName] = true, console.error( + "Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release." + )); + componentName = this.props.ref; + return void 0 !== componentName ? componentName : null; + } + function ReactElement(type, key, props, owner, debugStack, debugTask) { + var refProp = props.ref; + type = { + $$typeof: REACT_ELEMENT_TYPE, + type, + key, + props, + _owner: owner + }; + null !== (void 0 !== refProp ? refProp : null) ? Object.defineProperty(type, "ref", { + enumerable: false, + get: elementRefGetterWithDeprecationWarning + }) : Object.defineProperty(type, "ref", { enumerable: false, value: null }); + type._store = {}; + Object.defineProperty(type._store, "validated", { + configurable: false, + enumerable: false, + writable: true, + value: 0 + }); + Object.defineProperty(type, "_debugInfo", { + configurable: false, + enumerable: false, + writable: true, + value: null + }); + Object.defineProperty(type, "_debugStack", { + configurable: false, + enumerable: false, + writable: true, + value: debugStack + }); + Object.defineProperty(type, "_debugTask", { + configurable: false, + enumerable: false, + writable: true, + value: debugTask + }); + Object.freeze && (Object.freeze(type.props), Object.freeze(type)); + return type; + } + function cloneAndReplaceKey(oldElement, newKey) { + newKey = ReactElement( + oldElement.type, + newKey, + oldElement.props, + oldElement._owner, + oldElement._debugStack, + oldElement._debugTask + ); + oldElement._store && (newKey._store.validated = oldElement._store.validated); + return newKey; + } + function validateChildKeys(node) { + isValidElement(node) ? node._store && (node._store.validated = 1) : "object" === typeof node && null !== node && node.$$typeof === REACT_LAZY_TYPE && ("fulfilled" === node._payload.status ? isValidElement(node._payload.value) && node._payload.value._store && (node._payload.value._store.validated = 1) : node._store && (node._store.validated = 1)); + } + function isValidElement(object) { + return "object" === typeof object && null !== object && object.$$typeof === REACT_ELEMENT_TYPE; + } + function escape(key) { + var escaperLookup = { "=": "=0", ":": "=2" }; + return "$" + key.replace(/[=:]/g, function(match) { + return escaperLookup[match]; + }); + } + function getElementKey(element, index) { + return "object" === typeof element && null !== element && null != element.key ? (checkKeyStringCoercion(element.key), escape("" + element.key)) : index.toString(36); + } + function resolveThenable(thenable) { + switch (thenable.status) { + case "fulfilled": + return thenable.value; + case "rejected": + throw thenable.reason; + default: + switch ("string" === typeof thenable.status ? thenable.then(noop, noop) : (thenable.status = "pending", thenable.then( + function(fulfilledValue) { + "pending" === thenable.status && (thenable.status = "fulfilled", thenable.value = fulfilledValue); + }, + function(error) { + "pending" === thenable.status && (thenable.status = "rejected", thenable.reason = error); + } + )), thenable.status) { + case "fulfilled": + return thenable.value; + case "rejected": + throw thenable.reason; + } + } + throw thenable; + } + function mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) { + var type = typeof children; + if ("undefined" === type || "boolean" === type) children = null; + var invokeCallback = false; + if (null === children) invokeCallback = true; + else + switch (type) { + case "bigint": + case "string": + case "number": + invokeCallback = true; + break; + case "object": + switch (children.$$typeof) { + case REACT_ELEMENT_TYPE: + case REACT_PORTAL_TYPE: + invokeCallback = true; + break; + case REACT_LAZY_TYPE: + return invokeCallback = children._init, mapIntoArray( + invokeCallback(children._payload), + array, + escapedPrefix, + nameSoFar, + callback + ); + } + } + if (invokeCallback) { + invokeCallback = children; + callback = callback(invokeCallback); + var childKey = "" === nameSoFar ? "." + getElementKey(invokeCallback, 0) : nameSoFar; + isArrayImpl(callback) ? (escapedPrefix = "", null != childKey && (escapedPrefix = childKey.replace(userProvidedKeyEscapeRegex, "$&/") + "/"), mapIntoArray(callback, array, escapedPrefix, "", function(c) { + return c; + })) : null != callback && (isValidElement(callback) && (null != callback.key && (invokeCallback && invokeCallback.key === callback.key || checkKeyStringCoercion(callback.key)), escapedPrefix = cloneAndReplaceKey( + callback, + escapedPrefix + (null == callback.key || invokeCallback && invokeCallback.key === callback.key ? "" : ("" + callback.key).replace( + userProvidedKeyEscapeRegex, + "$&/" + ) + "/") + childKey + ), "" !== nameSoFar && null != invokeCallback && isValidElement(invokeCallback) && null == invokeCallback.key && invokeCallback._store && !invokeCallback._store.validated && (escapedPrefix._store.validated = 2), callback = escapedPrefix), array.push(callback)); + return 1; + } + invokeCallback = 0; + childKey = "" === nameSoFar ? "." : nameSoFar + ":"; + if (isArrayImpl(children)) + for (var i = 0; i < children.length; i++) + nameSoFar = children[i], type = childKey + getElementKey(nameSoFar, i), invokeCallback += mapIntoArray( + nameSoFar, + array, + escapedPrefix, + type, + callback + ); + else if (i = getIteratorFn(children), "function" === typeof i) + for (i === children.entries && (didWarnAboutMaps || console.warn( + "Using Maps as children is not supported. Use an array of keyed ReactElements instead." + ), didWarnAboutMaps = true), children = i.call(children), i = 0; !(nameSoFar = children.next()).done; ) + nameSoFar = nameSoFar.value, type = childKey + getElementKey(nameSoFar, i++), invokeCallback += mapIntoArray( + nameSoFar, + array, + escapedPrefix, + type, + callback + ); + else if ("object" === type) { + if ("function" === typeof children.then) + return mapIntoArray( + resolveThenable(children), + array, + escapedPrefix, + nameSoFar, + callback + ); + array = String(children); + throw Error( + "Objects are not valid as a React child (found: " + ("[object Object]" === array ? "object with keys {" + Object.keys(children).join(", ") + "}" : array) + "). If you meant to render a collection of children, use an array instead." + ); + } + return invokeCallback; + } + function mapChildren(children, func, context) { + if (null == children) return children; + var result = [], count = 0; + mapIntoArray(children, result, "", "", function(child) { + return func.call(context, child, count++); + }); + return result; + } + function lazyInitializer(payload) { + if (-1 === payload._status) { + var ioInfo = payload._ioInfo; + null != ioInfo && (ioInfo.start = ioInfo.end = performance.now()); + ioInfo = payload._result; + var thenable = ioInfo(); + thenable.then( + function(moduleObject) { + if (0 === payload._status || -1 === payload._status) { + payload._status = 1; + payload._result = moduleObject; + var _ioInfo = payload._ioInfo; + null != _ioInfo && (_ioInfo.end = performance.now()); + void 0 === thenable.status && (thenable.status = "fulfilled", thenable.value = moduleObject); + } + }, + function(error) { + if (0 === payload._status || -1 === payload._status) { + payload._status = 2; + payload._result = error; + var _ioInfo2 = payload._ioInfo; + null != _ioInfo2 && (_ioInfo2.end = performance.now()); + void 0 === thenable.status && (thenable.status = "rejected", thenable.reason = error); + } + } + ); + ioInfo = payload._ioInfo; + if (null != ioInfo) { + ioInfo.value = thenable; + var displayName = thenable.displayName; + "string" === typeof displayName && (ioInfo.name = displayName); + } + -1 === payload._status && (payload._status = 0, payload._result = thenable); + } + if (1 === payload._status) + return ioInfo = payload._result, void 0 === ioInfo && console.error( + "lazy: Expected the result of a dynamic import() call. Instead received: %s\n\nYour code should look like: \n const MyComponent = lazy(() => import('./MyComponent'))\n\nDid you accidentally put curly braces around the import?", + ioInfo + ), "default" in ioInfo || console.error( + "lazy: Expected the result of a dynamic import() call. Instead received: %s\n\nYour code should look like: \n const MyComponent = lazy(() => import('./MyComponent'))", + ioInfo + ), ioInfo.default; + throw payload._result; + } + function resolveDispatcher() { + var dispatcher = ReactSharedInternals.H; + null === dispatcher && console.error( + "Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem." + ); + return dispatcher; + } + function releaseAsyncTransition() { + ReactSharedInternals.asyncTransitions--; + } + function enqueueTask(task) { + if (null === enqueueTaskImpl) + try { + var requireString = ("require" + Math.random()).slice(0, 7); + enqueueTaskImpl = (module && module[requireString]).call( + module, + "timers" + ).setImmediate; + } catch (_err) { + enqueueTaskImpl = function(callback) { + false === didWarnAboutMessageChannel && (didWarnAboutMessageChannel = true, "undefined" === typeof MessageChannel && console.error( + "This browser does not have a MessageChannel implementation, so enqueuing tasks via await act(async () => ...) will fail. Please file an issue at https://github.com/facebook/react/issues if you encounter this warning." + )); + var channel = new MessageChannel(); + channel.port1.onmessage = callback; + channel.port2.postMessage(void 0); + }; + } + return enqueueTaskImpl(task); + } + function aggregateErrors(errors) { + return 1 < errors.length && "function" === typeof AggregateError ? new AggregateError(errors) : errors[0]; + } + function popActScope(prevActQueue, prevActScopeDepth) { + prevActScopeDepth !== actScopeDepth - 1 && console.error( + "You seem to have overlapping act() calls, this is not supported. Be sure to await previous act() calls before making a new one. " + ); + actScopeDepth = prevActScopeDepth; + } + function recursivelyFlushAsyncActWork(returnValue, resolve, reject) { + var queue = ReactSharedInternals.actQueue; + if (null !== queue) + if (0 !== queue.length) + try { + flushActQueue(queue); + enqueueTask(function() { + return recursivelyFlushAsyncActWork(returnValue, resolve, reject); + }); + return; + } catch (error) { + ReactSharedInternals.thrownErrors.push(error); + } + else ReactSharedInternals.actQueue = null; + 0 < ReactSharedInternals.thrownErrors.length ? (queue = aggregateErrors(ReactSharedInternals.thrownErrors), ReactSharedInternals.thrownErrors.length = 0, reject(queue)) : resolve(returnValue); + } + function flushActQueue(queue) { + if (!isFlushing) { + isFlushing = true; + var i = 0; + try { + for (; i < queue.length; i++) { + var callback = queue[i]; + do { + ReactSharedInternals.didUsePromise = false; + var continuation = callback(false); + if (null !== continuation) { + if (ReactSharedInternals.didUsePromise) { + queue[i] = callback; + queue.splice(0, i); + return; + } + callback = continuation; + } else break; + } while (1); + } + queue.length = 0; + } catch (error) { + queue.splice(0, i + 1), ReactSharedInternals.thrownErrors.push(error); + } finally { + isFlushing = false; + } + } + } + "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error()); + var REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"), REACT_PORTAL_TYPE = Symbol.for("react.portal"), REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"), REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"), REACT_PROFILER_TYPE = Symbol.for("react.profiler"), REACT_CONSUMER_TYPE = Symbol.for("react.consumer"), REACT_CONTEXT_TYPE = Symbol.for("react.context"), REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"), REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"), REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"), REACT_MEMO_TYPE = Symbol.for("react.memo"), REACT_LAZY_TYPE = Symbol.for("react.lazy"), REACT_ACTIVITY_TYPE = Symbol.for("react.activity"), MAYBE_ITERATOR_SYMBOL = Symbol.iterator, didWarnStateUpdateForUnmountedComponent = {}, ReactNoopUpdateQueue = { + isMounted: function() { + return false; + }, + enqueueForceUpdate: function(publicInstance) { + warnNoop(publicInstance, "forceUpdate"); + }, + enqueueReplaceState: function(publicInstance) { + warnNoop(publicInstance, "replaceState"); + }, + enqueueSetState: function(publicInstance) { + warnNoop(publicInstance, "setState"); + } + }, assign = Object.assign, emptyObject = {}; + Object.freeze(emptyObject); + Component.prototype.isReactComponent = {}; + Component.prototype.setState = function(partialState, callback) { + if ("object" !== typeof partialState && "function" !== typeof partialState && null != partialState) + throw Error( + "takes an object of state variables to update or a function which returns an object of state variables." + ); + this.updater.enqueueSetState(this, partialState, callback, "setState"); + }; + Component.prototype.forceUpdate = function(callback) { + this.updater.enqueueForceUpdate(this, callback, "forceUpdate"); + }; + var deprecatedAPIs = { + isMounted: [ + "isMounted", + "Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks." + ], + replaceState: [ + "replaceState", + "Refactor your code to use setState instead (see https://github.com/facebook/react/issues/3236)." + ] + }; + for (fnName in deprecatedAPIs) + deprecatedAPIs.hasOwnProperty(fnName) && defineDeprecationWarning(fnName, deprecatedAPIs[fnName]); + ComponentDummy.prototype = Component.prototype; + deprecatedAPIs = PureComponent.prototype = new ComponentDummy(); + deprecatedAPIs.constructor = PureComponent; + assign(deprecatedAPIs, Component.prototype); + deprecatedAPIs.isPureReactComponent = true; + var isArrayImpl = Array.isArray, REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"), ReactSharedInternals = { + H: null, + A: null, + T: null, + S: null, + actQueue: null, + asyncTransitions: 0, + isBatchingLegacy: false, + didScheduleLegacyUpdate: false, + didUsePromise: false, + thrownErrors: [], + getCurrentStack: null, + recentlyCreatedOwnerStacks: 0 + }, hasOwnProperty = Object.prototype.hasOwnProperty, createTask = console.createTask ? console.createTask : function() { + return null; + }; + deprecatedAPIs = { + react_stack_bottom_frame: function(callStackForError) { + return callStackForError(); + } + }; + var specialPropKeyWarningShown, didWarnAboutOldJSXRuntime; + var didWarnAboutElementRef = {}; + var unknownOwnerDebugStack = deprecatedAPIs.react_stack_bottom_frame.bind( + deprecatedAPIs, + UnknownOwner + )(); + var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner)); + var didWarnAboutMaps = false, userProvidedKeyEscapeRegex = /\/+/g, reportGlobalError = "function" === typeof reportError ? reportError : function(error) { + if ("object" === typeof window && "function" === typeof window.ErrorEvent) { + var event = new window.ErrorEvent("error", { + bubbles: true, + cancelable: true, + message: "object" === typeof error && null !== error && "string" === typeof error.message ? String(error.message) : String(error), + error + }); + if (!window.dispatchEvent(event)) return; + } else if ("object" === typeof process && "function" === typeof process.emit) { + process.emit("uncaughtException", error); + return; + } + console.error(error); + }, didWarnAboutMessageChannel = false, enqueueTaskImpl = null, actScopeDepth = 0, didWarnNoAwaitAct = false, isFlushing = false, queueSeveralMicrotasks = "function" === typeof queueMicrotask ? function(callback) { + queueMicrotask(function() { + return queueMicrotask(callback); + }); + } : enqueueTask; + deprecatedAPIs = Object.freeze({ + __proto__: null, + c: function(size) { + return resolveDispatcher().useMemoCache(size); + } + }); + var fnName = { + map: mapChildren, + forEach: function(children, forEachFunc, forEachContext) { + mapChildren( + children, + function() { + forEachFunc.apply(this, arguments); + }, + forEachContext + ); + }, + count: function(children) { + var n = 0; + mapChildren(children, function() { + n++; + }); + return n; + }, + toArray: function(children) { + return mapChildren(children, function(child) { + return child; + }) || []; + }, + only: function(children) { + if (!isValidElement(children)) + throw Error( + "React.Children.only expected to receive a single React element child." + ); + return children; + } + }; + exports$1.Activity = REACT_ACTIVITY_TYPE; + exports$1.Children = fnName; + exports$1.Component = Component; + exports$1.Fragment = REACT_FRAGMENT_TYPE; + exports$1.Profiler = REACT_PROFILER_TYPE; + exports$1.PureComponent = PureComponent; + exports$1.StrictMode = REACT_STRICT_MODE_TYPE; + exports$1.Suspense = REACT_SUSPENSE_TYPE; + exports$1.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE = ReactSharedInternals; + exports$1.__COMPILER_RUNTIME = deprecatedAPIs; + exports$1.act = function(callback) { + var prevActQueue = ReactSharedInternals.actQueue, prevActScopeDepth = actScopeDepth; + actScopeDepth++; + var queue = ReactSharedInternals.actQueue = null !== prevActQueue ? prevActQueue : [], didAwaitActCall = false; + try { + var result = callback(); + } catch (error) { + ReactSharedInternals.thrownErrors.push(error); + } + if (0 < ReactSharedInternals.thrownErrors.length) + throw popActScope(prevActQueue, prevActScopeDepth), callback = aggregateErrors(ReactSharedInternals.thrownErrors), ReactSharedInternals.thrownErrors.length = 0, callback; + if (null !== result && "object" === typeof result && "function" === typeof result.then) { + var thenable = result; + queueSeveralMicrotasks(function() { + didAwaitActCall || didWarnNoAwaitAct || (didWarnNoAwaitAct = true, console.error( + "You called act(async () => ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...);" + )); + }); + return { + then: function(resolve, reject) { + didAwaitActCall = true; + thenable.then( + function(returnValue) { + popActScope(prevActQueue, prevActScopeDepth); + if (0 === prevActScopeDepth) { + try { + flushActQueue(queue), enqueueTask(function() { + return recursivelyFlushAsyncActWork( + returnValue, + resolve, + reject + ); + }); + } catch (error$0) { + ReactSharedInternals.thrownErrors.push(error$0); + } + if (0 < ReactSharedInternals.thrownErrors.length) { + var _thrownError = aggregateErrors( + ReactSharedInternals.thrownErrors + ); + ReactSharedInternals.thrownErrors.length = 0; + reject(_thrownError); + } + } else resolve(returnValue); + }, + function(error) { + popActScope(prevActQueue, prevActScopeDepth); + 0 < ReactSharedInternals.thrownErrors.length ? (error = aggregateErrors( + ReactSharedInternals.thrownErrors + ), ReactSharedInternals.thrownErrors.length = 0, reject(error)) : reject(error); + } + ); + } + }; + } + var returnValue$jscomp$0 = result; + popActScope(prevActQueue, prevActScopeDepth); + 0 === prevActScopeDepth && (flushActQueue(queue), 0 !== queue.length && queueSeveralMicrotasks(function() { + didAwaitActCall || didWarnNoAwaitAct || (didWarnNoAwaitAct = true, console.error( + "A component suspended inside an `act` scope, but the `act` call was not awaited. When testing React components that depend on asynchronous data, you must await the result:\n\nawait act(() => ...)" + )); + }), ReactSharedInternals.actQueue = null); + if (0 < ReactSharedInternals.thrownErrors.length) + throw callback = aggregateErrors(ReactSharedInternals.thrownErrors), ReactSharedInternals.thrownErrors.length = 0, callback; + return { + then: function(resolve, reject) { + didAwaitActCall = true; + 0 === prevActScopeDepth ? (ReactSharedInternals.actQueue = queue, enqueueTask(function() { + return recursivelyFlushAsyncActWork( + returnValue$jscomp$0, + resolve, + reject + ); + })) : resolve(returnValue$jscomp$0); + } + }; + }; + exports$1.cache = function(fn) { + return function() { + return fn.apply(null, arguments); + }; + }; + exports$1.cacheSignal = function() { + return null; + }; + exports$1.captureOwnerStack = function() { + var getCurrentStack = ReactSharedInternals.getCurrentStack; + return null === getCurrentStack ? null : getCurrentStack(); + }; + exports$1.cloneElement = function(element, config, children) { + if (null === element || void 0 === element) + throw Error( + "The argument must be a React element, but you passed " + element + "." + ); + var props = assign({}, element.props), key = element.key, owner = element._owner; + if (null != config) { + var JSCompiler_inline_result; + a: { + if (hasOwnProperty.call(config, "ref") && (JSCompiler_inline_result = Object.getOwnPropertyDescriptor( + config, + "ref" + ).get) && JSCompiler_inline_result.isReactWarning) { + JSCompiler_inline_result = false; + break a; + } + JSCompiler_inline_result = void 0 !== config.ref; + } + JSCompiler_inline_result && (owner = getOwner()); + hasValidKey(config) && (checkKeyStringCoercion(config.key), key = "" + config.key); + for (propName in config) + !hasOwnProperty.call(config, propName) || "key" === propName || "__self" === propName || "__source" === propName || "ref" === propName && void 0 === config.ref || (props[propName] = config[propName]); + } + var propName = arguments.length - 2; + if (1 === propName) props.children = children; + else if (1 < propName) { + JSCompiler_inline_result = Array(propName); + for (var i = 0; i < propName; i++) + JSCompiler_inline_result[i] = arguments[i + 2]; + props.children = JSCompiler_inline_result; + } + props = ReactElement( + element.type, + key, + props, + owner, + element._debugStack, + element._debugTask + ); + for (key = 2; key < arguments.length; key++) + validateChildKeys(arguments[key]); + return props; + }; + exports$1.createContext = function(defaultValue) { + defaultValue = { + $$typeof: REACT_CONTEXT_TYPE, + _currentValue: defaultValue, + _currentValue2: defaultValue, + _threadCount: 0, + Provider: null, + Consumer: null + }; + defaultValue.Provider = defaultValue; + defaultValue.Consumer = { + $$typeof: REACT_CONSUMER_TYPE, + _context: defaultValue + }; + defaultValue._currentRenderer = null; + defaultValue._currentRenderer2 = null; + return defaultValue; + }; + exports$1.createElement = function(type, config, children) { + for (var i = 2; i < arguments.length; i++) + validateChildKeys(arguments[i]); + i = {}; + var key = null; + if (null != config) + for (propName in didWarnAboutOldJSXRuntime || !("__self" in config) || "key" in config || (didWarnAboutOldJSXRuntime = true, console.warn( + "Your app (or one of its dependencies) is using an outdated JSX transform. Update to the modern JSX transform for faster performance: https://react.dev/link/new-jsx-transform" + )), hasValidKey(config) && (checkKeyStringCoercion(config.key), key = "" + config.key), config) + hasOwnProperty.call(config, propName) && "key" !== propName && "__self" !== propName && "__source" !== propName && (i[propName] = config[propName]); + var childrenLength = arguments.length - 2; + if (1 === childrenLength) i.children = children; + else if (1 < childrenLength) { + for (var childArray = Array(childrenLength), _i = 0; _i < childrenLength; _i++) + childArray[_i] = arguments[_i + 2]; + Object.freeze && Object.freeze(childArray); + i.children = childArray; + } + if (type && type.defaultProps) + for (propName in childrenLength = type.defaultProps, childrenLength) + void 0 === i[propName] && (i[propName] = childrenLength[propName]); + key && defineKeyPropWarningGetter( + i, + "function" === typeof type ? type.displayName || type.name || "Unknown" : type + ); + var propName = 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++; + return ReactElement( + type, + key, + i, + getOwner(), + propName ? Error("react-stack-top-frame") : unknownOwnerDebugStack, + propName ? createTask(getTaskName(type)) : unknownOwnerDebugTask + ); + }; + exports$1.createRef = function() { + var refObject = { current: null }; + Object.seal(refObject); + return refObject; + }; + exports$1.forwardRef = function(render) { + null != render && render.$$typeof === REACT_MEMO_TYPE ? console.error( + "forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...))." + ) : "function" !== typeof render ? console.error( + "forwardRef requires a render function but was given %s.", + null === render ? "null" : typeof render + ) : 0 !== render.length && 2 !== render.length && console.error( + "forwardRef render functions accept exactly two parameters: props and ref. %s", + 1 === render.length ? "Did you forget to use the ref parameter?" : "Any additional parameter will be undefined." + ); + null != render && null != render.defaultProps && console.error( + "forwardRef render functions do not support defaultProps. Did you accidentally pass a React component?" + ); + var elementType = { $$typeof: REACT_FORWARD_REF_TYPE, render }, ownName; + Object.defineProperty(elementType, "displayName", { + enumerable: false, + configurable: true, + get: function() { + return ownName; + }, + set: function(name) { + ownName = name; + render.name || render.displayName || (Object.defineProperty(render, "name", { value: name }), render.displayName = name); + } + }); + return elementType; + }; + exports$1.isValidElement = isValidElement; + exports$1.lazy = function(ctor) { + ctor = { _status: -1, _result: ctor }; + var lazyType = { + $$typeof: REACT_LAZY_TYPE, + _payload: ctor, + _init: lazyInitializer + }, ioInfo = { + name: "lazy", + start: -1, + end: -1, + value: null, + owner: null, + debugStack: Error("react-stack-top-frame"), + debugTask: console.createTask ? console.createTask("lazy()") : null + }; + ctor._ioInfo = ioInfo; + lazyType._debugInfo = [{ awaited: ioInfo }]; + return lazyType; + }; + exports$1.memo = function(type, compare) { + null == type && console.error( + "memo: The first argument must be a component. Instead received: %s", + null === type ? "null" : typeof type + ); + compare = { + $$typeof: REACT_MEMO_TYPE, + type, + compare: void 0 === compare ? null : compare + }; + var ownName; + Object.defineProperty(compare, "displayName", { + enumerable: false, + configurable: true, + get: function() { + return ownName; + }, + set: function(name) { + ownName = name; + type.name || type.displayName || (Object.defineProperty(type, "name", { value: name }), type.displayName = name); + } + }); + return compare; + }; + exports$1.startTransition = function(scope) { + var prevTransition = ReactSharedInternals.T, currentTransition = {}; + currentTransition._updatedFibers = /* @__PURE__ */ new Set(); + ReactSharedInternals.T = currentTransition; + try { + var returnValue = scope(), onStartTransitionFinish = ReactSharedInternals.S; + null !== onStartTransitionFinish && onStartTransitionFinish(currentTransition, returnValue); + "object" === typeof returnValue && null !== returnValue && "function" === typeof returnValue.then && (ReactSharedInternals.asyncTransitions++, returnValue.then(releaseAsyncTransition, releaseAsyncTransition), returnValue.then(noop, reportGlobalError)); + } catch (error) { + reportGlobalError(error); + } finally { + null === prevTransition && currentTransition._updatedFibers && (scope = currentTransition._updatedFibers.size, currentTransition._updatedFibers.clear(), 10 < scope && console.warn( + "Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table." + )), null !== prevTransition && null !== currentTransition.types && (null !== prevTransition.types && prevTransition.types !== currentTransition.types && console.error( + "We expected inner Transitions to have transferred the outer types set and that you cannot add to the outer Transition while inside the inner.This is a bug in React." + ), prevTransition.types = currentTransition.types), ReactSharedInternals.T = prevTransition; + } + }; + exports$1.unstable_useCacheRefresh = function() { + return resolveDispatcher().useCacheRefresh(); + }; + exports$1.use = function(usable) { + return resolveDispatcher().use(usable); + }; + exports$1.useActionState = function(action, initialState, permalink) { + return resolveDispatcher().useActionState( + action, + initialState, + permalink + ); + }; + exports$1.useCallback = function(callback, deps) { + return resolveDispatcher().useCallback(callback, deps); + }; + exports$1.useContext = function(Context) { + var dispatcher = resolveDispatcher(); + Context.$$typeof === REACT_CONSUMER_TYPE && console.error( + "Calling useContext(Context.Consumer) is not supported and will cause bugs. Did you mean to call useContext(Context) instead?" + ); + return dispatcher.useContext(Context); + }; + exports$1.useDebugValue = function(value, formatterFn) { + return resolveDispatcher().useDebugValue(value, formatterFn); + }; + exports$1.useDeferredValue = function(value, initialValue) { + return resolveDispatcher().useDeferredValue(value, initialValue); + }; + exports$1.useEffect = function(create, deps) { + null == create && console.warn( + "React Hook useEffect requires an effect callback. Did you forget to pass a callback to the hook?" + ); + return resolveDispatcher().useEffect(create, deps); + }; + exports$1.useEffectEvent = function(callback) { + return resolveDispatcher().useEffectEvent(callback); + }; + exports$1.useId = function() { + return resolveDispatcher().useId(); + }; + exports$1.useImperativeHandle = function(ref, create, deps) { + return resolveDispatcher().useImperativeHandle(ref, create, deps); + }; + exports$1.useInsertionEffect = function(create, deps) { + null == create && console.warn( + "React Hook useInsertionEffect requires an effect callback. Did you forget to pass a callback to the hook?" + ); + return resolveDispatcher().useInsertionEffect(create, deps); + }; + exports$1.useLayoutEffect = function(create, deps) { + null == create && console.warn( + "React Hook useLayoutEffect requires an effect callback. Did you forget to pass a callback to the hook?" + ); + return resolveDispatcher().useLayoutEffect(create, deps); + }; + exports$1.useMemo = function(create, deps) { + return resolveDispatcher().useMemo(create, deps); + }; + exports$1.useOptimistic = function(passthrough, reducer) { + return resolveDispatcher().useOptimistic(passthrough, reducer); + }; + exports$1.useReducer = function(reducer, initialArg, init) { + return resolveDispatcher().useReducer(reducer, initialArg, init); + }; + exports$1.useRef = function(initialValue) { + return resolveDispatcher().useRef(initialValue); + }; + exports$1.useState = function(initialState) { + return resolveDispatcher().useState(initialState); + }; + exports$1.useSyncExternalStore = function(subscribe, getSnapshot, getServerSnapshot) { + return resolveDispatcher().useSyncExternalStore( + subscribe, + getSnapshot, + getServerSnapshot + ); + }; + exports$1.useTransition = function() { + return resolveDispatcher().useTransition(); + }; + exports$1.version = "19.2.0"; + "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error()); + })(); + } +}); + +// ../../../../../../../node_modules/react/index.js +var require_react = __commonJS({ + "../../../../../../../node_modules/react/index.js"(exports$1, module) { + { + module.exports = require_react_development(); + } + } +}); + +// ../../../../../../../node_modules/react-dom/cjs/react-dom.development.js +var require_react_dom_development = __commonJS({ + "../../../../../../../node_modules/react-dom/cjs/react-dom.development.js"(exports$1) { + (function() { + function noop() { + } + function testStringCoercion(value) { + return "" + value; + } + function createPortal$1(children, containerInfo, implementation) { + var key = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null; + try { + testStringCoercion(key); + var JSCompiler_inline_result = false; + } catch (e) { + JSCompiler_inline_result = true; + } + JSCompiler_inline_result && (console.error( + "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.", + "function" === typeof Symbol && Symbol.toStringTag && key[Symbol.toStringTag] || key.constructor.name || "Object" + ), testStringCoercion(key)); + return { + $$typeof: REACT_PORTAL_TYPE, + key: null == key ? null : "" + key, + children, + containerInfo, + implementation + }; + } + function getCrossOriginStringAs(as, input) { + if ("font" === as) return ""; + if ("string" === typeof input) + return "use-credentials" === input ? input : ""; + } + function getValueDescriptorExpectingObjectForWarning(thing) { + return null === thing ? "`null`" : void 0 === thing ? "`undefined`" : "" === thing ? "an empty string" : 'something with type "' + typeof thing + '"'; + } + function getValueDescriptorExpectingEnumForWarning(thing) { + return null === thing ? "`null`" : void 0 === thing ? "`undefined`" : "" === thing ? "an empty string" : "string" === typeof thing ? JSON.stringify(thing) : "number" === typeof thing ? "`" + thing + "`" : 'something with type "' + typeof thing + '"'; + } + function resolveDispatcher() { + var dispatcher = ReactSharedInternals.H; + null === dispatcher && console.error( + "Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem." + ); + return dispatcher; + } + "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error()); + var React2 = require_react(), Internals = { + d: { + f: noop, + r: function() { + throw Error( + "Invalid form element. requestFormReset must be passed a form that was rendered by React." + ); + }, + D: noop, + C: noop, + L: noop, + m: noop, + X: noop, + S: noop, + M: noop + }, + p: 0, + findDOMNode: null + }, REACT_PORTAL_TYPE = Symbol.for("react.portal"), ReactSharedInternals = React2.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE; + "function" === typeof Map && null != Map.prototype && "function" === typeof Map.prototype.forEach && "function" === typeof Set && null != Set.prototype && "function" === typeof Set.prototype.clear && "function" === typeof Set.prototype.forEach || console.error( + "React depends on Map and Set built-in types. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills" + ); + exports$1.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE = Internals; + exports$1.createPortal = function(children, container) { + var key = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null; + if (!container || 1 !== container.nodeType && 9 !== container.nodeType && 11 !== container.nodeType) + throw Error("Target container is not a DOM element."); + return createPortal$1(children, container, null, key); + }; + exports$1.flushSync = function(fn) { + var previousTransition = ReactSharedInternals.T, previousUpdatePriority = Internals.p; + try { + if (ReactSharedInternals.T = null, Internals.p = 2, fn) + return fn(); + } finally { + ReactSharedInternals.T = previousTransition, Internals.p = previousUpdatePriority, Internals.d.f() && console.error( + "flushSync was called from inside a lifecycle method. React cannot flush when React is already rendering. Consider moving this call to a scheduler task or micro task." + ); + } + }; + exports$1.preconnect = function(href, options) { + "string" === typeof href && href ? null != options && "object" !== typeof options ? console.error( + "ReactDOM.preconnect(): Expected the `options` argument (second) to be an object but encountered %s instead. The only supported option at this time is `crossOrigin` which accepts a string.", + getValueDescriptorExpectingEnumForWarning(options) + ) : null != options && "string" !== typeof options.crossOrigin && console.error( + "ReactDOM.preconnect(): Expected the `crossOrigin` option (second argument) to be a string but encountered %s instead. Try removing this option or passing a string value instead.", + getValueDescriptorExpectingObjectForWarning(options.crossOrigin) + ) : console.error( + "ReactDOM.preconnect(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.", + getValueDescriptorExpectingObjectForWarning(href) + ); + "string" === typeof href && (options ? (options = options.crossOrigin, options = "string" === typeof options ? "use-credentials" === options ? options : "" : void 0) : options = null, Internals.d.C(href, options)); + }; + exports$1.prefetchDNS = function(href) { + if ("string" !== typeof href || !href) + console.error( + "ReactDOM.prefetchDNS(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.", + getValueDescriptorExpectingObjectForWarning(href) + ); + else if (1 < arguments.length) { + var options = arguments[1]; + "object" === typeof options && options.hasOwnProperty("crossOrigin") ? console.error( + "ReactDOM.prefetchDNS(): Expected only one argument, `href`, but encountered %s as a second argument instead. This argument is reserved for future options and is currently disallowed. It looks like the you are attempting to set a crossOrigin property for this DNS lookup hint. Browsers do not perform DNS queries using CORS and setting this attribute on the resource hint has no effect. Try calling ReactDOM.prefetchDNS() with just a single string argument, `href`.", + getValueDescriptorExpectingEnumForWarning(options) + ) : console.error( + "ReactDOM.prefetchDNS(): Expected only one argument, `href`, but encountered %s as a second argument instead. This argument is reserved for future options and is currently disallowed. Try calling ReactDOM.prefetchDNS() with just a single string argument, `href`.", + getValueDescriptorExpectingEnumForWarning(options) + ); + } + "string" === typeof href && Internals.d.D(href); + }; + exports$1.preinit = function(href, options) { + "string" === typeof href && href ? null == options || "object" !== typeof options ? console.error( + "ReactDOM.preinit(): Expected the `options` argument (second) to be an object with an `as` property describing the type of resource to be preinitialized but encountered %s instead.", + getValueDescriptorExpectingEnumForWarning(options) + ) : "style" !== options.as && "script" !== options.as && console.error( + 'ReactDOM.preinit(): Expected the `as` property in the `options` argument (second) to contain a valid value describing the type of resource to be preinitialized but encountered %s instead. Valid values for `as` are "style" and "script".', + getValueDescriptorExpectingEnumForWarning(options.as) + ) : console.error( + "ReactDOM.preinit(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.", + getValueDescriptorExpectingObjectForWarning(href) + ); + if ("string" === typeof href && options && "string" === typeof options.as) { + var as = options.as, crossOrigin = getCrossOriginStringAs(as, options.crossOrigin), integrity = "string" === typeof options.integrity ? options.integrity : void 0, fetchPriority = "string" === typeof options.fetchPriority ? options.fetchPriority : void 0; + "style" === as ? Internals.d.S( + href, + "string" === typeof options.precedence ? options.precedence : void 0, + { + crossOrigin, + integrity, + fetchPriority + } + ) : "script" === as && Internals.d.X(href, { + crossOrigin, + integrity, + fetchPriority, + nonce: "string" === typeof options.nonce ? options.nonce : void 0 + }); + } + }; + exports$1.preinitModule = function(href, options) { + var encountered = ""; + "string" === typeof href && href || (encountered += " The `href` argument encountered was " + getValueDescriptorExpectingObjectForWarning(href) + "."); + void 0 !== options && "object" !== typeof options ? encountered += " The `options` argument encountered was " + getValueDescriptorExpectingObjectForWarning(options) + "." : options && "as" in options && "script" !== options.as && (encountered += " The `as` option encountered was " + getValueDescriptorExpectingEnumForWarning(options.as) + "."); + if (encountered) + console.error( + "ReactDOM.preinitModule(): Expected up to two arguments, a non-empty `href` string and, optionally, an `options` object with a valid `as` property.%s", + encountered + ); + else + switch (encountered = options && "string" === typeof options.as ? options.as : "script", encountered) { + case "script": + break; + default: + encountered = getValueDescriptorExpectingEnumForWarning(encountered), console.error( + 'ReactDOM.preinitModule(): Currently the only supported "as" type for this function is "script" but received "%s" instead. This warning was generated for `href` "%s". In the future other module types will be supported, aligning with the import-attributes proposal. Learn more here: (https://github.com/tc39/proposal-import-attributes)', + encountered, + href + ); + } + if ("string" === typeof href) + if ("object" === typeof options && null !== options) { + if (null == options.as || "script" === options.as) + encountered = getCrossOriginStringAs( + options.as, + options.crossOrigin + ), Internals.d.M(href, { + crossOrigin: encountered, + integrity: "string" === typeof options.integrity ? options.integrity : void 0, + nonce: "string" === typeof options.nonce ? options.nonce : void 0 + }); + } else null == options && Internals.d.M(href); + }; + exports$1.preload = function(href, options) { + var encountered = ""; + "string" === typeof href && href || (encountered += " The `href` argument encountered was " + getValueDescriptorExpectingObjectForWarning(href) + "."); + null == options || "object" !== typeof options ? encountered += " The `options` argument encountered was " + getValueDescriptorExpectingObjectForWarning(options) + "." : "string" === typeof options.as && options.as || (encountered += " The `as` option encountered was " + getValueDescriptorExpectingObjectForWarning(options.as) + "."); + encountered && console.error( + 'ReactDOM.preload(): Expected two arguments, a non-empty `href` string and an `options` object with an `as` property valid for a `` tag.%s', + encountered + ); + if ("string" === typeof href && "object" === typeof options && null !== options && "string" === typeof options.as) { + encountered = options.as; + var crossOrigin = getCrossOriginStringAs( + encountered, + options.crossOrigin + ); + Internals.d.L(href, encountered, { + crossOrigin, + integrity: "string" === typeof options.integrity ? options.integrity : void 0, + nonce: "string" === typeof options.nonce ? options.nonce : void 0, + type: "string" === typeof options.type ? options.type : void 0, + fetchPriority: "string" === typeof options.fetchPriority ? options.fetchPriority : void 0, + referrerPolicy: "string" === typeof options.referrerPolicy ? options.referrerPolicy : void 0, + imageSrcSet: "string" === typeof options.imageSrcSet ? options.imageSrcSet : void 0, + imageSizes: "string" === typeof options.imageSizes ? options.imageSizes : void 0, + media: "string" === typeof options.media ? options.media : void 0 + }); + } + }; + exports$1.preloadModule = function(href, options) { + var encountered = ""; + "string" === typeof href && href || (encountered += " The `href` argument encountered was " + getValueDescriptorExpectingObjectForWarning(href) + "."); + void 0 !== options && "object" !== typeof options ? encountered += " The `options` argument encountered was " + getValueDescriptorExpectingObjectForWarning(options) + "." : options && "as" in options && "string" !== typeof options.as && (encountered += " The `as` option encountered was " + getValueDescriptorExpectingObjectForWarning(options.as) + "."); + encountered && console.error( + 'ReactDOM.preloadModule(): Expected two arguments, a non-empty `href` string and, optionally, an `options` object with an `as` property valid for a `` tag.%s', + encountered + ); + "string" === typeof href && (options ? (encountered = getCrossOriginStringAs( + options.as, + options.crossOrigin + ), Internals.d.m(href, { + as: "string" === typeof options.as && "script" !== options.as ? options.as : void 0, + crossOrigin: encountered, + integrity: "string" === typeof options.integrity ? options.integrity : void 0 + })) : Internals.d.m(href)); + }; + exports$1.requestFormReset = function(form) { + Internals.d.r(form); + }; + exports$1.unstable_batchedUpdates = function(fn, a) { + return fn(a); + }; + exports$1.useFormState = function(action, initialState, permalink) { + return resolveDispatcher().useFormState(action, initialState, permalink); + }; + exports$1.useFormStatus = function() { + return resolveDispatcher().useHostTransitionStatus(); + }; + exports$1.version = "19.2.0"; + "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error()); + })(); + } +}); + +// ../../../../../../../node_modules/react-dom/index.js +var require_react_dom = __commonJS({ + "../../../../../../../node_modules/react-dom/index.js"(exports$1, module) { + { + module.exports = require_react_dom_development(); + } + } +}); + +// ../../../../../../../node_modules/react-dom/cjs/react-dom-client.development.js +var require_react_dom_client_development = __commonJS({ + "../../../../../../../node_modules/react-dom/cjs/react-dom-client.development.js"(exports$1) { + (function() { + function findHook(fiber, id) { + for (fiber = fiber.memoizedState; null !== fiber && 0 < id; ) + fiber = fiber.next, id--; + return fiber; + } + function copyWithSetImpl(obj, path, index, value) { + if (index >= path.length) return value; + var key = path[index], updated = isArrayImpl(obj) ? obj.slice() : assign({}, obj); + updated[key] = copyWithSetImpl(obj[key], path, index + 1, value); + return updated; + } + function copyWithRename(obj, oldPath, newPath) { + if (oldPath.length !== newPath.length) + console.warn("copyWithRename() expects paths of the same length"); + else { + for (var i = 0; i < newPath.length - 1; i++) + if (oldPath[i] !== newPath[i]) { + console.warn( + "copyWithRename() expects paths to be the same except for the deepest key" + ); + return; + } + return copyWithRenameImpl(obj, oldPath, newPath, 0); + } + } + function copyWithRenameImpl(obj, oldPath, newPath, index) { + var oldKey = oldPath[index], updated = isArrayImpl(obj) ? obj.slice() : assign({}, obj); + index + 1 === oldPath.length ? (updated[newPath[index]] = updated[oldKey], isArrayImpl(updated) ? updated.splice(oldKey, 1) : delete updated[oldKey]) : updated[oldKey] = copyWithRenameImpl( + obj[oldKey], + oldPath, + newPath, + index + 1 + ); + return updated; + } + function copyWithDeleteImpl(obj, path, index) { + var key = path[index], updated = isArrayImpl(obj) ? obj.slice() : assign({}, obj); + if (index + 1 === path.length) + return isArrayImpl(updated) ? updated.splice(key, 1) : delete updated[key], updated; + updated[key] = copyWithDeleteImpl(obj[key], path, index + 1); + return updated; + } + function shouldSuspendImpl() { + return false; + } + function shouldErrorImpl() { + return null; + } + function warnInvalidHookAccess() { + console.error( + "Do not call Hooks inside useEffect(...), useMemo(...), or other built-in Hooks. You can only call Hooks at the top level of your React function. For more information, see https://react.dev/link/rules-of-hooks" + ); + } + function warnInvalidContextAccess() { + console.error( + "Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo()." + ); + } + function noop() { + } + function warnForMissingKey() { + } + function setToSortedString(set) { + var array = []; + set.forEach(function(value) { + array.push(value); + }); + return array.sort().join(", "); + } + function createFiber(tag, pendingProps, key, mode) { + return new FiberNode(tag, pendingProps, key, mode); + } + function scheduleRoot(root2, element) { + root2.context === emptyContextObject && (updateContainerImpl(root2.current, 2, element, root2, null, null), flushSyncWork$1()); + } + function scheduleRefresh(root2, update) { + if (null !== resolveFamily) { + var staleFamilies = update.staleFamilies; + update = update.updatedFamilies; + flushPendingEffects(); + scheduleFibersWithFamiliesRecursively( + root2.current, + update, + staleFamilies + ); + flushSyncWork$1(); + } + } + function setRefreshHandler(handler) { + resolveFamily = handler; + } + function isValidContainer(node) { + return !(!node || 1 !== node.nodeType && 9 !== node.nodeType && 11 !== node.nodeType); + } + function getNearestMountedFiber(fiber) { + var node = fiber, nearestMounted = fiber; + if (fiber.alternate) for (; node.return; ) node = node.return; + else { + fiber = node; + do + node = fiber, 0 !== (node.flags & 4098) && (nearestMounted = node.return), fiber = node.return; + while (fiber); + } + return 3 === node.tag ? nearestMounted : null; + } + function getSuspenseInstanceFromFiber(fiber) { + if (13 === fiber.tag) { + var suspenseState = fiber.memoizedState; + null === suspenseState && (fiber = fiber.alternate, null !== fiber && (suspenseState = fiber.memoizedState)); + if (null !== suspenseState) return suspenseState.dehydrated; + } + return null; + } + function getActivityInstanceFromFiber(fiber) { + if (31 === fiber.tag) { + var activityState = fiber.memoizedState; + null === activityState && (fiber = fiber.alternate, null !== fiber && (activityState = fiber.memoizedState)); + if (null !== activityState) return activityState.dehydrated; + } + return null; + } + function assertIsMounted(fiber) { + if (getNearestMountedFiber(fiber) !== fiber) + throw Error("Unable to find node on an unmounted component."); + } + function findCurrentFiberUsingSlowPath(fiber) { + var alternate = fiber.alternate; + if (!alternate) { + alternate = getNearestMountedFiber(fiber); + if (null === alternate) + throw Error("Unable to find node on an unmounted component."); + return alternate !== fiber ? null : fiber; + } + for (var a = fiber, b = alternate; ; ) { + var parentA = a.return; + if (null === parentA) break; + var parentB = parentA.alternate; + if (null === parentB) { + b = parentA.return; + if (null !== b) { + a = b; + continue; + } + break; + } + if (parentA.child === parentB.child) { + for (parentB = parentA.child; parentB; ) { + if (parentB === a) return assertIsMounted(parentA), fiber; + if (parentB === b) return assertIsMounted(parentA), alternate; + parentB = parentB.sibling; + } + throw Error("Unable to find node on an unmounted component."); + } + if (a.return !== b.return) a = parentA, b = parentB; + else { + for (var didFindChild = false, _child = parentA.child; _child; ) { + if (_child === a) { + didFindChild = true; + a = parentA; + b = parentB; + break; + } + if (_child === b) { + didFindChild = true; + b = parentA; + a = parentB; + break; + } + _child = _child.sibling; + } + if (!didFindChild) { + for (_child = parentB.child; _child; ) { + if (_child === a) { + didFindChild = true; + a = parentB; + b = parentA; + break; + } + if (_child === b) { + didFindChild = true; + b = parentB; + a = parentA; + break; + } + _child = _child.sibling; + } + if (!didFindChild) + throw Error( + "Child was not found in either parent set. This indicates a bug in React related to the return pointer. Please file an issue." + ); + } + } + if (a.alternate !== b) + throw Error( + "Return fibers should always be each others' alternates. This error is likely caused by a bug in React. Please file an issue." + ); + } + if (3 !== a.tag) + throw Error("Unable to find node on an unmounted component."); + return a.stateNode.current === a ? fiber : alternate; + } + function findCurrentHostFiberImpl(node) { + var tag = node.tag; + if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return node; + for (node = node.child; null !== node; ) { + tag = findCurrentHostFiberImpl(node); + if (null !== tag) return tag; + node = node.sibling; + } + return null; + } + function getIteratorFn(maybeIterable) { + if (null === maybeIterable || "object" !== typeof maybeIterable) + return null; + maybeIterable = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable["@@iterator"]; + return "function" === typeof maybeIterable ? maybeIterable : null; + } + function getComponentNameFromType(type) { + if (null == type) return null; + if ("function" === typeof type) + return type.$$typeof === REACT_CLIENT_REFERENCE ? null : type.displayName || type.name || null; + if ("string" === typeof type) return type; + switch (type) { + case REACT_FRAGMENT_TYPE: + return "Fragment"; + case REACT_PROFILER_TYPE: + return "Profiler"; + case REACT_STRICT_MODE_TYPE: + return "StrictMode"; + case REACT_SUSPENSE_TYPE: + return "Suspense"; + case REACT_SUSPENSE_LIST_TYPE: + return "SuspenseList"; + case REACT_ACTIVITY_TYPE: + return "Activity"; + } + if ("object" === typeof type) + switch ("number" === typeof type.tag && console.error( + "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue." + ), type.$$typeof) { + case REACT_PORTAL_TYPE: + return "Portal"; + case REACT_CONTEXT_TYPE: + return type.displayName || "Context"; + case REACT_CONSUMER_TYPE: + return (type._context.displayName || "Context") + ".Consumer"; + case REACT_FORWARD_REF_TYPE: + var innerType = type.render; + type = type.displayName; + type || (type = innerType.displayName || innerType.name || "", type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef"); + return type; + case REACT_MEMO_TYPE: + return innerType = type.displayName || null, null !== innerType ? innerType : getComponentNameFromType(type.type) || "Memo"; + case REACT_LAZY_TYPE: + innerType = type._payload; + type = type._init; + try { + return getComponentNameFromType(type(innerType)); + } catch (x) { + } + } + return null; + } + function getComponentNameFromOwner(owner) { + return "number" === typeof owner.tag ? getComponentNameFromFiber(owner) : "string" === typeof owner.name ? owner.name : null; + } + function getComponentNameFromFiber(fiber) { + var type = fiber.type; + switch (fiber.tag) { + case 31: + return "Activity"; + case 24: + return "Cache"; + case 9: + return (type._context.displayName || "Context") + ".Consumer"; + case 10: + return type.displayName || "Context"; + case 18: + return "DehydratedFragment"; + case 11: + return fiber = type.render, fiber = fiber.displayName || fiber.name || "", type.displayName || ("" !== fiber ? "ForwardRef(" + fiber + ")" : "ForwardRef"); + case 7: + return "Fragment"; + case 26: + case 27: + case 5: + return type; + case 4: + return "Portal"; + case 3: + return "Root"; + case 6: + return "Text"; + case 16: + return getComponentNameFromType(type); + case 8: + return type === REACT_STRICT_MODE_TYPE ? "StrictMode" : "Mode"; + case 22: + return "Offscreen"; + case 12: + return "Profiler"; + case 21: + return "Scope"; + case 13: + return "Suspense"; + case 19: + return "SuspenseList"; + case 25: + return "TracingMarker"; + case 1: + case 0: + case 14: + case 15: + if ("function" === typeof type) + return type.displayName || type.name || null; + if ("string" === typeof type) return type; + break; + case 29: + type = fiber._debugInfo; + if (null != type) { + for (var i = type.length - 1; 0 <= i; i--) + if ("string" === typeof type[i].name) return type[i].name; + } + if (null !== fiber.return) + return getComponentNameFromFiber(fiber.return); + } + return null; + } + function createCursor(defaultValue) { + return { current: defaultValue }; + } + function pop(cursor, fiber) { + 0 > index$jscomp$0 ? console.error("Unexpected pop.") : (fiber !== fiberStack[index$jscomp$0] && console.error("Unexpected Fiber popped."), cursor.current = valueStack[index$jscomp$0], valueStack[index$jscomp$0] = null, fiberStack[index$jscomp$0] = null, index$jscomp$0--); + } + function push(cursor, value, fiber) { + index$jscomp$0++; + valueStack[index$jscomp$0] = cursor.current; + fiberStack[index$jscomp$0] = fiber; + cursor.current = value; + } + function requiredContext(c) { + null === c && console.error( + "Expected host context to exist. This error is likely caused by a bug in React. Please file an issue." + ); + return c; + } + function pushHostContainer(fiber, nextRootInstance) { + push(rootInstanceStackCursor, nextRootInstance, fiber); + push(contextFiberStackCursor, fiber, fiber); + push(contextStackCursor, null, fiber); + var nextRootContext = nextRootInstance.nodeType; + switch (nextRootContext) { + case 9: + case 11: + nextRootContext = 9 === nextRootContext ? "#document" : "#fragment"; + nextRootInstance = (nextRootInstance = nextRootInstance.documentElement) ? (nextRootInstance = nextRootInstance.namespaceURI) ? getOwnHostContext(nextRootInstance) : HostContextNamespaceNone : HostContextNamespaceNone; + break; + default: + if (nextRootContext = nextRootInstance.tagName, nextRootInstance = nextRootInstance.namespaceURI) + nextRootInstance = getOwnHostContext(nextRootInstance), nextRootInstance = getChildHostContextProd( + nextRootInstance, + nextRootContext + ); + else + switch (nextRootContext) { + case "svg": + nextRootInstance = HostContextNamespaceSvg; + break; + case "math": + nextRootInstance = HostContextNamespaceMath; + break; + default: + nextRootInstance = HostContextNamespaceNone; + } + } + nextRootContext = nextRootContext.toLowerCase(); + nextRootContext = updatedAncestorInfoDev(null, nextRootContext); + nextRootContext = { + context: nextRootInstance, + ancestorInfo: nextRootContext + }; + pop(contextStackCursor, fiber); + push(contextStackCursor, nextRootContext, fiber); + } + function popHostContainer(fiber) { + pop(contextStackCursor, fiber); + pop(contextFiberStackCursor, fiber); + pop(rootInstanceStackCursor, fiber); + } + function getHostContext() { + return requiredContext(contextStackCursor.current); + } + function pushHostContext(fiber) { + null !== fiber.memoizedState && push(hostTransitionProviderCursor, fiber, fiber); + var context = requiredContext(contextStackCursor.current); + var type = fiber.type; + var nextContext = getChildHostContextProd(context.context, type); + type = updatedAncestorInfoDev(context.ancestorInfo, type); + nextContext = { context: nextContext, ancestorInfo: type }; + context !== nextContext && (push(contextFiberStackCursor, fiber, fiber), push(contextStackCursor, nextContext, fiber)); + } + function popHostContext(fiber) { + contextFiberStackCursor.current === fiber && (pop(contextStackCursor, fiber), pop(contextFiberStackCursor, fiber)); + hostTransitionProviderCursor.current === fiber && (pop(hostTransitionProviderCursor, fiber), HostTransitionContext._currentValue = NotPendingTransition); + } + function disabledLog() { + } + function disableLogs() { + if (0 === disabledDepth) { + prevLog = console.log; + prevInfo = console.info; + prevWarn = console.warn; + prevError = console.error; + prevGroup = console.group; + prevGroupCollapsed = console.groupCollapsed; + prevGroupEnd = console.groupEnd; + var props = { + configurable: true, + enumerable: true, + value: disabledLog, + writable: true + }; + Object.defineProperties(console, { + info: props, + log: props, + warn: props, + error: props, + group: props, + groupCollapsed: props, + groupEnd: props + }); + } + disabledDepth++; + } + function reenableLogs() { + disabledDepth--; + if (0 === disabledDepth) { + var props = { configurable: true, enumerable: true, writable: true }; + Object.defineProperties(console, { + log: assign({}, props, { value: prevLog }), + info: assign({}, props, { value: prevInfo }), + warn: assign({}, props, { value: prevWarn }), + error: assign({}, props, { value: prevError }), + group: assign({}, props, { value: prevGroup }), + groupCollapsed: assign({}, props, { value: prevGroupCollapsed }), + groupEnd: assign({}, props, { value: prevGroupEnd }) + }); + } + 0 > disabledDepth && console.error( + "disabledDepth fell below zero. This is a bug in React. Please file an issue." + ); + } + function formatOwnerStack(error) { + var prevPrepareStackTrace = Error.prepareStackTrace; + Error.prepareStackTrace = void 0; + error = error.stack; + Error.prepareStackTrace = prevPrepareStackTrace; + error.startsWith("Error: react-stack-top-frame\n") && (error = error.slice(29)); + prevPrepareStackTrace = error.indexOf("\n"); + -1 !== prevPrepareStackTrace && (error = error.slice(prevPrepareStackTrace + 1)); + prevPrepareStackTrace = error.indexOf("react_stack_bottom_frame"); + -1 !== prevPrepareStackTrace && (prevPrepareStackTrace = error.lastIndexOf( + "\n", + prevPrepareStackTrace + )); + if (-1 !== prevPrepareStackTrace) + error = error.slice(0, prevPrepareStackTrace); + else return ""; + return error; + } + function describeBuiltInComponentFrame(name) { + if (void 0 === prefix) + try { + throw Error(); + } catch (x) { + var match = x.stack.trim().match(/\n( *(at )?)/); + prefix = match && match[1] || ""; + suffix = -1 < x.stack.indexOf("\n at") ? " ()" : -1 < x.stack.indexOf("@") ? "@unknown:0:0" : ""; + } + return "\n" + prefix + name + suffix; + } + function describeNativeComponentFrame(fn, construct) { + if (!fn || reentry) return ""; + var frame = componentFrameCache.get(fn); + if (void 0 !== frame) return frame; + reentry = true; + frame = Error.prepareStackTrace; + Error.prepareStackTrace = void 0; + var previousDispatcher2 = null; + previousDispatcher2 = ReactSharedInternals.H; + ReactSharedInternals.H = null; + disableLogs(); + try { + var RunInRootFrame = { + DetermineComponentFrameRoot: function() { + try { + if (construct) { + var Fake = function() { + throw Error(); + }; + Object.defineProperty(Fake.prototype, "props", { + set: function() { + throw Error(); + } + }); + if ("object" === typeof Reflect && Reflect.construct) { + try { + Reflect.construct(Fake, []); + } catch (x) { + var control = x; + } + Reflect.construct(fn, [], Fake); + } else { + try { + Fake.call(); + } catch (x$0) { + control = x$0; + } + fn.call(Fake.prototype); + } + } else { + try { + throw Error(); + } catch (x$1) { + control = x$1; + } + (Fake = fn()) && "function" === typeof Fake.catch && Fake.catch(function() { + }); + } + } catch (sample) { + if (sample && control && "string" === typeof sample.stack) + return [sample.stack, control.stack]; + } + return [null, null]; + } + }; + RunInRootFrame.DetermineComponentFrameRoot.displayName = "DetermineComponentFrameRoot"; + var namePropDescriptor = Object.getOwnPropertyDescriptor( + RunInRootFrame.DetermineComponentFrameRoot, + "name" + ); + namePropDescriptor && namePropDescriptor.configurable && Object.defineProperty( + RunInRootFrame.DetermineComponentFrameRoot, + "name", + { value: "DetermineComponentFrameRoot" } + ); + var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(), sampleStack = _RunInRootFrame$Deter[0], controlStack = _RunInRootFrame$Deter[1]; + if (sampleStack && controlStack) { + var sampleLines = sampleStack.split("\n"), controlLines = controlStack.split("\n"); + for (_RunInRootFrame$Deter = namePropDescriptor = 0; namePropDescriptor < sampleLines.length && !sampleLines[namePropDescriptor].includes( + "DetermineComponentFrameRoot" + ); ) + namePropDescriptor++; + for (; _RunInRootFrame$Deter < controlLines.length && !controlLines[_RunInRootFrame$Deter].includes( + "DetermineComponentFrameRoot" + ); ) + _RunInRootFrame$Deter++; + if (namePropDescriptor === sampleLines.length || _RunInRootFrame$Deter === controlLines.length) + for (namePropDescriptor = sampleLines.length - 1, _RunInRootFrame$Deter = controlLines.length - 1; 1 <= namePropDescriptor && 0 <= _RunInRootFrame$Deter && sampleLines[namePropDescriptor] !== controlLines[_RunInRootFrame$Deter]; ) + _RunInRootFrame$Deter--; + for (; 1 <= namePropDescriptor && 0 <= _RunInRootFrame$Deter; namePropDescriptor--, _RunInRootFrame$Deter--) + if (sampleLines[namePropDescriptor] !== controlLines[_RunInRootFrame$Deter]) { + if (1 !== namePropDescriptor || 1 !== _RunInRootFrame$Deter) { + do + if (namePropDescriptor--, _RunInRootFrame$Deter--, 0 > _RunInRootFrame$Deter || sampleLines[namePropDescriptor] !== controlLines[_RunInRootFrame$Deter]) { + var _frame = "\n" + sampleLines[namePropDescriptor].replace( + " at new ", + " at " + ); + fn.displayName && _frame.includes("") && (_frame = _frame.replace("", fn.displayName)); + "function" === typeof fn && componentFrameCache.set(fn, _frame); + return _frame; + } + while (1 <= namePropDescriptor && 0 <= _RunInRootFrame$Deter); + } + break; + } + } + } finally { + reentry = false, ReactSharedInternals.H = previousDispatcher2, reenableLogs(), Error.prepareStackTrace = frame; + } + sampleLines = (sampleLines = fn ? fn.displayName || fn.name : "") ? describeBuiltInComponentFrame(sampleLines) : ""; + "function" === typeof fn && componentFrameCache.set(fn, sampleLines); + return sampleLines; + } + function describeFiber(fiber, childFiber) { + switch (fiber.tag) { + case 26: + case 27: + case 5: + return describeBuiltInComponentFrame(fiber.type); + case 16: + return describeBuiltInComponentFrame("Lazy"); + case 13: + return fiber.child !== childFiber && null !== childFiber ? describeBuiltInComponentFrame("Suspense Fallback") : describeBuiltInComponentFrame("Suspense"); + case 19: + return describeBuiltInComponentFrame("SuspenseList"); + case 0: + case 15: + return describeNativeComponentFrame(fiber.type, false); + case 11: + return describeNativeComponentFrame(fiber.type.render, false); + case 1: + return describeNativeComponentFrame(fiber.type, true); + case 31: + return describeBuiltInComponentFrame("Activity"); + default: + return ""; + } + } + function getStackByFiberInDevAndProd(workInProgress2) { + try { + var info = "", previous = null; + do { + info += describeFiber(workInProgress2, previous); + var debugInfo = workInProgress2._debugInfo; + if (debugInfo) + for (var i = debugInfo.length - 1; 0 <= i; i--) { + var entry = debugInfo[i]; + if ("string" === typeof entry.name) { + var JSCompiler_temp_const = info; + a: { + var name = entry.name, env = entry.env, location = entry.debugLocation; + if (null != location) { + var childStack = formatOwnerStack(location), idx = childStack.lastIndexOf("\n"), lastLine = -1 === idx ? childStack : childStack.slice(idx + 1); + if (-1 !== lastLine.indexOf(name)) { + var JSCompiler_inline_result = "\n" + lastLine; + break a; + } + } + JSCompiler_inline_result = describeBuiltInComponentFrame( + name + (env ? " [" + env + "]" : "") + ); + } + info = JSCompiler_temp_const + JSCompiler_inline_result; + } + } + previous = workInProgress2; + workInProgress2 = workInProgress2.return; + } while (workInProgress2); + return info; + } catch (x) { + return "\nError generating stack: " + x.message + "\n" + x.stack; + } + } + function describeFunctionComponentFrameWithoutLineNumber(fn) { + return (fn = fn ? fn.displayName || fn.name : "") ? describeBuiltInComponentFrame(fn) : ""; + } + function getCurrentFiberOwnerNameInDevOrNull() { + if (null === current) return null; + var owner = current._debugOwner; + return null != owner ? getComponentNameFromOwner(owner) : null; + } + function getCurrentFiberStackInDev() { + if (null === current) return ""; + var workInProgress2 = current; + try { + var info = ""; + 6 === workInProgress2.tag && (workInProgress2 = workInProgress2.return); + switch (workInProgress2.tag) { + case 26: + case 27: + case 5: + info += describeBuiltInComponentFrame(workInProgress2.type); + break; + case 13: + info += describeBuiltInComponentFrame("Suspense"); + break; + case 19: + info += describeBuiltInComponentFrame("SuspenseList"); + break; + case 31: + info += describeBuiltInComponentFrame("Activity"); + break; + case 30: + case 0: + case 15: + case 1: + workInProgress2._debugOwner || "" !== info || (info += describeFunctionComponentFrameWithoutLineNumber( + workInProgress2.type + )); + break; + case 11: + workInProgress2._debugOwner || "" !== info || (info += describeFunctionComponentFrameWithoutLineNumber( + workInProgress2.type.render + )); + } + for (; workInProgress2; ) + if ("number" === typeof workInProgress2.tag) { + var fiber = workInProgress2; + workInProgress2 = fiber._debugOwner; + var debugStack = fiber._debugStack; + if (workInProgress2 && debugStack) { + var formattedStack = formatOwnerStack(debugStack); + "" !== formattedStack && (info += "\n" + formattedStack); + } + } else if (null != workInProgress2.debugStack) { + var ownerStack = workInProgress2.debugStack; + (workInProgress2 = workInProgress2.owner) && ownerStack && (info += "\n" + formatOwnerStack(ownerStack)); + } else break; + var JSCompiler_inline_result = info; + } catch (x) { + JSCompiler_inline_result = "\nError generating stack: " + x.message + "\n" + x.stack; + } + return JSCompiler_inline_result; + } + function runWithFiberInDEV(fiber, callback, arg0, arg1, arg2, arg3, arg4) { + var previousFiber = current; + setCurrentFiber(fiber); + try { + return null !== fiber && fiber._debugTask ? fiber._debugTask.run( + callback.bind(null, arg0, arg1, arg2, arg3, arg4) + ) : callback(arg0, arg1, arg2, arg3, arg4); + } finally { + setCurrentFiber(previousFiber); + } + throw Error( + "runWithFiberInDEV should never be called in production. This is a bug in React." + ); + } + function setCurrentFiber(fiber) { + ReactSharedInternals.getCurrentStack = null === fiber ? null : getCurrentFiberStackInDev; + isRendering = false; + current = fiber; + } + function typeName(value) { + return "function" === typeof Symbol && Symbol.toStringTag && value[Symbol.toStringTag] || value.constructor.name || "Object"; + } + function willCoercionThrow(value) { + try { + return testStringCoercion(value), false; + } catch (e) { + return true; + } + } + function testStringCoercion(value) { + return "" + value; + } + function checkAttributeStringCoercion(value, attributeName) { + if (willCoercionThrow(value)) + return console.error( + "The provided `%s` attribute is an unsupported type %s. This value must be coerced to a string before using it here.", + attributeName, + typeName(value) + ), testStringCoercion(value); + } + function checkCSSPropertyStringCoercion(value, propName) { + if (willCoercionThrow(value)) + return console.error( + "The provided `%s` CSS property is an unsupported type %s. This value must be coerced to a string before using it here.", + propName, + typeName(value) + ), testStringCoercion(value); + } + function checkFormFieldValueStringCoercion(value) { + if (willCoercionThrow(value)) + return console.error( + "Form field values (value, checked, defaultValue, or defaultChecked props) must be strings, not %s. This value must be coerced to a string before using it here.", + typeName(value) + ), testStringCoercion(value); + } + function injectInternals(internals) { + if ("undefined" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) return false; + var hook = __REACT_DEVTOOLS_GLOBAL_HOOK__; + if (hook.isDisabled) return true; + if (!hook.supportsFiber) + return console.error( + "The installed version of React DevTools is too old and will not work with the current version of React. Please update React DevTools. https://react.dev/link/react-devtools" + ), true; + try { + rendererID = hook.inject(internals), injectedHook = hook; + } catch (err) { + console.error("React instrumentation encountered an error: %o.", err); + } + return hook.checkDCE ? true : false; + } + function setIsStrictModeForDevtools(newIsStrictMode) { + "function" === typeof log$1 && unstable_setDisableYieldValue(newIsStrictMode); + if (injectedHook && "function" === typeof injectedHook.setStrictMode) + try { + injectedHook.setStrictMode(rendererID, newIsStrictMode); + } catch (err) { + hasLoggedError || (hasLoggedError = true, console.error( + "React instrumentation encountered an error: %o", + err + )); + } + } + function clz32Fallback(x) { + x >>>= 0; + return 0 === x ? 32 : 31 - (log(x) / LN2 | 0) | 0; + } + function getHighestPriorityLanes(lanes) { + var pendingSyncLanes = lanes & 42; + if (0 !== pendingSyncLanes) return pendingSyncLanes; + switch (lanes & -lanes) { + case 1: + return 1; + case 2: + return 2; + case 4: + return 4; + case 8: + return 8; + case 16: + return 16; + case 32: + return 32; + case 64: + return 64; + case 128: + return 128; + case 256: + case 512: + case 1024: + case 2048: + case 4096: + case 8192: + case 16384: + case 32768: + case 65536: + case 131072: + return lanes & 261888; + case 262144: + case 524288: + case 1048576: + case 2097152: + return lanes & 3932160; + case 4194304: + case 8388608: + case 16777216: + case 33554432: + return lanes & 62914560; + case 67108864: + return 67108864; + case 134217728: + return 134217728; + case 268435456: + return 268435456; + case 536870912: + return 536870912; + case 1073741824: + return 0; + default: + return console.error( + "Should have found matching lanes. This is a bug in React." + ), lanes; + } + } + function getNextLanes(root2, wipLanes, rootHasPendingCommit) { + var pendingLanes = root2.pendingLanes; + if (0 === pendingLanes) return 0; + var nextLanes = 0, suspendedLanes = root2.suspendedLanes, pingedLanes = root2.pingedLanes; + root2 = root2.warmLanes; + var nonIdlePendingLanes = pendingLanes & 134217727; + 0 !== nonIdlePendingLanes ? (pendingLanes = nonIdlePendingLanes & ~suspendedLanes, 0 !== pendingLanes ? nextLanes = getHighestPriorityLanes(pendingLanes) : (pingedLanes &= nonIdlePendingLanes, 0 !== pingedLanes ? nextLanes = getHighestPriorityLanes(pingedLanes) : rootHasPendingCommit || (rootHasPendingCommit = nonIdlePendingLanes & ~root2, 0 !== rootHasPendingCommit && (nextLanes = getHighestPriorityLanes(rootHasPendingCommit))))) : (nonIdlePendingLanes = pendingLanes & ~suspendedLanes, 0 !== nonIdlePendingLanes ? nextLanes = getHighestPriorityLanes(nonIdlePendingLanes) : 0 !== pingedLanes ? nextLanes = getHighestPriorityLanes(pingedLanes) : rootHasPendingCommit || (rootHasPendingCommit = pendingLanes & ~root2, 0 !== rootHasPendingCommit && (nextLanes = getHighestPriorityLanes(rootHasPendingCommit)))); + return 0 === nextLanes ? 0 : 0 !== wipLanes && wipLanes !== nextLanes && 0 === (wipLanes & suspendedLanes) && (suspendedLanes = nextLanes & -nextLanes, rootHasPendingCommit = wipLanes & -wipLanes, suspendedLanes >= rootHasPendingCommit || 32 === suspendedLanes && 0 !== (rootHasPendingCommit & 4194048)) ? wipLanes : nextLanes; + } + function checkIfRootIsPrerendering(root2, renderLanes2) { + return 0 === (root2.pendingLanes & ~(root2.suspendedLanes & ~root2.pingedLanes) & renderLanes2); + } + function computeExpirationTime(lane, currentTime) { + switch (lane) { + case 1: + case 2: + case 4: + case 8: + case 64: + return currentTime + 250; + case 16: + case 32: + case 128: + case 256: + case 512: + case 1024: + case 2048: + case 4096: + case 8192: + case 16384: + case 32768: + case 65536: + case 131072: + case 262144: + case 524288: + case 1048576: + case 2097152: + return currentTime + 5e3; + case 4194304: + case 8388608: + case 16777216: + case 33554432: + return -1; + case 67108864: + case 134217728: + case 268435456: + case 536870912: + case 1073741824: + return -1; + default: + return console.error( + "Should have found matching lanes. This is a bug in React." + ), -1; + } + } + function claimNextRetryLane() { + var lane = nextRetryLane; + nextRetryLane <<= 1; + 0 === (nextRetryLane & 62914560) && (nextRetryLane = 4194304); + return lane; + } + function createLaneMap(initial) { + for (var laneMap = [], i = 0; 31 > i; i++) laneMap.push(initial); + return laneMap; + } + function markRootUpdated$1(root2, updateLane) { + root2.pendingLanes |= updateLane; + 268435456 !== updateLane && (root2.suspendedLanes = 0, root2.pingedLanes = 0, root2.warmLanes = 0); + } + function markRootFinished(root2, finishedLanes, remainingLanes, spawnedLane, updatedLanes, suspendedRetryLanes) { + var previouslyPendingLanes = root2.pendingLanes; + root2.pendingLanes = remainingLanes; + root2.suspendedLanes = 0; + root2.pingedLanes = 0; + root2.warmLanes = 0; + root2.expiredLanes &= remainingLanes; + root2.entangledLanes &= remainingLanes; + root2.errorRecoveryDisabledLanes &= remainingLanes; + root2.shellSuspendCounter = 0; + var entanglements = root2.entanglements, expirationTimes = root2.expirationTimes, hiddenUpdates = root2.hiddenUpdates; + for (remainingLanes = previouslyPendingLanes & ~remainingLanes; 0 < remainingLanes; ) { + var index = 31 - clz32(remainingLanes), lane = 1 << index; + entanglements[index] = 0; + expirationTimes[index] = -1; + var hiddenUpdatesForLane = hiddenUpdates[index]; + if (null !== hiddenUpdatesForLane) + for (hiddenUpdates[index] = null, index = 0; index < hiddenUpdatesForLane.length; index++) { + var update = hiddenUpdatesForLane[index]; + null !== update && (update.lane &= -536870913); + } + remainingLanes &= ~lane; + } + 0 !== spawnedLane && markSpawnedDeferredLane(root2, spawnedLane, 0); + 0 !== suspendedRetryLanes && 0 === updatedLanes && 0 !== root2.tag && (root2.suspendedLanes |= suspendedRetryLanes & ~(previouslyPendingLanes & ~finishedLanes)); + } + function markSpawnedDeferredLane(root2, spawnedLane, entangledLanes) { + root2.pendingLanes |= spawnedLane; + root2.suspendedLanes &= ~spawnedLane; + var spawnedLaneIndex = 31 - clz32(spawnedLane); + root2.entangledLanes |= spawnedLane; + root2.entanglements[spawnedLaneIndex] = root2.entanglements[spawnedLaneIndex] | 1073741824 | entangledLanes & 261930; + } + function markRootEntangled(root2, entangledLanes) { + var rootEntangledLanes = root2.entangledLanes |= entangledLanes; + for (root2 = root2.entanglements; rootEntangledLanes; ) { + var index = 31 - clz32(rootEntangledLanes), lane = 1 << index; + lane & entangledLanes | root2[index] & entangledLanes && (root2[index] |= entangledLanes); + rootEntangledLanes &= ~lane; + } + } + function getBumpedLaneForHydration(root2, renderLanes2) { + var renderLane = renderLanes2 & -renderLanes2; + renderLane = 0 !== (renderLane & 42) ? 1 : getBumpedLaneForHydrationByLane(renderLane); + return 0 !== (renderLane & (root2.suspendedLanes | renderLanes2)) ? 0 : renderLane; + } + function getBumpedLaneForHydrationByLane(lane) { + switch (lane) { + case 2: + lane = 1; + break; + case 8: + lane = 4; + break; + case 32: + lane = 16; + break; + case 256: + case 512: + case 1024: + case 2048: + case 4096: + case 8192: + case 16384: + case 32768: + case 65536: + case 131072: + case 262144: + case 524288: + case 1048576: + case 2097152: + case 4194304: + case 8388608: + case 16777216: + case 33554432: + lane = 128; + break; + case 268435456: + lane = 134217728; + break; + default: + lane = 0; + } + return lane; + } + function addFiberToLanesMap(root2, fiber, lanes) { + if (isDevToolsPresent) + for (root2 = root2.pendingUpdatersLaneMap; 0 < lanes; ) { + var index = 31 - clz32(lanes), lane = 1 << index; + root2[index].add(fiber); + lanes &= ~lane; + } + } + function movePendingFibersToMemoized(root2, lanes) { + if (isDevToolsPresent) + for (var pendingUpdatersLaneMap = root2.pendingUpdatersLaneMap, memoizedUpdaters = root2.memoizedUpdaters; 0 < lanes; ) { + var index = 31 - clz32(lanes); + root2 = 1 << index; + index = pendingUpdatersLaneMap[index]; + 0 < index.size && (index.forEach(function(fiber) { + var alternate = fiber.alternate; + null !== alternate && memoizedUpdaters.has(alternate) || memoizedUpdaters.add(fiber); + }), index.clear()); + lanes &= ~root2; + } + } + function lanesToEventPriority(lanes) { + lanes &= -lanes; + return DiscreteEventPriority < lanes ? ContinuousEventPriority < lanes ? 0 !== (lanes & 134217727) ? DefaultEventPriority : IdleEventPriority : ContinuousEventPriority : DiscreteEventPriority; + } + function resolveUpdatePriority() { + var updatePriority = ReactDOMSharedInternals.p; + if (0 !== updatePriority) return updatePriority; + updatePriority = window.event; + return void 0 === updatePriority ? DefaultEventPriority : getEventPriority(updatePriority.type); + } + function runWithPriority(priority, fn) { + var previousPriority = ReactDOMSharedInternals.p; + try { + return ReactDOMSharedInternals.p = priority, fn(); + } finally { + ReactDOMSharedInternals.p = previousPriority; + } + } + function detachDeletedInstance(node) { + delete node[internalInstanceKey]; + delete node[internalPropsKey]; + delete node[internalEventHandlersKey]; + delete node[internalEventHandlerListenersKey]; + delete node[internalEventHandlesSetKey]; + } + function getClosestInstanceFromNode(targetNode) { + var targetInst = targetNode[internalInstanceKey]; + if (targetInst) return targetInst; + for (var parentNode = targetNode.parentNode; parentNode; ) { + if (targetInst = parentNode[internalContainerInstanceKey] || parentNode[internalInstanceKey]) { + parentNode = targetInst.alternate; + if (null !== targetInst.child || null !== parentNode && null !== parentNode.child) + for (targetNode = getParentHydrationBoundary(targetNode); null !== targetNode; ) { + if (parentNode = targetNode[internalInstanceKey]) + return parentNode; + targetNode = getParentHydrationBoundary(targetNode); + } + return targetInst; + } + targetNode = parentNode; + parentNode = targetNode.parentNode; + } + return null; + } + function getInstanceFromNode(node) { + if (node = node[internalInstanceKey] || node[internalContainerInstanceKey]) { + var tag = node.tag; + if (5 === tag || 6 === tag || 13 === tag || 31 === tag || 26 === tag || 27 === tag || 3 === tag) + return node; + } + return null; + } + function getNodeFromInstance(inst) { + var tag = inst.tag; + if (5 === tag || 26 === tag || 27 === tag || 6 === tag) + return inst.stateNode; + throw Error("getNodeFromInstance: Invalid argument."); + } + function getResourcesFromRoot(root2) { + var resources = root2[internalRootNodeResourcesKey]; + resources || (resources = root2[internalRootNodeResourcesKey] = { hoistableStyles: /* @__PURE__ */ new Map(), hoistableScripts: /* @__PURE__ */ new Map() }); + return resources; + } + function markNodeAsHoistable(node) { + node[internalHoistableMarker] = true; + } + function registerTwoPhaseEvent(registrationName, dependencies) { + registerDirectEvent(registrationName, dependencies); + registerDirectEvent(registrationName + "Capture", dependencies); + } + function registerDirectEvent(registrationName, dependencies) { + registrationNameDependencies[registrationName] && console.error( + "EventRegistry: More than one plugin attempted to publish the same registration name, `%s`.", + registrationName + ); + registrationNameDependencies[registrationName] = dependencies; + var lowerCasedName = registrationName.toLowerCase(); + possibleRegistrationNames[lowerCasedName] = registrationName; + "onDoubleClick" === registrationName && (possibleRegistrationNames.ondblclick = registrationName); + for (registrationName = 0; registrationName < dependencies.length; registrationName++) + allNativeEvents.add(dependencies[registrationName]); + } + function checkControlledValueProps(tagName, props) { + hasReadOnlyValue[props.type] || props.onChange || props.onInput || props.readOnly || props.disabled || null == props.value || ("select" === tagName ? console.error( + "You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set `onChange`." + ) : console.error( + "You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`." + )); + props.onChange || props.readOnly || props.disabled || null == props.checked || console.error( + "You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`." + ); + } + function isAttributeNameSafe(attributeName) { + if (hasOwnProperty.call(validatedAttributeNameCache, attributeName)) + return true; + if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) + return false; + if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)) + return validatedAttributeNameCache[attributeName] = true; + illegalAttributeNameCache[attributeName] = true; + console.error("Invalid attribute name: `%s`", attributeName); + return false; + } + function getValueForAttributeOnCustomComponent(node, name, expected) { + if (isAttributeNameSafe(name)) { + if (!node.hasAttribute(name)) { + switch (typeof expected) { + case "symbol": + case "object": + return expected; + case "function": + return expected; + case "boolean": + if (false === expected) return expected; + } + return void 0 === expected ? void 0 : null; + } + node = node.getAttribute(name); + if ("" === node && true === expected) return true; + checkAttributeStringCoercion(expected, name); + return node === "" + expected ? expected : node; + } + } + function setValueForAttribute(node, name, value) { + if (isAttributeNameSafe(name)) + if (null === value) node.removeAttribute(name); + else { + switch (typeof value) { + case "undefined": + case "function": + case "symbol": + node.removeAttribute(name); + return; + case "boolean": + var prefix2 = name.toLowerCase().slice(0, 5); + if ("data-" !== prefix2 && "aria-" !== prefix2) { + node.removeAttribute(name); + return; + } + } + checkAttributeStringCoercion(value, name); + node.setAttribute(name, "" + value); + } + } + function setValueForKnownAttribute(node, name, value) { + if (null === value) node.removeAttribute(name); + else { + switch (typeof value) { + case "undefined": + case "function": + case "symbol": + case "boolean": + node.removeAttribute(name); + return; + } + checkAttributeStringCoercion(value, name); + node.setAttribute(name, "" + value); + } + } + function setValueForNamespacedAttribute(node, namespace, name, value) { + if (null === value) node.removeAttribute(name); + else { + switch (typeof value) { + case "undefined": + case "function": + case "symbol": + case "boolean": + node.removeAttribute(name); + return; + } + checkAttributeStringCoercion(value, name); + node.setAttributeNS(namespace, name, "" + value); + } + } + function getToStringValue(value) { + switch (typeof value) { + case "bigint": + case "boolean": + case "number": + case "string": + case "undefined": + return value; + case "object": + return checkFormFieldValueStringCoercion(value), value; + default: + return ""; + } + } + function isCheckable(elem) { + var type = elem.type; + return (elem = elem.nodeName) && "input" === elem.toLowerCase() && ("checkbox" === type || "radio" === type); + } + function trackValueOnNode(node, valueField, currentValue) { + var descriptor = Object.getOwnPropertyDescriptor( + node.constructor.prototype, + valueField + ); + if (!node.hasOwnProperty(valueField) && "undefined" !== typeof descriptor && "function" === typeof descriptor.get && "function" === typeof descriptor.set) { + var get = descriptor.get, set = descriptor.set; + Object.defineProperty(node, valueField, { + configurable: true, + get: function() { + return get.call(this); + }, + set: function(value) { + checkFormFieldValueStringCoercion(value); + currentValue = "" + value; + set.call(this, value); + } + }); + Object.defineProperty(node, valueField, { + enumerable: descriptor.enumerable + }); + return { + getValue: function() { + return currentValue; + }, + setValue: function(value) { + checkFormFieldValueStringCoercion(value); + currentValue = "" + value; + }, + stopTracking: function() { + node._valueTracker = null; + delete node[valueField]; + } + }; + } + } + function track(node) { + if (!node._valueTracker) { + var valueField = isCheckable(node) ? "checked" : "value"; + node._valueTracker = trackValueOnNode( + node, + valueField, + "" + node[valueField] + ); + } + } + function updateValueIfChanged(node) { + if (!node) return false; + var tracker = node._valueTracker; + if (!tracker) return true; + var lastValue = tracker.getValue(); + var value = ""; + node && (value = isCheckable(node) ? node.checked ? "true" : "false" : node.value); + node = value; + return node !== lastValue ? (tracker.setValue(node), true) : false; + } + function getActiveElement(doc) { + doc = doc || ("undefined" !== typeof document ? document : void 0); + if ("undefined" === typeof doc) return null; + try { + return doc.activeElement || doc.body; + } catch (e) { + return doc.body; + } + } + function escapeSelectorAttributeValueInsideDoubleQuotes(value) { + return value.replace( + escapeSelectorAttributeValueInsideDoubleQuotesRegex, + function(ch) { + return "\\" + ch.charCodeAt(0).toString(16) + " "; + } + ); + } + function validateInputProps(element, props) { + void 0 === props.checked || void 0 === props.defaultChecked || didWarnCheckedDefaultChecked || (console.error( + "%s contains an input of type %s with both checked and defaultChecked props. Input elements must be either controlled or uncontrolled (specify either the checked prop, or the defaultChecked prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://react.dev/link/controlled-components", + getCurrentFiberOwnerNameInDevOrNull() || "A component", + props.type + ), didWarnCheckedDefaultChecked = true); + void 0 === props.value || void 0 === props.defaultValue || didWarnValueDefaultValue$1 || (console.error( + "%s contains an input of type %s with both value and defaultValue props. Input elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://react.dev/link/controlled-components", + getCurrentFiberOwnerNameInDevOrNull() || "A component", + props.type + ), didWarnValueDefaultValue$1 = true); + } + function updateInput(element, value, defaultValue, lastDefaultValue, checked, defaultChecked, type, name) { + element.name = ""; + null != type && "function" !== typeof type && "symbol" !== typeof type && "boolean" !== typeof type ? (checkAttributeStringCoercion(type, "type"), element.type = type) : element.removeAttribute("type"); + if (null != value) + if ("number" === type) { + if (0 === value && "" === element.value || element.value != value) + element.value = "" + getToStringValue(value); + } else + element.value !== "" + getToStringValue(value) && (element.value = "" + getToStringValue(value)); + else + "submit" !== type && "reset" !== type || element.removeAttribute("value"); + null != value ? setDefaultValue(element, type, getToStringValue(value)) : null != defaultValue ? setDefaultValue(element, type, getToStringValue(defaultValue)) : null != lastDefaultValue && element.removeAttribute("value"); + null == checked && null != defaultChecked && (element.defaultChecked = !!defaultChecked); + null != checked && (element.checked = checked && "function" !== typeof checked && "symbol" !== typeof checked); + null != name && "function" !== typeof name && "symbol" !== typeof name && "boolean" !== typeof name ? (checkAttributeStringCoercion(name, "name"), element.name = "" + getToStringValue(name)) : element.removeAttribute("name"); + } + function initInput(element, value, defaultValue, checked, defaultChecked, type, name, isHydrating2) { + null != type && "function" !== typeof type && "symbol" !== typeof type && "boolean" !== typeof type && (checkAttributeStringCoercion(type, "type"), element.type = type); + if (null != value || null != defaultValue) { + if (!("submit" !== type && "reset" !== type || void 0 !== value && null !== value)) { + track(element); + return; + } + defaultValue = null != defaultValue ? "" + getToStringValue(defaultValue) : ""; + value = null != value ? "" + getToStringValue(value) : defaultValue; + isHydrating2 || value === element.value || (element.value = value); + element.defaultValue = value; + } + checked = null != checked ? checked : defaultChecked; + checked = "function" !== typeof checked && "symbol" !== typeof checked && !!checked; + element.checked = isHydrating2 ? element.checked : !!checked; + element.defaultChecked = !!checked; + null != name && "function" !== typeof name && "symbol" !== typeof name && "boolean" !== typeof name && (checkAttributeStringCoercion(name, "name"), element.name = name); + track(element); + } + function setDefaultValue(node, type, value) { + "number" === type && getActiveElement(node.ownerDocument) === node || node.defaultValue === "" + value || (node.defaultValue = "" + value); + } + function validateOptionProps(element, props) { + null == props.value && ("object" === typeof props.children && null !== props.children ? React2.Children.forEach(props.children, function(child) { + null == child || "string" === typeof child || "number" === typeof child || "bigint" === typeof child || didWarnInvalidChild || (didWarnInvalidChild = true, console.error( + "Cannot infer the option value of complex children. Pass a `value` prop or use a plain string as children to