├── img ├── icon.png ├── light.svg └── dark.svg ├── preview ├── aes.png └── pic.png ├── Note.md ├── .gitignore ├── .vscode ├── extensions.json ├── settings.json ├── launch.json └── tasks.json ├── .vscodeignore ├── tsconfig.json ├── src ├── types.ts ├── mac.ts ├── win.ts └── extension.ts ├── CHANGELOG.md ├── Develop.md ├── package.nls.zh-CN.json ├── eslint.config.mjs ├── package.nls.jp.json ├── package.nls.en.json ├── package.nls.json ├── nls.metadata.zh-cn.json ├── LICENSE ├── nls.metadata.json ├── esbuild.js ├── package.json ├── README-ZH.md ├── README-JP.md ├── README.md └── pnpm-lock.yaml /img/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yuelioi/vscode-ae-script-tsx-linker/HEAD/img/icon.png -------------------------------------------------------------------------------- /preview/aes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yuelioi/vscode-ae-script-tsx-linker/HEAD/preview/aes.png -------------------------------------------------------------------------------- /preview/pic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yuelioi/vscode-ae-script-tsx-linker/HEAD/preview/pic.png -------------------------------------------------------------------------------- /Note.md: -------------------------------------------------------------------------------- 1 | 发布地址: https://marketplace.visualstudio.com/manage/publishers/yuelili 2 | 3 | 用的github登录的 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | out 2 | dist 3 | node_modules 4 | .vscode-test/ 5 | *.vsix 6 | 7 | package-lock.json 8 | 9 | 10 | extension.js 11 | extension.js.map 12 | 13 | secret 14 | test* 15 | 16 | token 17 | .DS_Store -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // See http://go.microsoft.com/fwlink/?LinkId=827846 3 | // for the documentation about the extensions.json format 4 | "recommendations": ["dbaeumer.vscode-eslint", "amodio.tsl-problem-matcher"] 5 | } 6 | -------------------------------------------------------------------------------- /.vscodeignore: -------------------------------------------------------------------------------- 1 | .vscode/** 2 | .vscode-test/** 3 | out/** 4 | node_modules/** 5 | src/** 6 | .gitignore 7 | .yarnrc 8 | webpack.config.js 9 | vsc-extension-quickstart.md 10 | **/tsconfig.json 11 | **/.eslintrc.json 12 | **/*.map 13 | **/*.ts 14 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "module": "commonjs", 4 | "target": "ES2020", 5 | "lib": [ 6 | "ES2022", 7 | ], 8 | "resolveJsonModule": true, 9 | "esModuleInterop": true, 10 | "sourceMap": true, 11 | "strict": true, 12 | "outDir": "./dist" 13 | } 14 | } -------------------------------------------------------------------------------- /src/types.ts: -------------------------------------------------------------------------------- 1 | export interface AppVersionInfo { 2 | label: string; // 版本号/别名 3 | description: string; // 完整路径 4 | } 5 | 6 | export type BuildTool = "auto" | "tsc" | "rollup" | "webpack" | "esbuild"; 7 | 8 | export interface WorkspaceSettings { 9 | input: string; 10 | output: string; 11 | hostSpecifier: string; 12 | buildTool?: BuildTool; 13 | customBuildCommand?: string; 14 | } 15 | 16 | export interface TsConfig { 17 | compilerOptions?: { 18 | outDir?: string; 19 | [key: string]: any; 20 | }; 21 | [key: string]: any; 22 | } 23 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # CHANGELOG 2 | 3 | ## [0.7.0] - 2025-03-14 4 | 5 | - mac supported 6 | 7 | ## [0.6.0] - 2023-04-11 8 | 9 | - Checking software version currently running. 10 | 11 | ## [0.5.0] - 2023-03-15 12 | 13 | - .Jsxbin Supported 14 | - Fix `blank space` file path 15 | 16 | ## [0.4.0] - 2023-03-10 17 | 18 | - Rollup Supported 19 | 20 | ## [0.3.0] - 2023-03-02 21 | 22 | - Add Run Icon 23 | 24 | ## [0.2.0] - 2023-03-02 25 | 26 | - Custom tsconfig supported (tsconfgi-ae.json) 27 | 28 | ## [0.1.0] - 2023-03-01 29 | 30 | - Ts Supported 31 | -------------------------------------------------------------------------------- /Develop.md: -------------------------------------------------------------------------------- 1 | ## 初始化 2 | 3 | pnpm install 4 | 5 | ## 修改 6 | 7 | 需要修改 `launch.json`, 因为默认生成的项目不带build选项, 导致配置不对 8 | 9 | ```json 10 | "preLaunchTask": "${defaultBuildTask}" 11 | ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 12 | "tasks: watch-tests" 13 | ``` 14 | 15 | ## 使用 vsc 调试 16 | 17 | NPM脚本: `watch` (如果在第二步修改后,也可以直接f5) 18 | 19 | F5 / 运行与调试 -> Run Extension 20 | 21 | ## 打包 22 | 23 | `npm i vsce -g` 24 | 25 | `vsce package2` 26 | 27 | `vsce publish` 28 | 29 | ## 其他 30 | 31 | 上传不上去, 可以打包, 然后再网站上传 `https://marketplace.visualstudio.com/manage/publishers/yuelili` 32 | -------------------------------------------------------------------------------- /img/light.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 12 | -------------------------------------------------------------------------------- /img/dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 12 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.exclude": { 3 | "**/.git": true, 4 | "**/.svn": true, 5 | "**/.hg": true, 6 | "**/.DS_Store": true, 7 | "**/Thumbs.db": true, 8 | "**/CVS": true, 9 | "out": true, 10 | "dist": true 11 | }, 12 | "search.exclude": { 13 | "out": true, // set this to false to include "out" folder in search results 14 | "dist": true // set this to false to include "dist" folder in search results 15 | }, 16 | // Turn off tsc task auto detection since we have the necessary tasks as npm scripts 17 | "typescript.tsc.autoDetect": "off", 18 | "hide-files.files": [], 19 | "tsxRunner": { 20 | "hostSpecifier": "123" 21 | } 22 | } -------------------------------------------------------------------------------- /package.nls.zh-CN.json: -------------------------------------------------------------------------------- 1 | { 2 | "command.runScript": "运行 AE 脚本", 3 | "configuration.title": "AE TSX 运行器", 4 | "configuration.hostSpecifier.description": "指定要使用的 After Effects 版本(例如 '2024')。留空则显示版本选择器。", 5 | "configuration.buildTool.description": "TypeScript 编译构建工具", 6 | "configuration.buildTool.auto": "根据项目配置自动检测构建工具", 7 | "configuration.buildTool.tsc": "使用 TypeScript 编译器(tsc)", 8 | "configuration.buildTool.rollup": "使用 Rollup 打包工具", 9 | "configuration.buildTool.webpack": "使用 Webpack 打包工具", 10 | "configuration.buildTool.esbuild": "使用 esbuild 打包工具", 11 | "configuration.customBuildCommand.description": "自定义构建命令(覆盖 buildTool 设置)。例如: 'npm run build'", 12 | "configuration.input.description": "输入文件路径(自动填充)", 13 | "configuration.output.description": "输出文件路径(自动填充)" 14 | } -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | // A launch configuration that compiles the extension and then opens it inside a new window 2 | // Use IntelliSense to learn about possible attributes. 3 | // Hover to view descriptions of existing attributes. 4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 5 | { 6 | "version": "0.2.0", 7 | "configurations": [ 8 | { 9 | "name": "Extension Debug", 10 | "type": "extensionHost", 11 | "request": "launch", 12 | "args": [ 13 | "--extensionDevelopmentPath=${workspaceFolder}", 14 | "--disable-extensions", // 调试时关闭其他拓展 15 | "--extension=Adobe.extendscript-debug" // 启用指定扩展 16 | ], 17 | "outFiles": [ 18 | "${workspaceFolder}/dist/**/*.js" 19 | ], 20 | "preLaunchTask": "watch:tsc" 21 | } 22 | ] 23 | } -------------------------------------------------------------------------------- /eslint.config.mjs: -------------------------------------------------------------------------------- 1 | import typescriptEslint from "@typescript-eslint/eslint-plugin"; 2 | import tsParser from "@typescript-eslint/parser"; 3 | 4 | export default [ 5 | { 6 | files: ["**/*.ts"], 7 | }, 8 | { 9 | plugins: { 10 | "@typescript-eslint": typescriptEslint, 11 | }, 12 | 13 | languageOptions: { 14 | parser: tsParser, 15 | ecmaVersion: 2022, 16 | sourceType: "module", 17 | }, 18 | 19 | rules: { 20 | "@typescript-eslint/naming-convention": [ 21 | "warn", 22 | { 23 | selector: "import", 24 | format: ["camelCase", "PascalCase"], 25 | }, 26 | ], 27 | 28 | curly: "warn", 29 | eqeqeq: "warn", 30 | "no-throw-literal": "warn", 31 | semi: "warn", 32 | }, 33 | }, 34 | ]; 35 | -------------------------------------------------------------------------------- /package.nls.jp.json: -------------------------------------------------------------------------------- 1 | { 2 | "ae-tsx-runner.run": "Aeスクリプト実行", 3 | "configuration.title": "AE TSX ランナー", 4 | "configuration.hostSpecifier.description": "使用する After Effects のバージョンを指定(例:'2024')。空欄の場合はバージョン選択画面を表示します。", 5 | "configuration.buildTool.description": "TypeScript コンパイル用のビルドツール", 6 | "configuration.buildTool.auto": "プロジェクト設定に基づいてビルドツールを自動検出", 7 | "configuration.buildTool.tsc": "TypeScript コンパイラ (tsc) を使用", 8 | "configuration.buildTool.rollup": "Rollup バンドラーを使用", 9 | "configuration.buildTool.webpack": "Webpack バンドラーを使用", 10 | "configuration.buildTool.esbuild": "esbuild バンドラーを使用", 11 | "configuration.customBuildCommand.description": "カスタムビルドコマンド(buildTool 設定を上書き)。例: 'npm run build'", 12 | "configuration.input.description": "入力ファイルのパス(自動入力)", 13 | "configuration.output.description": "出力ファイルのパス(自動入力)" 14 | } -------------------------------------------------------------------------------- /package.nls.en.json: -------------------------------------------------------------------------------- 1 | { 2 | "command.runScript": "Run AE Script", 3 | "configuration.title": "AE TSX Runner", 4 | "configuration.hostSpecifier.description": "Specify the After Effects version to use (e.g., '2024'). Leave empty to show version picker.", 5 | "configuration.buildTool.description": "Build tool for TypeScript compilation", 6 | "configuration.buildTool.auto": "Auto-detect build tool based on project configuration", 7 | "configuration.buildTool.tsc": "Use TypeScript Compiler (tsc)", 8 | "configuration.buildTool.rollup": "Use Rollup bundler", 9 | "configuration.buildTool.webpack": "Use Webpack bundler", 10 | "configuration.buildTool.esbuild": "Use esbuild bundler", 11 | "configuration.customBuildCommand.description": "Custom build command (overrides buildTool setting). Example: 'npm run build'", 12 | "configuration.input.description": "Input file path (auto-populated)", 13 | "configuration.output.description": "Output file path (auto-populated)" 14 | } -------------------------------------------------------------------------------- /package.nls.json: -------------------------------------------------------------------------------- 1 | { 2 | "command.runScript": "Run AE Script", 3 | "configuration.title": "AE TSX Runner", 4 | "configuration.hostSpecifier.description": "Specify the After Effects version to use (e.g., '2024'). Leave empty to show version picker.", 5 | "configuration.buildTool.description": "Build tool for TypeScript compilation", 6 | "configuration.buildTool.auto": "Auto-detect build tool based on project configuration", 7 | "configuration.buildTool.tsc": "Use TypeScript Compiler (tsc)", 8 | "configuration.buildTool.rollup": "Use Rollup bundler", 9 | "configuration.buildTool.webpack": "Use Webpack bundler", 10 | "configuration.buildTool.esbuild": "Use esbuild bundler", 11 | "configuration.customBuildCommand.description": "Custom build command (overrides buildTool setting). Example: 'npm run build'", 12 | "configuration.input.description": "Input file path (auto-populated)", 13 | "configuration.output.description": "Output file path (auto-populated)" 14 | } -------------------------------------------------------------------------------- /.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | // See https://go.microsoft.com/fwlink/?LinkId=733558 2 | // for the documentation about the tasks.json format 3 | { 4 | "version": "2.0.0", 5 | "tasks": [ 6 | { 7 | "label": "watch:esbuild", 8 | "type": "npm", 9 | "script": "watch:esbuild", 10 | "problemMatcher": [], 11 | "isBackground": true, 12 | "presentation": { 13 | "reveal": "never", 14 | "group": "watchers" 15 | }, 16 | "group": "build" 17 | }, 18 | { 19 | "label": "watch:tsc", 20 | "type": "npm", 21 | "script": "watch:tsc", 22 | "problemMatcher": "$tsc-watch", 23 | "isBackground": true, 24 | "presentation": { 25 | "reveal": "never", 26 | "group": "watchers" 27 | }, 28 | "group": "build" 29 | }, 30 | { 31 | "label": "tasks: watch-all", 32 | "dependsOn": [ 33 | "watch:esbuild", 34 | "watch:tsc" 35 | ], 36 | "problemMatcher": [] 37 | } 38 | ] 39 | } -------------------------------------------------------------------------------- /nls.metadata.zh-cn.json: -------------------------------------------------------------------------------- 1 | { 2 | "error.unsupportedPlatform": "不支持的平台", 3 | "error.noWorkspace": "请先打开工作目录", 4 | "warning.versionNotFound": "配置版本 {0} 未找到", 5 | "detail.installPath": "安装路径: {0}", 6 | "placeholder.selectVersion": "选择正在运行的 After Effects 版本", 7 | "error.noVersionSelected": "未选择 AE 版本", 8 | "error.noTsConfig": "未找到 tsconfig.json", 9 | "error.invalidTsConfig": "解析 tsconfig.json 失败: {0}", 10 | "error.buildFailed": "构建失败: {0} (代码 {1})", 11 | "error.outputNotGenerated": "输出文件未生成", 12 | "error.configSaveFailed": "配置保存失败: {0}", 13 | "warning.noActiveEditor": "没有活动的编辑器", 14 | "error.noAeInstance": "未找到运行的 AE 实例", 15 | "success.executed": "脚本执行成功", 16 | "success.compiledAndExecuted": "脚本编译并执行成功", 17 | "warning.unsupportedFileType": "不支持的文件类型: {0}", 18 | "error.noAeFound": "未找到 After Effects 安装", 19 | "error.getAppsFailed": "获取 After Effects 应用失败: {0}", 20 | "error.executionFailed": "执行脚本失败: {0}", 21 | "error.noRunningAe": "未找到运行中的 After Effects 实例", 22 | "progress.building": "正在使用 {0} 构建..." 23 | } -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 Yueli 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /nls.metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "error.unsupportedPlatform": "Unsupported platform", 3 | "error.noWorkspace": "Please open a workspace folder first", 4 | "warning.versionNotFound": "Configured version {0} not found", 5 | "detail.installPath": "Install path: {0}", 6 | "placeholder.selectVersion": "Select running After Effects version", 7 | "error.noVersionSelected": "No AE version selected", 8 | "error.noTsConfig": "tsconfig.json not found", 9 | "error.invalidTsConfig": "Failed to parse tsconfig.json: {0}", 10 | "error.buildFailed": "Build failed: {0} (code {1})", 11 | "error.outputNotGenerated": "Output file was not generated", 12 | "error.configSaveFailed": "Failed to save configuration: {0}", 13 | "warning.noActiveEditor": "No active editor", 14 | "error.noAeInstance": "No running After Effects instance found", 15 | "success.executed": "Script executed successfully", 16 | "success.compiledAndExecuted": "Script compiled and executed successfully", 17 | "warning.unsupportedFileType": "Unsupported file type: {0}", 18 | "error.noAeFound": "No After Effects installation found", 19 | "error.getAppsFailed": "Failed to get After Effects apps: {0}", 20 | "error.executionFailed": "Failed to execute script: {0}", 21 | "error.noRunningAe": "No running After Effects instance found", 22 | "progress.building": "Building with {0}..." 23 | } -------------------------------------------------------------------------------- /esbuild.js: -------------------------------------------------------------------------------- 1 | const esbuild = require("esbuild"); 2 | 3 | const production = process.argv.includes('--production'); 4 | const watch = process.argv.includes('--watch'); 5 | 6 | /** 7 | * @type {import('esbuild').Plugin} 8 | */ 9 | const esbuildProblemMatcherPlugin = { 10 | name: 'esbuild-problem-matcher', 11 | 12 | setup(build) { 13 | build.onStart(() => { 14 | console.log('[watch] build started'); 15 | }); 16 | build.onEnd((result) => { 17 | result.errors.forEach(({ text, location }) => { 18 | console.error(`✘ [ERROR] ${text}`); 19 | console.error(` ${location.file}:${location.line}:${location.column}:`); 20 | }); 21 | console.log('[watch] build finished'); 22 | }); 23 | }, 24 | }; 25 | 26 | async function main() { 27 | const ctx = await esbuild.context({ 28 | entryPoints: [ 29 | 'src/extension.ts' 30 | ], 31 | bundle: true, 32 | format: 'cjs', 33 | minify: production, 34 | sourcemap: !production, 35 | sourcesContent: false, 36 | platform: 'node', 37 | outfile: 'dist/extension.js', 38 | external: ['vscode'], 39 | logLevel: 'silent', 40 | plugins: [ 41 | /* add to the end of plugins array */ 42 | esbuildProblemMatcherPlugin, 43 | ], 44 | }); 45 | if (watch) { 46 | await ctx.watch(); 47 | } else { 48 | await ctx.rebuild(); 49 | await ctx.dispose(); 50 | } 51 | } 52 | 53 | main().catch(e => { 54 | console.error(e); 55 | process.exit(1); 56 | }); 57 | -------------------------------------------------------------------------------- /src/mac.ts: -------------------------------------------------------------------------------- 1 | import { execSync } from "child_process"; 2 | import { AppVersionInfo } from "./types"; 3 | import * as nls from "vscode-nls"; 4 | 5 | const localize = nls.loadMessageBundle(); 6 | 7 | /** 8 | * 获取所有已安装的 After Effects 应用 9 | */ 10 | export function getApps(): AppVersionInfo[] { 11 | try { 12 | const command = `mdfind "kMDItemCFBundleIdentifier == 'com.adobe.AfterEffects'"`; 13 | const stdout = execSync(command, { encoding: "utf8" }); 14 | 15 | const apps = stdout 16 | .split("\n") 17 | .filter((path) => path.trim() !== "") 18 | .map((fullPath) => { 19 | const fileName = fullPath.split("/").pop() || "Unknown"; 20 | return { 21 | label: fileName.replace(/\.app$/, ""), 22 | description: fullPath.trim(), 23 | }; 24 | }); 25 | 26 | if (apps.length === 0) { 27 | throw new Error( 28 | localize("error.noAeFound", "No After Effects installation found") 29 | ); 30 | } 31 | 32 | return apps; 33 | } catch (error) { 34 | console.error(`Failed to get AE apps: ${error}`); 35 | throw new Error( 36 | localize( 37 | "error.getAppsFailed", 38 | "Failed to get After Effects apps: {0}", 39 | String(error) 40 | ) 41 | ); 42 | } 43 | } 44 | 45 | /** 46 | * 在 After Effects 中执行 JSX 脚本 47 | */ 48 | export async function executeJsx( 49 | appPath: string, 50 | scriptPath: string 51 | ): Promise { 52 | try { 53 | // 转义路径中的特殊字符 54 | const escapedAppPath = appPath.replace(/'/g, "'\\''"); 55 | const escapedScriptPath = scriptPath.replace(/'/g, "'\\''"); 56 | 57 | const command = `osascript -e 'tell application "${escapedAppPath}" to DoScriptFile (POSIX file "${escapedScriptPath}")'`; 58 | 59 | const output = execSync(command, { 60 | encoding: "utf8", 61 | timeout: 30000, 62 | }); 63 | 64 | console.log(`✅ Script executed successfully: ${output}`); 65 | } catch (error) { 66 | console.error( 67 | localize( 68 | "error.executionFailed", 69 | "Failed to execute script: {0}", 70 | String(error) 71 | ) 72 | ); 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /src/win.ts: -------------------------------------------------------------------------------- 1 | import { execSync } from "child_process"; 2 | import { Buffer } from "buffer"; 3 | import { AppVersionInfo } from "./types"; 4 | import * as nls from "vscode-nls"; 5 | 6 | const localize = nls.loadMessageBundle(); 7 | const EXEC_TIMEOUT = 30000; 8 | 9 | /** 10 | * 获取所有正在运行的 After Effects 实例 11 | */ 12 | export function getApps(): AppVersionInfo[] { 13 | const psScript = ` 14 | $AfterProcess = Get-WmiObject -Class Win32_Process -Filter 'Name="AfterFX.exe"' | Select-Object -ExpandProperty Path 15 | $ae = Get-ChildItem 'HKLM:\\SOFTWARE\\Adobe\\After Effects' | 16 | Select-Object -ExpandProperty Name | 17 | ForEach-Object { 18 | $name = $_ -replace 'HKEY_LOCAL_MACHINE\\\\SOFTWARE\\\\Adobe\\\\After Effects\\\\' 19 | $InstallPath = (Get-ItemPropertyValue ('HKLM:\\\\SOFTWARE\\\\Adobe\\\\After Effects\\\\' + $name) -Name "InstallPath") + 'AfterFX.exe' 20 | if ($AfterProcess -contains $InstallPath) { 21 | @{label = $name; description = $InstallPath } 22 | } 23 | } 24 | if ($ae) { 25 | Write-Output ($ae | ConvertTo-Json -Compress) 26 | } else { 27 | Write-Output "[]" 28 | } 29 | `.trim(); 30 | 31 | try { 32 | const psScriptBase64 = Buffer.from(psScript, "utf16le").toString("base64"); 33 | const stdoutBuffer = execSync( 34 | `powershell.exe -NoProfile -ExecutionPolicy Bypass -EncodedCommand ${psScriptBase64}`, 35 | { encoding: "utf8", timeout: EXEC_TIMEOUT } 36 | ); 37 | 38 | const stdoutData = stdoutBuffer.trim(); 39 | 40 | if (!stdoutData || stdoutData === "[]") { 41 | throw new Error( 42 | localize("error.noRunningAe", "No running After Effects instance found") 43 | ); 44 | } 45 | 46 | const aes = JSON.parse(stdoutData); 47 | return Array.isArray(aes) ? aes : [aes]; 48 | } catch (error) { 49 | console.error("Failed to get AE apps:", error); 50 | throw new Error( 51 | localize( 52 | "error.getAppsFailed", 53 | "Failed to get After Effects apps: {0}", 54 | String(error) 55 | ) 56 | ); 57 | } 58 | } 59 | 60 | /** 61 | * 在 After Effects 中执行 JSX 脚本 62 | */ 63 | export async function executeJsx( 64 | aePath: string, 65 | scriptPath: string 66 | ): Promise { 67 | try { 68 | execSync(`"${aePath}" -r ${scriptPath}`, { 69 | timeout: EXEC_TIMEOUT, 70 | }); 71 | console.log(`✅ Script executed successfully`); 72 | } catch (error) { 73 | console.error( 74 | localize( 75 | "error.executionFailed", 76 | "Failed to execute script: {0}", 77 | String(error) 78 | ) 79 | ); 80 | } 81 | } 82 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ae-tsx-runner", 3 | "displayName": "Adobe AE jsx && tsx Runner", 4 | "description": "Run Adobe After Effects jsx or tsx Script without ExtendScript Toolkit.", 5 | "version": "0.8.0", 6 | "publisher": "yuelili", 7 | "repository": { 8 | "type": "git", 9 | "url": "https://github.com/Yuelioi/vscode-ae-script-tsx-linker.git" 10 | }, 11 | "homepage": "https://github.com/Yuelioi/vscode-ae-script-tsx-linker", 12 | "engines": { 13 | "vscode": "^1.105.0" 14 | }, 15 | "categories": [ 16 | "Other" 17 | ], 18 | "activationEvents": [], 19 | "keywords": [ 20 | "ae", 21 | "after effects", 22 | "extendscript", 23 | "jsx", 24 | "tsx", 25 | "runner" 26 | ], 27 | "icon": "img/icon.png", 28 | "main": "./dist/extension.js", 29 | "contributes": { 30 | "commands": [ 31 | { 32 | "command": "runrun.JSXScript", 33 | "title": "%command.runScript%", 34 | "icon": { 35 | "light": "./img/light.svg", 36 | "dark": "./img/dark.svg" 37 | } 38 | } 39 | ], 40 | "menus": { 41 | "editor/title": [ 42 | { 43 | "when": "resourceExtname == .jsx || resourceExtname == .tsx || resourceExtname == .ts || resourceExtname == .jsxbin", 44 | "command": "runrun.JSXScript", 45 | "group": "navigation" 46 | } 47 | ], 48 | "editor/context": [ 49 | { 50 | "when": "resourceExtname == .jsx || resourceExtname == .tsx || resourceExtname == .ts || resourceExtname == .jsxbin", 51 | "command": "runrun.JSXScript", 52 | "group": "navigation" 53 | } 54 | ] 55 | }, 56 | "configuration": { 57 | "title": "%configuration.title%", 58 | "properties": { 59 | "ae-tsx-runner.hostSpecifier": { 60 | "type": "string", 61 | "default": "", 62 | "description": "%configuration.hostSpecifier.description%", 63 | "order": 1 64 | }, 65 | "ae-tsx-runner.buildTool": { 66 | "type": "string", 67 | "enum": [ 68 | "auto", 69 | "tsc", 70 | "rollup", 71 | "webpack", 72 | "esbuild" 73 | ], 74 | "default": "auto", 75 | "description": "%configuration.buildTool.description%", 76 | "enumDescriptions": [ 77 | "%configuration.buildTool.auto%", 78 | "%configuration.buildTool.tsc%", 79 | "%configuration.buildTool.rollup%", 80 | "%configuration.buildTool.webpack%", 81 | "%configuration.buildTool.esbuild%" 82 | ], 83 | "order": 2 84 | }, 85 | "ae-tsx-runner.customBuildCommand": { 86 | "type": "string", 87 | "default": "", 88 | "description": "%configuration.customBuildCommand.description%", 89 | "order": 3 90 | }, 91 | "ae-tsx-runner.input": { 92 | "type": "string", 93 | "default": "", 94 | "description": "%configuration.input.description%", 95 | "order": 4 96 | }, 97 | "ae-tsx-runner.output": { 98 | "type": "string", 99 | "default": "", 100 | "description": "%configuration.output.description%", 101 | "order": 5 102 | } 103 | } 104 | } 105 | }, 106 | "scripts": { 107 | "vscode:prepublish": "npm run esbuild-base -- --minify", 108 | "esbuild-base": "esbuild ./src/extension.ts --bundle --outfile=out/main.js --external:vscode --format=cjs --platform=node", 109 | "package": "pnpm vsce package --no-dependencies", 110 | "publish": "pnpm vsce publish --no-dependencies", 111 | "watch": "npm-run-all -p watch:*", 112 | "watch:esbuild": "node esbuild.js --watch", 113 | "watch:tsc": "tsc --noEmit --watch --project tsconfig.json" 114 | }, 115 | "devDependencies": { 116 | "@types/glob": "^8.1.0", 117 | "@types/mocha": "^10.0.10", 118 | "@types/node": "24.7.2", 119 | "@types/vscode": "1.105.0", 120 | "@typescript-eslint/eslint-plugin": "8.46.0", 121 | "@typescript-eslint/parser": "8.46.0", 122 | "@vscode/test-electron": "2.5.2", 123 | "del": "8.0.1", 124 | "eslint": "9.37.0", 125 | "glob": "11.0.3", 126 | "mocha": "11.7.4", 127 | "nodemon": "3.1.10", 128 | "run-sequence": "^2.2.1", 129 | "ts-loader": "^9.5.4", 130 | "typescript": "5.9.3", 131 | "vscode-nls-dev": "^4.0.4", 132 | "esbuild": "^0.25.10" 133 | }, 134 | "dependencies": { 135 | "fs-extra": "^10.1.0", 136 | "json5": "^2.2.3", 137 | "vscode-nls": "^5.2.0" 138 | }, 139 | "license": "MIT" 140 | } -------------------------------------------------------------------------------- /README-ZH.md: -------------------------------------------------------------------------------- 1 | # AE Script Runner for VS Code 🚀 2 | 3 | [![VS Code Marketplace](https://img.shields.io/badge/VS%2520Code-Marketplace-blue)](https://marketplace.visualstudio.com/items?itemName=yourname.ae-script-runner) 4 | [![License](https://img.shields.io/badge/License-MIT-green)](https://license/) 5 | [![Supports Windows](https://img.shields.io/badge/Platform-Windows-0078D6)](https://www.adobe.com/products/aftereffects.html) 6 | [![Supports macOS](https://img.shields.io/badge/Platform-macOS-999999)](https://www.adobe.com/products/aftereffects.html) 7 | 8 | 专为 After Effects 开发者设计的 VS Code 扩展,提供 TypeScript 工作流支持与多版本 AE 脚本执行能力。 9 | 10 | *▲ 在 VS Code 中直接运行 AE 脚本* 11 | 12 | [中文说明](README-ZH.md) | [English](README.md) | [Japanese](README-JP.md) 13 | 14 | ## ✨ 功能特性 15 | 16 | * 🎯 **一键运行** - 直接在 VS Code 中执行 AE 脚本 17 | * 📦 **支持 TypeScript** - 完整支持 `.tsx` / `.ts` 编译 18 | * 🔄 **多种构建工具** - 自动检测 Rollup、Webpack、esbuild 或 tsc 19 | * 🌍 **多语言界面** - 支持英文与中文 20 | * 🖥️ **跨平台** - 兼容 Windows 与 macOS 21 | * ⚡ **智能检测** - 自动识别正在运行的 AE 实例 22 | 23 | ## 🚀 快速开始 24 | 25 | ### 1️⃣ 安装 26 | 27 | 在 VS Code 插件市场中搜索并安装 **Adobe After Effects Script Runner** 28 | 29 | --- 30 | 31 | ### 2️⃣ 使用方法 32 | 33 | 1. 打开任意 `.jsx`、`.tsx`、`.ts` 或 `.jsxbin` 文件 34 | 2. 确保 Adobe After Effects 已经运行 35 | 3. 点击编辑器工具栏中的 ▶ **运行脚本** 按钮 36 | 37 | ![Version Selector](./preview/aes.png) 38 | *▲ 支持多版本 AE 自动检测* 39 | 40 | --- 41 | 42 | ### 3️⃣ TypeScript 项目配置安装扩展依赖 43 | 44 | ```bash 45 | npm install -D typescript rollup @rollup/plugin-typescript 46 | ``` 47 | 48 | --- 49 | 50 | 创建 `tsconfig.json`: 51 | 52 | ```json 53 | { 54 | "compilerOptions": { 55 | "target": "ES3", 56 | "outDir": "./dist", 57 | "strict": true, 58 | "types": ["./node_modules/types-for-adobe/AfterEffects/22.0"] 59 | }, 60 | "include": ["src/**/*.ts", "src/**/*.tsx"] 61 | } 62 | ``` 63 | 64 | ## ⚙️ 插件配置 65 | 66 | 打开 VS Code 设置或 `.vscode/settings.json`: 67 | 68 | ```json 69 | { 70 | "ae-tsx-runner.hostSpecifier": "aftereffects-25.0", 71 | "ae-tsx-runner.buildTool": "auto" 72 | } 73 | 74 | ``` 75 | 76 | 更多关于 `hostSpecifier` 的信息请参考: 77 | 78 | 👉 [Adobe.extendscript-debug hostAppSpecifier](https://marketplace.visualstudio.com/items?itemName=Adobe.extendscript-debug) 79 | 80 | ### 配置选项说明 81 | 82 | | 设置项 | 说明 | 默认值 | 83 | | ---------------------- | --------------------------------------------------------------------- | ---------------------------- | 84 | | `hostSpecifier` | 要使用的 AE 版本(如 `"aftereffects-25.0"`) | `""`(若为空则弹出选择器) | 85 | | `buildTool` | 构建工具类型:`auto`、`tsc`、`rollup`、`webpack`、`esbuild` | `auto` | 86 | | `customBuildCommand` | 自定义构建命令(例如 `npm run build`) | `""` | 87 | 88 | ### Rollup 配置示例 89 | 90 | 可以从 `.vscode/settings.json` 中读取输入/输出路径: 91 | 92 | ```js 93 | // rollup.config.js 94 | import { readFileSync } from 'fs'; 95 | import JSON5 from 'json5'; 96 | 97 | const settings = JSON5.parse(readFileSync('.vscode/settings.json', 'utf8')); 98 | const input = settings['ae-tsx-runner.input'] || 'src/main.tsx'; 99 | const output = settings['ae-tsx-runner.output'] || 'dist/main.jsx'; 100 | 101 | export default { 102 | input, 103 | output: { file: output, format: 'cjs' }, 104 | // ... 其他配置 105 | }; 106 | ``` 107 | 108 | ## 📁 项目结构 109 | 110 | your-project/ 111 | ├── .vscode/ 112 | │ └── settings.json # 自动生成的配置文件 113 | ├── src/ 114 | │ └── main.tsx # 你的脚本源码 115 | ├── dist/ 116 | │ └── main.jsx # 编译输出 117 | ├── tsconfig.json 118 | ├── rollup.config.js # 可选构建配置 119 | └── package.json 120 | 121 | ## 🔧 构建工具选项 122 | 123 | 自动检测(推荐) 124 | 125 | ```json 126 | { 127 | "ae-tsx-runner.buildTool": "auto" // 默认 128 | } 129 | ``` 130 | 131 | 手动选择 132 | 133 | ```json 134 | { 135 | "ae-tsx-runner.buildTool": "rollup" // 或 "webpack"、"esbuild"、"tsc" 136 | } 137 | ``` 138 | 139 | 自定义命令 140 | 141 | ```json 142 | { 143 | "ae-tsx-runner.customBuildCommand": "npm run build:ae" 144 | } 145 | ``` 146 | 147 | ## 📋 示例 148 | 149 | ### 示例 1:简单 JSX 脚本 150 | 151 | ```js 152 | // script.jsx 153 | alert("Hello from AE!"); 154 | 155 | ``` 156 | 157 | 直接点击 ▶ 运行 即可,无需额外配置! 158 | 159 | ### 示例 2:TypeScript 项目 160 | 161 | ```js 162 | 163 | // src/main.tsx 164 | interface CompSettings { 165 | name: string; 166 | duration: number; 167 | } 168 | 169 | const settings: CompSettings = { 170 | name: "My Comp", 171 | duration: 5 172 | }; 173 | 174 | const comp = app.project.items.addComp( 175 | settings.name, 176 | 1920, 177 | 1080, 178 | 1, 179 | settings.duration, 180 | 30 181 | ); 182 | 183 | alert(`已创建合成: ${comp.name}`); 184 | ``` 185 | 186 | 插件会自动编译并运行脚本! 187 | 188 | ## 🐛 常见问题(FAQ) 189 | 190 | ### ❌ “No running After Effects instance found” 191 | 192 | **解决方案** :运行脚本前请确保 AE 已启动。 193 | 194 | --- 195 | 196 | ### ⚠️ “Build failed” 197 | 198 | **解决方案** : 199 | 200 | 1. 检查 `tsconfig.json` 配置 201 | 2. 确认已安装构建工具(`npm install`) 202 | 3. 打开 VS Code “输出” 面板查看详细错误信息 203 | 204 | --- 205 | 206 | ### ⚠️ “Output file not generated” 207 | 208 | **解决方案** : 209 | 210 | 1. 检查 `tsconfig.json` 中的 `outDir` 211 | 2. 确认 `dist` 文件夹可写 212 | 3. 尝试手动执行构建命令 213 | 214 | --- 215 | 216 | ## 📝 更新日志 217 | 218 | ### v0.9.0(最新) 219 | 220 | * ✨ 新增多构建工具支持(Rollup、Webpack、esbuild、tsc) 221 | * 🌍 新增国际化(i18n)支持 222 | * ⚡ 改进配置管理机制 223 | * 🐛 修复配置保存问题 224 | * 📚 优化错误提示信息 225 | 226 | ### v0.7.0 227 | 228 | * ✅ 新增 macOS 支持 229 | * 🔧 改进 AE 版本检测 230 | 231 | 👉 [查看完整更新日志](CHANGELOG.md) 232 | 233 | ## 📄 许可证 234 | 235 | [MIT License](LICENSE) © 2025 Yueli 236 | 237 | --- 238 | 239 | ## 🙏 致谢 240 | 241 | 特别感谢以下项目: 242 | 243 | * [Types-for-Adobe](https://github.com/aenhancers/Types-for-Adobe) - 提供 AE 类型定义 244 | * [ae-script-runner](https://github.com/atarabi/vscode-ae-script-runner) - 插件灵感来源 245 | 246 | --- 247 | 248 | ## 💬 反馈与建议 249 | 250 | 发现 Bug 或有新功能想法? 251 | 252 | 👉 [在 GitHub 提交 Issue](https://github.com/Yuelioi/vscode-ae-script-tsx-linker/issues) 253 | -------------------------------------------------------------------------------- /README-JP.md: -------------------------------------------------------------------------------- 1 | # AEスクリプト実行ツール for VS Code 🚀 2 | 3 | [![VS Code Marketplace](https://img.shields.io/badge/VS%2520Code-Marketplace-blue)](https://marketplace.visualstudio.com/items?itemName=yourname.ae-script-runner) 4 | [![ライセンス](https://img.shields.io/badge/License-MIT-green)](https://license/) 5 | [![Windows対応](https://img.shields.io/badge/Platform-Windows-0078D6)](https://www.adobe.com/products/aftereffects.html) 6 | [![macOS対応](https://img.shields.io/badge/Platform-macOS-999999)](https://www.adobe.com/products/aftereffects.html) 7 | 8 | VS Code から直接 **Adobe After Effects スクリプト(`.jsx`, `.tsx`, `.ts`, `.jsxbin`)** を実行できます。 9 | 10 | *▲ VS Code から直接スクリプトを実行可能* 11 | 12 | [中文说明](README-ZH.md) | [English](README.md) | [Japanese](README-JP.md) 13 | 14 | ## ✨ 機能 15 | 16 | * 🎯 **ワンクリック実行** - After Effects スクリプトを VS Code から直接実行 17 | * 📦 **TypeScript 対応** - `.tsx` / `.ts` コンパイルを完全サポート 18 | * 🔄 **ビルドツール自動検出** - Rollup / Webpack / esbuild / tsc を自動判定 19 | * 🌍 **多言語対応** - 英語・中国語 UI 20 | * 🖥️ **クロスプラットフォーム** - Windows / macOS 対応 21 | * ⚡ **スマート検出** - 起動中の AE インスタンスを自動検出 22 | 23 | 🚀 クイックスタート 24 | 25 | ### ① インストール 26 | 27 | VS Code Marketplace からインストールします。 28 | 29 | ### ② 使い方 30 | 31 | 1. `.jsx`, `.tsx`, `.ts`, `.jsxbin` ファイルを開く 32 | 2. After Effects を起動しておく 33 | 3. エディタツールバーの ▶ **Run Script** ボタンをクリック 34 | 35 | ![Version Selection](./preview/aes.png) 36 | 37 | *▲ マルチバージョンAE検出インターフェース* 38 | 39 | ③ TypeScript プロジェクトの場合 40 | 41 | 依存関係をインストール: 42 | 43 | ```bash 44 | npm install -D typescript rollup @rollup/plugin-typescript 45 | ``` 46 | 47 | tsconfig.json を作成: 48 | 49 | ```json 50 | { 51 | "compilerOptions": { 52 | "target": "ES3", 53 | "outDir": "./dist", 54 | "strict": true, 55 | "types": ["./node_modules/types-for-adobe/AfterEffects/22.0"] 56 | }, 57 | "include": ["src/**/*.ts", "src/**/*.tsx"] 58 | } 59 | 60 | ``` 61 | 62 | ## ⚙️ 設定 63 | 64 | VS Code の設定(`.vscode/settings.json`)でカスタマイズ可能です: 65 | 66 | ```json 67 | { 68 | "ae-tsx-runner.hostSpecifier": "aftereffects-25.0", 69 | "ae-tsx-runner.buildTool": "auto" 70 | } 71 | 72 | ``` 73 | 74 | ### 設定オプション一覧 75 | 76 | | 設定項目 | 説明 | 既定値 | 77 | | ---------------------- | --------------------------------------------------------------------- | ---------------------- | 78 | | `hostSpecifier` | 使用する AE バージョン(例:`aftereffects-25.0`) | 空欄(または選択画面) | 79 | | `buildTool` | 使用ビルドツール:`auto`/`tsc`/`rollup`/`webpack`/`esbuild` | `auto` | 80 | | `customBuildCommand` | カスタムビルドコマンド(例:`npm run build`) | `""` | 81 | 82 | ### Rollup 設定例 83 | 84 | `.vscode/settings.json` から入力/出力パスを読み込み可能: 85 | 86 | ```js 87 | // rollup.config.js 88 | import { readFileSync } from 'fs'; 89 | import JSON5 from 'json5'; 90 | 91 | const settings = JSON5.parse(readFileSync('.vscode/settings.json', 'utf8')); 92 | const input = settings['ae-tsx-runner.input'] || 'src/main.tsx'; 93 | const output = settings['ae-tsx-runner.output'] || 'dist/main.jsx'; 94 | 95 | export default { 96 | input, 97 | output: { file: output, format: 'cjs' }, 98 | // ...その他の設定 99 | }; 100 | 101 | ``` 102 | 103 | --- 104 | 105 | ## 📁 プロジェクト構成 106 | 107 | ```textyour-project/ 108 | ├── .vscode/ 109 | │ └── settings.json # 自動生成設定 110 | ├── src/ 111 | │ └── main.tsx # スクリプト本体 112 | ├── dist/ 113 | │ └── main.jsx # 出力結果 114 | ├── tsconfig.json 115 | ├── rollup.config.js # 任意 116 | └── package.json 117 | ``` 118 | 119 | --- 120 | 121 | ## 🔧 ビルドツール設定 122 | 123 | 複数のビルドツールをサポートします。 124 | 125 | ### 自動検出(推奨) 126 | 127 | ```json 128 | { 129 | "ae-tsx-runner.buildTool": "auto" 130 | } 131 | ``` 132 | 133 | 検出順序:Rollup → Webpack → esbuild → tsc 134 | 135 | --- 136 | 137 | ### 手動指定 138 | 139 | ```json 140 | { 141 | "ae-tsx-runner.buildTool": "rollup" 142 | } 143 | 144 | ``` 145 | 146 | --- 147 | 148 | ### カスタムコマンド 149 | 150 | ```json 151 | { 152 | "ae-tsx-runner.customBuildCommand": "npm run build:ae" 153 | } 154 | 155 | ``` 156 | 157 | --- 158 | 159 | ## 📋 使用例 160 | 161 | ### 例①:シンプルな JSX スクリプト 162 | 163 | ```js 164 | // script.jsx 165 | alert("Hello from AE!"); 166 | ``` 167 | 168 | ▶ **Run** をクリックするだけ! 169 | 170 | --- 171 | 172 | ### 例②:TypeScript プロジェクト 173 | 174 | ```js 175 | // src/main.tsx 176 | interface CompSettings { 177 | name: string; 178 | duration: number; 179 | } 180 | 181 | const settings: CompSettings = { 182 | name: "My Comp", 183 | duration: 5 184 | }; 185 | 186 | const comp = app.project.items.addComp( 187 | settings.name, 188 | 1920, 189 | 1080, 190 | 1, 191 | settings.duration, 192 | 30 193 | ); 194 | 195 | alert(`Created: ${comp.name}`); 196 | 197 | ``` 198 | 199 | 拡張機能が自動でコンパイル・実行します! 200 | 201 | --- 202 | 203 | ## 🐛 トラブルシューティング 204 | 205 | ### 「After Effects のインスタンスが見つかりません」 206 | 207 | ➡ AE を起動してからスクリプトを実行してください。 208 | 209 | --- 210 | 211 | ### 「ビルドに失敗しました」 212 | 213 | ➡ 次の点を確認してください: 214 | 215 | 1. `tsconfig.json` の設定 216 | 2. `npm install` で依存関係がインストール済みか 217 | 3. 出力パネルのエラーメッセージを確認 218 | 219 | --- 220 | 221 | ### 「出力ファイルが生成されない」 222 | 223 | ➡ 以下を確認: 224 | 225 | 1. `tsconfig.json` の `outDir` 226 | 2. `dist` フォルダの書き込み権限 227 | 3. 手動でビルドコマンドを実行してみる 228 | 229 | --- 230 | 231 | ## 📝 更新履歴 232 | 233 | ### v0.9.0(最新) 234 | 235 | * ✨ 複数ビルドツール対応(Rollup / Webpack / esbuild / tsc) 236 | * 🌍 国際化対応(i18n) 237 | * ⚡ 設定管理を改善 238 | * 🐛 設定保存の不具合を修正 239 | * 📚 エラーメッセージの改善 240 | 241 | --- 242 | 243 | ### v0.7.0 244 | 245 | * ✅ macOS 対応を追加 246 | * 🔧 AE バージョン検出を改善 247 | 248 | [完全な更新履歴を見る](CHANGELOG.md) 249 | 250 | --- 251 | 252 | ## 📄 ライセンス 253 | 254 | [MIT License](LICENSE) © 2025 Yueli 255 | 256 | --- 257 | 258 | ## 🙏 クレジット 259 | 260 | 特別感謝: 261 | 262 | * [Types-for-Adobe](https://github.com/aenhancers/Types-for-Adobe) — 型定義の提供 263 | * [ae-script-runner](https://github.com/atarabi/vscode-ae-script-runner) — インスピレーション元 264 | 265 | --- 266 | 267 | ## 💬 フィードバック 268 | 269 | バグ報告や機能要望はぜひこちらへ: 270 | 271 | 👉 [Issue を開く](https://github.com/Yuelioi/vscode-ae-script-tsx-linker/issues) 272 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Adobe After Effects Script Runner for VS Code 🚀 2 | 3 | [![VS Code Marketplace](https://img.shields.io/badge/VS%2520Code-Marketplace-blue)](https://marketplace.visualstudio.com/items?itemName=yourname.ae-script-runner) 4 | [![License](https://img.shields.io/badge/License-MIT-green)](https://license/) 5 | [![Windows Support](https://img.shields.io/badge/Platform-Windows-0078D6)](https://www.adobe.com/products/aftereffects.html) 6 | [![macOS Support](https://img.shields.io/badge/Platform-macOS-999999)](https://www.adobe.com/products/aftereffects.html) 7 | 8 | Run Adobe After Effect scripts (`.jsx`, `.tsx`, `.ts`, `.jsxbin`) directly from VS Code 9 | 10 | *▲ Direct script execution from VS Code interface* 11 | 12 | [中文说明](README-ZH.md) | [English](README.md) | [Japanese](README-JP.md) 13 | 14 | ## ✨ Features 15 | 16 | * 🎯 **Direct Execution** - Run AE scripts with one click 17 | * 📦 **TypeScript Support** - Full `.tsx`/`.ts` compilation support 18 | * 🔄 **Multiple Build Tools** - Auto-detect Rollup, Webpack, esbuild, or tsc 19 | * 🌍 **Multi-Language** - English and Chinese interface 20 | * 🖥️ **Cross-Platform** - Works on Windows and macOS 21 | * ⚡ **Smart Detection** - Auto-detect running AE instances 22 | 23 | ## 🚀 Quick Start 24 | 25 | ### 1. Installation 26 | 27 | Install from VS Code Marketplace 28 | 29 | ### 2. Usage 30 | 31 | Open any `.jsx`, `.tsx`, `.ts`, or `.jsxbin` file 32 | 33 | Make sure After Effects is running 34 | 35 | Click the ▶ Run Script button in the editor toolbar 36 | 37 | ![Version Selection](./preview/aes.png) 38 | *▲ Multi-version AE detection interface* 39 | 40 | ### 3. For TypeScript Projects 41 | 42 | Install dependencies: 43 | 44 | ```cmd 45 | npm install -D typescript rollup @rollup/plugin-typescript 46 | ``` 47 | 48 | Create `tsconfig.json`: 49 | 50 | ```json 51 | { 52 | "compilerOptions": { 53 | "target": "ES3", 54 | "outDir": "./dist", 55 | "strict": true, 56 | "types": ["./node_modules/types-for-adobe/AfterEffects/22.0"] 57 | }, 58 | "include": ["src/**/*.ts", "src/**/*.tsx"] 59 | } 60 | ``` 61 | 62 | ## ⚙️ Configuration 63 | 64 | Open VS Code settings and configure: 65 | 66 | Basic Settings `.vscode/settings.json` 67 | 68 | ```json 69 | { 70 | "ae-tsx-runner.hostSpecifier": "aftereffects-25.0", 71 | "ae-tsx-runner.buildTool": "auto" 72 | } 73 | ``` 74 | 75 | More info about hostSpecifier : [Adobe.extendscript-debug hostAppSpecifier](https://marketplace.visualstudio.com/items?itemName=Adobe.extendscript-debug) 76 | 77 | ### Available Options 78 | 79 | | Setting | Description | Default | 80 | | ---------------------- | -------------------------------------------------------------- | ----------------------- | 81 | | `hostSpecifier` | AE version to use (e.g., "aftereffects-25.0") | `""`(or shows picker) | 82 | | `buildTool` | Build tool:`auto`,`tsc`,`rollup`,`webpack`,`esbuild` | `auto` | 83 | | `customBuildCommand` | Custom build command (e.g.,`npm run build`) | `""` | 84 | 85 | ### Rollup Configuration 86 | 87 | You can read input/output paths from `.vscode/settings.json`: 88 | 89 | javascript 90 | 91 | ```javascript 92 | // rollup.config.js 93 | import{ readFileSync }from'fs'; 94 | importJSON5from'json5'; 95 | 96 | const settings =JSON5.parse(readFileSync('.vscode/settings.json','utf8')); 97 | const input = settings['ae-tsx-runner.input']||'src/main.tsx'; 98 | const output = settings['ae-tsx-runner.output']||'dist/main.jsx'; 99 | 100 | exportdefault{ 101 | input, 102 | output:{file: output,format:'cjs'}, 103 | // ... other config 104 | }; 105 | ``` 106 | 107 | --- 108 | 109 | ## 📁 Project Structure 110 | 111 | ```text 112 | your-project/ 113 | ├── .vscode/ 114 | │ └── settings.json # Auto-generated config 115 | ├── src/ 116 | │ └── main.tsx # Your script 117 | ├── dist/ 118 | │ └── main.jsx # Compiled output 119 | ├── tsconfig.json 120 | ├── rollup.config.js # Optional 121 | └── package.json 122 | ``` 123 | 124 | --- 125 | 126 | ## 🔧 Build Tool Options 127 | 128 | The extension supports multiple build tools: 129 | 130 | ### Auto-detect (Recommended) 131 | 132 | json 133 | 134 | ```json 135 | { 136 | "ae-tsx-runner.buildTool":"auto" // default 137 | } 138 | ``` 139 | 140 | Auto-detects: Rollup → Webpack → esbuild → tsc 141 | 142 | ### Manual Selection 143 | 144 | json 145 | 146 | ```json 147 | { 148 | "ae-tsx-runner.buildTool":"rollup"// or "webpack", "esbuild", "tsc" 149 | } 150 | ``` 151 | 152 | ### Custom Command 153 | 154 | json 155 | 156 | ```json 157 | { 158 | "ae-tsx-runner.customBuildCommand":"npm run build:ae" 159 | } 160 | ``` 161 | 162 | --- 163 | 164 | ## 📋 Examples 165 | 166 | ### Example 1: Simple JSX Script 167 | 168 | javascript 169 | 170 | ```javascript 171 | // script.jsx 172 | alert("Hello from AE!"); 173 | ``` 174 | 175 | Just click **▶ Run** - no configuration needed! 176 | 177 | ### Example 2: TypeScript Project 178 | 179 | typescript 180 | 181 | ```typescript 182 | // src/main.tsx 183 | interfaceCompSettings{ 184 | name:string; 185 | duration:number; 186 | } 187 | 188 | const settings:CompSettings={ 189 | name:"My Comp", 190 | duration:5 191 | }; 192 | 193 | const comp = app.project.items.addComp( 194 | settings.name, 195 | 1920, 196 | 1080, 197 | 1, 198 | settings.duration, 199 | 30 200 | ); 201 | 202 | alert(`Created: ${comp.name}`); 203 | ``` 204 | 205 | The extension will automatically compile and run! 206 | 207 | --- 208 | 209 | ## 🐛 Troubleshooting 210 | 211 | ### "No running After Effects instance found" 212 | 213 | **Solution** : Make sure After Effects is running before executing the script. 214 | 215 | ### "Build failed" 216 | 217 | **Solution** : 218 | 219 | 1. Check your `tsconfig.json` configuration 220 | 2. Make sure build tools are installed: `npm install` 221 | 3. Check the Output panel for detailed errors 222 | 223 | ### "Output file not generated" 224 | 225 | **Solution** : 226 | 227 | 1. Verify `outDir` in `tsconfig.json` 228 | 2. Check if `dist` folder has write permissions 229 | 3. Try running the build command manually 230 | 231 | ## 📝 Changelog 232 | 233 | ### v0.9.0 (Latest) 234 | 235 | * ✨ Added multi-build-tool support (Rollup, Webpack, esbuild, tsc) 236 | * 🌍 Added internationalization (i18n) support 237 | * ⚡ Improved configuration management 238 | * 🐛 Fixed configuration save issues 239 | * 📚 Enhanced error messages 240 | 241 | ### v0.7.0 242 | 243 | * ✅ Added macOS support 244 | * 🔧 Improved AE version detection 245 | 246 | [Full Changelog](CHANGELOG.md) 247 | 248 | --- 249 | 250 | ## 📄 License 251 | 252 | [MIT License](LICENSE) © 2025 Yueli 253 | 254 | --- 255 | 256 | ## 🙏 Credits 257 | 258 | Special thanks to: 259 | 260 | * [Types-for-Adobe](https://github.com/aenhancers/Types-for-Adobe) for type definitions 261 | * [ae-script-runner](https://github.com/atarabi/vscode-ae-script-runner) for inspiration 262 | 263 | --- 264 | 265 | ## 💬 Feedback 266 | 267 | Found a bug or have a feature request? 268 | 269 | 👉 [Open an issue](https://github.com/Yuelioi/vscode-ae-script-tsx-linker/issues) 270 | -------------------------------------------------------------------------------- /src/extension.ts: -------------------------------------------------------------------------------- 1 | import * as vscode from "vscode"; 2 | import { exec } from "child_process"; 3 | import { existsSync, readFileSync } from "fs"; 4 | import * as path from "path"; 5 | import { promisify } from "util"; 6 | import { AppVersionInfo, TsConfig, BuildTool } from "./types"; 7 | import * as nls from "vscode-nls"; 8 | 9 | import JSON5 from "json5"; 10 | 11 | const localize = nls.loadMessageBundle(); 12 | const execAsync = promisify(exec); 13 | 14 | let getApps: () => AppVersionInfo[]; 15 | let executeJsx: (aePath: string, scriptPath: string) => Promise; 16 | 17 | // 动态加载平台特定模块 18 | async function loadPlatformModule() { 19 | if (process.platform === "win32") { 20 | const module = await import("./win"); 21 | getApps = module.getApps; 22 | executeJsx = module.executeJsx; 23 | } else if (process.platform === "darwin") { 24 | const module = await import("./mac"); 25 | getApps = module.getApps; 26 | executeJsx = module.executeJsx; 27 | } else { 28 | throw new Error( 29 | localize("error.unsupportedPlatform", "Unsupported platform") 30 | ); 31 | } 32 | } 33 | 34 | // 常量配置 35 | const CONFIG_SECTION = "ae-tsx-runner"; 36 | const DEFAULT_OUT_DIR = "dist"; 37 | const EXEC_TIMEOUT = 30000; 38 | 39 | // 工具函数 40 | function getWorkspaceFolder(): string { 41 | const folder = vscode.workspace.workspaceFolders?.[0]?.uri.fsPath; 42 | if (!folder) { 43 | throw new Error( 44 | localize("error.noWorkspace", "Please open a workspace folder first") 45 | ); 46 | } 47 | return folder; 48 | } 49 | 50 | function getConfiguration(): vscode.WorkspaceConfiguration { 51 | return vscode.workspace.getConfiguration(CONFIG_SECTION); 52 | } 53 | 54 | async function selectAeVersion(versions: AppVersionInfo[]): Promise { 55 | const config = getConfiguration(); 56 | const hostSpecifier = config.get("hostSpecifier"); 57 | 58 | // 优先使用配置版本 59 | if (hostSpecifier) { 60 | const matched = versions.find((v) => v.label === hostSpecifier); 61 | if (matched) { 62 | return matched.description; 63 | } 64 | vscode.window.showWarningMessage( 65 | localize( 66 | "warning.versionNotFound", 67 | "Configured version {0} not found", 68 | hostSpecifier 69 | ) 70 | ); 71 | } 72 | 73 | // 显示版本选择器 74 | const selection = await vscode.window.showQuickPick( 75 | versions.map((v) => ({ 76 | label: `AE ${v.label}`, 77 | description: v.description, 78 | detail: localize( 79 | "detail.installPath", 80 | "Install path: {0}", 81 | v.description 82 | ), 83 | })), 84 | { 85 | placeHolder: localize( 86 | "placeholder.selectVersion", 87 | "Select running After Effects version" 88 | ), 89 | ignoreFocusOut: true, 90 | } 91 | ); 92 | 93 | if (!selection) { 94 | throw new Error( 95 | localize("error.noVersionSelected", "No AE version selected") 96 | ); 97 | } 98 | return selection.description; 99 | } 100 | 101 | function getTsconfig(): { tsConfigPath: string; tsConfig: TsConfig } { 102 | const workspaceFolder = getWorkspaceFolder(); 103 | const tsConfigPath = path.join(workspaceFolder, "tsconfig.json"); 104 | 105 | if (!existsSync(tsConfigPath)) { 106 | throw new Error(localize("error.noTsConfig", "tsconfig.json not found")); 107 | } 108 | 109 | try { 110 | const tsConfig: TsConfig = JSON5.parse(readFileSync(tsConfigPath, "utf-8")); 111 | return { tsConfigPath, tsConfig }; 112 | } catch (error) { 113 | throw new Error( 114 | localize( 115 | "error.invalidTsConfig", 116 | "Failed to parse tsconfig.json: {0}", 117 | String(error) 118 | ) 119 | ); 120 | } 121 | } 122 | 123 | function getBuildTool(workspaceFolder: string): BuildTool { 124 | const config = getConfiguration(); 125 | const buildTool = config.get("buildTool"); 126 | 127 | // 如果配置了构建工具,直接使用 128 | if (buildTool && buildTool !== "auto") { 129 | return buildTool; 130 | } 131 | 132 | // 自动检测 133 | if ( 134 | existsSync(path.join(workspaceFolder, "rollup.config.js")) || 135 | existsSync(path.join(workspaceFolder, "rollup.config.mjs")) 136 | ) { 137 | return "rollup"; 138 | } 139 | 140 | if (existsSync(path.join(workspaceFolder, "webpack.config.js"))) { 141 | return "webpack"; 142 | } 143 | 144 | if (existsSync(path.join(workspaceFolder, "esbuild.config.js"))) { 145 | return "esbuild"; 146 | } 147 | 148 | return "tsc"; 149 | } 150 | 151 | async function buildWithTool( 152 | buildTool: BuildTool, 153 | workspaceFolder: string, 154 | tsConfigPath: string 155 | ): Promise { 156 | const config = getConfiguration(); 157 | const customBuildCommand = config.get("customBuildCommand"); 158 | 159 | let command: string; 160 | 161 | if (customBuildCommand) { 162 | command = customBuildCommand; 163 | } else { 164 | switch (buildTool) { 165 | case "rollup": 166 | const rollupBin = path.join( 167 | workspaceFolder, 168 | "node_modules", 169 | ".bin", 170 | "rollup" 171 | ); 172 | command = `"${rollupBin}" -c`; 173 | break; 174 | case "webpack": 175 | const webpackBin = path.join( 176 | workspaceFolder, 177 | "node_modules", 178 | ".bin", 179 | "webpack" 180 | ); 181 | command = `"${webpackBin}"`; 182 | break; 183 | case "esbuild": 184 | const esbuildBin = path.join( 185 | workspaceFolder, 186 | "node_modules", 187 | ".bin", 188 | "esbuild" 189 | ); 190 | command = `"${esbuildBin}" --bundle`; 191 | break; 192 | case "tsc": 193 | default: 194 | command = `tsc --project "${tsConfigPath}"`; 195 | break; 196 | } 197 | } 198 | 199 | try { 200 | await execAsync(command, { 201 | cwd: workspaceFolder, 202 | timeout: EXEC_TIMEOUT, 203 | }); 204 | } catch (error) { 205 | const err = error as Error & { code?: number }; 206 | throw new Error( 207 | localize( 208 | "error.buildFailed", 209 | "Build failed: {0} (code {1})", 210 | err.message, 211 | err.code || "unknown" 212 | ) 213 | ); 214 | } 215 | } 216 | 217 | async function compileTsx(inputPath: string): Promise { 218 | const workspaceFolder = getWorkspaceFolder(); 219 | const { tsConfigPath, tsConfig } = getTsconfig(); 220 | 221 | const outDir = tsConfig.compilerOptions?.outDir || DEFAULT_OUT_DIR; 222 | const outFileBase = path.basename(inputPath, path.extname(inputPath)); 223 | const outputPath = path.join(workspaceFolder, outDir, `${outFileBase}.jsx`); 224 | 225 | // 保存配置 226 | await saveToConfig(inputPath, outputPath); 227 | 228 | // 获取并执行构建工具 229 | const buildTool = getBuildTool(workspaceFolder); 230 | 231 | // 打包 232 | await vscode.window.withProgress( 233 | { 234 | location: vscode.ProgressLocation.Notification, 235 | title: localize("progress.building", "Building with {0}...", buildTool), 236 | cancellable: false, 237 | }, 238 | async () => { 239 | await buildWithTool(buildTool, workspaceFolder, tsConfigPath); 240 | } 241 | ); 242 | 243 | if (!existsSync(outputPath)) { 244 | throw new Error( 245 | localize("error.outputNotGenerated", "Output file was not generated") 246 | ); 247 | } 248 | 249 | return outputPath; 250 | } 251 | 252 | async function saveToConfig(input: string, output: string): Promise { 253 | try { 254 | const config = vscode.workspace.getConfiguration(CONFIG_SECTION); 255 | 256 | // 分别更新每个配置项 257 | await config.update("input", input, vscode.ConfigurationTarget.Workspace); 258 | await config.update("output", output, vscode.ConfigurationTarget.Workspace); 259 | } catch (error) { 260 | vscode.window.showErrorMessage( 261 | localize( 262 | "error.configSaveFailed", 263 | "Failed to save configuration: {0}", 264 | String(error) 265 | ) 266 | ); 267 | } 268 | } 269 | 270 | export async function activate(context: vscode.ExtensionContext) { 271 | // 加载平台模块 272 | await loadPlatformModule(); 273 | 274 | const disposable = vscode.commands.registerCommand( 275 | "runrun.JSXScript", 276 | async () => { 277 | try { 278 | const editor = vscode.window.activeTextEditor; 279 | if (!editor) { 280 | vscode.window.showWarningMessage( 281 | localize("warning.noActiveEditor", "No active editor") 282 | ); 283 | return; 284 | } 285 | 286 | // 获取 AE 实例 287 | const versions = getApps(); 288 | if (versions.length === 0) { 289 | throw new Error( 290 | localize( 291 | "error.noAeInstance", 292 | "No running After Effects instance found" 293 | ) 294 | ); 295 | } 296 | 297 | // 选择版本 298 | const aePath = await selectAeVersion(versions); 299 | const fileName = editor.document.fileName; 300 | const ext = path.extname(fileName); 301 | 302 | // 直接执行 .jsx 或 .jsxbin 303 | if (ext === ".jsx" || ext === ".jsxbin") { 304 | await executeJsx(aePath, fileName); 305 | vscode.window.showInformationMessage( 306 | localize("success.executed", "Script executed successfully") 307 | ); 308 | return; 309 | } 310 | 311 | // 编译并执行 .tsx 或 .ts 312 | if (ext === ".tsx" || ext === ".ts") { 313 | const outputPath = await compileTsx(fileName); 314 | await executeJsx(aePath, outputPath); 315 | vscode.window.showInformationMessage( 316 | localize( 317 | "success.compiledAndExecuted", 318 | "Script compiled and executed successfully" 319 | ) 320 | ); 321 | return; 322 | } 323 | 324 | vscode.window.showWarningMessage( 325 | localize( 326 | "warning.unsupportedFileType", 327 | "Unsupported file type: {0}", 328 | ext 329 | ) 330 | ); 331 | } catch (error) { 332 | const err = error as Error; 333 | vscode.window.showErrorMessage(err.message); 334 | console.error(err.stack); 335 | } 336 | } 337 | ); 338 | 339 | context.subscriptions.push(disposable); 340 | } 341 | 342 | export function deactivate() { 343 | // 清理资源 344 | } 345 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | dependencies: 11 | fs-extra: 12 | specifier: ^10.1.0 13 | version: 10.1.0 14 | json5: 15 | specifier: ^2.2.3 16 | version: 2.2.3 17 | vscode-nls: 18 | specifier: ^5.2.0 19 | version: 5.2.0 20 | devDependencies: 21 | '@types/glob': 22 | specifier: ^8.1.0 23 | version: 8.1.0 24 | '@types/mocha': 25 | specifier: ^10.0.10 26 | version: 10.0.10 27 | '@types/node': 28 | specifier: 24.7.2 29 | version: 24.7.2 30 | '@types/vscode': 31 | specifier: 1.105.0 32 | version: 1.105.0 33 | '@typescript-eslint/eslint-plugin': 34 | specifier: 8.46.0 35 | version: 8.46.0(@typescript-eslint/parser@8.46.0(eslint@9.37.0)(typescript@5.9.3))(eslint@9.37.0)(typescript@5.9.3) 36 | '@typescript-eslint/parser': 37 | specifier: 8.46.0 38 | version: 8.46.0(eslint@9.37.0)(typescript@5.9.3) 39 | '@vscode/test-electron': 40 | specifier: 2.5.2 41 | version: 2.5.2 42 | del: 43 | specifier: 8.0.1 44 | version: 8.0.1 45 | esbuild: 46 | specifier: ^0.25.10 47 | version: 0.25.10 48 | eslint: 49 | specifier: 9.37.0 50 | version: 9.37.0 51 | glob: 52 | specifier: 11.0.3 53 | version: 11.0.3 54 | mocha: 55 | specifier: 11.7.4 56 | version: 11.7.4 57 | nodemon: 58 | specifier: 3.1.10 59 | version: 3.1.10 60 | run-sequence: 61 | specifier: ^2.2.1 62 | version: 2.2.1 63 | ts-loader: 64 | specifier: ^9.5.4 65 | version: 9.5.4(typescript@5.9.3)(webpack@5.102.1(esbuild@0.25.10)) 66 | typescript: 67 | specifier: 5.9.3 68 | version: 5.9.3 69 | vscode-nls-dev: 70 | specifier: ^4.0.4 71 | version: 4.0.4 72 | 73 | packages: 74 | 75 | '@esbuild/aix-ppc64@0.25.10': 76 | resolution: {integrity: sha512-0NFWnA+7l41irNuaSVlLfgNT12caWJVLzp5eAVhZ0z1qpxbockccEt3s+149rE64VUI3Ml2zt8Nv5JVc4QXTsw==} 77 | engines: {node: '>=18'} 78 | cpu: [ppc64] 79 | os: [aix] 80 | 81 | '@esbuild/android-arm64@0.25.10': 82 | resolution: {integrity: sha512-LSQa7eDahypv/VO6WKohZGPSJDq5OVOo3UoFR1E4t4Gj1W7zEQMUhI+lo81H+DtB+kP+tDgBp+M4oNCwp6kffg==} 83 | engines: {node: '>=18'} 84 | cpu: [arm64] 85 | os: [android] 86 | 87 | '@esbuild/android-arm@0.25.10': 88 | resolution: {integrity: sha512-dQAxF1dW1C3zpeCDc5KqIYuZ1tgAdRXNoZP7vkBIRtKZPYe2xVr/d3SkirklCHudW1B45tGiUlz2pUWDfbDD4w==} 89 | engines: {node: '>=18'} 90 | cpu: [arm] 91 | os: [android] 92 | 93 | '@esbuild/android-x64@0.25.10': 94 | resolution: {integrity: sha512-MiC9CWdPrfhibcXwr39p9ha1x0lZJ9KaVfvzA0Wxwz9ETX4v5CHfF09bx935nHlhi+MxhA63dKRRQLiVgSUtEg==} 95 | engines: {node: '>=18'} 96 | cpu: [x64] 97 | os: [android] 98 | 99 | '@esbuild/darwin-arm64@0.25.10': 100 | resolution: {integrity: sha512-JC74bdXcQEpW9KkV326WpZZjLguSZ3DfS8wrrvPMHgQOIEIG/sPXEN/V8IssoJhbefLRcRqw6RQH2NnpdprtMA==} 101 | engines: {node: '>=18'} 102 | cpu: [arm64] 103 | os: [darwin] 104 | 105 | '@esbuild/darwin-x64@0.25.10': 106 | resolution: {integrity: sha512-tguWg1olF6DGqzws97pKZ8G2L7Ig1vjDmGTwcTuYHbuU6TTjJe5FXbgs5C1BBzHbJ2bo1m3WkQDbWO2PvamRcg==} 107 | engines: {node: '>=18'} 108 | cpu: [x64] 109 | os: [darwin] 110 | 111 | '@esbuild/freebsd-arm64@0.25.10': 112 | resolution: {integrity: sha512-3ZioSQSg1HT2N05YxeJWYR+Libe3bREVSdWhEEgExWaDtyFbbXWb49QgPvFH8u03vUPX10JhJPcz7s9t9+boWg==} 113 | engines: {node: '>=18'} 114 | cpu: [arm64] 115 | os: [freebsd] 116 | 117 | '@esbuild/freebsd-x64@0.25.10': 118 | resolution: {integrity: sha512-LLgJfHJk014Aa4anGDbh8bmI5Lk+QidDmGzuC2D+vP7mv/GeSN+H39zOf7pN5N8p059FcOfs2bVlrRr4SK9WxA==} 119 | engines: {node: '>=18'} 120 | cpu: [x64] 121 | os: [freebsd] 122 | 123 | '@esbuild/linux-arm64@0.25.10': 124 | resolution: {integrity: sha512-5luJWN6YKBsawd5f9i4+c+geYiVEw20FVW5x0v1kEMWNq8UctFjDiMATBxLvmmHA4bf7F6hTRaJgtghFr9iziQ==} 125 | engines: {node: '>=18'} 126 | cpu: [arm64] 127 | os: [linux] 128 | 129 | '@esbuild/linux-arm@0.25.10': 130 | resolution: {integrity: sha512-oR31GtBTFYCqEBALI9r6WxoU/ZofZl962pouZRTEYECvNF/dtXKku8YXcJkhgK/beU+zedXfIzHijSRapJY3vg==} 131 | engines: {node: '>=18'} 132 | cpu: [arm] 133 | os: [linux] 134 | 135 | '@esbuild/linux-ia32@0.25.10': 136 | resolution: {integrity: sha512-NrSCx2Kim3EnnWgS4Txn0QGt0Xipoumb6z6sUtl5bOEZIVKhzfyp/Lyw4C1DIYvzeW/5mWYPBFJU3a/8Yr75DQ==} 137 | engines: {node: '>=18'} 138 | cpu: [ia32] 139 | os: [linux] 140 | 141 | '@esbuild/linux-loong64@0.25.10': 142 | resolution: {integrity: sha512-xoSphrd4AZda8+rUDDfD9J6FUMjrkTz8itpTITM4/xgerAZZcFW7Dv+sun7333IfKxGG8gAq+3NbfEMJfiY+Eg==} 143 | engines: {node: '>=18'} 144 | cpu: [loong64] 145 | os: [linux] 146 | 147 | '@esbuild/linux-mips64el@0.25.10': 148 | resolution: {integrity: sha512-ab6eiuCwoMmYDyTnyptoKkVS3k8fy/1Uvq7Dj5czXI6DF2GqD2ToInBI0SHOp5/X1BdZ26RKc5+qjQNGRBelRA==} 149 | engines: {node: '>=18'} 150 | cpu: [mips64el] 151 | os: [linux] 152 | 153 | '@esbuild/linux-ppc64@0.25.10': 154 | resolution: {integrity: sha512-NLinzzOgZQsGpsTkEbdJTCanwA5/wozN9dSgEl12haXJBzMTpssebuXR42bthOF3z7zXFWH1AmvWunUCkBE4EA==} 155 | engines: {node: '>=18'} 156 | cpu: [ppc64] 157 | os: [linux] 158 | 159 | '@esbuild/linux-riscv64@0.25.10': 160 | resolution: {integrity: sha512-FE557XdZDrtX8NMIeA8LBJX3dC2M8VGXwfrQWU7LB5SLOajfJIxmSdyL/gU1m64Zs9CBKvm4UAuBp5aJ8OgnrA==} 161 | engines: {node: '>=18'} 162 | cpu: [riscv64] 163 | os: [linux] 164 | 165 | '@esbuild/linux-s390x@0.25.10': 166 | resolution: {integrity: sha512-3BBSbgzuB9ajLoVZk0mGu+EHlBwkusRmeNYdqmznmMc9zGASFjSsxgkNsqmXugpPk00gJ0JNKh/97nxmjctdew==} 167 | engines: {node: '>=18'} 168 | cpu: [s390x] 169 | os: [linux] 170 | 171 | '@esbuild/linux-x64@0.25.10': 172 | resolution: {integrity: sha512-QSX81KhFoZGwenVyPoberggdW1nrQZSvfVDAIUXr3WqLRZGZqWk/P4T8p2SP+de2Sr5HPcvjhcJzEiulKgnxtA==} 173 | engines: {node: '>=18'} 174 | cpu: [x64] 175 | os: [linux] 176 | 177 | '@esbuild/netbsd-arm64@0.25.10': 178 | resolution: {integrity: sha512-AKQM3gfYfSW8XRk8DdMCzaLUFB15dTrZfnX8WXQoOUpUBQ+NaAFCP1kPS/ykbbGYz7rxn0WS48/81l9hFl3u4A==} 179 | engines: {node: '>=18'} 180 | cpu: [arm64] 181 | os: [netbsd] 182 | 183 | '@esbuild/netbsd-x64@0.25.10': 184 | resolution: {integrity: sha512-7RTytDPGU6fek/hWuN9qQpeGPBZFfB4zZgcz2VK2Z5VpdUxEI8JKYsg3JfO0n/Z1E/6l05n0unDCNc4HnhQGig==} 185 | engines: {node: '>=18'} 186 | cpu: [x64] 187 | os: [netbsd] 188 | 189 | '@esbuild/openbsd-arm64@0.25.10': 190 | resolution: {integrity: sha512-5Se0VM9Wtq797YFn+dLimf2Zx6McttsH2olUBsDml+lm0GOCRVebRWUvDtkY4BWYv/3NgzS8b/UM3jQNh5hYyw==} 191 | engines: {node: '>=18'} 192 | cpu: [arm64] 193 | os: [openbsd] 194 | 195 | '@esbuild/openbsd-x64@0.25.10': 196 | resolution: {integrity: sha512-XkA4frq1TLj4bEMB+2HnI0+4RnjbuGZfet2gs/LNs5Hc7D89ZQBHQ0gL2ND6Lzu1+QVkjp3x1gIcPKzRNP8bXw==} 197 | engines: {node: '>=18'} 198 | cpu: [x64] 199 | os: [openbsd] 200 | 201 | '@esbuild/openharmony-arm64@0.25.10': 202 | resolution: {integrity: sha512-AVTSBhTX8Y/Fz6OmIVBip9tJzZEUcY8WLh7I59+upa5/GPhh2/aM6bvOMQySspnCCHvFi79kMtdJS1w0DXAeag==} 203 | engines: {node: '>=18'} 204 | cpu: [arm64] 205 | os: [openharmony] 206 | 207 | '@esbuild/sunos-x64@0.25.10': 208 | resolution: {integrity: sha512-fswk3XT0Uf2pGJmOpDB7yknqhVkJQkAQOcW/ccVOtfx05LkbWOaRAtn5SaqXypeKQra1QaEa841PgrSL9ubSPQ==} 209 | engines: {node: '>=18'} 210 | cpu: [x64] 211 | os: [sunos] 212 | 213 | '@esbuild/win32-arm64@0.25.10': 214 | resolution: {integrity: sha512-ah+9b59KDTSfpaCg6VdJoOQvKjI33nTaQr4UluQwW7aEwZQsbMCfTmfEO4VyewOxx4RaDT/xCy9ra2GPWmO7Kw==} 215 | engines: {node: '>=18'} 216 | cpu: [arm64] 217 | os: [win32] 218 | 219 | '@esbuild/win32-ia32@0.25.10': 220 | resolution: {integrity: sha512-QHPDbKkrGO8/cz9LKVnJU22HOi4pxZnZhhA2HYHez5Pz4JeffhDjf85E57Oyco163GnzNCVkZK0b/n4Y0UHcSw==} 221 | engines: {node: '>=18'} 222 | cpu: [ia32] 223 | os: [win32] 224 | 225 | '@esbuild/win32-x64@0.25.10': 226 | resolution: {integrity: sha512-9KpxSVFCu0iK1owoez6aC/s/EdUQLDN3adTxGCqxMVhrPDj6bt5dbrHDXUuq+Bs2vATFBBrQS5vdQ/Ed2P+nbw==} 227 | engines: {node: '>=18'} 228 | cpu: [x64] 229 | os: [win32] 230 | 231 | '@eslint-community/eslint-utils@4.9.0': 232 | resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} 233 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 234 | peerDependencies: 235 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 236 | 237 | '@eslint-community/regexpp@4.12.1': 238 | resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} 239 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 240 | 241 | '@eslint/config-array@0.21.0': 242 | resolution: {integrity: sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==} 243 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 244 | 245 | '@eslint/config-helpers@0.4.0': 246 | resolution: {integrity: sha512-WUFvV4WoIwW8Bv0KeKCIIEgdSiFOsulyN0xrMu+7z43q/hkOLXjvb5u7UC9jDxvRzcrbEmuZBX5yJZz1741jog==} 247 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 248 | 249 | '@eslint/core@0.16.0': 250 | resolution: {integrity: sha512-nmC8/totwobIiFcGkDza3GIKfAw1+hLiYVrh3I1nIomQ8PEr5cxg34jnkmGawul/ep52wGRAcyeDCNtWKSOj4Q==} 251 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 252 | 253 | '@eslint/eslintrc@3.3.1': 254 | resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} 255 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 256 | 257 | '@eslint/js@9.37.0': 258 | resolution: {integrity: sha512-jaS+NJ+hximswBG6pjNX0uEJZkrT0zwpVi3BA3vX22aFGjJjmgSTSmPpZCRKmoBL5VY/M6p0xsSJx7rk7sy5gg==} 259 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 260 | 261 | '@eslint/object-schema@2.1.6': 262 | resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} 263 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 264 | 265 | '@eslint/plugin-kit@0.4.0': 266 | resolution: {integrity: sha512-sB5uyeq+dwCWyPi31B2gQlVlo+j5brPlWx4yZBrEaRo/nhdDE8Xke1gsGgtiBdaBTxuTkceLVuVt/pclrasb0A==} 267 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 268 | 269 | '@humanfs/core@0.19.1': 270 | resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} 271 | engines: {node: '>=18.18.0'} 272 | 273 | '@humanfs/node@0.16.7': 274 | resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==} 275 | engines: {node: '>=18.18.0'} 276 | 277 | '@humanwhocodes/module-importer@1.0.1': 278 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 279 | engines: {node: '>=12.22'} 280 | 281 | '@humanwhocodes/retry@0.4.3': 282 | resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} 283 | engines: {node: '>=18.18'} 284 | 285 | '@isaacs/balanced-match@4.0.1': 286 | resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} 287 | engines: {node: 20 || >=22} 288 | 289 | '@isaacs/brace-expansion@5.0.0': 290 | resolution: {integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==} 291 | engines: {node: 20 || >=22} 292 | 293 | '@isaacs/cliui@8.0.2': 294 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} 295 | engines: {node: '>=12'} 296 | 297 | '@jridgewell/gen-mapping@0.3.13': 298 | resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} 299 | 300 | '@jridgewell/resolve-uri@3.1.2': 301 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 302 | engines: {node: '>=6.0.0'} 303 | 304 | '@jridgewell/source-map@0.3.11': 305 | resolution: {integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==} 306 | 307 | '@jridgewell/sourcemap-codec@1.5.5': 308 | resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} 309 | 310 | '@jridgewell/trace-mapping@0.3.31': 311 | resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} 312 | 313 | '@nodelib/fs.scandir@2.1.5': 314 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 315 | engines: {node: '>= 8'} 316 | 317 | '@nodelib/fs.stat@2.0.5': 318 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 319 | engines: {node: '>= 8'} 320 | 321 | '@nodelib/fs.walk@1.2.8': 322 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 323 | engines: {node: '>= 8'} 324 | 325 | '@pkgjs/parseargs@0.11.0': 326 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} 327 | engines: {node: '>=14'} 328 | 329 | '@sindresorhus/merge-streams@2.3.0': 330 | resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} 331 | engines: {node: '>=18'} 332 | 333 | '@types/eslint-scope@3.7.7': 334 | resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} 335 | 336 | '@types/eslint@9.6.1': 337 | resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} 338 | 339 | '@types/estree@1.0.8': 340 | resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} 341 | 342 | '@types/glob@8.1.0': 343 | resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} 344 | 345 | '@types/json-schema@7.0.15': 346 | resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} 347 | 348 | '@types/minimatch@5.1.2': 349 | resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} 350 | 351 | '@types/mocha@10.0.10': 352 | resolution: {integrity: sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==} 353 | 354 | '@types/node@24.7.2': 355 | resolution: {integrity: sha512-/NbVmcGTP+lj5oa4yiYxxeBjRivKQ5Ns1eSZeB99ExsEQ6rX5XYU1Zy/gGxY/ilqtD4Etx9mKyrPxZRetiahhA==} 356 | 357 | '@types/vscode@1.105.0': 358 | resolution: {integrity: sha512-Lotk3CTFlGZN8ray4VxJE7axIyLZZETQJVWi/lYoUVQuqfRxlQhVOfoejsD2V3dVXPSbS15ov5ZyowMAzgUqcw==} 359 | 360 | '@typescript-eslint/eslint-plugin@8.46.0': 361 | resolution: {integrity: sha512-hA8gxBq4ukonVXPy0OKhiaUh/68D0E88GSmtC1iAEnGaieuDi38LhS7jdCHRLi6ErJBNDGCzvh5EnzdPwUc0DA==} 362 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 363 | peerDependencies: 364 | '@typescript-eslint/parser': ^8.46.0 365 | eslint: ^8.57.0 || ^9.0.0 366 | typescript: '>=4.8.4 <6.0.0' 367 | 368 | '@typescript-eslint/parser@8.46.0': 369 | resolution: {integrity: sha512-n1H6IcDhmmUEG7TNVSspGmiHHutt7iVKtZwRppD7e04wha5MrkV1h3pti9xQLcCMt6YWsncpoT0HMjkH1FNwWQ==} 370 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 371 | peerDependencies: 372 | eslint: ^8.57.0 || ^9.0.0 373 | typescript: '>=4.8.4 <6.0.0' 374 | 375 | '@typescript-eslint/project-service@8.46.0': 376 | resolution: {integrity: sha512-OEhec0mH+U5Je2NZOeK1AbVCdm0ChyapAyTeXVIYTPXDJ3F07+cu87PPXcGoYqZ7M9YJVvFnfpGg1UmCIqM+QQ==} 377 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 378 | peerDependencies: 379 | typescript: '>=4.8.4 <6.0.0' 380 | 381 | '@typescript-eslint/scope-manager@8.46.0': 382 | resolution: {integrity: sha512-lWETPa9XGcBes4jqAMYD9fW0j4n6hrPtTJwWDmtqgFO/4HF4jmdH/Q6wggTw5qIT5TXjKzbt7GsZUBnWoO3dqw==} 383 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 384 | 385 | '@typescript-eslint/tsconfig-utils@8.46.0': 386 | resolution: {integrity: sha512-WrYXKGAHY836/N7zoK/kzi6p8tXFhasHh8ocFL9VZSAkvH956gfeRfcnhs3xzRy8qQ/dq3q44v1jvQieMFg2cw==} 387 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 388 | peerDependencies: 389 | typescript: '>=4.8.4 <6.0.0' 390 | 391 | '@typescript-eslint/type-utils@8.46.0': 392 | resolution: {integrity: sha512-hy+lvYV1lZpVs2jRaEYvgCblZxUoJiPyCemwbQZ+NGulWkQRy0HRPYAoef/CNSzaLt+MLvMptZsHXHlkEilaeg==} 393 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 394 | peerDependencies: 395 | eslint: ^8.57.0 || ^9.0.0 396 | typescript: '>=4.8.4 <6.0.0' 397 | 398 | '@typescript-eslint/types@8.46.0': 399 | resolution: {integrity: sha512-bHGGJyVjSE4dJJIO5yyEWt/cHyNwga/zXGJbJJ8TiO01aVREK6gCTu3L+5wrkb1FbDkQ+TKjMNe9R/QQQP9+rA==} 400 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 401 | 402 | '@typescript-eslint/typescript-estree@8.46.0': 403 | resolution: {integrity: sha512-ekDCUfVpAKWJbRfm8T1YRrCot1KFxZn21oV76v5Fj4tr7ELyk84OS+ouvYdcDAwZL89WpEkEj2DKQ+qg//+ucg==} 404 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 405 | peerDependencies: 406 | typescript: '>=4.8.4 <6.0.0' 407 | 408 | '@typescript-eslint/utils@8.46.0': 409 | resolution: {integrity: sha512-nD6yGWPj1xiOm4Gk0k6hLSZz2XkNXhuYmyIrOWcHoPuAhjT9i5bAG+xbWPgFeNR8HPHHtpNKdYUXJl/D3x7f5g==} 410 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 411 | peerDependencies: 412 | eslint: ^8.57.0 || ^9.0.0 413 | typescript: '>=4.8.4 <6.0.0' 414 | 415 | '@typescript-eslint/visitor-keys@8.46.0': 416 | resolution: {integrity: sha512-FrvMpAK+hTbFy7vH5j1+tMYHMSKLE6RzluFJlkFNKD0p9YsUT75JlBSmr5so3QRzvMwU5/bIEdeNrxm8du8l3Q==} 417 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 418 | 419 | '@vscode/test-electron@2.5.2': 420 | resolution: {integrity: sha512-8ukpxv4wYe0iWMRQU18jhzJOHkeGKbnw7xWRX3Zw1WJA4cEKbHcmmLPdPrPtL6rhDcrlCZN+xKRpv09n4gRHYg==} 421 | engines: {node: '>=16'} 422 | 423 | '@webassemblyjs/ast@1.14.1': 424 | resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} 425 | 426 | '@webassemblyjs/floating-point-hex-parser@1.13.2': 427 | resolution: {integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==} 428 | 429 | '@webassemblyjs/helper-api-error@1.13.2': 430 | resolution: {integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==} 431 | 432 | '@webassemblyjs/helper-buffer@1.14.1': 433 | resolution: {integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==} 434 | 435 | '@webassemblyjs/helper-numbers@1.13.2': 436 | resolution: {integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==} 437 | 438 | '@webassemblyjs/helper-wasm-bytecode@1.13.2': 439 | resolution: {integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==} 440 | 441 | '@webassemblyjs/helper-wasm-section@1.14.1': 442 | resolution: {integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==} 443 | 444 | '@webassemblyjs/ieee754@1.13.2': 445 | resolution: {integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==} 446 | 447 | '@webassemblyjs/leb128@1.13.2': 448 | resolution: {integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==} 449 | 450 | '@webassemblyjs/utf8@1.13.2': 451 | resolution: {integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==} 452 | 453 | '@webassemblyjs/wasm-edit@1.14.1': 454 | resolution: {integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==} 455 | 456 | '@webassemblyjs/wasm-gen@1.14.1': 457 | resolution: {integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==} 458 | 459 | '@webassemblyjs/wasm-opt@1.14.1': 460 | resolution: {integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==} 461 | 462 | '@webassemblyjs/wasm-parser@1.14.1': 463 | resolution: {integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==} 464 | 465 | '@webassemblyjs/wast-printer@1.14.1': 466 | resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==} 467 | 468 | '@xtuc/ieee754@1.2.0': 469 | resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} 470 | 471 | '@xtuc/long@4.2.2': 472 | resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} 473 | 474 | acorn-import-phases@1.0.4: 475 | resolution: {integrity: sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==} 476 | engines: {node: '>=10.13.0'} 477 | peerDependencies: 478 | acorn: ^8.14.0 479 | 480 | acorn-jsx@5.3.2: 481 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 482 | peerDependencies: 483 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 484 | 485 | acorn@8.15.0: 486 | resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} 487 | engines: {node: '>=0.4.0'} 488 | hasBin: true 489 | 490 | agent-base@7.1.4: 491 | resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} 492 | engines: {node: '>= 14'} 493 | 494 | ajv-formats@2.1.1: 495 | resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} 496 | peerDependencies: 497 | ajv: ^8.0.0 498 | peerDependenciesMeta: 499 | ajv: 500 | optional: true 501 | 502 | ajv-keywords@5.1.0: 503 | resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} 504 | peerDependencies: 505 | ajv: ^8.8.2 506 | 507 | ajv@6.12.6: 508 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 509 | 510 | ajv@8.17.1: 511 | resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} 512 | 513 | ansi-colors@4.1.3: 514 | resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} 515 | engines: {node: '>=6'} 516 | 517 | ansi-cyan@0.1.1: 518 | resolution: {integrity: sha512-eCjan3AVo/SxZ0/MyIYRtkpxIu/H3xZN7URr1vXVrISxeyz8fUFz0FJziamK4sS8I+t35y4rHg1b2PklyBe/7A==} 519 | engines: {node: '>=0.10.0'} 520 | 521 | ansi-gray@0.1.1: 522 | resolution: {integrity: sha512-HrgGIZUl8h2EHuZaU9hTR/cU5nhKxpVE1V6kdGsQ8e4zirElJ5fvtfc8N7Q1oq1aatO275i8pUFUCpNWCAnVWw==} 523 | engines: {node: '>=0.10.0'} 524 | 525 | ansi-red@0.1.1: 526 | resolution: {integrity: sha512-ewaIr5y+9CUTGFwZfpECUbFlGcC0GCw1oqR9RI6h1gQCd9Aj2GxSckCnPsVJnmfMZbwFYE+leZGASgkWl06Jow==} 527 | engines: {node: '>=0.10.0'} 528 | 529 | ansi-regex@2.1.1: 530 | resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} 531 | engines: {node: '>=0.10.0'} 532 | 533 | ansi-regex@5.0.1: 534 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 535 | engines: {node: '>=8'} 536 | 537 | ansi-regex@6.2.2: 538 | resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} 539 | engines: {node: '>=12'} 540 | 541 | ansi-styles@2.2.1: 542 | resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==} 543 | engines: {node: '>=0.10.0'} 544 | 545 | ansi-styles@4.3.0: 546 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 547 | engines: {node: '>=8'} 548 | 549 | ansi-styles@6.2.3: 550 | resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} 551 | engines: {node: '>=12'} 552 | 553 | ansi-wrap@0.1.0: 554 | resolution: {integrity: sha512-ZyznvL8k/FZeQHr2T6LzcJ/+vBApDnMNZvfVFy3At0knswWd6rJ3/0Hhmpu8oqa6C92npmozs890sX9Dl6q+Qw==} 555 | engines: {node: '>=0.10.0'} 556 | 557 | anymatch@3.1.3: 558 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 559 | engines: {node: '>= 8'} 560 | 561 | argparse@2.0.1: 562 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 563 | 564 | arr-diff@1.1.0: 565 | resolution: {integrity: sha512-OQwDZUqYaQwyyhDJHThmzId8daf4/RFNLaeh3AevmSeZ5Y7ug4Ga/yKc6l6kTZOBW781rCj103ZuTh8GAsB3+Q==} 566 | engines: {node: '>=0.10.0'} 567 | 568 | arr-flatten@1.1.0: 569 | resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==} 570 | engines: {node: '>=0.10.0'} 571 | 572 | arr-union@2.1.0: 573 | resolution: {integrity: sha512-t5db90jq+qdgk8aFnxEkjqta0B/GHrM1pxzuuZz2zWsOXc5nKu3t+76s/PQBA8FTcM/ipspIH9jWG4OxCBc2eA==} 574 | engines: {node: '>=0.10.0'} 575 | 576 | array-slice@0.2.3: 577 | resolution: {integrity: sha512-rlVfZW/1Ph2SNySXwR9QYkChp8EkOEiTMO5Vwx60usw04i4nWemkm9RXmQqgkQFaLHsqLuADvjp6IfgL9l2M8Q==} 578 | engines: {node: '>=0.10.0'} 579 | 580 | balanced-match@1.0.2: 581 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 582 | 583 | baseline-browser-mapping@2.8.16: 584 | resolution: {integrity: sha512-OMu3BGQ4E7P1ErFsIPpbJh0qvDudM/UuJeHgkAvfWe+0HFJCXh+t/l8L6fVLR55RI/UbKrVLnAXZSVwd9ysWYw==} 585 | hasBin: true 586 | 587 | binary-extensions@2.3.0: 588 | resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} 589 | engines: {node: '>=8'} 590 | 591 | brace-expansion@1.1.12: 592 | resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} 593 | 594 | brace-expansion@2.0.2: 595 | resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} 596 | 597 | braces@3.0.3: 598 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} 599 | engines: {node: '>=8'} 600 | 601 | browser-stdout@1.3.1: 602 | resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} 603 | 604 | browserslist@4.26.3: 605 | resolution: {integrity: sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w==} 606 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 607 | hasBin: true 608 | 609 | buffer-from@1.1.2: 610 | resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} 611 | 612 | callsites@3.1.0: 613 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 614 | engines: {node: '>=6'} 615 | 616 | camelcase@6.3.0: 617 | resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} 618 | engines: {node: '>=10'} 619 | 620 | caniuse-lite@1.0.30001750: 621 | resolution: {integrity: sha512-cuom0g5sdX6rw00qOoLNSFCJ9/mYIsuSOA+yzpDw8eopiFqcVwQvZHqov0vmEighRxX++cfC0Vg1G+1Iy/mSpQ==} 622 | 623 | chalk@1.1.3: 624 | resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==} 625 | engines: {node: '>=0.10.0'} 626 | 627 | chalk@4.1.2: 628 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 629 | engines: {node: '>=10'} 630 | 631 | chalk@5.6.2: 632 | resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} 633 | engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} 634 | 635 | chokidar@3.6.0: 636 | resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} 637 | engines: {node: '>= 8.10.0'} 638 | 639 | chokidar@4.0.3: 640 | resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} 641 | engines: {node: '>= 14.16.0'} 642 | 643 | chrome-trace-event@1.0.4: 644 | resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} 645 | engines: {node: '>=6.0'} 646 | 647 | cli-cursor@5.0.0: 648 | resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} 649 | engines: {node: '>=18'} 650 | 651 | cli-spinners@2.9.2: 652 | resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} 653 | engines: {node: '>=6'} 654 | 655 | cliui@8.0.1: 656 | resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} 657 | engines: {node: '>=12'} 658 | 659 | clone-buffer@1.0.0: 660 | resolution: {integrity: sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==} 661 | engines: {node: '>= 0.10'} 662 | 663 | clone-stats@1.0.0: 664 | resolution: {integrity: sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==} 665 | 666 | clone@2.1.2: 667 | resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} 668 | engines: {node: '>=0.8'} 669 | 670 | cloneable-readable@1.1.3: 671 | resolution: {integrity: sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==} 672 | 673 | color-convert@2.0.1: 674 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 675 | engines: {node: '>=7.0.0'} 676 | 677 | color-name@1.1.4: 678 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 679 | 680 | color-support@1.1.3: 681 | resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} 682 | hasBin: true 683 | 684 | commander@2.20.3: 685 | resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} 686 | 687 | concat-map@0.0.1: 688 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 689 | 690 | core-util-is@1.0.3: 691 | resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} 692 | 693 | cross-spawn@7.0.6: 694 | resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} 695 | engines: {node: '>= 8'} 696 | 697 | debug@4.4.3: 698 | resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} 699 | engines: {node: '>=6.0'} 700 | peerDependencies: 701 | supports-color: '*' 702 | peerDependenciesMeta: 703 | supports-color: 704 | optional: true 705 | 706 | decamelize@4.0.0: 707 | resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} 708 | engines: {node: '>=10'} 709 | 710 | deep-is@0.1.4: 711 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 712 | 713 | del@8.0.1: 714 | resolution: {integrity: sha512-gPqh0mKTPvaUZGAuHbrBUYKZWBNAeHG7TU3QH5EhVwPMyKvmfJaNXhcD2jTcXsJRRcffuho4vaYweu80dRrMGA==} 715 | engines: {node: '>=18'} 716 | 717 | diff@7.0.0: 718 | resolution: {integrity: sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==} 719 | engines: {node: '>=0.3.1'} 720 | 721 | duplexer@0.1.2: 722 | resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} 723 | 724 | eastasianwidth@0.2.0: 725 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 726 | 727 | electron-to-chromium@1.5.234: 728 | resolution: {integrity: sha512-RXfEp2x+VRYn8jbKfQlRImzoJU01kyDvVPBmG39eU2iuRVhuS6vQNocB8J0/8GrIMLnPzgz4eW6WiRnJkTuNWg==} 729 | 730 | emoji-regex@10.5.0: 731 | resolution: {integrity: sha512-lb49vf1Xzfx080OKA0o6l8DQQpV+6Vg95zyCJX9VB/BqKYlhG7N4wgROUUHRA+ZPUefLnteQOad7z1kT2bV7bg==} 732 | 733 | emoji-regex@8.0.0: 734 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 735 | 736 | emoji-regex@9.2.2: 737 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 738 | 739 | enhanced-resolve@5.18.3: 740 | resolution: {integrity: sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==} 741 | engines: {node: '>=10.13.0'} 742 | 743 | es-module-lexer@1.7.0: 744 | resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} 745 | 746 | esbuild@0.25.10: 747 | resolution: {integrity: sha512-9RiGKvCwaqxO2owP61uQ4BgNborAQskMR6QusfWzQqv7AZOg5oGehdY2pRJMTKuwxd1IDBP4rSbI5lHzU7SMsQ==} 748 | engines: {node: '>=18'} 749 | hasBin: true 750 | 751 | escalade@3.2.0: 752 | resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} 753 | engines: {node: '>=6'} 754 | 755 | escape-string-regexp@1.0.5: 756 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 757 | engines: {node: '>=0.8.0'} 758 | 759 | escape-string-regexp@4.0.0: 760 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 761 | engines: {node: '>=10'} 762 | 763 | eslint-scope@5.1.1: 764 | resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} 765 | engines: {node: '>=8.0.0'} 766 | 767 | eslint-scope@8.4.0: 768 | resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} 769 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 770 | 771 | eslint-visitor-keys@3.4.3: 772 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} 773 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 774 | 775 | eslint-visitor-keys@4.2.1: 776 | resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} 777 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 778 | 779 | eslint@9.37.0: 780 | resolution: {integrity: sha512-XyLmROnACWqSxiGYArdef1fItQd47weqB7iwtfr9JHwRrqIXZdcFMvvEcL9xHCmL0SNsOvF0c42lWyM1U5dgig==} 781 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 782 | hasBin: true 783 | peerDependencies: 784 | jiti: '*' 785 | peerDependenciesMeta: 786 | jiti: 787 | optional: true 788 | 789 | espree@10.4.0: 790 | resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} 791 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 792 | 793 | esquery@1.6.0: 794 | resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} 795 | engines: {node: '>=0.10'} 796 | 797 | esrecurse@4.3.0: 798 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 799 | engines: {node: '>=4.0'} 800 | 801 | estraverse@4.3.0: 802 | resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} 803 | engines: {node: '>=4.0'} 804 | 805 | estraverse@5.3.0: 806 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 807 | engines: {node: '>=4.0'} 808 | 809 | esutils@2.0.3: 810 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 811 | engines: {node: '>=0.10.0'} 812 | 813 | event-stream@3.3.5: 814 | resolution: {integrity: sha512-vyibDcu5JL20Me1fP734QBH/kenBGLZap2n0+XXM7mvuUPzJ20Ydqj1aKcIeMdri1p+PU+4yAKugjN8KCVst+g==} 815 | 816 | events@3.3.0: 817 | resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} 818 | engines: {node: '>=0.8.x'} 819 | 820 | extend-shallow@1.1.4: 821 | resolution: {integrity: sha512-L7AGmkO6jhDkEBBGWlLtftA80Xq8DipnrRPr0pyi7GQLXkaq9JYA4xF4z6qnadIC6euiTDKco0cGSU9muw+WTw==} 822 | engines: {node: '>=0.10.0'} 823 | 824 | fancy-log@1.3.3: 825 | resolution: {integrity: sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==} 826 | engines: {node: '>= 0.10'} 827 | 828 | fast-deep-equal@3.1.3: 829 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 830 | 831 | fast-glob@3.3.3: 832 | resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} 833 | engines: {node: '>=8.6.0'} 834 | 835 | fast-json-stable-stringify@2.1.0: 836 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 837 | 838 | fast-levenshtein@2.0.6: 839 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 840 | 841 | fast-uri@3.1.0: 842 | resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} 843 | 844 | fastq@1.19.1: 845 | resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} 846 | 847 | file-entry-cache@8.0.0: 848 | resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} 849 | engines: {node: '>=16.0.0'} 850 | 851 | fill-range@7.1.1: 852 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} 853 | engines: {node: '>=8'} 854 | 855 | find-up@5.0.0: 856 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 857 | engines: {node: '>=10'} 858 | 859 | flat-cache@4.0.1: 860 | resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} 861 | engines: {node: '>=16'} 862 | 863 | flat@5.0.2: 864 | resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} 865 | hasBin: true 866 | 867 | flatted@3.3.3: 868 | resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} 869 | 870 | foreground-child@3.3.1: 871 | resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} 872 | engines: {node: '>=14'} 873 | 874 | from@0.1.7: 875 | resolution: {integrity: sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==} 876 | 877 | fs-extra@10.1.0: 878 | resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} 879 | engines: {node: '>=12'} 880 | 881 | fs.realpath@1.0.0: 882 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 883 | 884 | fsevents@2.3.3: 885 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 886 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 887 | os: [darwin] 888 | 889 | get-caller-file@2.0.5: 890 | resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} 891 | engines: {node: 6.* || 8.* || >= 10.*} 892 | 893 | get-east-asian-width@1.4.0: 894 | resolution: {integrity: sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==} 895 | engines: {node: '>=18'} 896 | 897 | glob-parent@5.1.2: 898 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 899 | engines: {node: '>= 6'} 900 | 901 | glob-parent@6.0.2: 902 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 903 | engines: {node: '>=10.13.0'} 904 | 905 | glob-to-regexp@0.4.1: 906 | resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} 907 | 908 | glob@10.4.5: 909 | resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} 910 | hasBin: true 911 | 912 | glob@11.0.3: 913 | resolution: {integrity: sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==} 914 | engines: {node: 20 || >=22} 915 | hasBin: true 916 | 917 | glob@7.2.3: 918 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 919 | deprecated: Glob versions prior to v9 are no longer supported 920 | 921 | globals@14.0.0: 922 | resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} 923 | engines: {node: '>=18'} 924 | 925 | globby@14.1.0: 926 | resolution: {integrity: sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==} 927 | engines: {node: '>=18'} 928 | 929 | graceful-fs@4.2.11: 930 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 931 | 932 | graphemer@1.4.0: 933 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} 934 | 935 | has-ansi@2.0.0: 936 | resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==} 937 | engines: {node: '>=0.10.0'} 938 | 939 | has-flag@3.0.0: 940 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} 941 | engines: {node: '>=4'} 942 | 943 | has-flag@4.0.0: 944 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 945 | engines: {node: '>=8'} 946 | 947 | he@1.2.0: 948 | resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} 949 | hasBin: true 950 | 951 | http-proxy-agent@7.0.2: 952 | resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} 953 | engines: {node: '>= 14'} 954 | 955 | https-proxy-agent@7.0.6: 956 | resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} 957 | engines: {node: '>= 14'} 958 | 959 | iconv-lite@0.6.3: 960 | resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} 961 | engines: {node: '>=0.10.0'} 962 | 963 | ignore-by-default@1.0.1: 964 | resolution: {integrity: sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==} 965 | 966 | ignore@5.3.2: 967 | resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} 968 | engines: {node: '>= 4'} 969 | 970 | ignore@7.0.5: 971 | resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} 972 | engines: {node: '>= 4'} 973 | 974 | immediate@3.0.6: 975 | resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} 976 | 977 | import-fresh@3.3.1: 978 | resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} 979 | engines: {node: '>=6'} 980 | 981 | imurmurhash@0.1.4: 982 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 983 | engines: {node: '>=0.8.19'} 984 | 985 | inflight@1.0.6: 986 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 987 | 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. 988 | 989 | inherits@2.0.4: 990 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 991 | 992 | is-binary-path@2.1.0: 993 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 994 | engines: {node: '>=8'} 995 | 996 | is-extglob@2.1.1: 997 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 998 | engines: {node: '>=0.10.0'} 999 | 1000 | is-fullwidth-code-point@3.0.0: 1001 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 1002 | engines: {node: '>=8'} 1003 | 1004 | is-glob@4.0.3: 1005 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1006 | engines: {node: '>=0.10.0'} 1007 | 1008 | is-interactive@2.0.0: 1009 | resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} 1010 | engines: {node: '>=12'} 1011 | 1012 | is-number@7.0.0: 1013 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1014 | engines: {node: '>=0.12.0'} 1015 | 1016 | is-path-cwd@3.0.0: 1017 | resolution: {integrity: sha512-kyiNFFLU0Ampr6SDZitD/DwUo4Zs1nSdnygUBqsu3LooL00Qvb5j+UnvApUn/TTj1J3OuE6BTdQ5rudKmU2ZaA==} 1018 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1019 | 1020 | is-path-inside@3.0.3: 1021 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} 1022 | engines: {node: '>=8'} 1023 | 1024 | is-path-inside@4.0.0: 1025 | resolution: {integrity: sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==} 1026 | engines: {node: '>=12'} 1027 | 1028 | is-plain-obj@2.1.0: 1029 | resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} 1030 | engines: {node: '>=8'} 1031 | 1032 | is-unicode-supported@0.1.0: 1033 | resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} 1034 | engines: {node: '>=10'} 1035 | 1036 | is-unicode-supported@1.3.0: 1037 | resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} 1038 | engines: {node: '>=12'} 1039 | 1040 | is-unicode-supported@2.1.0: 1041 | resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} 1042 | engines: {node: '>=18'} 1043 | 1044 | is@3.3.2: 1045 | resolution: {integrity: sha512-a2xr4E3s1PjDS8ORcGgXpWx6V+liNs+O3JRD2mb9aeugD7rtkkZ0zgLdYgw0tWsKhsdiezGYptSiMlVazCBTuQ==} 1046 | engines: {node: '>= 0.4'} 1047 | 1048 | isarray@1.0.0: 1049 | resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} 1050 | 1051 | isexe@2.0.0: 1052 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1053 | 1054 | jackspeak@3.4.3: 1055 | resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} 1056 | 1057 | jackspeak@4.1.1: 1058 | resolution: {integrity: sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==} 1059 | engines: {node: 20 || >=22} 1060 | 1061 | jest-worker@27.5.1: 1062 | resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} 1063 | engines: {node: '>= 10.13.0'} 1064 | 1065 | js-yaml@4.1.0: 1066 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 1067 | hasBin: true 1068 | 1069 | json-buffer@3.0.1: 1070 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} 1071 | 1072 | json-parse-even-better-errors@2.3.1: 1073 | resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} 1074 | 1075 | json-schema-traverse@0.4.1: 1076 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 1077 | 1078 | json-schema-traverse@1.0.0: 1079 | resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} 1080 | 1081 | json-stable-stringify-without-jsonify@1.0.1: 1082 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 1083 | 1084 | json5@2.2.3: 1085 | resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} 1086 | engines: {node: '>=6'} 1087 | hasBin: true 1088 | 1089 | jsonfile@6.2.0: 1090 | resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==} 1091 | 1092 | jszip@3.10.1: 1093 | resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} 1094 | 1095 | keyv@4.5.4: 1096 | resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} 1097 | 1098 | kind-of@1.1.0: 1099 | resolution: {integrity: sha512-aUH6ElPnMGon2/YkxRIigV32MOpTVcoXQ1Oo8aYn40s+sJ3j+0gFZsT8HKDcxNy7Fi9zuquWtGaGAahOdv5p/g==} 1100 | engines: {node: '>=0.10.0'} 1101 | 1102 | levn@0.4.1: 1103 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 1104 | engines: {node: '>= 0.8.0'} 1105 | 1106 | lie@3.3.0: 1107 | resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} 1108 | 1109 | loader-runner@4.3.1: 1110 | resolution: {integrity: sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==} 1111 | engines: {node: '>=6.11.5'} 1112 | 1113 | locate-path@6.0.0: 1114 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 1115 | engines: {node: '>=10'} 1116 | 1117 | lodash.merge@4.6.2: 1118 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 1119 | 1120 | log-symbols@4.1.0: 1121 | resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} 1122 | engines: {node: '>=10'} 1123 | 1124 | log-symbols@6.0.0: 1125 | resolution: {integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==} 1126 | engines: {node: '>=18'} 1127 | 1128 | lru-cache@10.4.3: 1129 | resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} 1130 | 1131 | lru-cache@11.2.2: 1132 | resolution: {integrity: sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==} 1133 | engines: {node: 20 || >=22} 1134 | 1135 | map-stream@0.0.7: 1136 | resolution: {integrity: sha512-C0X0KQmGm3N2ftbTGBhSyuydQ+vV1LC3f3zPvT3RXHXNZrvfPZcoXp/N5DOa8vedX/rTMm2CjTtivFg2STJMRQ==} 1137 | 1138 | merge-stream@2.0.0: 1139 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} 1140 | 1141 | merge2@1.4.1: 1142 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1143 | engines: {node: '>= 8'} 1144 | 1145 | micromatch@4.0.8: 1146 | resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} 1147 | engines: {node: '>=8.6'} 1148 | 1149 | mime-db@1.52.0: 1150 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} 1151 | engines: {node: '>= 0.6'} 1152 | 1153 | mime-types@2.1.35: 1154 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} 1155 | engines: {node: '>= 0.6'} 1156 | 1157 | mimic-function@5.0.1: 1158 | resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} 1159 | engines: {node: '>=18'} 1160 | 1161 | minimatch@10.0.3: 1162 | resolution: {integrity: sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==} 1163 | engines: {node: 20 || >=22} 1164 | 1165 | minimatch@3.1.2: 1166 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1167 | 1168 | minimatch@9.0.5: 1169 | resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} 1170 | engines: {node: '>=16 || 14 >=14.17'} 1171 | 1172 | minipass@7.1.2: 1173 | resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} 1174 | engines: {node: '>=16 || 14 >=14.17'} 1175 | 1176 | mocha@11.7.4: 1177 | resolution: {integrity: sha512-1jYAaY8x0kAZ0XszLWu14pzsf4KV740Gld4HXkhNTXwcHx4AUEDkPzgEHg9CM5dVcW+zv036tjpsEbLraPJj4w==} 1178 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 1179 | hasBin: true 1180 | 1181 | ms@2.1.3: 1182 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 1183 | 1184 | natural-compare@1.4.0: 1185 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 1186 | 1187 | neo-async@2.6.2: 1188 | resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} 1189 | 1190 | node-releases@2.0.23: 1191 | resolution: {integrity: sha512-cCmFDMSm26S6tQSDpBCg/NR8NENrVPhAJSf+XbxBG4rPFaaonlEoE9wHQmun+cls499TQGSb7ZyPBRlzgKfpeg==} 1192 | 1193 | nodemon@3.1.10: 1194 | resolution: {integrity: sha512-WDjw3pJ0/0jMFmyNDp3gvY2YizjLmmOUQo6DEBY+JgdvW/yQ9mEeSw6H5ythl5Ny2ytb7f9C2nIbjSxMNzbJXw==} 1195 | engines: {node: '>=10'} 1196 | hasBin: true 1197 | 1198 | normalize-path@3.0.0: 1199 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 1200 | engines: {node: '>=0.10.0'} 1201 | 1202 | once@1.4.0: 1203 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 1204 | 1205 | onetime@7.0.0: 1206 | resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} 1207 | engines: {node: '>=18'} 1208 | 1209 | optionator@0.9.4: 1210 | resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} 1211 | engines: {node: '>= 0.8.0'} 1212 | 1213 | ora@8.2.0: 1214 | resolution: {integrity: sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==} 1215 | engines: {node: '>=18'} 1216 | 1217 | p-limit@3.1.0: 1218 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 1219 | engines: {node: '>=10'} 1220 | 1221 | p-locate@5.0.0: 1222 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 1223 | engines: {node: '>=10'} 1224 | 1225 | p-map@7.0.3: 1226 | resolution: {integrity: sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==} 1227 | engines: {node: '>=18'} 1228 | 1229 | package-json-from-dist@1.0.1: 1230 | resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} 1231 | 1232 | pako@1.0.11: 1233 | resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} 1234 | 1235 | parent-module@1.0.1: 1236 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 1237 | engines: {node: '>=6'} 1238 | 1239 | parse-node-version@1.0.1: 1240 | resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} 1241 | engines: {node: '>= 0.10'} 1242 | 1243 | path-exists@4.0.0: 1244 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 1245 | engines: {node: '>=8'} 1246 | 1247 | path-is-absolute@1.0.1: 1248 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 1249 | engines: {node: '>=0.10.0'} 1250 | 1251 | path-key@3.1.1: 1252 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1253 | engines: {node: '>=8'} 1254 | 1255 | path-scurry@1.11.1: 1256 | resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} 1257 | engines: {node: '>=16 || 14 >=14.18'} 1258 | 1259 | path-scurry@2.0.0: 1260 | resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} 1261 | engines: {node: 20 || >=22} 1262 | 1263 | path-type@6.0.0: 1264 | resolution: {integrity: sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==} 1265 | engines: {node: '>=18'} 1266 | 1267 | pause-stream@0.0.11: 1268 | resolution: {integrity: sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==} 1269 | 1270 | picocolors@1.1.1: 1271 | resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 1272 | 1273 | picomatch@2.3.1: 1274 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1275 | engines: {node: '>=8.6'} 1276 | 1277 | plugin-error@0.1.2: 1278 | resolution: {integrity: sha512-WzZHcm4+GO34sjFMxQMqZbsz3xiNEgonCskQ9v+IroMmYgk/tas8dG+Hr2D6IbRPybZ12oWpzE/w3cGJ6FJzOw==} 1279 | engines: {node: '>=0.10.0'} 1280 | 1281 | prelude-ls@1.2.1: 1282 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 1283 | engines: {node: '>= 0.8.0'} 1284 | 1285 | presentable-error@0.0.1: 1286 | resolution: {integrity: sha512-E6rsNU1QNJgB3sjj7OANinGncFKuK+164sLXw1/CqBjj/EkXSoSdHCtWQGBNlREIGLnL7IEUEGa08YFVUbrhVg==} 1287 | engines: {node: '>=16'} 1288 | 1289 | process-nextick-args@2.0.1: 1290 | resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} 1291 | 1292 | pstree.remy@1.1.8: 1293 | resolution: {integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==} 1294 | 1295 | punycode@2.3.1: 1296 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 1297 | engines: {node: '>=6'} 1298 | 1299 | queue-microtask@1.2.3: 1300 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1301 | 1302 | randombytes@2.1.0: 1303 | resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} 1304 | 1305 | readable-stream@2.3.8: 1306 | resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} 1307 | 1308 | readdirp@3.6.0: 1309 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 1310 | engines: {node: '>=8.10.0'} 1311 | 1312 | readdirp@4.1.2: 1313 | resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} 1314 | engines: {node: '>= 14.18.0'} 1315 | 1316 | remove-trailing-separator@1.1.0: 1317 | resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} 1318 | 1319 | replace-ext@1.0.1: 1320 | resolution: {integrity: sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==} 1321 | engines: {node: '>= 0.10'} 1322 | 1323 | require-directory@2.1.1: 1324 | resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} 1325 | engines: {node: '>=0.10.0'} 1326 | 1327 | require-from-string@2.0.2: 1328 | resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} 1329 | engines: {node: '>=0.10.0'} 1330 | 1331 | resolve-from@4.0.0: 1332 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 1333 | engines: {node: '>=4'} 1334 | 1335 | restore-cursor@5.1.0: 1336 | resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} 1337 | engines: {node: '>=18'} 1338 | 1339 | reusify@1.1.0: 1340 | resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} 1341 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1342 | 1343 | run-parallel@1.2.0: 1344 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1345 | 1346 | run-sequence@2.2.1: 1347 | resolution: {integrity: sha512-qkzZnQWMZjcKbh3CNly2srtrkaO/2H/SI5f2eliMCapdRD3UhMrwjfOAZJAnZ2H8Ju4aBzFZkBGXUqFs9V0yxw==} 1348 | engines: {node: '>= 0.8.0'} 1349 | 1350 | safe-buffer@5.1.2: 1351 | resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} 1352 | 1353 | safe-buffer@5.2.1: 1354 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 1355 | 1356 | safer-buffer@2.1.2: 1357 | resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} 1358 | 1359 | sax@1.4.1: 1360 | resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} 1361 | 1362 | schema-utils@4.3.3: 1363 | resolution: {integrity: sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==} 1364 | engines: {node: '>= 10.13.0'} 1365 | 1366 | semver@7.7.3: 1367 | resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} 1368 | engines: {node: '>=10'} 1369 | hasBin: true 1370 | 1371 | serialize-javascript@6.0.2: 1372 | resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} 1373 | 1374 | setimmediate@1.0.5: 1375 | resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} 1376 | 1377 | shebang-command@2.0.0: 1378 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1379 | engines: {node: '>=8'} 1380 | 1381 | shebang-regex@3.0.0: 1382 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1383 | engines: {node: '>=8'} 1384 | 1385 | signal-exit@4.1.0: 1386 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 1387 | engines: {node: '>=14'} 1388 | 1389 | simple-update-notifier@2.0.0: 1390 | resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==} 1391 | engines: {node: '>=10'} 1392 | 1393 | slash@5.1.0: 1394 | resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} 1395 | engines: {node: '>=14.16'} 1396 | 1397 | source-map-support@0.5.21: 1398 | resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} 1399 | 1400 | source-map@0.6.1: 1401 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 1402 | engines: {node: '>=0.10.0'} 1403 | 1404 | source-map@0.7.6: 1405 | resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} 1406 | engines: {node: '>= 12'} 1407 | 1408 | split@1.0.1: 1409 | resolution: {integrity: sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==} 1410 | 1411 | stdin-discarder@0.2.2: 1412 | resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==} 1413 | engines: {node: '>=18'} 1414 | 1415 | stream-combiner@0.2.2: 1416 | resolution: {integrity: sha512-6yHMqgLYDzQDcAkL+tjJDC5nSNuNIx0vZtRZeiPh7Saef7VHX9H5Ijn9l2VIol2zaNYlYEX6KyuT/237A58qEQ==} 1417 | 1418 | string-width@4.2.3: 1419 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 1420 | engines: {node: '>=8'} 1421 | 1422 | string-width@5.1.2: 1423 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 1424 | engines: {node: '>=12'} 1425 | 1426 | string-width@7.2.0: 1427 | resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} 1428 | engines: {node: '>=18'} 1429 | 1430 | string_decoder@1.1.1: 1431 | resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} 1432 | 1433 | strip-ansi@3.0.1: 1434 | resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} 1435 | engines: {node: '>=0.10.0'} 1436 | 1437 | strip-ansi@6.0.1: 1438 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1439 | engines: {node: '>=8'} 1440 | 1441 | strip-ansi@7.1.2: 1442 | resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==} 1443 | engines: {node: '>=12'} 1444 | 1445 | strip-json-comments@3.1.1: 1446 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 1447 | engines: {node: '>=8'} 1448 | 1449 | supports-color@2.0.0: 1450 | resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} 1451 | engines: {node: '>=0.8.0'} 1452 | 1453 | supports-color@5.5.0: 1454 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 1455 | engines: {node: '>=4'} 1456 | 1457 | supports-color@7.2.0: 1458 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 1459 | engines: {node: '>=8'} 1460 | 1461 | supports-color@8.1.1: 1462 | resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} 1463 | engines: {node: '>=10'} 1464 | 1465 | tapable@2.3.0: 1466 | resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} 1467 | engines: {node: '>=6'} 1468 | 1469 | terser-webpack-plugin@5.3.14: 1470 | resolution: {integrity: sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==} 1471 | engines: {node: '>= 10.13.0'} 1472 | peerDependencies: 1473 | '@swc/core': '*' 1474 | esbuild: '*' 1475 | uglify-js: '*' 1476 | webpack: ^5.1.0 1477 | peerDependenciesMeta: 1478 | '@swc/core': 1479 | optional: true 1480 | esbuild: 1481 | optional: true 1482 | uglify-js: 1483 | optional: true 1484 | 1485 | terser@5.44.0: 1486 | resolution: {integrity: sha512-nIVck8DK+GM/0Frwd+nIhZ84pR/BX7rmXMfYwyg+Sri5oGVE99/E3KvXqpC2xHFxyqXyGHTKBSioxxplrO4I4w==} 1487 | engines: {node: '>=10'} 1488 | hasBin: true 1489 | 1490 | through@2.3.8: 1491 | resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} 1492 | 1493 | time-stamp@1.1.0: 1494 | resolution: {integrity: sha512-gLCeArryy2yNTRzTGKbZbloctj64jkZ57hj5zdraXue6aFgd6PmvVtEyiUU+hvU0v7q08oVv8r8ev0tRo6bvgw==} 1495 | engines: {node: '>=0.10.0'} 1496 | 1497 | to-regex-range@5.0.1: 1498 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1499 | engines: {node: '>=8.0'} 1500 | 1501 | touch@3.1.1: 1502 | resolution: {integrity: sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==} 1503 | hasBin: true 1504 | 1505 | ts-api-utils@2.1.0: 1506 | resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} 1507 | engines: {node: '>=18.12'} 1508 | peerDependencies: 1509 | typescript: '>=4.8.4' 1510 | 1511 | ts-loader@9.5.4: 1512 | resolution: {integrity: sha512-nCz0rEwunlTZiy6rXFByQU1kVVpCIgUpc/psFiKVrUwrizdnIbRFu8w7bxhUF0X613DYwT4XzrZHpVyMe758hQ==} 1513 | engines: {node: '>=12.0.0'} 1514 | peerDependencies: 1515 | typescript: '*' 1516 | webpack: ^5.0.0 1517 | 1518 | type-check@0.4.0: 1519 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 1520 | engines: {node: '>= 0.8.0'} 1521 | 1522 | typescript@4.9.5: 1523 | resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} 1524 | engines: {node: '>=4.2.0'} 1525 | hasBin: true 1526 | 1527 | typescript@5.9.3: 1528 | resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} 1529 | engines: {node: '>=14.17'} 1530 | hasBin: true 1531 | 1532 | undefsafe@2.0.5: 1533 | resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==} 1534 | 1535 | undici-types@7.14.0: 1536 | resolution: {integrity: sha512-QQiYxHuyZ9gQUIrmPo3IA+hUl4KYk8uSA7cHrcKd/l3p1OTpZcM0Tbp9x7FAtXdAYhlasd60ncPpgu6ihG6TOA==} 1537 | 1538 | unicorn-magic@0.3.0: 1539 | resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==} 1540 | engines: {node: '>=18'} 1541 | 1542 | universalify@2.0.1: 1543 | resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} 1544 | engines: {node: '>= 10.0.0'} 1545 | 1546 | update-browserslist-db@1.1.3: 1547 | resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} 1548 | hasBin: true 1549 | peerDependencies: 1550 | browserslist: '>= 4.21.0' 1551 | 1552 | uri-js@4.4.1: 1553 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 1554 | 1555 | util-deprecate@1.0.2: 1556 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 1557 | 1558 | vinyl@2.2.1: 1559 | resolution: {integrity: sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==} 1560 | engines: {node: '>= 0.10'} 1561 | 1562 | vscode-nls-dev@4.0.4: 1563 | resolution: {integrity: sha512-0KQUVkeRTmKVH4a96ZeD+1RgQV6k21YiBYykrvbMX62m6srPC6aU9CWuWT6zrMAB6qmy9sUD0/Bk6P/atLVMrw==} 1564 | hasBin: true 1565 | 1566 | vscode-nls@5.2.0: 1567 | resolution: {integrity: sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==} 1568 | 1569 | watchpack@2.4.4: 1570 | resolution: {integrity: sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==} 1571 | engines: {node: '>=10.13.0'} 1572 | 1573 | webpack-sources@3.3.3: 1574 | resolution: {integrity: sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==} 1575 | engines: {node: '>=10.13.0'} 1576 | 1577 | webpack@5.102.1: 1578 | resolution: {integrity: sha512-7h/weGm9d/ywQ6qzJ+Xy+r9n/3qgp/thalBbpOi5i223dPXKi04IBtqPN9nTd+jBc7QKfvDbaBnFipYp4sJAUQ==} 1579 | engines: {node: '>=10.13.0'} 1580 | hasBin: true 1581 | peerDependencies: 1582 | webpack-cli: '*' 1583 | peerDependenciesMeta: 1584 | webpack-cli: 1585 | optional: true 1586 | 1587 | which@2.0.2: 1588 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 1589 | engines: {node: '>= 8'} 1590 | hasBin: true 1591 | 1592 | word-wrap@1.2.5: 1593 | resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} 1594 | engines: {node: '>=0.10.0'} 1595 | 1596 | workerpool@9.3.4: 1597 | resolution: {integrity: sha512-TmPRQYYSAnnDiEB0P/Ytip7bFGvqnSU6I2BcuSw7Hx+JSg/DsUi5ebYfc8GYaSdpuvOcEs6dXxPurOYpe9QFwg==} 1598 | 1599 | wrap-ansi@7.0.0: 1600 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 1601 | engines: {node: '>=10'} 1602 | 1603 | wrap-ansi@8.1.0: 1604 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} 1605 | engines: {node: '>=12'} 1606 | 1607 | wrappy@1.0.2: 1608 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 1609 | 1610 | xml2js@0.5.0: 1611 | resolution: {integrity: sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==} 1612 | engines: {node: '>=4.0.0'} 1613 | 1614 | xmlbuilder@11.0.1: 1615 | resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} 1616 | engines: {node: '>=4.0'} 1617 | 1618 | y18n@5.0.8: 1619 | resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} 1620 | engines: {node: '>=10'} 1621 | 1622 | yargs-parser@21.1.1: 1623 | resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} 1624 | engines: {node: '>=12'} 1625 | 1626 | yargs-unparser@2.0.0: 1627 | resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} 1628 | engines: {node: '>=10'} 1629 | 1630 | yargs@17.7.2: 1631 | resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} 1632 | engines: {node: '>=12'} 1633 | 1634 | yocto-queue@0.1.0: 1635 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 1636 | engines: {node: '>=10'} 1637 | 1638 | snapshots: 1639 | 1640 | '@esbuild/aix-ppc64@0.25.10': 1641 | optional: true 1642 | 1643 | '@esbuild/android-arm64@0.25.10': 1644 | optional: true 1645 | 1646 | '@esbuild/android-arm@0.25.10': 1647 | optional: true 1648 | 1649 | '@esbuild/android-x64@0.25.10': 1650 | optional: true 1651 | 1652 | '@esbuild/darwin-arm64@0.25.10': 1653 | optional: true 1654 | 1655 | '@esbuild/darwin-x64@0.25.10': 1656 | optional: true 1657 | 1658 | '@esbuild/freebsd-arm64@0.25.10': 1659 | optional: true 1660 | 1661 | '@esbuild/freebsd-x64@0.25.10': 1662 | optional: true 1663 | 1664 | '@esbuild/linux-arm64@0.25.10': 1665 | optional: true 1666 | 1667 | '@esbuild/linux-arm@0.25.10': 1668 | optional: true 1669 | 1670 | '@esbuild/linux-ia32@0.25.10': 1671 | optional: true 1672 | 1673 | '@esbuild/linux-loong64@0.25.10': 1674 | optional: true 1675 | 1676 | '@esbuild/linux-mips64el@0.25.10': 1677 | optional: true 1678 | 1679 | '@esbuild/linux-ppc64@0.25.10': 1680 | optional: true 1681 | 1682 | '@esbuild/linux-riscv64@0.25.10': 1683 | optional: true 1684 | 1685 | '@esbuild/linux-s390x@0.25.10': 1686 | optional: true 1687 | 1688 | '@esbuild/linux-x64@0.25.10': 1689 | optional: true 1690 | 1691 | '@esbuild/netbsd-arm64@0.25.10': 1692 | optional: true 1693 | 1694 | '@esbuild/netbsd-x64@0.25.10': 1695 | optional: true 1696 | 1697 | '@esbuild/openbsd-arm64@0.25.10': 1698 | optional: true 1699 | 1700 | '@esbuild/openbsd-x64@0.25.10': 1701 | optional: true 1702 | 1703 | '@esbuild/openharmony-arm64@0.25.10': 1704 | optional: true 1705 | 1706 | '@esbuild/sunos-x64@0.25.10': 1707 | optional: true 1708 | 1709 | '@esbuild/win32-arm64@0.25.10': 1710 | optional: true 1711 | 1712 | '@esbuild/win32-ia32@0.25.10': 1713 | optional: true 1714 | 1715 | '@esbuild/win32-x64@0.25.10': 1716 | optional: true 1717 | 1718 | '@eslint-community/eslint-utils@4.9.0(eslint@9.37.0)': 1719 | dependencies: 1720 | eslint: 9.37.0 1721 | eslint-visitor-keys: 3.4.3 1722 | 1723 | '@eslint-community/regexpp@4.12.1': {} 1724 | 1725 | '@eslint/config-array@0.21.0': 1726 | dependencies: 1727 | '@eslint/object-schema': 2.1.6 1728 | debug: 4.4.3 1729 | minimatch: 3.1.2 1730 | transitivePeerDependencies: 1731 | - supports-color 1732 | 1733 | '@eslint/config-helpers@0.4.0': 1734 | dependencies: 1735 | '@eslint/core': 0.16.0 1736 | 1737 | '@eslint/core@0.16.0': 1738 | dependencies: 1739 | '@types/json-schema': 7.0.15 1740 | 1741 | '@eslint/eslintrc@3.3.1': 1742 | dependencies: 1743 | ajv: 6.12.6 1744 | debug: 4.4.3 1745 | espree: 10.4.0 1746 | globals: 14.0.0 1747 | ignore: 5.3.2 1748 | import-fresh: 3.3.1 1749 | js-yaml: 4.1.0 1750 | minimatch: 3.1.2 1751 | strip-json-comments: 3.1.1 1752 | transitivePeerDependencies: 1753 | - supports-color 1754 | 1755 | '@eslint/js@9.37.0': {} 1756 | 1757 | '@eslint/object-schema@2.1.6': {} 1758 | 1759 | '@eslint/plugin-kit@0.4.0': 1760 | dependencies: 1761 | '@eslint/core': 0.16.0 1762 | levn: 0.4.1 1763 | 1764 | '@humanfs/core@0.19.1': {} 1765 | 1766 | '@humanfs/node@0.16.7': 1767 | dependencies: 1768 | '@humanfs/core': 0.19.1 1769 | '@humanwhocodes/retry': 0.4.3 1770 | 1771 | '@humanwhocodes/module-importer@1.0.1': {} 1772 | 1773 | '@humanwhocodes/retry@0.4.3': {} 1774 | 1775 | '@isaacs/balanced-match@4.0.1': {} 1776 | 1777 | '@isaacs/brace-expansion@5.0.0': 1778 | dependencies: 1779 | '@isaacs/balanced-match': 4.0.1 1780 | 1781 | '@isaacs/cliui@8.0.2': 1782 | dependencies: 1783 | string-width: 5.1.2 1784 | string-width-cjs: string-width@4.2.3 1785 | strip-ansi: 7.1.2 1786 | strip-ansi-cjs: strip-ansi@6.0.1 1787 | wrap-ansi: 8.1.0 1788 | wrap-ansi-cjs: wrap-ansi@7.0.0 1789 | 1790 | '@jridgewell/gen-mapping@0.3.13': 1791 | dependencies: 1792 | '@jridgewell/sourcemap-codec': 1.5.5 1793 | '@jridgewell/trace-mapping': 0.3.31 1794 | 1795 | '@jridgewell/resolve-uri@3.1.2': {} 1796 | 1797 | '@jridgewell/source-map@0.3.11': 1798 | dependencies: 1799 | '@jridgewell/gen-mapping': 0.3.13 1800 | '@jridgewell/trace-mapping': 0.3.31 1801 | 1802 | '@jridgewell/sourcemap-codec@1.5.5': {} 1803 | 1804 | '@jridgewell/trace-mapping@0.3.31': 1805 | dependencies: 1806 | '@jridgewell/resolve-uri': 3.1.2 1807 | '@jridgewell/sourcemap-codec': 1.5.5 1808 | 1809 | '@nodelib/fs.scandir@2.1.5': 1810 | dependencies: 1811 | '@nodelib/fs.stat': 2.0.5 1812 | run-parallel: 1.2.0 1813 | 1814 | '@nodelib/fs.stat@2.0.5': {} 1815 | 1816 | '@nodelib/fs.walk@1.2.8': 1817 | dependencies: 1818 | '@nodelib/fs.scandir': 2.1.5 1819 | fastq: 1.19.1 1820 | 1821 | '@pkgjs/parseargs@0.11.0': 1822 | optional: true 1823 | 1824 | '@sindresorhus/merge-streams@2.3.0': {} 1825 | 1826 | '@types/eslint-scope@3.7.7': 1827 | dependencies: 1828 | '@types/eslint': 9.6.1 1829 | '@types/estree': 1.0.8 1830 | 1831 | '@types/eslint@9.6.1': 1832 | dependencies: 1833 | '@types/estree': 1.0.8 1834 | '@types/json-schema': 7.0.15 1835 | 1836 | '@types/estree@1.0.8': {} 1837 | 1838 | '@types/glob@8.1.0': 1839 | dependencies: 1840 | '@types/minimatch': 5.1.2 1841 | '@types/node': 24.7.2 1842 | 1843 | '@types/json-schema@7.0.15': {} 1844 | 1845 | '@types/minimatch@5.1.2': {} 1846 | 1847 | '@types/mocha@10.0.10': {} 1848 | 1849 | '@types/node@24.7.2': 1850 | dependencies: 1851 | undici-types: 7.14.0 1852 | 1853 | '@types/vscode@1.105.0': {} 1854 | 1855 | '@typescript-eslint/eslint-plugin@8.46.0(@typescript-eslint/parser@8.46.0(eslint@9.37.0)(typescript@5.9.3))(eslint@9.37.0)(typescript@5.9.3)': 1856 | dependencies: 1857 | '@eslint-community/regexpp': 4.12.1 1858 | '@typescript-eslint/parser': 8.46.0(eslint@9.37.0)(typescript@5.9.3) 1859 | '@typescript-eslint/scope-manager': 8.46.0 1860 | '@typescript-eslint/type-utils': 8.46.0(eslint@9.37.0)(typescript@5.9.3) 1861 | '@typescript-eslint/utils': 8.46.0(eslint@9.37.0)(typescript@5.9.3) 1862 | '@typescript-eslint/visitor-keys': 8.46.0 1863 | eslint: 9.37.0 1864 | graphemer: 1.4.0 1865 | ignore: 7.0.5 1866 | natural-compare: 1.4.0 1867 | ts-api-utils: 2.1.0(typescript@5.9.3) 1868 | typescript: 5.9.3 1869 | transitivePeerDependencies: 1870 | - supports-color 1871 | 1872 | '@typescript-eslint/parser@8.46.0(eslint@9.37.0)(typescript@5.9.3)': 1873 | dependencies: 1874 | '@typescript-eslint/scope-manager': 8.46.0 1875 | '@typescript-eslint/types': 8.46.0 1876 | '@typescript-eslint/typescript-estree': 8.46.0(typescript@5.9.3) 1877 | '@typescript-eslint/visitor-keys': 8.46.0 1878 | debug: 4.4.3 1879 | eslint: 9.37.0 1880 | typescript: 5.9.3 1881 | transitivePeerDependencies: 1882 | - supports-color 1883 | 1884 | '@typescript-eslint/project-service@8.46.0(typescript@5.9.3)': 1885 | dependencies: 1886 | '@typescript-eslint/tsconfig-utils': 8.46.0(typescript@5.9.3) 1887 | '@typescript-eslint/types': 8.46.0 1888 | debug: 4.4.3 1889 | typescript: 5.9.3 1890 | transitivePeerDependencies: 1891 | - supports-color 1892 | 1893 | '@typescript-eslint/scope-manager@8.46.0': 1894 | dependencies: 1895 | '@typescript-eslint/types': 8.46.0 1896 | '@typescript-eslint/visitor-keys': 8.46.0 1897 | 1898 | '@typescript-eslint/tsconfig-utils@8.46.0(typescript@5.9.3)': 1899 | dependencies: 1900 | typescript: 5.9.3 1901 | 1902 | '@typescript-eslint/type-utils@8.46.0(eslint@9.37.0)(typescript@5.9.3)': 1903 | dependencies: 1904 | '@typescript-eslint/types': 8.46.0 1905 | '@typescript-eslint/typescript-estree': 8.46.0(typescript@5.9.3) 1906 | '@typescript-eslint/utils': 8.46.0(eslint@9.37.0)(typescript@5.9.3) 1907 | debug: 4.4.3 1908 | eslint: 9.37.0 1909 | ts-api-utils: 2.1.0(typescript@5.9.3) 1910 | typescript: 5.9.3 1911 | transitivePeerDependencies: 1912 | - supports-color 1913 | 1914 | '@typescript-eslint/types@8.46.0': {} 1915 | 1916 | '@typescript-eslint/typescript-estree@8.46.0(typescript@5.9.3)': 1917 | dependencies: 1918 | '@typescript-eslint/project-service': 8.46.0(typescript@5.9.3) 1919 | '@typescript-eslint/tsconfig-utils': 8.46.0(typescript@5.9.3) 1920 | '@typescript-eslint/types': 8.46.0 1921 | '@typescript-eslint/visitor-keys': 8.46.0 1922 | debug: 4.4.3 1923 | fast-glob: 3.3.3 1924 | is-glob: 4.0.3 1925 | minimatch: 9.0.5 1926 | semver: 7.7.3 1927 | ts-api-utils: 2.1.0(typescript@5.9.3) 1928 | typescript: 5.9.3 1929 | transitivePeerDependencies: 1930 | - supports-color 1931 | 1932 | '@typescript-eslint/utils@8.46.0(eslint@9.37.0)(typescript@5.9.3)': 1933 | dependencies: 1934 | '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0) 1935 | '@typescript-eslint/scope-manager': 8.46.0 1936 | '@typescript-eslint/types': 8.46.0 1937 | '@typescript-eslint/typescript-estree': 8.46.0(typescript@5.9.3) 1938 | eslint: 9.37.0 1939 | typescript: 5.9.3 1940 | transitivePeerDependencies: 1941 | - supports-color 1942 | 1943 | '@typescript-eslint/visitor-keys@8.46.0': 1944 | dependencies: 1945 | '@typescript-eslint/types': 8.46.0 1946 | eslint-visitor-keys: 4.2.1 1947 | 1948 | '@vscode/test-electron@2.5.2': 1949 | dependencies: 1950 | http-proxy-agent: 7.0.2 1951 | https-proxy-agent: 7.0.6 1952 | jszip: 3.10.1 1953 | ora: 8.2.0 1954 | semver: 7.7.3 1955 | transitivePeerDependencies: 1956 | - supports-color 1957 | 1958 | '@webassemblyjs/ast@1.14.1': 1959 | dependencies: 1960 | '@webassemblyjs/helper-numbers': 1.13.2 1961 | '@webassemblyjs/helper-wasm-bytecode': 1.13.2 1962 | 1963 | '@webassemblyjs/floating-point-hex-parser@1.13.2': {} 1964 | 1965 | '@webassemblyjs/helper-api-error@1.13.2': {} 1966 | 1967 | '@webassemblyjs/helper-buffer@1.14.1': {} 1968 | 1969 | '@webassemblyjs/helper-numbers@1.13.2': 1970 | dependencies: 1971 | '@webassemblyjs/floating-point-hex-parser': 1.13.2 1972 | '@webassemblyjs/helper-api-error': 1.13.2 1973 | '@xtuc/long': 4.2.2 1974 | 1975 | '@webassemblyjs/helper-wasm-bytecode@1.13.2': {} 1976 | 1977 | '@webassemblyjs/helper-wasm-section@1.14.1': 1978 | dependencies: 1979 | '@webassemblyjs/ast': 1.14.1 1980 | '@webassemblyjs/helper-buffer': 1.14.1 1981 | '@webassemblyjs/helper-wasm-bytecode': 1.13.2 1982 | '@webassemblyjs/wasm-gen': 1.14.1 1983 | 1984 | '@webassemblyjs/ieee754@1.13.2': 1985 | dependencies: 1986 | '@xtuc/ieee754': 1.2.0 1987 | 1988 | '@webassemblyjs/leb128@1.13.2': 1989 | dependencies: 1990 | '@xtuc/long': 4.2.2 1991 | 1992 | '@webassemblyjs/utf8@1.13.2': {} 1993 | 1994 | '@webassemblyjs/wasm-edit@1.14.1': 1995 | dependencies: 1996 | '@webassemblyjs/ast': 1.14.1 1997 | '@webassemblyjs/helper-buffer': 1.14.1 1998 | '@webassemblyjs/helper-wasm-bytecode': 1.13.2 1999 | '@webassemblyjs/helper-wasm-section': 1.14.1 2000 | '@webassemblyjs/wasm-gen': 1.14.1 2001 | '@webassemblyjs/wasm-opt': 1.14.1 2002 | '@webassemblyjs/wasm-parser': 1.14.1 2003 | '@webassemblyjs/wast-printer': 1.14.1 2004 | 2005 | '@webassemblyjs/wasm-gen@1.14.1': 2006 | dependencies: 2007 | '@webassemblyjs/ast': 1.14.1 2008 | '@webassemblyjs/helper-wasm-bytecode': 1.13.2 2009 | '@webassemblyjs/ieee754': 1.13.2 2010 | '@webassemblyjs/leb128': 1.13.2 2011 | '@webassemblyjs/utf8': 1.13.2 2012 | 2013 | '@webassemblyjs/wasm-opt@1.14.1': 2014 | dependencies: 2015 | '@webassemblyjs/ast': 1.14.1 2016 | '@webassemblyjs/helper-buffer': 1.14.1 2017 | '@webassemblyjs/wasm-gen': 1.14.1 2018 | '@webassemblyjs/wasm-parser': 1.14.1 2019 | 2020 | '@webassemblyjs/wasm-parser@1.14.1': 2021 | dependencies: 2022 | '@webassemblyjs/ast': 1.14.1 2023 | '@webassemblyjs/helper-api-error': 1.13.2 2024 | '@webassemblyjs/helper-wasm-bytecode': 1.13.2 2025 | '@webassemblyjs/ieee754': 1.13.2 2026 | '@webassemblyjs/leb128': 1.13.2 2027 | '@webassemblyjs/utf8': 1.13.2 2028 | 2029 | '@webassemblyjs/wast-printer@1.14.1': 2030 | dependencies: 2031 | '@webassemblyjs/ast': 1.14.1 2032 | '@xtuc/long': 4.2.2 2033 | 2034 | '@xtuc/ieee754@1.2.0': {} 2035 | 2036 | '@xtuc/long@4.2.2': {} 2037 | 2038 | acorn-import-phases@1.0.4(acorn@8.15.0): 2039 | dependencies: 2040 | acorn: 8.15.0 2041 | 2042 | acorn-jsx@5.3.2(acorn@8.15.0): 2043 | dependencies: 2044 | acorn: 8.15.0 2045 | 2046 | acorn@8.15.0: {} 2047 | 2048 | agent-base@7.1.4: {} 2049 | 2050 | ajv-formats@2.1.1(ajv@8.17.1): 2051 | optionalDependencies: 2052 | ajv: 8.17.1 2053 | 2054 | ajv-keywords@5.1.0(ajv@8.17.1): 2055 | dependencies: 2056 | ajv: 8.17.1 2057 | fast-deep-equal: 3.1.3 2058 | 2059 | ajv@6.12.6: 2060 | dependencies: 2061 | fast-deep-equal: 3.1.3 2062 | fast-json-stable-stringify: 2.1.0 2063 | json-schema-traverse: 0.4.1 2064 | uri-js: 4.4.1 2065 | 2066 | ajv@8.17.1: 2067 | dependencies: 2068 | fast-deep-equal: 3.1.3 2069 | fast-uri: 3.1.0 2070 | json-schema-traverse: 1.0.0 2071 | require-from-string: 2.0.2 2072 | 2073 | ansi-colors@4.1.3: {} 2074 | 2075 | ansi-cyan@0.1.1: 2076 | dependencies: 2077 | ansi-wrap: 0.1.0 2078 | 2079 | ansi-gray@0.1.1: 2080 | dependencies: 2081 | ansi-wrap: 0.1.0 2082 | 2083 | ansi-red@0.1.1: 2084 | dependencies: 2085 | ansi-wrap: 0.1.0 2086 | 2087 | ansi-regex@2.1.1: {} 2088 | 2089 | ansi-regex@5.0.1: {} 2090 | 2091 | ansi-regex@6.2.2: {} 2092 | 2093 | ansi-styles@2.2.1: {} 2094 | 2095 | ansi-styles@4.3.0: 2096 | dependencies: 2097 | color-convert: 2.0.1 2098 | 2099 | ansi-styles@6.2.3: {} 2100 | 2101 | ansi-wrap@0.1.0: {} 2102 | 2103 | anymatch@3.1.3: 2104 | dependencies: 2105 | normalize-path: 3.0.0 2106 | picomatch: 2.3.1 2107 | 2108 | argparse@2.0.1: {} 2109 | 2110 | arr-diff@1.1.0: 2111 | dependencies: 2112 | arr-flatten: 1.1.0 2113 | array-slice: 0.2.3 2114 | 2115 | arr-flatten@1.1.0: {} 2116 | 2117 | arr-union@2.1.0: {} 2118 | 2119 | array-slice@0.2.3: {} 2120 | 2121 | balanced-match@1.0.2: {} 2122 | 2123 | baseline-browser-mapping@2.8.16: {} 2124 | 2125 | binary-extensions@2.3.0: {} 2126 | 2127 | brace-expansion@1.1.12: 2128 | dependencies: 2129 | balanced-match: 1.0.2 2130 | concat-map: 0.0.1 2131 | 2132 | brace-expansion@2.0.2: 2133 | dependencies: 2134 | balanced-match: 1.0.2 2135 | 2136 | braces@3.0.3: 2137 | dependencies: 2138 | fill-range: 7.1.1 2139 | 2140 | browser-stdout@1.3.1: {} 2141 | 2142 | browserslist@4.26.3: 2143 | dependencies: 2144 | baseline-browser-mapping: 2.8.16 2145 | caniuse-lite: 1.0.30001750 2146 | electron-to-chromium: 1.5.234 2147 | node-releases: 2.0.23 2148 | update-browserslist-db: 1.1.3(browserslist@4.26.3) 2149 | 2150 | buffer-from@1.1.2: {} 2151 | 2152 | callsites@3.1.0: {} 2153 | 2154 | camelcase@6.3.0: {} 2155 | 2156 | caniuse-lite@1.0.30001750: {} 2157 | 2158 | chalk@1.1.3: 2159 | dependencies: 2160 | ansi-styles: 2.2.1 2161 | escape-string-regexp: 1.0.5 2162 | has-ansi: 2.0.0 2163 | strip-ansi: 3.0.1 2164 | supports-color: 2.0.0 2165 | 2166 | chalk@4.1.2: 2167 | dependencies: 2168 | ansi-styles: 4.3.0 2169 | supports-color: 7.2.0 2170 | 2171 | chalk@5.6.2: {} 2172 | 2173 | chokidar@3.6.0: 2174 | dependencies: 2175 | anymatch: 3.1.3 2176 | braces: 3.0.3 2177 | glob-parent: 5.1.2 2178 | is-binary-path: 2.1.0 2179 | is-glob: 4.0.3 2180 | normalize-path: 3.0.0 2181 | readdirp: 3.6.0 2182 | optionalDependencies: 2183 | fsevents: 2.3.3 2184 | 2185 | chokidar@4.0.3: 2186 | dependencies: 2187 | readdirp: 4.1.2 2188 | 2189 | chrome-trace-event@1.0.4: {} 2190 | 2191 | cli-cursor@5.0.0: 2192 | dependencies: 2193 | restore-cursor: 5.1.0 2194 | 2195 | cli-spinners@2.9.2: {} 2196 | 2197 | cliui@8.0.1: 2198 | dependencies: 2199 | string-width: 4.2.3 2200 | strip-ansi: 6.0.1 2201 | wrap-ansi: 7.0.0 2202 | 2203 | clone-buffer@1.0.0: {} 2204 | 2205 | clone-stats@1.0.0: {} 2206 | 2207 | clone@2.1.2: {} 2208 | 2209 | cloneable-readable@1.1.3: 2210 | dependencies: 2211 | inherits: 2.0.4 2212 | process-nextick-args: 2.0.1 2213 | readable-stream: 2.3.8 2214 | 2215 | color-convert@2.0.1: 2216 | dependencies: 2217 | color-name: 1.1.4 2218 | 2219 | color-name@1.1.4: {} 2220 | 2221 | color-support@1.1.3: {} 2222 | 2223 | commander@2.20.3: {} 2224 | 2225 | concat-map@0.0.1: {} 2226 | 2227 | core-util-is@1.0.3: {} 2228 | 2229 | cross-spawn@7.0.6: 2230 | dependencies: 2231 | path-key: 3.1.1 2232 | shebang-command: 2.0.0 2233 | which: 2.0.2 2234 | 2235 | debug@4.4.3: 2236 | dependencies: 2237 | ms: 2.1.3 2238 | 2239 | debug@4.4.3(supports-color@5.5.0): 2240 | dependencies: 2241 | ms: 2.1.3 2242 | optionalDependencies: 2243 | supports-color: 5.5.0 2244 | 2245 | debug@4.4.3(supports-color@8.1.1): 2246 | dependencies: 2247 | ms: 2.1.3 2248 | optionalDependencies: 2249 | supports-color: 8.1.1 2250 | 2251 | decamelize@4.0.0: {} 2252 | 2253 | deep-is@0.1.4: {} 2254 | 2255 | del@8.0.1: 2256 | dependencies: 2257 | globby: 14.1.0 2258 | is-glob: 4.0.3 2259 | is-path-cwd: 3.0.0 2260 | is-path-inside: 4.0.0 2261 | p-map: 7.0.3 2262 | presentable-error: 0.0.1 2263 | slash: 5.1.0 2264 | 2265 | diff@7.0.0: {} 2266 | 2267 | duplexer@0.1.2: {} 2268 | 2269 | eastasianwidth@0.2.0: {} 2270 | 2271 | electron-to-chromium@1.5.234: {} 2272 | 2273 | emoji-regex@10.5.0: {} 2274 | 2275 | emoji-regex@8.0.0: {} 2276 | 2277 | emoji-regex@9.2.2: {} 2278 | 2279 | enhanced-resolve@5.18.3: 2280 | dependencies: 2281 | graceful-fs: 4.2.11 2282 | tapable: 2.3.0 2283 | 2284 | es-module-lexer@1.7.0: {} 2285 | 2286 | esbuild@0.25.10: 2287 | optionalDependencies: 2288 | '@esbuild/aix-ppc64': 0.25.10 2289 | '@esbuild/android-arm': 0.25.10 2290 | '@esbuild/android-arm64': 0.25.10 2291 | '@esbuild/android-x64': 0.25.10 2292 | '@esbuild/darwin-arm64': 0.25.10 2293 | '@esbuild/darwin-x64': 0.25.10 2294 | '@esbuild/freebsd-arm64': 0.25.10 2295 | '@esbuild/freebsd-x64': 0.25.10 2296 | '@esbuild/linux-arm': 0.25.10 2297 | '@esbuild/linux-arm64': 0.25.10 2298 | '@esbuild/linux-ia32': 0.25.10 2299 | '@esbuild/linux-loong64': 0.25.10 2300 | '@esbuild/linux-mips64el': 0.25.10 2301 | '@esbuild/linux-ppc64': 0.25.10 2302 | '@esbuild/linux-riscv64': 0.25.10 2303 | '@esbuild/linux-s390x': 0.25.10 2304 | '@esbuild/linux-x64': 0.25.10 2305 | '@esbuild/netbsd-arm64': 0.25.10 2306 | '@esbuild/netbsd-x64': 0.25.10 2307 | '@esbuild/openbsd-arm64': 0.25.10 2308 | '@esbuild/openbsd-x64': 0.25.10 2309 | '@esbuild/openharmony-arm64': 0.25.10 2310 | '@esbuild/sunos-x64': 0.25.10 2311 | '@esbuild/win32-arm64': 0.25.10 2312 | '@esbuild/win32-ia32': 0.25.10 2313 | '@esbuild/win32-x64': 0.25.10 2314 | 2315 | escalade@3.2.0: {} 2316 | 2317 | escape-string-regexp@1.0.5: {} 2318 | 2319 | escape-string-regexp@4.0.0: {} 2320 | 2321 | eslint-scope@5.1.1: 2322 | dependencies: 2323 | esrecurse: 4.3.0 2324 | estraverse: 4.3.0 2325 | 2326 | eslint-scope@8.4.0: 2327 | dependencies: 2328 | esrecurse: 4.3.0 2329 | estraverse: 5.3.0 2330 | 2331 | eslint-visitor-keys@3.4.3: {} 2332 | 2333 | eslint-visitor-keys@4.2.1: {} 2334 | 2335 | eslint@9.37.0: 2336 | dependencies: 2337 | '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0) 2338 | '@eslint-community/regexpp': 4.12.1 2339 | '@eslint/config-array': 0.21.0 2340 | '@eslint/config-helpers': 0.4.0 2341 | '@eslint/core': 0.16.0 2342 | '@eslint/eslintrc': 3.3.1 2343 | '@eslint/js': 9.37.0 2344 | '@eslint/plugin-kit': 0.4.0 2345 | '@humanfs/node': 0.16.7 2346 | '@humanwhocodes/module-importer': 1.0.1 2347 | '@humanwhocodes/retry': 0.4.3 2348 | '@types/estree': 1.0.8 2349 | '@types/json-schema': 7.0.15 2350 | ajv: 6.12.6 2351 | chalk: 4.1.2 2352 | cross-spawn: 7.0.6 2353 | debug: 4.4.3 2354 | escape-string-regexp: 4.0.0 2355 | eslint-scope: 8.4.0 2356 | eslint-visitor-keys: 4.2.1 2357 | espree: 10.4.0 2358 | esquery: 1.6.0 2359 | esutils: 2.0.3 2360 | fast-deep-equal: 3.1.3 2361 | file-entry-cache: 8.0.0 2362 | find-up: 5.0.0 2363 | glob-parent: 6.0.2 2364 | ignore: 5.3.2 2365 | imurmurhash: 0.1.4 2366 | is-glob: 4.0.3 2367 | json-stable-stringify-without-jsonify: 1.0.1 2368 | lodash.merge: 4.6.2 2369 | minimatch: 3.1.2 2370 | natural-compare: 1.4.0 2371 | optionator: 0.9.4 2372 | transitivePeerDependencies: 2373 | - supports-color 2374 | 2375 | espree@10.4.0: 2376 | dependencies: 2377 | acorn: 8.15.0 2378 | acorn-jsx: 5.3.2(acorn@8.15.0) 2379 | eslint-visitor-keys: 4.2.1 2380 | 2381 | esquery@1.6.0: 2382 | dependencies: 2383 | estraverse: 5.3.0 2384 | 2385 | esrecurse@4.3.0: 2386 | dependencies: 2387 | estraverse: 5.3.0 2388 | 2389 | estraverse@4.3.0: {} 2390 | 2391 | estraverse@5.3.0: {} 2392 | 2393 | esutils@2.0.3: {} 2394 | 2395 | event-stream@3.3.5: 2396 | dependencies: 2397 | duplexer: 0.1.2 2398 | from: 0.1.7 2399 | map-stream: 0.0.7 2400 | pause-stream: 0.0.11 2401 | split: 1.0.1 2402 | stream-combiner: 0.2.2 2403 | through: 2.3.8 2404 | 2405 | events@3.3.0: {} 2406 | 2407 | extend-shallow@1.1.4: 2408 | dependencies: 2409 | kind-of: 1.1.0 2410 | 2411 | fancy-log@1.3.3: 2412 | dependencies: 2413 | ansi-gray: 0.1.1 2414 | color-support: 1.1.3 2415 | parse-node-version: 1.0.1 2416 | time-stamp: 1.1.0 2417 | 2418 | fast-deep-equal@3.1.3: {} 2419 | 2420 | fast-glob@3.3.3: 2421 | dependencies: 2422 | '@nodelib/fs.stat': 2.0.5 2423 | '@nodelib/fs.walk': 1.2.8 2424 | glob-parent: 5.1.2 2425 | merge2: 1.4.1 2426 | micromatch: 4.0.8 2427 | 2428 | fast-json-stable-stringify@2.1.0: {} 2429 | 2430 | fast-levenshtein@2.0.6: {} 2431 | 2432 | fast-uri@3.1.0: {} 2433 | 2434 | fastq@1.19.1: 2435 | dependencies: 2436 | reusify: 1.1.0 2437 | 2438 | file-entry-cache@8.0.0: 2439 | dependencies: 2440 | flat-cache: 4.0.1 2441 | 2442 | fill-range@7.1.1: 2443 | dependencies: 2444 | to-regex-range: 5.0.1 2445 | 2446 | find-up@5.0.0: 2447 | dependencies: 2448 | locate-path: 6.0.0 2449 | path-exists: 4.0.0 2450 | 2451 | flat-cache@4.0.1: 2452 | dependencies: 2453 | flatted: 3.3.3 2454 | keyv: 4.5.4 2455 | 2456 | flat@5.0.2: {} 2457 | 2458 | flatted@3.3.3: {} 2459 | 2460 | foreground-child@3.3.1: 2461 | dependencies: 2462 | cross-spawn: 7.0.6 2463 | signal-exit: 4.1.0 2464 | 2465 | from@0.1.7: {} 2466 | 2467 | fs-extra@10.1.0: 2468 | dependencies: 2469 | graceful-fs: 4.2.11 2470 | jsonfile: 6.2.0 2471 | universalify: 2.0.1 2472 | 2473 | fs.realpath@1.0.0: {} 2474 | 2475 | fsevents@2.3.3: 2476 | optional: true 2477 | 2478 | get-caller-file@2.0.5: {} 2479 | 2480 | get-east-asian-width@1.4.0: {} 2481 | 2482 | glob-parent@5.1.2: 2483 | dependencies: 2484 | is-glob: 4.0.3 2485 | 2486 | glob-parent@6.0.2: 2487 | dependencies: 2488 | is-glob: 4.0.3 2489 | 2490 | glob-to-regexp@0.4.1: {} 2491 | 2492 | glob@10.4.5: 2493 | dependencies: 2494 | foreground-child: 3.3.1 2495 | jackspeak: 3.4.3 2496 | minimatch: 9.0.5 2497 | minipass: 7.1.2 2498 | package-json-from-dist: 1.0.1 2499 | path-scurry: 1.11.1 2500 | 2501 | glob@11.0.3: 2502 | dependencies: 2503 | foreground-child: 3.3.1 2504 | jackspeak: 4.1.1 2505 | minimatch: 10.0.3 2506 | minipass: 7.1.2 2507 | package-json-from-dist: 1.0.1 2508 | path-scurry: 2.0.0 2509 | 2510 | glob@7.2.3: 2511 | dependencies: 2512 | fs.realpath: 1.0.0 2513 | inflight: 1.0.6 2514 | inherits: 2.0.4 2515 | minimatch: 3.1.2 2516 | once: 1.4.0 2517 | path-is-absolute: 1.0.1 2518 | 2519 | globals@14.0.0: {} 2520 | 2521 | globby@14.1.0: 2522 | dependencies: 2523 | '@sindresorhus/merge-streams': 2.3.0 2524 | fast-glob: 3.3.3 2525 | ignore: 7.0.5 2526 | path-type: 6.0.0 2527 | slash: 5.1.0 2528 | unicorn-magic: 0.3.0 2529 | 2530 | graceful-fs@4.2.11: {} 2531 | 2532 | graphemer@1.4.0: {} 2533 | 2534 | has-ansi@2.0.0: 2535 | dependencies: 2536 | ansi-regex: 2.1.1 2537 | 2538 | has-flag@3.0.0: {} 2539 | 2540 | has-flag@4.0.0: {} 2541 | 2542 | he@1.2.0: {} 2543 | 2544 | http-proxy-agent@7.0.2: 2545 | dependencies: 2546 | agent-base: 7.1.4 2547 | debug: 4.4.3 2548 | transitivePeerDependencies: 2549 | - supports-color 2550 | 2551 | https-proxy-agent@7.0.6: 2552 | dependencies: 2553 | agent-base: 7.1.4 2554 | debug: 4.4.3 2555 | transitivePeerDependencies: 2556 | - supports-color 2557 | 2558 | iconv-lite@0.6.3: 2559 | dependencies: 2560 | safer-buffer: 2.1.2 2561 | 2562 | ignore-by-default@1.0.1: {} 2563 | 2564 | ignore@5.3.2: {} 2565 | 2566 | ignore@7.0.5: {} 2567 | 2568 | immediate@3.0.6: {} 2569 | 2570 | import-fresh@3.3.1: 2571 | dependencies: 2572 | parent-module: 1.0.1 2573 | resolve-from: 4.0.0 2574 | 2575 | imurmurhash@0.1.4: {} 2576 | 2577 | inflight@1.0.6: 2578 | dependencies: 2579 | once: 1.4.0 2580 | wrappy: 1.0.2 2581 | 2582 | inherits@2.0.4: {} 2583 | 2584 | is-binary-path@2.1.0: 2585 | dependencies: 2586 | binary-extensions: 2.3.0 2587 | 2588 | is-extglob@2.1.1: {} 2589 | 2590 | is-fullwidth-code-point@3.0.0: {} 2591 | 2592 | is-glob@4.0.3: 2593 | dependencies: 2594 | is-extglob: 2.1.1 2595 | 2596 | is-interactive@2.0.0: {} 2597 | 2598 | is-number@7.0.0: {} 2599 | 2600 | is-path-cwd@3.0.0: {} 2601 | 2602 | is-path-inside@3.0.3: {} 2603 | 2604 | is-path-inside@4.0.0: {} 2605 | 2606 | is-plain-obj@2.1.0: {} 2607 | 2608 | is-unicode-supported@0.1.0: {} 2609 | 2610 | is-unicode-supported@1.3.0: {} 2611 | 2612 | is-unicode-supported@2.1.0: {} 2613 | 2614 | is@3.3.2: {} 2615 | 2616 | isarray@1.0.0: {} 2617 | 2618 | isexe@2.0.0: {} 2619 | 2620 | jackspeak@3.4.3: 2621 | dependencies: 2622 | '@isaacs/cliui': 8.0.2 2623 | optionalDependencies: 2624 | '@pkgjs/parseargs': 0.11.0 2625 | 2626 | jackspeak@4.1.1: 2627 | dependencies: 2628 | '@isaacs/cliui': 8.0.2 2629 | 2630 | jest-worker@27.5.1: 2631 | dependencies: 2632 | '@types/node': 24.7.2 2633 | merge-stream: 2.0.0 2634 | supports-color: 8.1.1 2635 | 2636 | js-yaml@4.1.0: 2637 | dependencies: 2638 | argparse: 2.0.1 2639 | 2640 | json-buffer@3.0.1: {} 2641 | 2642 | json-parse-even-better-errors@2.3.1: {} 2643 | 2644 | json-schema-traverse@0.4.1: {} 2645 | 2646 | json-schema-traverse@1.0.0: {} 2647 | 2648 | json-stable-stringify-without-jsonify@1.0.1: {} 2649 | 2650 | json5@2.2.3: {} 2651 | 2652 | jsonfile@6.2.0: 2653 | dependencies: 2654 | universalify: 2.0.1 2655 | optionalDependencies: 2656 | graceful-fs: 4.2.11 2657 | 2658 | jszip@3.10.1: 2659 | dependencies: 2660 | lie: 3.3.0 2661 | pako: 1.0.11 2662 | readable-stream: 2.3.8 2663 | setimmediate: 1.0.5 2664 | 2665 | keyv@4.5.4: 2666 | dependencies: 2667 | json-buffer: 3.0.1 2668 | 2669 | kind-of@1.1.0: {} 2670 | 2671 | levn@0.4.1: 2672 | dependencies: 2673 | prelude-ls: 1.2.1 2674 | type-check: 0.4.0 2675 | 2676 | lie@3.3.0: 2677 | dependencies: 2678 | immediate: 3.0.6 2679 | 2680 | loader-runner@4.3.1: {} 2681 | 2682 | locate-path@6.0.0: 2683 | dependencies: 2684 | p-locate: 5.0.0 2685 | 2686 | lodash.merge@4.6.2: {} 2687 | 2688 | log-symbols@4.1.0: 2689 | dependencies: 2690 | chalk: 4.1.2 2691 | is-unicode-supported: 0.1.0 2692 | 2693 | log-symbols@6.0.0: 2694 | dependencies: 2695 | chalk: 5.6.2 2696 | is-unicode-supported: 1.3.0 2697 | 2698 | lru-cache@10.4.3: {} 2699 | 2700 | lru-cache@11.2.2: {} 2701 | 2702 | map-stream@0.0.7: {} 2703 | 2704 | merge-stream@2.0.0: {} 2705 | 2706 | merge2@1.4.1: {} 2707 | 2708 | micromatch@4.0.8: 2709 | dependencies: 2710 | braces: 3.0.3 2711 | picomatch: 2.3.1 2712 | 2713 | mime-db@1.52.0: {} 2714 | 2715 | mime-types@2.1.35: 2716 | dependencies: 2717 | mime-db: 1.52.0 2718 | 2719 | mimic-function@5.0.1: {} 2720 | 2721 | minimatch@10.0.3: 2722 | dependencies: 2723 | '@isaacs/brace-expansion': 5.0.0 2724 | 2725 | minimatch@3.1.2: 2726 | dependencies: 2727 | brace-expansion: 1.1.12 2728 | 2729 | minimatch@9.0.5: 2730 | dependencies: 2731 | brace-expansion: 2.0.2 2732 | 2733 | minipass@7.1.2: {} 2734 | 2735 | mocha@11.7.4: 2736 | dependencies: 2737 | browser-stdout: 1.3.1 2738 | chokidar: 4.0.3 2739 | debug: 4.4.3(supports-color@8.1.1) 2740 | diff: 7.0.0 2741 | escape-string-regexp: 4.0.0 2742 | find-up: 5.0.0 2743 | glob: 10.4.5 2744 | he: 1.2.0 2745 | is-path-inside: 3.0.3 2746 | js-yaml: 4.1.0 2747 | log-symbols: 4.1.0 2748 | minimatch: 9.0.5 2749 | ms: 2.1.3 2750 | picocolors: 1.1.1 2751 | serialize-javascript: 6.0.2 2752 | strip-json-comments: 3.1.1 2753 | supports-color: 8.1.1 2754 | workerpool: 9.3.4 2755 | yargs: 17.7.2 2756 | yargs-parser: 21.1.1 2757 | yargs-unparser: 2.0.0 2758 | 2759 | ms@2.1.3: {} 2760 | 2761 | natural-compare@1.4.0: {} 2762 | 2763 | neo-async@2.6.2: {} 2764 | 2765 | node-releases@2.0.23: {} 2766 | 2767 | nodemon@3.1.10: 2768 | dependencies: 2769 | chokidar: 3.6.0 2770 | debug: 4.4.3(supports-color@5.5.0) 2771 | ignore-by-default: 1.0.1 2772 | minimatch: 3.1.2 2773 | pstree.remy: 1.1.8 2774 | semver: 7.7.3 2775 | simple-update-notifier: 2.0.0 2776 | supports-color: 5.5.0 2777 | touch: 3.1.1 2778 | undefsafe: 2.0.5 2779 | 2780 | normalize-path@3.0.0: {} 2781 | 2782 | once@1.4.0: 2783 | dependencies: 2784 | wrappy: 1.0.2 2785 | 2786 | onetime@7.0.0: 2787 | dependencies: 2788 | mimic-function: 5.0.1 2789 | 2790 | optionator@0.9.4: 2791 | dependencies: 2792 | deep-is: 0.1.4 2793 | fast-levenshtein: 2.0.6 2794 | levn: 0.4.1 2795 | prelude-ls: 1.2.1 2796 | type-check: 0.4.0 2797 | word-wrap: 1.2.5 2798 | 2799 | ora@8.2.0: 2800 | dependencies: 2801 | chalk: 5.6.2 2802 | cli-cursor: 5.0.0 2803 | cli-spinners: 2.9.2 2804 | is-interactive: 2.0.0 2805 | is-unicode-supported: 2.1.0 2806 | log-symbols: 6.0.0 2807 | stdin-discarder: 0.2.2 2808 | string-width: 7.2.0 2809 | strip-ansi: 7.1.2 2810 | 2811 | p-limit@3.1.0: 2812 | dependencies: 2813 | yocto-queue: 0.1.0 2814 | 2815 | p-locate@5.0.0: 2816 | dependencies: 2817 | p-limit: 3.1.0 2818 | 2819 | p-map@7.0.3: {} 2820 | 2821 | package-json-from-dist@1.0.1: {} 2822 | 2823 | pako@1.0.11: {} 2824 | 2825 | parent-module@1.0.1: 2826 | dependencies: 2827 | callsites: 3.1.0 2828 | 2829 | parse-node-version@1.0.1: {} 2830 | 2831 | path-exists@4.0.0: {} 2832 | 2833 | path-is-absolute@1.0.1: {} 2834 | 2835 | path-key@3.1.1: {} 2836 | 2837 | path-scurry@1.11.1: 2838 | dependencies: 2839 | lru-cache: 10.4.3 2840 | minipass: 7.1.2 2841 | 2842 | path-scurry@2.0.0: 2843 | dependencies: 2844 | lru-cache: 11.2.2 2845 | minipass: 7.1.2 2846 | 2847 | path-type@6.0.0: {} 2848 | 2849 | pause-stream@0.0.11: 2850 | dependencies: 2851 | through: 2.3.8 2852 | 2853 | picocolors@1.1.1: {} 2854 | 2855 | picomatch@2.3.1: {} 2856 | 2857 | plugin-error@0.1.2: 2858 | dependencies: 2859 | ansi-cyan: 0.1.1 2860 | ansi-red: 0.1.1 2861 | arr-diff: 1.1.0 2862 | arr-union: 2.1.0 2863 | extend-shallow: 1.1.4 2864 | 2865 | prelude-ls@1.2.1: {} 2866 | 2867 | presentable-error@0.0.1: {} 2868 | 2869 | process-nextick-args@2.0.1: {} 2870 | 2871 | pstree.remy@1.1.8: {} 2872 | 2873 | punycode@2.3.1: {} 2874 | 2875 | queue-microtask@1.2.3: {} 2876 | 2877 | randombytes@2.1.0: 2878 | dependencies: 2879 | safe-buffer: 5.2.1 2880 | 2881 | readable-stream@2.3.8: 2882 | dependencies: 2883 | core-util-is: 1.0.3 2884 | inherits: 2.0.4 2885 | isarray: 1.0.0 2886 | process-nextick-args: 2.0.1 2887 | safe-buffer: 5.1.2 2888 | string_decoder: 1.1.1 2889 | util-deprecate: 1.0.2 2890 | 2891 | readdirp@3.6.0: 2892 | dependencies: 2893 | picomatch: 2.3.1 2894 | 2895 | readdirp@4.1.2: {} 2896 | 2897 | remove-trailing-separator@1.1.0: {} 2898 | 2899 | replace-ext@1.0.1: {} 2900 | 2901 | require-directory@2.1.1: {} 2902 | 2903 | require-from-string@2.0.2: {} 2904 | 2905 | resolve-from@4.0.0: {} 2906 | 2907 | restore-cursor@5.1.0: 2908 | dependencies: 2909 | onetime: 7.0.0 2910 | signal-exit: 4.1.0 2911 | 2912 | reusify@1.1.0: {} 2913 | 2914 | run-parallel@1.2.0: 2915 | dependencies: 2916 | queue-microtask: 1.2.3 2917 | 2918 | run-sequence@2.2.1: 2919 | dependencies: 2920 | chalk: 1.1.3 2921 | fancy-log: 1.3.3 2922 | plugin-error: 0.1.2 2923 | 2924 | safe-buffer@5.1.2: {} 2925 | 2926 | safe-buffer@5.2.1: {} 2927 | 2928 | safer-buffer@2.1.2: {} 2929 | 2930 | sax@1.4.1: {} 2931 | 2932 | schema-utils@4.3.3: 2933 | dependencies: 2934 | '@types/json-schema': 7.0.15 2935 | ajv: 8.17.1 2936 | ajv-formats: 2.1.1(ajv@8.17.1) 2937 | ajv-keywords: 5.1.0(ajv@8.17.1) 2938 | 2939 | semver@7.7.3: {} 2940 | 2941 | serialize-javascript@6.0.2: 2942 | dependencies: 2943 | randombytes: 2.1.0 2944 | 2945 | setimmediate@1.0.5: {} 2946 | 2947 | shebang-command@2.0.0: 2948 | dependencies: 2949 | shebang-regex: 3.0.0 2950 | 2951 | shebang-regex@3.0.0: {} 2952 | 2953 | signal-exit@4.1.0: {} 2954 | 2955 | simple-update-notifier@2.0.0: 2956 | dependencies: 2957 | semver: 7.7.3 2958 | 2959 | slash@5.1.0: {} 2960 | 2961 | source-map-support@0.5.21: 2962 | dependencies: 2963 | buffer-from: 1.1.2 2964 | source-map: 0.6.1 2965 | 2966 | source-map@0.6.1: {} 2967 | 2968 | source-map@0.7.6: {} 2969 | 2970 | split@1.0.1: 2971 | dependencies: 2972 | through: 2.3.8 2973 | 2974 | stdin-discarder@0.2.2: {} 2975 | 2976 | stream-combiner@0.2.2: 2977 | dependencies: 2978 | duplexer: 0.1.2 2979 | through: 2.3.8 2980 | 2981 | string-width@4.2.3: 2982 | dependencies: 2983 | emoji-regex: 8.0.0 2984 | is-fullwidth-code-point: 3.0.0 2985 | strip-ansi: 6.0.1 2986 | 2987 | string-width@5.1.2: 2988 | dependencies: 2989 | eastasianwidth: 0.2.0 2990 | emoji-regex: 9.2.2 2991 | strip-ansi: 7.1.2 2992 | 2993 | string-width@7.2.0: 2994 | dependencies: 2995 | emoji-regex: 10.5.0 2996 | get-east-asian-width: 1.4.0 2997 | strip-ansi: 7.1.2 2998 | 2999 | string_decoder@1.1.1: 3000 | dependencies: 3001 | safe-buffer: 5.1.2 3002 | 3003 | strip-ansi@3.0.1: 3004 | dependencies: 3005 | ansi-regex: 2.1.1 3006 | 3007 | strip-ansi@6.0.1: 3008 | dependencies: 3009 | ansi-regex: 5.0.1 3010 | 3011 | strip-ansi@7.1.2: 3012 | dependencies: 3013 | ansi-regex: 6.2.2 3014 | 3015 | strip-json-comments@3.1.1: {} 3016 | 3017 | supports-color@2.0.0: {} 3018 | 3019 | supports-color@5.5.0: 3020 | dependencies: 3021 | has-flag: 3.0.0 3022 | 3023 | supports-color@7.2.0: 3024 | dependencies: 3025 | has-flag: 4.0.0 3026 | 3027 | supports-color@8.1.1: 3028 | dependencies: 3029 | has-flag: 4.0.0 3030 | 3031 | tapable@2.3.0: {} 3032 | 3033 | terser-webpack-plugin@5.3.14(esbuild@0.25.10)(webpack@5.102.1(esbuild@0.25.10)): 3034 | dependencies: 3035 | '@jridgewell/trace-mapping': 0.3.31 3036 | jest-worker: 27.5.1 3037 | schema-utils: 4.3.3 3038 | serialize-javascript: 6.0.2 3039 | terser: 5.44.0 3040 | webpack: 5.102.1(esbuild@0.25.10) 3041 | optionalDependencies: 3042 | esbuild: 0.25.10 3043 | 3044 | terser@5.44.0: 3045 | dependencies: 3046 | '@jridgewell/source-map': 0.3.11 3047 | acorn: 8.15.0 3048 | commander: 2.20.3 3049 | source-map-support: 0.5.21 3050 | 3051 | through@2.3.8: {} 3052 | 3053 | time-stamp@1.1.0: {} 3054 | 3055 | to-regex-range@5.0.1: 3056 | dependencies: 3057 | is-number: 7.0.0 3058 | 3059 | touch@3.1.1: {} 3060 | 3061 | ts-api-utils@2.1.0(typescript@5.9.3): 3062 | dependencies: 3063 | typescript: 5.9.3 3064 | 3065 | ts-loader@9.5.4(typescript@5.9.3)(webpack@5.102.1(esbuild@0.25.10)): 3066 | dependencies: 3067 | chalk: 4.1.2 3068 | enhanced-resolve: 5.18.3 3069 | micromatch: 4.0.8 3070 | semver: 7.7.3 3071 | source-map: 0.7.6 3072 | typescript: 5.9.3 3073 | webpack: 5.102.1(esbuild@0.25.10) 3074 | 3075 | type-check@0.4.0: 3076 | dependencies: 3077 | prelude-ls: 1.2.1 3078 | 3079 | typescript@4.9.5: {} 3080 | 3081 | typescript@5.9.3: {} 3082 | 3083 | undefsafe@2.0.5: {} 3084 | 3085 | undici-types@7.14.0: {} 3086 | 3087 | unicorn-magic@0.3.0: {} 3088 | 3089 | universalify@2.0.1: {} 3090 | 3091 | update-browserslist-db@1.1.3(browserslist@4.26.3): 3092 | dependencies: 3093 | browserslist: 4.26.3 3094 | escalade: 3.2.0 3095 | picocolors: 1.1.1 3096 | 3097 | uri-js@4.4.1: 3098 | dependencies: 3099 | punycode: 2.3.1 3100 | 3101 | util-deprecate@1.0.2: {} 3102 | 3103 | vinyl@2.2.1: 3104 | dependencies: 3105 | clone: 2.1.2 3106 | clone-buffer: 1.0.0 3107 | clone-stats: 1.0.0 3108 | cloneable-readable: 1.1.3 3109 | remove-trailing-separator: 1.1.0 3110 | replace-ext: 1.0.1 3111 | 3112 | vscode-nls-dev@4.0.4: 3113 | dependencies: 3114 | ansi-colors: 4.1.3 3115 | clone: 2.1.2 3116 | event-stream: 3.3.5 3117 | fancy-log: 1.3.3 3118 | glob: 7.2.3 3119 | iconv-lite: 0.6.3 3120 | is: 3.3.2 3121 | source-map: 0.6.1 3122 | typescript: 4.9.5 3123 | vinyl: 2.2.1 3124 | xml2js: 0.5.0 3125 | yargs: 17.7.2 3126 | 3127 | vscode-nls@5.2.0: {} 3128 | 3129 | watchpack@2.4.4: 3130 | dependencies: 3131 | glob-to-regexp: 0.4.1 3132 | graceful-fs: 4.2.11 3133 | 3134 | webpack-sources@3.3.3: {} 3135 | 3136 | webpack@5.102.1(esbuild@0.25.10): 3137 | dependencies: 3138 | '@types/eslint-scope': 3.7.7 3139 | '@types/estree': 1.0.8 3140 | '@types/json-schema': 7.0.15 3141 | '@webassemblyjs/ast': 1.14.1 3142 | '@webassemblyjs/wasm-edit': 1.14.1 3143 | '@webassemblyjs/wasm-parser': 1.14.1 3144 | acorn: 8.15.0 3145 | acorn-import-phases: 1.0.4(acorn@8.15.0) 3146 | browserslist: 4.26.3 3147 | chrome-trace-event: 1.0.4 3148 | enhanced-resolve: 5.18.3 3149 | es-module-lexer: 1.7.0 3150 | eslint-scope: 5.1.1 3151 | events: 3.3.0 3152 | glob-to-regexp: 0.4.1 3153 | graceful-fs: 4.2.11 3154 | json-parse-even-better-errors: 2.3.1 3155 | loader-runner: 4.3.1 3156 | mime-types: 2.1.35 3157 | neo-async: 2.6.2 3158 | schema-utils: 4.3.3 3159 | tapable: 2.3.0 3160 | terser-webpack-plugin: 5.3.14(esbuild@0.25.10)(webpack@5.102.1(esbuild@0.25.10)) 3161 | watchpack: 2.4.4 3162 | webpack-sources: 3.3.3 3163 | transitivePeerDependencies: 3164 | - '@swc/core' 3165 | - esbuild 3166 | - uglify-js 3167 | 3168 | which@2.0.2: 3169 | dependencies: 3170 | isexe: 2.0.0 3171 | 3172 | word-wrap@1.2.5: {} 3173 | 3174 | workerpool@9.3.4: {} 3175 | 3176 | wrap-ansi@7.0.0: 3177 | dependencies: 3178 | ansi-styles: 4.3.0 3179 | string-width: 4.2.3 3180 | strip-ansi: 6.0.1 3181 | 3182 | wrap-ansi@8.1.0: 3183 | dependencies: 3184 | ansi-styles: 6.2.3 3185 | string-width: 5.1.2 3186 | strip-ansi: 7.1.2 3187 | 3188 | wrappy@1.0.2: {} 3189 | 3190 | xml2js@0.5.0: 3191 | dependencies: 3192 | sax: 1.4.1 3193 | xmlbuilder: 11.0.1 3194 | 3195 | xmlbuilder@11.0.1: {} 3196 | 3197 | y18n@5.0.8: {} 3198 | 3199 | yargs-parser@21.1.1: {} 3200 | 3201 | yargs-unparser@2.0.0: 3202 | dependencies: 3203 | camelcase: 6.3.0 3204 | decamelize: 4.0.0 3205 | flat: 5.0.2 3206 | is-plain-obj: 2.1.0 3207 | 3208 | yargs@17.7.2: 3209 | dependencies: 3210 | cliui: 8.0.1 3211 | escalade: 3.2.0 3212 | get-caller-file: 2.0.5 3213 | require-directory: 2.1.1 3214 | string-width: 4.2.3 3215 | y18n: 5.0.8 3216 | yargs-parser: 21.1.1 3217 | 3218 | yocto-queue@0.1.0: {} 3219 | --------------------------------------------------------------------------------