├── .gitignore ├── .vscode-test.mjs ├── .vscode ├── extensions.json ├── launch.json ├── settings.json └── tasks.json ├── CHANGELOG.md ├── LICENSE ├── README.md ├── README_zh.md ├── eslint.config.mjs ├── images ├── icon.png └── switch-show.gif ├── package.json ├── pnpm-lock.yaml ├── src ├── extension.ts └── test │ └── extension.test.ts └── tsconfig.json /.gitignore: -------------------------------------------------------------------------------- 1 | out 2 | dist 3 | node_modules 4 | .vscode-test/ 5 | *.vsix 6 | .DS_Store 7 | .idea -------------------------------------------------------------------------------- /.vscode-test.mjs: -------------------------------------------------------------------------------- 1 | import { defineConfig } from '@vscode/test-cli'; 2 | 3 | export default defineConfig({ 4 | files: 'out/test/**/*.test.js', 5 | }); 6 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // See http://go.microsoft.com/fwlink/?LinkId=827846 3 | // for the documentation about the extensions.json format 4 | "recommendations": [ 5 | "dbaeumer.vscode-eslint", 6 | "ms-vscode.extension-test-runner" 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /.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": "Run Extension", 10 | "type": "extensionHost", 11 | "request": "launch", 12 | "args": [ 13 | "--extensionDevelopmentPath=${workspaceFolder}" 14 | ], 15 | "outFiles": [ 16 | "${workspaceFolder}/out/**/*.js" 17 | ], 18 | "preLaunchTask": "${defaultBuildTask}" 19 | } 20 | ] 21 | } 22 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | // Place your settings in this file to overwrite default and user settings. 2 | { 3 | "files.exclude": { 4 | "out": false // set this to true to hide the "out" folder with the compiled JS files 5 | }, 6 | "search.exclude": { 7 | "out": true // set this to false to include "out" folder in search results 8 | }, 9 | // Turn off tsc task auto detection since we have the necessary tasks as npm scripts 10 | "typescript.tsc.autoDetect": "off" 11 | } 12 | -------------------------------------------------------------------------------- /.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 | "type": "npm", 8 | "script": "watch", 9 | "problemMatcher": "$tsc-watch", 10 | "isBackground": true, 11 | "presentation": { 12 | "reveal": "never" 13 | }, 14 | "group": { 15 | "kind": "build", 16 | "isDefault": true 17 | } 18 | } 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # 更新日志 2 | 3 | 本文档记录 "Switch2IDEA" 扩展的所有重要更新。 4 | 5 | ## [1.0.0] 6 | 7 | ### 新增功能 8 | 9 | - 快速在 IDEA 中打开当前文件 10 | - 自动定位到 VS Code 相同的光标位置 11 | - 右键菜单直接打开文件到 IDEA 12 | - 一键打开整个项目到 IDEA 13 | 14 | ## [1.0.1] 15 | 16 | ### Bug 修复 17 | 18 | - 修复 macOS 上可能无法打开 IDEA 的问题 19 | 20 | ## [1.0.2] 21 | 22 | ### 代码优化 23 | 24 | - 移除多余的快捷键配置 25 | 26 | ## [1.0.3] 27 | 28 | ### 代码优化 29 | 30 | - 增加对 EPIPE 错误的捕获 -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2025 qczone 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 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Switch2IDEA 2 | 3 | [中文](README_zh.md) 4 | 5 | > 💡 Recommended to use with [Switch2Cursor](https://github.com/qczone/switch2cursor) in IDEA 6 | 7 | [![Visual Studio Marketplace](https://img.shields.io/visual-studio-marketplace/v/qczone.switch2idea?label=VS%20Marketplace&style=for-the-badge&logo=visual-studio-code)](https://marketplace.visualstudio.com/items?itemName=qczone.switch2idea) 8 | [![Downloads](https://img.shields.io/visual-studio-marketplace/d/qczone.switch2idea?style=for-the-badge&logo=visual-studio-code)](https://marketplace.visualstudio.com/items?itemName=qczone.switch2idea) 9 | [![License](https://img.shields.io/badge/license-MIT-blue.svg?style=for-the-badge)](LICENSE) 10 | 11 | ## 🔍 Project Overview 12 | 13 | A Cursor extension that enhances development efficiency by enabling smooth switching between Cursor and IDEA 14 | 15 | ![Switch2IDEA Demo](images/switch-show.gif) 16 | 17 | ## 🌟 Features 18 | 19 | - 🚀 Seamless Editor Switching 20 | - One-click switching between Cursor and IDEA 21 | - Automatically positions to the same cursor location (line and column) 22 | - Perfectly maintains editing context without interrupting workflow 23 | - ⌨️ Convenient Shortcut Support 24 | - macOS: 25 | - `Option+Shift+P` - Open project in IDEA 26 | - `Option+Shift+O` - Open current file in IDEA 27 | - Windows: 28 | - `Alt+Shift+P` - Open project in IDEA 29 | - `Alt+Shift+O` - Open current file in IDEA 30 | - 🔧 Multiple Access Methods 31 | - Keyboard shortcuts 32 | - Editor context menu 33 | - File explorer context menu 34 | 35 | ## 🛠️ Installation Guide 36 | 37 | ### Method 1: Install from Extension Marketplace 38 | 39 | 1. Click [here](https://marketplace.visualstudio.com/items?itemName=qczone.switch2idea) to install 40 | 2. Search for "Switch2IDEA" in the Cursor extension marketplace and install 41 | 42 | ### Method 2: Local Installation 43 | 44 | 1. Download the latest extension package 45 | 2. In Cursor, select `Extensions` → `...` → `Install from VSIX` 46 | 3. Select the downloaded extension package to complete installation 47 | 48 | ## 🚀 Usage Instructions 49 | 50 | ### Basic Usage 51 | 52 | #### Open Project 53 | 54 | - Shortcut: `Alt+Shift+P` 55 | - Context Menu: Right-click in file explorer → `Open Project in IDEA` 56 | 57 | #### Open Current File 58 | 59 | - Shortcut: `Alt+Shift+O` 60 | - Context Menu: 61 | - Right-click in editor → `Open File in IDEA` 62 | - Right-click in file explorer → `Open File in IDEA` 63 | 64 | ### Configuration 65 | 66 | Open Cursor settings, click `General` → `Editor` → `open editor settings` → `Extensions` → `Switch2IDEA` → `Idea Path` 67 | 68 | - macOS: Automatically traverses common IDEA installation paths 69 | - Windows: Default `C:\Program Files\JetBrains\IntelliJ IDEA\bin\idea64.exe` 70 | - Linux: Default `idea` 71 | 72 | ### Requirements 73 | 74 | - Cursor 1.93.1+ 75 | - IntelliJ IDEA or other JetBrains IDEs 76 | 77 | ## 🧑‍💻 Developer Guide 78 | 79 | Issues and Pull Requests are welcome to improve this extension. 80 | 81 | ## 🙋 FAQ 82 | 83 | ### 1. No jump to IDEA after using shortcut/right-click menu? 84 | 85 | Please check the following steps: 86 | 87 | 1. Open Cursor settings, click `General` → `Editor` → `open editor settings` → `Extensions` → `Switch2IDEA` 88 | 2. Verify that Idea Path is correctly configured to IDEA's executable path 89 | 90 | ### 2. Does it support jumping to other IDEs? 91 | 92 | Yes, you can configure Idea Path to the executable path of other JetBrains IDEs 93 | 94 | ### 3. How to define different IDEs for different projects? 95 | 96 | You can configure IDE paths separately for each workspace: 97 | 98 | 1. Open Cursor settings, click `General` → `Editor` → `open editor settings` 99 | 2. Select the `Workspace` tab 100 | 3. Navigate to `Extensions` → `Switch2IDEA` → `ideaPath` 101 | 4. Enter the IDE path needed for that project 102 | 103 | Configuration examples: 104 | 105 | - Frontend project: Configure WebStorm path 106 | - Spring Boot project: Configure IDEA path 107 | - Python project: Configure PyCharm path 108 | 109 | ## 📄 License 110 | 111 | This project is licensed under the [MIT License](LICENSE) 112 | 113 | ## 📮 Feedback 114 | 115 | If you encounter issues or have suggestions, please provide feedback through: 116 | 117 | - [Submit GitHub Issue](https://github.com/qczone/switch2idea/issues) 118 | 119 | ## 🌟 Star History 120 | 121 | [![Star History Chart](https://api.star-history.com/svg?repos=qczone/switch2idea&type=Date)](https://star-history.com/#qczone/switch2idea&Date) -------------------------------------------------------------------------------- /README_zh.md: -------------------------------------------------------------------------------- 1 | # Switch2IDEA 2 | 3 | [English](README.md) 4 | 5 | > 💡 推荐在 IDEA 中配合 [Switch2Cursor](https://github.com/qczone/switch2cursor) 使用 6 | 7 | [![Visual Studio Marketplace](https://img.shields.io/visual-studio-marketplace/v/qczone.switch2idea?label=VS%20Marketplace&style=for-the-badge&logo=visual-studio-code)](https://marketplace.visualstudio.com/items?itemName=qczone.switch2idea) 8 | [![Downloads](https://img.shields.io/visual-studio-marketplace/d/qczone.switch2idea?style=for-the-badge&logo=visual-studio-code)](https://marketplace.visualstudio.com/items?itemName=qczone.switch2idea) 9 | [![License](https://img.shields.io/badge/license-MIT-blue.svg?style=for-the-badge)](LICENSE) 10 | 11 | ## 🔍 项目简介 12 | 13 | 一个提升开发效率的 Cursor 扩展,让你在 Cursor 和 IDEA 之间实现丝滑切换 14 | 15 | ![Switch2IDEA演示](images/switch-show.gif) 16 | 17 | ## 🌟 功能特性 18 | 19 | - 🚀 无缝编辑器切换 20 | 21 | - 在 Cursor 和 IDEA 之间一键切换 22 | - 自动定位到相同的光标位置(行号和列号) 23 | - 完美保持编辑上下文,不中断思路 24 | - ⌨️ 便捷的快捷键支持 25 | 26 | - macOS: 27 | - `Option+Shift+P` - 在 IDEA 中打开整个项目 28 | - `Option+Shift+O` - 在 IDEA 中打开当前文件 29 | - Windows: 30 | - `Alt+Shift+P` - 在 IDEA 中打开整个项目 31 | - `Alt+Shift+O` - 在 IDEA 中打开当前文件 32 | - 🔧 多样化的访问方式 33 | 34 | - 快捷键操作 35 | - 编辑器右键菜单 36 | - 文件浏览器右键菜单 37 | 38 | ## 🛠️ 安装指南 39 | 40 | ### 方式一:通过扩展市场安装 41 | 42 | 1. 点击 [这里](https://marketplace.visualstudio.com/items?itemName=qczone.switch2idea) 安装 43 | 2. 在 Cursor 扩展市场中搜索 "Switch2IDEA" 并安装 44 | 45 | ### 方式二:本地安装 46 | 47 | 1. 下载最新版扩展包 48 | 2. 在 Cursor 中,选择 `Extensions` → `...` → `Install from VSIX` 49 | 3. 选择下载的扩展包完成安装 50 | 51 | ## 🚀 使用说明 52 | 53 | ### 基础使用 54 | 55 | #### 打开项目 56 | 57 | - 快捷键:`Alt+Shift+P` 58 | - 右键菜单:在文件浏览器中右键 → `Open Project in IDEA` 59 | 60 | #### 打开当前文件 61 | 62 | - 快捷键:`Alt+Shift+O` 63 | - 右键菜单: 64 | - 在编辑器中右键 → `Open File in IDEA` 65 | - 在文件浏览器中右键 → `Open File in IDEA` 66 | 67 | ### 配置 68 | 69 | 打开 Cursor 设置,点击 `General` → `Editor` → `open editor settings` → `Extensions` → `Switch2IDEA` → `Idea Path` 70 | 71 | - macOS:自动遍历 IDEA 常用安装路径 72 | - Windows:默认 `C:\Program Files\JetBrains\IntelliJ IDEA\bin\idea64.exe` 73 | - Linux:默认 `idea` 74 | 75 | ### 环境要求 76 | 77 | - Cursor 1.93.1+ 78 | - IntelliJ IDEA 或其他 JetBrains IDE 79 | 80 | ## 🧑‍💻 开发者指南 81 | 82 | 欢迎提交 Issue 和 Pull Request 来改进这个扩展。 83 | 84 | ## 🙋 常见问题 85 | 86 | ### 1. 快捷键/点击右键菜单后没有跳转到 IDEA? 87 | 88 | 请按以下步骤检查: 89 | 90 | 1. 打开 Cursor 设置,点击 `General` → `Editor` → `open editor settings` → `Extensions` → `Switch2IDEA` 91 | 2. 确认 Idea Path 是否正确配置成 IDEA 的可执行文件路径 92 | 93 | ### 2. 是否支持跳转到其他 IDE? 94 | 95 | 支持,您可以配置 Idea Path 为其他 JetBrains IDE 的可执行文件路径 96 | 97 | ### 3. 如何定义不同项目跳转不同 IDE? 98 | 99 | 您可以为每个工作区(workspace)单独配置 IDE 路径: 100 | 101 | 1. 打开 Cursor 设置,点击 `General` → `Editor` → `open editor settings` 102 | 2. 选择 `Workspace` 标签页 103 | 3. 导航到 `Extensions` → `Switch2IDEA` → `ideaPath` 104 | 4. 输入该项目需要使用的 IDE 路径 105 | 106 | 示例配置: 107 | 108 | - 前端项目:配置 WebStorm 路径 109 | - Spring Boot 项目:配置 IDEA 路径 110 | - Python 项目:配置 PyCharm 路径 111 | 112 | ## 📄 许可证 113 | 114 | 本项目采用 [MIT License](LICENSE) 开源协议 115 | 116 | ## 📮 问题反馈 117 | 118 | 如果遇到问题或有建议,请通过以下方式反馈: 119 | 120 | - [提交 GitHub Issue](https://github.com/qczone/switch2idea/issues) 121 | 122 | ## 🌟 Star 历史 123 | 124 | [![Star History Chart](https://api.star-history.com/svg?repos=qczone/switch2idea&type=Date)](https://star-history.com/#qczone/switch2idea&Date) -------------------------------------------------------------------------------- /eslint.config.mjs: -------------------------------------------------------------------------------- 1 | import typescriptEslint from "@typescript-eslint/eslint-plugin"; 2 | import tsParser from "@typescript-eslint/parser"; 3 | 4 | export default [{ 5 | files: ["**/*.ts"], 6 | }, { 7 | plugins: { 8 | "@typescript-eslint": typescriptEslint, 9 | }, 10 | 11 | languageOptions: { 12 | parser: tsParser, 13 | ecmaVersion: 2022, 14 | sourceType: "module", 15 | }, 16 | 17 | rules: { 18 | "@typescript-eslint/naming-convention": ["warn", { 19 | selector: "import", 20 | format: ["camelCase", "PascalCase"], 21 | }], 22 | 23 | curly: "warn", 24 | eqeqeq: "warn", 25 | "no-throw-literal": "warn", 26 | semi: "warn", 27 | }, 28 | }]; -------------------------------------------------------------------------------- /images/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qczone/switch2idea/a47f2c89612b4e9f73237d1b1fad9047794962d6/images/icon.png -------------------------------------------------------------------------------- /images/switch-show.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qczone/switch2idea/a47f2c89612b4e9f73237d1b1fad9047794962d6/images/switch-show.gif -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "switch2idea", 3 | "displayName": "Switch2IDEA", 4 | "description": "Quickly switch between VS Code and IntelliJ IDEA, open current file in IDEA with the same position", 5 | "version": "1.0.3", 6 | "publisher": "qczone", 7 | "license": "MIT", 8 | "repository": { 9 | "type": "git", 10 | "url": "https://github.com/qczone/switch2idea" 11 | }, 12 | "icon": "images/icon.png", 13 | "engines": { 14 | "vscode": "^1.93.1" 15 | }, 16 | "categories": [ 17 | "Other", 18 | "Programming Languages" 19 | ], 20 | "keywords": [ 21 | "intellij", 22 | "idea", 23 | "jetbrains", 24 | "switch", 25 | "open" 26 | ], 27 | "activationEvents": [ 28 | "onStartupFinished" 29 | ], 30 | "main": "./out/extension.js", 31 | "contributes": { 32 | "commands": [ 33 | { 34 | "command": "Switch2IDEA.openFileInIDEA", 35 | "title": "Open File in IDEA" 36 | }, 37 | { 38 | "command": "Switch2IDEA.openProjectInIDEA", 39 | "title": "Open Project in IDEA" 40 | } 41 | ], 42 | "keybindings": [ 43 | { 44 | "command": "Switch2IDEA.openFileInIDEA", 45 | "key": "alt+shift+o", 46 | "mac": "alt+shift+o", 47 | "when": "editorTextFocus" 48 | }, 49 | { 50 | "command": "Switch2IDEA.openProjectInIDEA", 51 | "key": "alt+shift+p", 52 | "mac": "alt+shift+p" 53 | } 54 | ], 55 | "configuration": { 56 | "title": "Switch2IDEA", 57 | "properties": { 58 | "switch2idea.ideaPath": { 59 | "type": "string", 60 | "default": "", 61 | "description": "IDEA executable path" 62 | } 63 | } 64 | }, 65 | "menus": { 66 | "editor/context": [ 67 | { 68 | "command": "Switch2IDEA.openFileInIDEA", 69 | "group": "navigation" 70 | } 71 | ], 72 | "explorer/context": [ 73 | { 74 | "command": "Switch2IDEA.openFileInIDEA", 75 | "group": "navigation" 76 | }, 77 | { 78 | "command": "Switch2IDEA.openProjectInIDEA", 79 | "group": "navigation" 80 | } 81 | ] 82 | } 83 | }, 84 | "scripts": { 85 | "vscode:prepublish": "pnpm run compile", 86 | "compile": "tsc -p ./", 87 | "watch": "tsc -watch -p ./", 88 | "pretest": "pnpm run compile && pnpm run lint", 89 | "lint": "eslint src", 90 | "test": "vscode-test", 91 | "package": "pnpm vsce package --no-dependencies", 92 | "publish": "pnpm vsce publish --no-dependencies" 93 | }, 94 | "packageManager": "pnpm@9.6.0", 95 | "devDependencies": { 96 | "@types/vscode": "^1.93.1", 97 | "@types/mocha": "^10.0.10", 98 | "@types/node": "20.x", 99 | "@typescript-eslint/eslint-plugin": "^8.17.0", 100 | "@typescript-eslint/parser": "^8.17.0", 101 | "eslint": "^9.16.0", 102 | "typescript": "^5.7.2", 103 | "@vscode/test-cli": "^0.0.10", 104 | "@vscode/test-electron": "^2.4.1", 105 | "@vscode/vsce": "^3.2.1" 106 | } 107 | } 108 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | devDependencies: 11 | '@types/mocha': 12 | specifier: ^10.0.10 13 | version: 10.0.10 14 | '@types/node': 15 | specifier: 20.x 16 | version: 20.17.11 17 | '@types/vscode': 18 | specifier: ^1.93.1 19 | version: 1.96.0 20 | '@typescript-eslint/eslint-plugin': 21 | specifier: ^8.17.0 22 | version: 8.19.0(@typescript-eslint/parser@8.19.0(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0)(typescript@5.7.2) 23 | '@typescript-eslint/parser': 24 | specifier: ^8.17.0 25 | version: 8.19.0(eslint@9.17.0)(typescript@5.7.2) 26 | '@vscode/test-cli': 27 | specifier: ^0.0.10 28 | version: 0.0.10 29 | '@vscode/test-electron': 30 | specifier: ^2.4.1 31 | version: 2.4.1 32 | '@vscode/vsce': 33 | specifier: ^3.2.1 34 | version: 3.2.1 35 | eslint: 36 | specifier: ^9.16.0 37 | version: 9.17.0 38 | typescript: 39 | specifier: ^5.7.2 40 | version: 5.7.2 41 | 42 | packages: 43 | 44 | '@azure/abort-controller@2.1.2': 45 | resolution: {integrity: sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==} 46 | engines: {node: '>=18.0.0'} 47 | 48 | '@azure/core-auth@1.9.0': 49 | resolution: {integrity: sha512-FPwHpZywuyasDSLMqJ6fhbOK3TqUdviZNF8OqRGA4W5Ewib2lEEZ+pBsYcBa88B2NGO/SEnYPGhyBqNlE8ilSw==} 50 | engines: {node: '>=18.0.0'} 51 | 52 | '@azure/core-client@1.9.2': 53 | resolution: {integrity: sha512-kRdry/rav3fUKHl/aDLd/pDLcB+4pOFwPPTVEExuMyaI5r+JBbMWqRbCY1pn5BniDaU3lRxO9eaQ1AmSMehl/w==} 54 | engines: {node: '>=18.0.0'} 55 | 56 | '@azure/core-rest-pipeline@1.18.1': 57 | resolution: {integrity: sha512-/wS73UEDrxroUEVywEm7J0p2c+IIiVxyfigCGfsKvCxxCET4V/Hef2aURqltrXMRjNmdmt5IuOgIpl8f6xdO5A==} 58 | engines: {node: '>=18.0.0'} 59 | 60 | '@azure/core-tracing@1.2.0': 61 | resolution: {integrity: sha512-UKTiEJPkWcESPYJz3X5uKRYyOcJD+4nYph+KpfdPRnQJVrZfk0KJgdnaAWKfhsBBtAf/D58Az4AvCJEmWgIBAg==} 62 | engines: {node: '>=18.0.0'} 63 | 64 | '@azure/core-util@1.11.0': 65 | resolution: {integrity: sha512-DxOSLua+NdpWoSqULhjDyAZTXFdP/LKkqtYuxxz1SCN289zk3OG8UOpnCQAz/tygyACBtWp/BoO72ptK7msY8g==} 66 | engines: {node: '>=18.0.0'} 67 | 68 | '@azure/identity@4.5.0': 69 | resolution: {integrity: sha512-EknvVmtBuSIic47xkOqyNabAme0RYTw52BTMz8eBgU1ysTyMrD1uOoM+JdS0J/4Yfp98IBT3osqq3BfwSaNaGQ==} 70 | engines: {node: '>=18.0.0'} 71 | 72 | '@azure/logger@1.1.4': 73 | resolution: {integrity: sha512-4IXXzcCdLdlXuCG+8UKEwLA1T1NHqUfanhXYHiQTn+6sfWCZXduqbtXDGceg3Ce5QxTGo7EqmbV6Bi+aqKuClQ==} 74 | engines: {node: '>=18.0.0'} 75 | 76 | '@azure/msal-browser@3.28.0': 77 | resolution: {integrity: sha512-1c1qUF6vB52mWlyoMem4xR1gdwiQWYEQB2uhDkbAL4wVJr8WmAcXybc1Qs33y19N4BdPI8/DHI7rPE8L5jMtWw==} 78 | engines: {node: '>=0.8.0'} 79 | 80 | '@azure/msal-common@14.16.0': 81 | resolution: {integrity: sha512-1KOZj9IpcDSwpNiQNjt0jDYZpQvNZay7QAEi/5DLubay40iGYtLzya/jbjRPLyOTZhEKyL1MzPuw2HqBCjceYA==} 82 | engines: {node: '>=0.8.0'} 83 | 84 | '@azure/msal-node@2.16.2': 85 | resolution: {integrity: sha512-An7l1hEr0w1HMMh1LU+rtDtqL7/jw74ORlc9Wnh06v7TU/xpG39/Zdr1ZJu3QpjUfKJ+E0/OXMW8DRSWTlh7qQ==} 86 | engines: {node: '>=16'} 87 | 88 | '@bcoe/v8-coverage@0.2.3': 89 | resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} 90 | 91 | '@eslint-community/eslint-utils@4.4.1': 92 | resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} 93 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 94 | peerDependencies: 95 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 96 | 97 | '@eslint-community/regexpp@4.12.1': 98 | resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} 99 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 100 | 101 | '@eslint/config-array@0.19.1': 102 | resolution: {integrity: sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==} 103 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 104 | 105 | '@eslint/core@0.9.1': 106 | resolution: {integrity: sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q==} 107 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 108 | 109 | '@eslint/eslintrc@3.2.0': 110 | resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==} 111 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 112 | 113 | '@eslint/js@9.17.0': 114 | resolution: {integrity: sha512-Sxc4hqcs1kTu0iID3kcZDW3JHq2a77HO9P8CP6YEA/FpH3Ll8UXE2r/86Rz9YJLKme39S9vU5OWNjC6Xl0Cr3w==} 115 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 116 | 117 | '@eslint/object-schema@2.1.5': 118 | resolution: {integrity: sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==} 119 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 120 | 121 | '@eslint/plugin-kit@0.2.4': 122 | resolution: {integrity: sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg==} 123 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 124 | 125 | '@humanfs/core@0.19.1': 126 | resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} 127 | engines: {node: '>=18.18.0'} 128 | 129 | '@humanfs/node@0.16.6': 130 | resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} 131 | engines: {node: '>=18.18.0'} 132 | 133 | '@humanwhocodes/module-importer@1.0.1': 134 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 135 | engines: {node: '>=12.22'} 136 | 137 | '@humanwhocodes/retry@0.3.1': 138 | resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} 139 | engines: {node: '>=18.18'} 140 | 141 | '@humanwhocodes/retry@0.4.1': 142 | resolution: {integrity: sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==} 143 | engines: {node: '>=18.18'} 144 | 145 | '@isaacs/cliui@8.0.2': 146 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} 147 | engines: {node: '>=12'} 148 | 149 | '@istanbuljs/schema@0.1.3': 150 | resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} 151 | engines: {node: '>=8'} 152 | 153 | '@jridgewell/resolve-uri@3.1.2': 154 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 155 | engines: {node: '>=6.0.0'} 156 | 157 | '@jridgewell/sourcemap-codec@1.5.0': 158 | resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} 159 | 160 | '@jridgewell/trace-mapping@0.3.25': 161 | resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} 162 | 163 | '@nodelib/fs.scandir@2.1.5': 164 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 165 | engines: {node: '>= 8'} 166 | 167 | '@nodelib/fs.stat@2.0.5': 168 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 169 | engines: {node: '>= 8'} 170 | 171 | '@nodelib/fs.walk@1.2.8': 172 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 173 | engines: {node: '>= 8'} 174 | 175 | '@pkgjs/parseargs@0.11.0': 176 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} 177 | engines: {node: '>=14'} 178 | 179 | '@types/estree@1.0.6': 180 | resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} 181 | 182 | '@types/istanbul-lib-coverage@2.0.6': 183 | resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} 184 | 185 | '@types/json-schema@7.0.15': 186 | resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} 187 | 188 | '@types/mocha@10.0.10': 189 | resolution: {integrity: sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==} 190 | 191 | '@types/node@20.17.11': 192 | resolution: {integrity: sha512-Ept5glCK35R8yeyIeYlRIZtX6SLRyqMhOFTgj5SOkMpLTdw3SEHI9fHx60xaUZ+V1aJxQJODE+7/j5ocZydYTg==} 193 | 194 | '@types/vscode@1.96.0': 195 | resolution: {integrity: sha512-qvZbSZo+K4ZYmmDuaodMbAa67Pl6VDQzLKFka6rq+3WUTY4Kro7Bwoi0CuZLO/wema0ygcmpwow7zZfPJTs5jg==} 196 | 197 | '@typescript-eslint/eslint-plugin@8.19.0': 198 | resolution: {integrity: sha512-NggSaEZCdSrFddbctrVjkVZvFC6KGfKfNK0CU7mNK/iKHGKbzT4Wmgm08dKpcZECBu9f5FypndoMyRHkdqfT1Q==} 199 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 200 | peerDependencies: 201 | '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 202 | eslint: ^8.57.0 || ^9.0.0 203 | typescript: '>=4.8.4 <5.8.0' 204 | 205 | '@typescript-eslint/parser@8.19.0': 206 | resolution: {integrity: sha512-6M8taKyOETY1TKHp0x8ndycipTVgmp4xtg5QpEZzXxDhNvvHOJi5rLRkLr8SK3jTgD5l4fTlvBiRdfsuWydxBw==} 207 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 208 | peerDependencies: 209 | eslint: ^8.57.0 || ^9.0.0 210 | typescript: '>=4.8.4 <5.8.0' 211 | 212 | '@typescript-eslint/scope-manager@8.19.0': 213 | resolution: {integrity: sha512-hkoJiKQS3GQ13TSMEiuNmSCvhz7ujyqD1x3ShbaETATHrck+9RaDdUbt+osXaUuns9OFwrDTTrjtwsU8gJyyRA==} 214 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 215 | 216 | '@typescript-eslint/type-utils@8.19.0': 217 | resolution: {integrity: sha512-TZs0I0OSbd5Aza4qAMpp1cdCYVnER94IziudE3JU328YUHgWu9gwiwhag+fuLeJ2LkWLXI+F/182TbG+JaBdTg==} 218 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 219 | peerDependencies: 220 | eslint: ^8.57.0 || ^9.0.0 221 | typescript: '>=4.8.4 <5.8.0' 222 | 223 | '@typescript-eslint/types@8.19.0': 224 | resolution: {integrity: sha512-8XQ4Ss7G9WX8oaYvD4OOLCjIQYgRQxO+qCiR2V2s2GxI9AUpo7riNwo6jDhKtTcaJjT8PY54j2Yb33kWtSJsmA==} 225 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 226 | 227 | '@typescript-eslint/typescript-estree@8.19.0': 228 | resolution: {integrity: sha512-WW9PpDaLIFW9LCbucMSdYUuGeFUz1OkWYS/5fwZwTA+l2RwlWFdJvReQqMUMBw4yJWJOfqd7An9uwut2Oj8sLw==} 229 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 230 | peerDependencies: 231 | typescript: '>=4.8.4 <5.8.0' 232 | 233 | '@typescript-eslint/utils@8.19.0': 234 | resolution: {integrity: sha512-PTBG+0oEMPH9jCZlfg07LCB2nYI0I317yyvXGfxnvGvw4SHIOuRnQ3kadyyXY6tGdChusIHIbM5zfIbp4M6tCg==} 235 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 236 | peerDependencies: 237 | eslint: ^8.57.0 || ^9.0.0 238 | typescript: '>=4.8.4 <5.8.0' 239 | 240 | '@typescript-eslint/visitor-keys@8.19.0': 241 | resolution: {integrity: sha512-mCFtBbFBJDCNCWUl5y6sZSCHXw1DEFEk3c/M3nRK2a4XUB8StGFtmcEMizdjKuBzB6e/smJAAWYug3VrdLMr1w==} 242 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 243 | 244 | '@vscode/test-cli@0.0.10': 245 | resolution: {integrity: sha512-B0mMH4ia+MOOtwNiLi79XhA+MLmUItIC8FckEuKrVAVriIuSWjt7vv4+bF8qVFiNFe4QRfzPaIZk39FZGWEwHA==} 246 | engines: {node: '>=18'} 247 | hasBin: true 248 | 249 | '@vscode/test-electron@2.4.1': 250 | resolution: {integrity: sha512-Gc6EdaLANdktQ1t+zozoBVRynfIsMKMc94Svu1QreOBC8y76x4tvaK32TljrLi1LI2+PK58sDVbL7ALdqf3VRQ==} 251 | engines: {node: '>=16'} 252 | 253 | '@vscode/vsce-sign-alpine-arm64@2.0.2': 254 | resolution: {integrity: sha512-E80YvqhtZCLUv3YAf9+tIbbqoinWLCO/B3j03yQPbjT3ZIHCliKZlsy1peNc4XNZ5uIb87Jn0HWx/ZbPXviuAQ==} 255 | cpu: [arm64] 256 | os: [alpine] 257 | 258 | '@vscode/vsce-sign-alpine-x64@2.0.2': 259 | resolution: {integrity: sha512-n1WC15MSMvTaeJ5KjWCzo0nzjydwxLyoHiMJHu1Ov0VWTZiddasmOQHekA47tFRycnt4FsQrlkSCTdgHppn6bw==} 260 | cpu: [x64] 261 | os: [alpine] 262 | 263 | '@vscode/vsce-sign-darwin-arm64@2.0.2': 264 | resolution: {integrity: sha512-rz8F4pMcxPj8fjKAJIfkUT8ycG9CjIp888VY/6pq6cuI2qEzQ0+b5p3xb74CJnBbSC0p2eRVoe+WgNCAxCLtzQ==} 265 | cpu: [arm64] 266 | os: [darwin] 267 | 268 | '@vscode/vsce-sign-darwin-x64@2.0.2': 269 | resolution: {integrity: sha512-MCjPrQ5MY/QVoZ6n0D92jcRb7eYvxAujG/AH2yM6lI0BspvJQxp0o9s5oiAM9r32r9tkLpiy5s2icsbwefAQIw==} 270 | cpu: [x64] 271 | os: [darwin] 272 | 273 | '@vscode/vsce-sign-linux-arm64@2.0.2': 274 | resolution: {integrity: sha512-Ybeu7cA6+/koxszsORXX0OJk9N0GgfHq70Wqi4vv2iJCZvBrOWwcIrxKjvFtwyDgdeQzgPheH5nhLVl5eQy7WA==} 275 | cpu: [arm64] 276 | os: [linux] 277 | 278 | '@vscode/vsce-sign-linux-arm@2.0.2': 279 | resolution: {integrity: sha512-Fkb5jpbfhZKVw3xwR6t7WYfwKZktVGNXdg1m08uEx1anO0oUPUkoQRsNm4QniL3hmfw0ijg00YA6TrxCRkPVOQ==} 280 | cpu: [arm] 281 | os: [linux] 282 | 283 | '@vscode/vsce-sign-linux-x64@2.0.2': 284 | resolution: {integrity: sha512-NsPPFVtLaTlVJKOiTnO8Cl78LZNWy0Q8iAg+LlBiCDEgC12Gt4WXOSs2pmcIjDYzj2kY4NwdeN1mBTaujYZaPg==} 285 | cpu: [x64] 286 | os: [linux] 287 | 288 | '@vscode/vsce-sign-win32-arm64@2.0.2': 289 | resolution: {integrity: sha512-wPs848ymZ3Ny+Y1Qlyi7mcT6VSigG89FWQnp2qRYCyMhdJxOpA4lDwxzlpL8fG6xC8GjQjGDkwbkWUcCobvksQ==} 290 | cpu: [arm64] 291 | os: [win32] 292 | 293 | '@vscode/vsce-sign-win32-x64@2.0.2': 294 | resolution: {integrity: sha512-pAiRN6qSAhDM5SVOIxgx+2xnoVUePHbRNC7OD2aOR3WltTKxxF25OfpK8h8UQ7A0BuRkSgREbB59DBlFk4iAeg==} 295 | cpu: [x64] 296 | os: [win32] 297 | 298 | '@vscode/vsce-sign@2.0.5': 299 | resolution: {integrity: sha512-GfYWrsT/vypTMDMgWDm75iDmAOMe7F71sZECJ+Ws6/xyIfmB3ELVnVN+LwMFAvmXY+e6eWhR2EzNGF/zAhWY3Q==} 300 | 301 | '@vscode/vsce@3.2.1': 302 | resolution: {integrity: sha512-AY9vBjwExakK1c0cI/3NN2Ey0EgiKLBye/fxl/ue+o4q6RZ7N+xzd1jAD6eI6eBeMVANi617+V2rxIAkDPco2Q==} 303 | engines: {node: '>= 20'} 304 | hasBin: true 305 | 306 | acorn-jsx@5.3.2: 307 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 308 | peerDependencies: 309 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 310 | 311 | acorn@8.14.0: 312 | resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} 313 | engines: {node: '>=0.4.0'} 314 | hasBin: true 315 | 316 | agent-base@7.1.3: 317 | resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} 318 | engines: {node: '>= 14'} 319 | 320 | ajv@6.12.6: 321 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 322 | 323 | ansi-colors@4.1.3: 324 | resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} 325 | engines: {node: '>=6'} 326 | 327 | ansi-regex@5.0.1: 328 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 329 | engines: {node: '>=8'} 330 | 331 | ansi-regex@6.1.0: 332 | resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} 333 | engines: {node: '>=12'} 334 | 335 | ansi-styles@3.2.1: 336 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 337 | engines: {node: '>=4'} 338 | 339 | ansi-styles@4.3.0: 340 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 341 | engines: {node: '>=8'} 342 | 343 | ansi-styles@6.2.1: 344 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} 345 | engines: {node: '>=12'} 346 | 347 | anymatch@3.1.3: 348 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 349 | engines: {node: '>= 8'} 350 | 351 | argparse@2.0.1: 352 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 353 | 354 | asynckit@0.4.0: 355 | resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} 356 | 357 | azure-devops-node-api@12.5.0: 358 | resolution: {integrity: sha512-R5eFskGvOm3U/GzeAuxRkUsAl0hrAwGgWn6zAd2KrZmrEhWZVqLew4OOupbQlXUuojUzpGtq62SmdhJ06N88og==} 359 | 360 | balanced-match@1.0.2: 361 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 362 | 363 | base64-js@1.5.1: 364 | resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} 365 | 366 | binary-extensions@2.3.0: 367 | resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} 368 | engines: {node: '>=8'} 369 | 370 | bl@4.1.0: 371 | resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} 372 | 373 | bl@5.1.0: 374 | resolution: {integrity: sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==} 375 | 376 | boolbase@1.0.0: 377 | resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} 378 | 379 | brace-expansion@1.1.11: 380 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 381 | 382 | brace-expansion@2.0.1: 383 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 384 | 385 | braces@3.0.3: 386 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} 387 | engines: {node: '>=8'} 388 | 389 | browser-stdout@1.3.1: 390 | resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} 391 | 392 | buffer-crc32@0.2.13: 393 | resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} 394 | 395 | buffer-equal-constant-time@1.0.1: 396 | resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} 397 | 398 | buffer@5.7.1: 399 | resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} 400 | 401 | buffer@6.0.3: 402 | resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} 403 | 404 | c8@9.1.0: 405 | resolution: {integrity: sha512-mBWcT5iqNir1zIkzSPyI3NCR9EZCVI3WUD+AVO17MVWTSFNyUueXE82qTeampNtTr+ilN/5Ua3j24LgbCKjDVg==} 406 | engines: {node: '>=14.14.0'} 407 | hasBin: true 408 | 409 | call-bind-apply-helpers@1.0.1: 410 | resolution: {integrity: sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==} 411 | engines: {node: '>= 0.4'} 412 | 413 | call-bound@1.0.3: 414 | resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==} 415 | engines: {node: '>= 0.4'} 416 | 417 | callsites@3.1.0: 418 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 419 | engines: {node: '>=6'} 420 | 421 | camelcase@6.3.0: 422 | resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} 423 | engines: {node: '>=10'} 424 | 425 | chalk@2.4.2: 426 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 427 | engines: {node: '>=4'} 428 | 429 | chalk@4.1.2: 430 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 431 | engines: {node: '>=10'} 432 | 433 | chalk@5.4.1: 434 | resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} 435 | engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} 436 | 437 | cheerio-select@2.1.0: 438 | resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} 439 | 440 | cheerio@1.0.0: 441 | resolution: {integrity: sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==} 442 | engines: {node: '>=18.17'} 443 | 444 | chokidar@3.6.0: 445 | resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} 446 | engines: {node: '>= 8.10.0'} 447 | 448 | chownr@1.1.4: 449 | resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} 450 | 451 | cli-cursor@4.0.0: 452 | resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} 453 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 454 | 455 | cli-spinners@2.9.2: 456 | resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} 457 | engines: {node: '>=6'} 458 | 459 | cliui@7.0.4: 460 | resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} 461 | 462 | cliui@8.0.1: 463 | resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} 464 | engines: {node: '>=12'} 465 | 466 | cockatiel@3.2.1: 467 | resolution: {integrity: sha512-gfrHV6ZPkquExvMh9IOkKsBzNDk6sDuZ6DdBGUBkvFnTCqCxzpuq48RySgP0AnaqQkw2zynOFj9yly6T1Q2G5Q==} 468 | engines: {node: '>=16'} 469 | 470 | color-convert@1.9.3: 471 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 472 | 473 | color-convert@2.0.1: 474 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 475 | engines: {node: '>=7.0.0'} 476 | 477 | color-name@1.1.3: 478 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} 479 | 480 | color-name@1.1.4: 481 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 482 | 483 | combined-stream@1.0.8: 484 | resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} 485 | engines: {node: '>= 0.8'} 486 | 487 | commander@6.2.1: 488 | resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==} 489 | engines: {node: '>= 6'} 490 | 491 | concat-map@0.0.1: 492 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 493 | 494 | convert-source-map@2.0.0: 495 | resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} 496 | 497 | core-util-is@1.0.3: 498 | resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} 499 | 500 | cross-spawn@7.0.6: 501 | resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} 502 | engines: {node: '>= 8'} 503 | 504 | css-select@5.1.0: 505 | resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} 506 | 507 | css-what@6.1.0: 508 | resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} 509 | engines: {node: '>= 6'} 510 | 511 | debug@4.4.0: 512 | resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} 513 | engines: {node: '>=6.0'} 514 | peerDependencies: 515 | supports-color: '*' 516 | peerDependenciesMeta: 517 | supports-color: 518 | optional: true 519 | 520 | decamelize@4.0.0: 521 | resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} 522 | engines: {node: '>=10'} 523 | 524 | decompress-response@6.0.0: 525 | resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} 526 | engines: {node: '>=10'} 527 | 528 | deep-extend@0.6.0: 529 | resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} 530 | engines: {node: '>=4.0.0'} 531 | 532 | deep-is@0.1.4: 533 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 534 | 535 | define-lazy-prop@2.0.0: 536 | resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} 537 | engines: {node: '>=8'} 538 | 539 | delayed-stream@1.0.0: 540 | resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} 541 | engines: {node: '>=0.4.0'} 542 | 543 | detect-libc@2.0.3: 544 | resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} 545 | engines: {node: '>=8'} 546 | 547 | diff@5.2.0: 548 | resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} 549 | engines: {node: '>=0.3.1'} 550 | 551 | dom-serializer@2.0.0: 552 | resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} 553 | 554 | domelementtype@2.3.0: 555 | resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} 556 | 557 | domhandler@5.0.3: 558 | resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} 559 | engines: {node: '>= 4'} 560 | 561 | domutils@3.2.1: 562 | resolution: {integrity: sha512-xWXmuRnN9OMP6ptPd2+H0cCbcYBULa5YDTbMm/2lvkWvNA3O4wcW+GvzooqBuNM8yy6pl3VIAeJTUUWUbfI5Fw==} 563 | 564 | dunder-proto@1.0.1: 565 | resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} 566 | engines: {node: '>= 0.4'} 567 | 568 | eastasianwidth@0.2.0: 569 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 570 | 571 | ecdsa-sig-formatter@1.0.11: 572 | resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} 573 | 574 | emoji-regex@10.4.0: 575 | resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} 576 | 577 | emoji-regex@8.0.0: 578 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 579 | 580 | emoji-regex@9.2.2: 581 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 582 | 583 | encoding-sniffer@0.2.0: 584 | resolution: {integrity: sha512-ju7Wq1kg04I3HtiYIOrUrdfdDvkyO9s5XM8QAj/bN61Yo/Vb4vgJxy5vi4Yxk01gWHbrofpPtpxM8bKger9jhg==} 585 | 586 | end-of-stream@1.4.4: 587 | resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} 588 | 589 | enhanced-resolve@5.18.0: 590 | resolution: {integrity: sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==} 591 | engines: {node: '>=10.13.0'} 592 | 593 | entities@4.5.0: 594 | resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} 595 | engines: {node: '>=0.12'} 596 | 597 | es-define-property@1.0.1: 598 | resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} 599 | engines: {node: '>= 0.4'} 600 | 601 | es-errors@1.3.0: 602 | resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} 603 | engines: {node: '>= 0.4'} 604 | 605 | es-object-atoms@1.0.0: 606 | resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} 607 | engines: {node: '>= 0.4'} 608 | 609 | escalade@3.2.0: 610 | resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} 611 | engines: {node: '>=6'} 612 | 613 | escape-string-regexp@1.0.5: 614 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 615 | engines: {node: '>=0.8.0'} 616 | 617 | escape-string-regexp@4.0.0: 618 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 619 | engines: {node: '>=10'} 620 | 621 | eslint-scope@8.2.0: 622 | resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==} 623 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 624 | 625 | eslint-visitor-keys@3.4.3: 626 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} 627 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 628 | 629 | eslint-visitor-keys@4.2.0: 630 | resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} 631 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 632 | 633 | eslint@9.17.0: 634 | resolution: {integrity: sha512-evtlNcpJg+cZLcnVKwsai8fExnqjGPicK7gnUtlNuzu+Fv9bI0aLpND5T44VLQtoMEnI57LoXO9XAkIXwohKrA==} 635 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 636 | hasBin: true 637 | peerDependencies: 638 | jiti: '*' 639 | peerDependenciesMeta: 640 | jiti: 641 | optional: true 642 | 643 | espree@10.3.0: 644 | resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} 645 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 646 | 647 | esquery@1.6.0: 648 | resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} 649 | engines: {node: '>=0.10'} 650 | 651 | esrecurse@4.3.0: 652 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 653 | engines: {node: '>=4.0'} 654 | 655 | estraverse@5.3.0: 656 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 657 | engines: {node: '>=4.0'} 658 | 659 | esutils@2.0.3: 660 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 661 | engines: {node: '>=0.10.0'} 662 | 663 | events@3.3.0: 664 | resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} 665 | engines: {node: '>=0.8.x'} 666 | 667 | expand-template@2.0.3: 668 | resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} 669 | engines: {node: '>=6'} 670 | 671 | fast-deep-equal@3.1.3: 672 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 673 | 674 | fast-glob@3.3.3: 675 | resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} 676 | engines: {node: '>=8.6.0'} 677 | 678 | fast-json-stable-stringify@2.1.0: 679 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 680 | 681 | fast-levenshtein@2.0.6: 682 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 683 | 684 | fastq@1.18.0: 685 | resolution: {integrity: sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==} 686 | 687 | fd-slicer@1.1.0: 688 | resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} 689 | 690 | file-entry-cache@8.0.0: 691 | resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} 692 | engines: {node: '>=16.0.0'} 693 | 694 | fill-range@7.1.1: 695 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} 696 | engines: {node: '>=8'} 697 | 698 | find-up@5.0.0: 699 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 700 | engines: {node: '>=10'} 701 | 702 | flat-cache@4.0.1: 703 | resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} 704 | engines: {node: '>=16'} 705 | 706 | flat@5.0.2: 707 | resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} 708 | hasBin: true 709 | 710 | flatted@3.3.2: 711 | resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==} 712 | 713 | foreground-child@3.3.0: 714 | resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} 715 | engines: {node: '>=14'} 716 | 717 | form-data@4.0.1: 718 | resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} 719 | engines: {node: '>= 6'} 720 | 721 | fs-constants@1.0.0: 722 | resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} 723 | 724 | fs.realpath@1.0.0: 725 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 726 | 727 | fsevents@2.3.3: 728 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 729 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 730 | os: [darwin] 731 | 732 | function-bind@1.1.2: 733 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 734 | 735 | get-caller-file@2.0.5: 736 | resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} 737 | engines: {node: 6.* || 8.* || >= 10.*} 738 | 739 | get-intrinsic@1.2.7: 740 | resolution: {integrity: sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==} 741 | engines: {node: '>= 0.4'} 742 | 743 | get-proto@1.0.1: 744 | resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} 745 | engines: {node: '>= 0.4'} 746 | 747 | github-from-package@0.0.0: 748 | resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} 749 | 750 | glob-parent@5.1.2: 751 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 752 | engines: {node: '>= 6'} 753 | 754 | glob-parent@6.0.2: 755 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 756 | engines: {node: '>=10.13.0'} 757 | 758 | glob@10.4.5: 759 | resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} 760 | hasBin: true 761 | 762 | glob@11.0.0: 763 | resolution: {integrity: sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==} 764 | engines: {node: 20 || >=22} 765 | hasBin: true 766 | 767 | glob@7.2.3: 768 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 769 | deprecated: Glob versions prior to v9 are no longer supported 770 | 771 | glob@8.1.0: 772 | resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} 773 | engines: {node: '>=12'} 774 | deprecated: Glob versions prior to v9 are no longer supported 775 | 776 | globals@14.0.0: 777 | resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} 778 | engines: {node: '>=18'} 779 | 780 | gopd@1.2.0: 781 | resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} 782 | engines: {node: '>= 0.4'} 783 | 784 | graceful-fs@4.2.11: 785 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 786 | 787 | graphemer@1.4.0: 788 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} 789 | 790 | has-flag@3.0.0: 791 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} 792 | engines: {node: '>=4'} 793 | 794 | has-flag@4.0.0: 795 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 796 | engines: {node: '>=8'} 797 | 798 | has-symbols@1.1.0: 799 | resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} 800 | engines: {node: '>= 0.4'} 801 | 802 | hasown@2.0.2: 803 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 804 | engines: {node: '>= 0.4'} 805 | 806 | he@1.2.0: 807 | resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} 808 | hasBin: true 809 | 810 | hosted-git-info@4.1.0: 811 | resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} 812 | engines: {node: '>=10'} 813 | 814 | html-escaper@2.0.2: 815 | resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} 816 | 817 | htmlparser2@9.1.0: 818 | resolution: {integrity: sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==} 819 | 820 | http-proxy-agent@7.0.2: 821 | resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} 822 | engines: {node: '>= 14'} 823 | 824 | https-proxy-agent@7.0.6: 825 | resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} 826 | engines: {node: '>= 14'} 827 | 828 | iconv-lite@0.6.3: 829 | resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} 830 | engines: {node: '>=0.10.0'} 831 | 832 | ieee754@1.2.1: 833 | resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} 834 | 835 | ignore@5.3.2: 836 | resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} 837 | engines: {node: '>= 4'} 838 | 839 | immediate@3.0.6: 840 | resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} 841 | 842 | import-fresh@3.3.0: 843 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 844 | engines: {node: '>=6'} 845 | 846 | imurmurhash@0.1.4: 847 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 848 | engines: {node: '>=0.8.19'} 849 | 850 | inflight@1.0.6: 851 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 852 | 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. 853 | 854 | inherits@2.0.4: 855 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 856 | 857 | ini@1.3.8: 858 | resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} 859 | 860 | is-binary-path@2.1.0: 861 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 862 | engines: {node: '>=8'} 863 | 864 | is-docker@2.2.1: 865 | resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} 866 | engines: {node: '>=8'} 867 | hasBin: true 868 | 869 | is-extglob@2.1.1: 870 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 871 | engines: {node: '>=0.10.0'} 872 | 873 | is-fullwidth-code-point@3.0.0: 874 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 875 | engines: {node: '>=8'} 876 | 877 | is-glob@4.0.3: 878 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 879 | engines: {node: '>=0.10.0'} 880 | 881 | is-interactive@2.0.0: 882 | resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} 883 | engines: {node: '>=12'} 884 | 885 | is-number@7.0.0: 886 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 887 | engines: {node: '>=0.12.0'} 888 | 889 | is-plain-obj@2.1.0: 890 | resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} 891 | engines: {node: '>=8'} 892 | 893 | is-unicode-supported@0.1.0: 894 | resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} 895 | engines: {node: '>=10'} 896 | 897 | is-unicode-supported@1.3.0: 898 | resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} 899 | engines: {node: '>=12'} 900 | 901 | is-wsl@2.2.0: 902 | resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} 903 | engines: {node: '>=8'} 904 | 905 | isarray@1.0.0: 906 | resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} 907 | 908 | isexe@2.0.0: 909 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 910 | 911 | istanbul-lib-coverage@3.2.2: 912 | resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} 913 | engines: {node: '>=8'} 914 | 915 | istanbul-lib-report@3.0.1: 916 | resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} 917 | engines: {node: '>=10'} 918 | 919 | istanbul-reports@3.1.7: 920 | resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} 921 | engines: {node: '>=8'} 922 | 923 | jackspeak@3.4.3: 924 | resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} 925 | 926 | jackspeak@4.0.2: 927 | resolution: {integrity: sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==} 928 | engines: {node: 20 || >=22} 929 | 930 | js-yaml@4.1.0: 931 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 932 | hasBin: true 933 | 934 | json-buffer@3.0.1: 935 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} 936 | 937 | json-schema-traverse@0.4.1: 938 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 939 | 940 | json-stable-stringify-without-jsonify@1.0.1: 941 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 942 | 943 | jsonc-parser@3.3.1: 944 | resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} 945 | 946 | jsonwebtoken@9.0.2: 947 | resolution: {integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==} 948 | engines: {node: '>=12', npm: '>=6'} 949 | 950 | jszip@3.10.1: 951 | resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} 952 | 953 | jwa@1.4.1: 954 | resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==} 955 | 956 | jwa@2.0.0: 957 | resolution: {integrity: sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==} 958 | 959 | jws@3.2.2: 960 | resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==} 961 | 962 | jws@4.0.0: 963 | resolution: {integrity: sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==} 964 | 965 | keytar@7.9.0: 966 | resolution: {integrity: sha512-VPD8mtVtm5JNtA2AErl6Chp06JBfy7diFQ7TQQhdpWOl6MrCRB+eRbvAZUsbGQS9kiMq0coJsy0W0vHpDCkWsQ==} 967 | 968 | keyv@4.5.4: 969 | resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} 970 | 971 | leven@3.1.0: 972 | resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} 973 | engines: {node: '>=6'} 974 | 975 | levn@0.4.1: 976 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 977 | engines: {node: '>= 0.8.0'} 978 | 979 | lie@3.3.0: 980 | resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} 981 | 982 | linkify-it@5.0.0: 983 | resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} 984 | 985 | locate-path@6.0.0: 986 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 987 | engines: {node: '>=10'} 988 | 989 | lodash.includes@4.3.0: 990 | resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} 991 | 992 | lodash.isboolean@3.0.3: 993 | resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} 994 | 995 | lodash.isinteger@4.0.4: 996 | resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==} 997 | 998 | lodash.isnumber@3.0.3: 999 | resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==} 1000 | 1001 | lodash.isplainobject@4.0.6: 1002 | resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} 1003 | 1004 | lodash.isstring@4.0.1: 1005 | resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} 1006 | 1007 | lodash.merge@4.6.2: 1008 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 1009 | 1010 | lodash.once@4.1.1: 1011 | resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} 1012 | 1013 | log-symbols@4.1.0: 1014 | resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} 1015 | engines: {node: '>=10'} 1016 | 1017 | log-symbols@5.1.0: 1018 | resolution: {integrity: sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==} 1019 | engines: {node: '>=12'} 1020 | 1021 | lru-cache@10.4.3: 1022 | resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} 1023 | 1024 | lru-cache@11.0.2: 1025 | resolution: {integrity: sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==} 1026 | engines: {node: 20 || >=22} 1027 | 1028 | lru-cache@6.0.0: 1029 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 1030 | engines: {node: '>=10'} 1031 | 1032 | make-dir@4.0.0: 1033 | resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} 1034 | engines: {node: '>=10'} 1035 | 1036 | markdown-it@14.1.0: 1037 | resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} 1038 | hasBin: true 1039 | 1040 | math-intrinsics@1.1.0: 1041 | resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} 1042 | engines: {node: '>= 0.4'} 1043 | 1044 | mdurl@2.0.0: 1045 | resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} 1046 | 1047 | merge2@1.4.1: 1048 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1049 | engines: {node: '>= 8'} 1050 | 1051 | micromatch@4.0.8: 1052 | resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} 1053 | engines: {node: '>=8.6'} 1054 | 1055 | mime-db@1.52.0: 1056 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} 1057 | engines: {node: '>= 0.6'} 1058 | 1059 | mime-types@2.1.35: 1060 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} 1061 | engines: {node: '>= 0.6'} 1062 | 1063 | mime@1.6.0: 1064 | resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} 1065 | engines: {node: '>=4'} 1066 | hasBin: true 1067 | 1068 | mimic-fn@2.1.0: 1069 | resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} 1070 | engines: {node: '>=6'} 1071 | 1072 | mimic-response@3.1.0: 1073 | resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} 1074 | engines: {node: '>=10'} 1075 | 1076 | minimatch@10.0.1: 1077 | resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==} 1078 | engines: {node: 20 || >=22} 1079 | 1080 | minimatch@3.1.2: 1081 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1082 | 1083 | minimatch@5.1.6: 1084 | resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} 1085 | engines: {node: '>=10'} 1086 | 1087 | minimatch@9.0.5: 1088 | resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} 1089 | engines: {node: '>=16 || 14 >=14.17'} 1090 | 1091 | minimist@1.2.8: 1092 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} 1093 | 1094 | minipass@7.1.2: 1095 | resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} 1096 | engines: {node: '>=16 || 14 >=14.17'} 1097 | 1098 | mkdirp-classic@0.5.3: 1099 | resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} 1100 | 1101 | mocha@10.8.2: 1102 | resolution: {integrity: sha512-VZlYo/WE8t1tstuRmqgeyBgCbJc/lEdopaa+axcKzTBJ+UIdlAB9XnmvTCAH4pwR4ElNInaedhEBmZD8iCSVEg==} 1103 | engines: {node: '>= 14.0.0'} 1104 | hasBin: true 1105 | 1106 | ms@2.1.3: 1107 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 1108 | 1109 | mute-stream@0.0.8: 1110 | resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} 1111 | 1112 | napi-build-utils@1.0.2: 1113 | resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} 1114 | 1115 | natural-compare@1.4.0: 1116 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 1117 | 1118 | node-abi@3.71.0: 1119 | resolution: {integrity: sha512-SZ40vRiy/+wRTf21hxkkEjPJZpARzUMVcJoQse2EF8qkUWbbO2z7vd5oA/H6bVH6SZQ5STGcu0KRDS7biNRfxw==} 1120 | engines: {node: '>=10'} 1121 | 1122 | node-addon-api@4.3.0: 1123 | resolution: {integrity: sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==} 1124 | 1125 | normalize-path@3.0.0: 1126 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 1127 | engines: {node: '>=0.10.0'} 1128 | 1129 | nth-check@2.1.1: 1130 | resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} 1131 | 1132 | object-inspect@1.13.3: 1133 | resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} 1134 | engines: {node: '>= 0.4'} 1135 | 1136 | once@1.4.0: 1137 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 1138 | 1139 | onetime@5.1.2: 1140 | resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} 1141 | engines: {node: '>=6'} 1142 | 1143 | open@8.4.2: 1144 | resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} 1145 | engines: {node: '>=12'} 1146 | 1147 | optionator@0.9.4: 1148 | resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} 1149 | engines: {node: '>= 0.8.0'} 1150 | 1151 | ora@7.0.1: 1152 | resolution: {integrity: sha512-0TUxTiFJWv+JnjWm4o9yvuskpEJLXTcng8MJuKd+SzAzp2o+OP3HWqNhB4OdJRt1Vsd9/mR0oyaEYlOnL7XIRw==} 1153 | engines: {node: '>=16'} 1154 | 1155 | p-limit@3.1.0: 1156 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 1157 | engines: {node: '>=10'} 1158 | 1159 | p-locate@5.0.0: 1160 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 1161 | engines: {node: '>=10'} 1162 | 1163 | package-json-from-dist@1.0.1: 1164 | resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} 1165 | 1166 | pako@1.0.11: 1167 | resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} 1168 | 1169 | parent-module@1.0.1: 1170 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 1171 | engines: {node: '>=6'} 1172 | 1173 | parse-semver@1.1.1: 1174 | resolution: {integrity: sha512-Eg1OuNntBMH0ojvEKSrvDSnwLmvVuUOSdylH/pSCPNMIspLlweJyIWXCE+k/5hm3cj/EBUYwmWkjhBALNP4LXQ==} 1175 | 1176 | parse5-htmlparser2-tree-adapter@7.1.0: 1177 | resolution: {integrity: sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==} 1178 | 1179 | parse5-parser-stream@7.1.2: 1180 | resolution: {integrity: sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==} 1181 | 1182 | parse5@7.2.1: 1183 | resolution: {integrity: sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==} 1184 | 1185 | path-exists@4.0.0: 1186 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 1187 | engines: {node: '>=8'} 1188 | 1189 | path-is-absolute@1.0.1: 1190 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 1191 | engines: {node: '>=0.10.0'} 1192 | 1193 | path-key@3.1.1: 1194 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1195 | engines: {node: '>=8'} 1196 | 1197 | path-scurry@1.11.1: 1198 | resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} 1199 | engines: {node: '>=16 || 14 >=14.18'} 1200 | 1201 | path-scurry@2.0.0: 1202 | resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} 1203 | engines: {node: 20 || >=22} 1204 | 1205 | pend@1.2.0: 1206 | resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} 1207 | 1208 | picomatch@2.3.1: 1209 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1210 | engines: {node: '>=8.6'} 1211 | 1212 | prebuild-install@7.1.2: 1213 | resolution: {integrity: sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==} 1214 | engines: {node: '>=10'} 1215 | hasBin: true 1216 | 1217 | prelude-ls@1.2.1: 1218 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 1219 | engines: {node: '>= 0.8.0'} 1220 | 1221 | process-nextick-args@2.0.1: 1222 | resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} 1223 | 1224 | pump@3.0.2: 1225 | resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} 1226 | 1227 | punycode.js@2.3.1: 1228 | resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} 1229 | engines: {node: '>=6'} 1230 | 1231 | punycode@2.3.1: 1232 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 1233 | engines: {node: '>=6'} 1234 | 1235 | qs@6.13.1: 1236 | resolution: {integrity: sha512-EJPeIn0CYrGu+hli1xilKAPXODtJ12T0sP63Ijx2/khC2JtuaN3JyNIpvmnkmaEtha9ocbG4A4cMcr+TvqvwQg==} 1237 | engines: {node: '>=0.6'} 1238 | 1239 | queue-microtask@1.2.3: 1240 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1241 | 1242 | randombytes@2.1.0: 1243 | resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} 1244 | 1245 | rc@1.2.8: 1246 | resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} 1247 | hasBin: true 1248 | 1249 | read@1.0.7: 1250 | resolution: {integrity: sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==} 1251 | engines: {node: '>=0.8'} 1252 | 1253 | readable-stream@2.3.8: 1254 | resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} 1255 | 1256 | readable-stream@3.6.2: 1257 | resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} 1258 | engines: {node: '>= 6'} 1259 | 1260 | readdirp@3.6.0: 1261 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 1262 | engines: {node: '>=8.10.0'} 1263 | 1264 | require-directory@2.1.1: 1265 | resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} 1266 | engines: {node: '>=0.10.0'} 1267 | 1268 | resolve-from@4.0.0: 1269 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 1270 | engines: {node: '>=4'} 1271 | 1272 | restore-cursor@4.0.0: 1273 | resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} 1274 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1275 | 1276 | reusify@1.0.4: 1277 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1278 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1279 | 1280 | run-parallel@1.2.0: 1281 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1282 | 1283 | safe-buffer@5.1.2: 1284 | resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} 1285 | 1286 | safe-buffer@5.2.1: 1287 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 1288 | 1289 | safer-buffer@2.1.2: 1290 | resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} 1291 | 1292 | sax@1.4.1: 1293 | resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} 1294 | 1295 | semver@5.7.2: 1296 | resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} 1297 | hasBin: true 1298 | 1299 | semver@7.6.3: 1300 | resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} 1301 | engines: {node: '>=10'} 1302 | hasBin: true 1303 | 1304 | serialize-javascript@6.0.2: 1305 | resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} 1306 | 1307 | setimmediate@1.0.5: 1308 | resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} 1309 | 1310 | shebang-command@2.0.0: 1311 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1312 | engines: {node: '>=8'} 1313 | 1314 | shebang-regex@3.0.0: 1315 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1316 | engines: {node: '>=8'} 1317 | 1318 | side-channel-list@1.0.0: 1319 | resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} 1320 | engines: {node: '>= 0.4'} 1321 | 1322 | side-channel-map@1.0.1: 1323 | resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} 1324 | engines: {node: '>= 0.4'} 1325 | 1326 | side-channel-weakmap@1.0.2: 1327 | resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} 1328 | engines: {node: '>= 0.4'} 1329 | 1330 | side-channel@1.1.0: 1331 | resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} 1332 | engines: {node: '>= 0.4'} 1333 | 1334 | signal-exit@3.0.7: 1335 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} 1336 | 1337 | signal-exit@4.1.0: 1338 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 1339 | engines: {node: '>=14'} 1340 | 1341 | simple-concat@1.0.1: 1342 | resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} 1343 | 1344 | simple-get@4.0.1: 1345 | resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} 1346 | 1347 | stdin-discarder@0.1.0: 1348 | resolution: {integrity: sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==} 1349 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1350 | 1351 | stoppable@1.1.0: 1352 | resolution: {integrity: sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==} 1353 | engines: {node: '>=4', npm: '>=6'} 1354 | 1355 | string-width@4.2.3: 1356 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 1357 | engines: {node: '>=8'} 1358 | 1359 | string-width@5.1.2: 1360 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 1361 | engines: {node: '>=12'} 1362 | 1363 | string-width@6.1.0: 1364 | resolution: {integrity: sha512-k01swCJAgQmuADB0YIc+7TuatfNvTBVOoaUWJjTB9R4VJzR5vNWzf5t42ESVZFPS8xTySF7CAdV4t/aaIm3UnQ==} 1365 | engines: {node: '>=16'} 1366 | 1367 | string_decoder@1.1.1: 1368 | resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} 1369 | 1370 | string_decoder@1.3.0: 1371 | resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} 1372 | 1373 | strip-ansi@6.0.1: 1374 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1375 | engines: {node: '>=8'} 1376 | 1377 | strip-ansi@7.1.0: 1378 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} 1379 | engines: {node: '>=12'} 1380 | 1381 | strip-json-comments@2.0.1: 1382 | resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} 1383 | engines: {node: '>=0.10.0'} 1384 | 1385 | strip-json-comments@3.1.1: 1386 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 1387 | engines: {node: '>=8'} 1388 | 1389 | supports-color@5.5.0: 1390 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 1391 | engines: {node: '>=4'} 1392 | 1393 | supports-color@7.2.0: 1394 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 1395 | engines: {node: '>=8'} 1396 | 1397 | supports-color@8.1.1: 1398 | resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} 1399 | engines: {node: '>=10'} 1400 | 1401 | supports-color@9.4.0: 1402 | resolution: {integrity: sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==} 1403 | engines: {node: '>=12'} 1404 | 1405 | tapable@2.2.1: 1406 | resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} 1407 | engines: {node: '>=6'} 1408 | 1409 | tar-fs@2.1.1: 1410 | resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} 1411 | 1412 | tar-stream@2.2.0: 1413 | resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} 1414 | engines: {node: '>=6'} 1415 | 1416 | test-exclude@6.0.0: 1417 | resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} 1418 | engines: {node: '>=8'} 1419 | 1420 | tmp@0.2.3: 1421 | resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} 1422 | engines: {node: '>=14.14'} 1423 | 1424 | to-regex-range@5.0.1: 1425 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1426 | engines: {node: '>=8.0'} 1427 | 1428 | ts-api-utils@1.4.3: 1429 | resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==} 1430 | engines: {node: '>=16'} 1431 | peerDependencies: 1432 | typescript: '>=4.2.0' 1433 | 1434 | tslib@2.8.1: 1435 | resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} 1436 | 1437 | tunnel-agent@0.6.0: 1438 | resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} 1439 | 1440 | tunnel@0.0.6: 1441 | resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} 1442 | engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} 1443 | 1444 | type-check@0.4.0: 1445 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 1446 | engines: {node: '>= 0.8.0'} 1447 | 1448 | typed-rest-client@1.8.11: 1449 | resolution: {integrity: sha512-5UvfMpd1oelmUPRbbaVnq+rHP7ng2cE4qoQkQeAqxRL6PklkxsM0g32/HL0yfvruK6ojQ5x8EE+HF4YV6DtuCA==} 1450 | 1451 | typescript@5.7.2: 1452 | resolution: {integrity: sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==} 1453 | engines: {node: '>=14.17'} 1454 | hasBin: true 1455 | 1456 | uc.micro@2.1.0: 1457 | resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} 1458 | 1459 | underscore@1.13.7: 1460 | resolution: {integrity: sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==} 1461 | 1462 | undici-types@6.19.8: 1463 | resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} 1464 | 1465 | undici@6.21.0: 1466 | resolution: {integrity: sha512-BUgJXc752Kou3oOIuU1i+yZZypyZRqNPW0vqoMPl8VaoalSfeR0D8/t4iAS3yirs79SSMTxTag+ZC86uswv+Cw==} 1467 | engines: {node: '>=18.17'} 1468 | 1469 | uri-js@4.4.1: 1470 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 1471 | 1472 | url-join@4.0.1: 1473 | resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==} 1474 | 1475 | util-deprecate@1.0.2: 1476 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 1477 | 1478 | uuid@8.3.2: 1479 | resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} 1480 | hasBin: true 1481 | 1482 | v8-to-istanbul@9.3.0: 1483 | resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} 1484 | engines: {node: '>=10.12.0'} 1485 | 1486 | whatwg-encoding@3.1.1: 1487 | resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} 1488 | engines: {node: '>=18'} 1489 | 1490 | whatwg-mimetype@4.0.0: 1491 | resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} 1492 | engines: {node: '>=18'} 1493 | 1494 | which@2.0.2: 1495 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 1496 | engines: {node: '>= 8'} 1497 | hasBin: true 1498 | 1499 | word-wrap@1.2.5: 1500 | resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} 1501 | engines: {node: '>=0.10.0'} 1502 | 1503 | workerpool@6.5.1: 1504 | resolution: {integrity: sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==} 1505 | 1506 | wrap-ansi@7.0.0: 1507 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 1508 | engines: {node: '>=10'} 1509 | 1510 | wrap-ansi@8.1.0: 1511 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} 1512 | engines: {node: '>=12'} 1513 | 1514 | wrappy@1.0.2: 1515 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 1516 | 1517 | xml2js@0.5.0: 1518 | resolution: {integrity: sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==} 1519 | engines: {node: '>=4.0.0'} 1520 | 1521 | xmlbuilder@11.0.1: 1522 | resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} 1523 | engines: {node: '>=4.0'} 1524 | 1525 | y18n@5.0.8: 1526 | resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} 1527 | engines: {node: '>=10'} 1528 | 1529 | yallist@4.0.0: 1530 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 1531 | 1532 | yargs-parser@20.2.9: 1533 | resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} 1534 | engines: {node: '>=10'} 1535 | 1536 | yargs-parser@21.1.1: 1537 | resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} 1538 | engines: {node: '>=12'} 1539 | 1540 | yargs-unparser@2.0.0: 1541 | resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} 1542 | engines: {node: '>=10'} 1543 | 1544 | yargs@16.2.0: 1545 | resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} 1546 | engines: {node: '>=10'} 1547 | 1548 | yargs@17.7.2: 1549 | resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} 1550 | engines: {node: '>=12'} 1551 | 1552 | yauzl@2.10.0: 1553 | resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} 1554 | 1555 | yazl@2.5.1: 1556 | resolution: {integrity: sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==} 1557 | 1558 | yocto-queue@0.1.0: 1559 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 1560 | engines: {node: '>=10'} 1561 | 1562 | snapshots: 1563 | 1564 | '@azure/abort-controller@2.1.2': 1565 | dependencies: 1566 | tslib: 2.8.1 1567 | 1568 | '@azure/core-auth@1.9.0': 1569 | dependencies: 1570 | '@azure/abort-controller': 2.1.2 1571 | '@azure/core-util': 1.11.0 1572 | tslib: 2.8.1 1573 | 1574 | '@azure/core-client@1.9.2': 1575 | dependencies: 1576 | '@azure/abort-controller': 2.1.2 1577 | '@azure/core-auth': 1.9.0 1578 | '@azure/core-rest-pipeline': 1.18.1 1579 | '@azure/core-tracing': 1.2.0 1580 | '@azure/core-util': 1.11.0 1581 | '@azure/logger': 1.1.4 1582 | tslib: 2.8.1 1583 | transitivePeerDependencies: 1584 | - supports-color 1585 | 1586 | '@azure/core-rest-pipeline@1.18.1': 1587 | dependencies: 1588 | '@azure/abort-controller': 2.1.2 1589 | '@azure/core-auth': 1.9.0 1590 | '@azure/core-tracing': 1.2.0 1591 | '@azure/core-util': 1.11.0 1592 | '@azure/logger': 1.1.4 1593 | http-proxy-agent: 7.0.2 1594 | https-proxy-agent: 7.0.6 1595 | tslib: 2.8.1 1596 | transitivePeerDependencies: 1597 | - supports-color 1598 | 1599 | '@azure/core-tracing@1.2.0': 1600 | dependencies: 1601 | tslib: 2.8.1 1602 | 1603 | '@azure/core-util@1.11.0': 1604 | dependencies: 1605 | '@azure/abort-controller': 2.1.2 1606 | tslib: 2.8.1 1607 | 1608 | '@azure/identity@4.5.0': 1609 | dependencies: 1610 | '@azure/abort-controller': 2.1.2 1611 | '@azure/core-auth': 1.9.0 1612 | '@azure/core-client': 1.9.2 1613 | '@azure/core-rest-pipeline': 1.18.1 1614 | '@azure/core-tracing': 1.2.0 1615 | '@azure/core-util': 1.11.0 1616 | '@azure/logger': 1.1.4 1617 | '@azure/msal-browser': 3.28.0 1618 | '@azure/msal-node': 2.16.2 1619 | events: 3.3.0 1620 | jws: 4.0.0 1621 | open: 8.4.2 1622 | stoppable: 1.1.0 1623 | tslib: 2.8.1 1624 | transitivePeerDependencies: 1625 | - supports-color 1626 | 1627 | '@azure/logger@1.1.4': 1628 | dependencies: 1629 | tslib: 2.8.1 1630 | 1631 | '@azure/msal-browser@3.28.0': 1632 | dependencies: 1633 | '@azure/msal-common': 14.16.0 1634 | 1635 | '@azure/msal-common@14.16.0': {} 1636 | 1637 | '@azure/msal-node@2.16.2': 1638 | dependencies: 1639 | '@azure/msal-common': 14.16.0 1640 | jsonwebtoken: 9.0.2 1641 | uuid: 8.3.2 1642 | 1643 | '@bcoe/v8-coverage@0.2.3': {} 1644 | 1645 | '@eslint-community/eslint-utils@4.4.1(eslint@9.17.0)': 1646 | dependencies: 1647 | eslint: 9.17.0 1648 | eslint-visitor-keys: 3.4.3 1649 | 1650 | '@eslint-community/regexpp@4.12.1': {} 1651 | 1652 | '@eslint/config-array@0.19.1': 1653 | dependencies: 1654 | '@eslint/object-schema': 2.1.5 1655 | debug: 4.4.0(supports-color@8.1.1) 1656 | minimatch: 3.1.2 1657 | transitivePeerDependencies: 1658 | - supports-color 1659 | 1660 | '@eslint/core@0.9.1': 1661 | dependencies: 1662 | '@types/json-schema': 7.0.15 1663 | 1664 | '@eslint/eslintrc@3.2.0': 1665 | dependencies: 1666 | ajv: 6.12.6 1667 | debug: 4.4.0(supports-color@8.1.1) 1668 | espree: 10.3.0 1669 | globals: 14.0.0 1670 | ignore: 5.3.2 1671 | import-fresh: 3.3.0 1672 | js-yaml: 4.1.0 1673 | minimatch: 3.1.2 1674 | strip-json-comments: 3.1.1 1675 | transitivePeerDependencies: 1676 | - supports-color 1677 | 1678 | '@eslint/js@9.17.0': {} 1679 | 1680 | '@eslint/object-schema@2.1.5': {} 1681 | 1682 | '@eslint/plugin-kit@0.2.4': 1683 | dependencies: 1684 | levn: 0.4.1 1685 | 1686 | '@humanfs/core@0.19.1': {} 1687 | 1688 | '@humanfs/node@0.16.6': 1689 | dependencies: 1690 | '@humanfs/core': 0.19.1 1691 | '@humanwhocodes/retry': 0.3.1 1692 | 1693 | '@humanwhocodes/module-importer@1.0.1': {} 1694 | 1695 | '@humanwhocodes/retry@0.3.1': {} 1696 | 1697 | '@humanwhocodes/retry@0.4.1': {} 1698 | 1699 | '@isaacs/cliui@8.0.2': 1700 | dependencies: 1701 | string-width: 5.1.2 1702 | string-width-cjs: string-width@4.2.3 1703 | strip-ansi: 7.1.0 1704 | strip-ansi-cjs: strip-ansi@6.0.1 1705 | wrap-ansi: 8.1.0 1706 | wrap-ansi-cjs: wrap-ansi@7.0.0 1707 | 1708 | '@istanbuljs/schema@0.1.3': {} 1709 | 1710 | '@jridgewell/resolve-uri@3.1.2': {} 1711 | 1712 | '@jridgewell/sourcemap-codec@1.5.0': {} 1713 | 1714 | '@jridgewell/trace-mapping@0.3.25': 1715 | dependencies: 1716 | '@jridgewell/resolve-uri': 3.1.2 1717 | '@jridgewell/sourcemap-codec': 1.5.0 1718 | 1719 | '@nodelib/fs.scandir@2.1.5': 1720 | dependencies: 1721 | '@nodelib/fs.stat': 2.0.5 1722 | run-parallel: 1.2.0 1723 | 1724 | '@nodelib/fs.stat@2.0.5': {} 1725 | 1726 | '@nodelib/fs.walk@1.2.8': 1727 | dependencies: 1728 | '@nodelib/fs.scandir': 2.1.5 1729 | fastq: 1.18.0 1730 | 1731 | '@pkgjs/parseargs@0.11.0': 1732 | optional: true 1733 | 1734 | '@types/estree@1.0.6': {} 1735 | 1736 | '@types/istanbul-lib-coverage@2.0.6': {} 1737 | 1738 | '@types/json-schema@7.0.15': {} 1739 | 1740 | '@types/mocha@10.0.10': {} 1741 | 1742 | '@types/node@20.17.11': 1743 | dependencies: 1744 | undici-types: 6.19.8 1745 | 1746 | '@types/vscode@1.96.0': {} 1747 | 1748 | '@typescript-eslint/eslint-plugin@8.19.0(@typescript-eslint/parser@8.19.0(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0)(typescript@5.7.2)': 1749 | dependencies: 1750 | '@eslint-community/regexpp': 4.12.1 1751 | '@typescript-eslint/parser': 8.19.0(eslint@9.17.0)(typescript@5.7.2) 1752 | '@typescript-eslint/scope-manager': 8.19.0 1753 | '@typescript-eslint/type-utils': 8.19.0(eslint@9.17.0)(typescript@5.7.2) 1754 | '@typescript-eslint/utils': 8.19.0(eslint@9.17.0)(typescript@5.7.2) 1755 | '@typescript-eslint/visitor-keys': 8.19.0 1756 | eslint: 9.17.0 1757 | graphemer: 1.4.0 1758 | ignore: 5.3.2 1759 | natural-compare: 1.4.0 1760 | ts-api-utils: 1.4.3(typescript@5.7.2) 1761 | typescript: 5.7.2 1762 | transitivePeerDependencies: 1763 | - supports-color 1764 | 1765 | '@typescript-eslint/parser@8.19.0(eslint@9.17.0)(typescript@5.7.2)': 1766 | dependencies: 1767 | '@typescript-eslint/scope-manager': 8.19.0 1768 | '@typescript-eslint/types': 8.19.0 1769 | '@typescript-eslint/typescript-estree': 8.19.0(typescript@5.7.2) 1770 | '@typescript-eslint/visitor-keys': 8.19.0 1771 | debug: 4.4.0(supports-color@8.1.1) 1772 | eslint: 9.17.0 1773 | typescript: 5.7.2 1774 | transitivePeerDependencies: 1775 | - supports-color 1776 | 1777 | '@typescript-eslint/scope-manager@8.19.0': 1778 | dependencies: 1779 | '@typescript-eslint/types': 8.19.0 1780 | '@typescript-eslint/visitor-keys': 8.19.0 1781 | 1782 | '@typescript-eslint/type-utils@8.19.0(eslint@9.17.0)(typescript@5.7.2)': 1783 | dependencies: 1784 | '@typescript-eslint/typescript-estree': 8.19.0(typescript@5.7.2) 1785 | '@typescript-eslint/utils': 8.19.0(eslint@9.17.0)(typescript@5.7.2) 1786 | debug: 4.4.0(supports-color@8.1.1) 1787 | eslint: 9.17.0 1788 | ts-api-utils: 1.4.3(typescript@5.7.2) 1789 | typescript: 5.7.2 1790 | transitivePeerDependencies: 1791 | - supports-color 1792 | 1793 | '@typescript-eslint/types@8.19.0': {} 1794 | 1795 | '@typescript-eslint/typescript-estree@8.19.0(typescript@5.7.2)': 1796 | dependencies: 1797 | '@typescript-eslint/types': 8.19.0 1798 | '@typescript-eslint/visitor-keys': 8.19.0 1799 | debug: 4.4.0(supports-color@8.1.1) 1800 | fast-glob: 3.3.3 1801 | is-glob: 4.0.3 1802 | minimatch: 9.0.5 1803 | semver: 7.6.3 1804 | ts-api-utils: 1.4.3(typescript@5.7.2) 1805 | typescript: 5.7.2 1806 | transitivePeerDependencies: 1807 | - supports-color 1808 | 1809 | '@typescript-eslint/utils@8.19.0(eslint@9.17.0)(typescript@5.7.2)': 1810 | dependencies: 1811 | '@eslint-community/eslint-utils': 4.4.1(eslint@9.17.0) 1812 | '@typescript-eslint/scope-manager': 8.19.0 1813 | '@typescript-eslint/types': 8.19.0 1814 | '@typescript-eslint/typescript-estree': 8.19.0(typescript@5.7.2) 1815 | eslint: 9.17.0 1816 | typescript: 5.7.2 1817 | transitivePeerDependencies: 1818 | - supports-color 1819 | 1820 | '@typescript-eslint/visitor-keys@8.19.0': 1821 | dependencies: 1822 | '@typescript-eslint/types': 8.19.0 1823 | eslint-visitor-keys: 4.2.0 1824 | 1825 | '@vscode/test-cli@0.0.10': 1826 | dependencies: 1827 | '@types/mocha': 10.0.10 1828 | c8: 9.1.0 1829 | chokidar: 3.6.0 1830 | enhanced-resolve: 5.18.0 1831 | glob: 10.4.5 1832 | minimatch: 9.0.5 1833 | mocha: 10.8.2 1834 | supports-color: 9.4.0 1835 | yargs: 17.7.2 1836 | 1837 | '@vscode/test-electron@2.4.1': 1838 | dependencies: 1839 | http-proxy-agent: 7.0.2 1840 | https-proxy-agent: 7.0.6 1841 | jszip: 3.10.1 1842 | ora: 7.0.1 1843 | semver: 7.6.3 1844 | transitivePeerDependencies: 1845 | - supports-color 1846 | 1847 | '@vscode/vsce-sign-alpine-arm64@2.0.2': 1848 | optional: true 1849 | 1850 | '@vscode/vsce-sign-alpine-x64@2.0.2': 1851 | optional: true 1852 | 1853 | '@vscode/vsce-sign-darwin-arm64@2.0.2': 1854 | optional: true 1855 | 1856 | '@vscode/vsce-sign-darwin-x64@2.0.2': 1857 | optional: true 1858 | 1859 | '@vscode/vsce-sign-linux-arm64@2.0.2': 1860 | optional: true 1861 | 1862 | '@vscode/vsce-sign-linux-arm@2.0.2': 1863 | optional: true 1864 | 1865 | '@vscode/vsce-sign-linux-x64@2.0.2': 1866 | optional: true 1867 | 1868 | '@vscode/vsce-sign-win32-arm64@2.0.2': 1869 | optional: true 1870 | 1871 | '@vscode/vsce-sign-win32-x64@2.0.2': 1872 | optional: true 1873 | 1874 | '@vscode/vsce-sign@2.0.5': 1875 | optionalDependencies: 1876 | '@vscode/vsce-sign-alpine-arm64': 2.0.2 1877 | '@vscode/vsce-sign-alpine-x64': 2.0.2 1878 | '@vscode/vsce-sign-darwin-arm64': 2.0.2 1879 | '@vscode/vsce-sign-darwin-x64': 2.0.2 1880 | '@vscode/vsce-sign-linux-arm': 2.0.2 1881 | '@vscode/vsce-sign-linux-arm64': 2.0.2 1882 | '@vscode/vsce-sign-linux-x64': 2.0.2 1883 | '@vscode/vsce-sign-win32-arm64': 2.0.2 1884 | '@vscode/vsce-sign-win32-x64': 2.0.2 1885 | 1886 | '@vscode/vsce@3.2.1': 1887 | dependencies: 1888 | '@azure/identity': 4.5.0 1889 | '@vscode/vsce-sign': 2.0.5 1890 | azure-devops-node-api: 12.5.0 1891 | chalk: 2.4.2 1892 | cheerio: 1.0.0 1893 | cockatiel: 3.2.1 1894 | commander: 6.2.1 1895 | form-data: 4.0.1 1896 | glob: 11.0.0 1897 | hosted-git-info: 4.1.0 1898 | jsonc-parser: 3.3.1 1899 | leven: 3.1.0 1900 | markdown-it: 14.1.0 1901 | mime: 1.6.0 1902 | minimatch: 3.1.2 1903 | parse-semver: 1.1.1 1904 | read: 1.0.7 1905 | semver: 7.6.3 1906 | tmp: 0.2.3 1907 | typed-rest-client: 1.8.11 1908 | url-join: 4.0.1 1909 | xml2js: 0.5.0 1910 | yauzl: 2.10.0 1911 | yazl: 2.5.1 1912 | optionalDependencies: 1913 | keytar: 7.9.0 1914 | transitivePeerDependencies: 1915 | - supports-color 1916 | 1917 | acorn-jsx@5.3.2(acorn@8.14.0): 1918 | dependencies: 1919 | acorn: 8.14.0 1920 | 1921 | acorn@8.14.0: {} 1922 | 1923 | agent-base@7.1.3: {} 1924 | 1925 | ajv@6.12.6: 1926 | dependencies: 1927 | fast-deep-equal: 3.1.3 1928 | fast-json-stable-stringify: 2.1.0 1929 | json-schema-traverse: 0.4.1 1930 | uri-js: 4.4.1 1931 | 1932 | ansi-colors@4.1.3: {} 1933 | 1934 | ansi-regex@5.0.1: {} 1935 | 1936 | ansi-regex@6.1.0: {} 1937 | 1938 | ansi-styles@3.2.1: 1939 | dependencies: 1940 | color-convert: 1.9.3 1941 | 1942 | ansi-styles@4.3.0: 1943 | dependencies: 1944 | color-convert: 2.0.1 1945 | 1946 | ansi-styles@6.2.1: {} 1947 | 1948 | anymatch@3.1.3: 1949 | dependencies: 1950 | normalize-path: 3.0.0 1951 | picomatch: 2.3.1 1952 | 1953 | argparse@2.0.1: {} 1954 | 1955 | asynckit@0.4.0: {} 1956 | 1957 | azure-devops-node-api@12.5.0: 1958 | dependencies: 1959 | tunnel: 0.0.6 1960 | typed-rest-client: 1.8.11 1961 | 1962 | balanced-match@1.0.2: {} 1963 | 1964 | base64-js@1.5.1: {} 1965 | 1966 | binary-extensions@2.3.0: {} 1967 | 1968 | bl@4.1.0: 1969 | dependencies: 1970 | buffer: 5.7.1 1971 | inherits: 2.0.4 1972 | readable-stream: 3.6.2 1973 | optional: true 1974 | 1975 | bl@5.1.0: 1976 | dependencies: 1977 | buffer: 6.0.3 1978 | inherits: 2.0.4 1979 | readable-stream: 3.6.2 1980 | 1981 | boolbase@1.0.0: {} 1982 | 1983 | brace-expansion@1.1.11: 1984 | dependencies: 1985 | balanced-match: 1.0.2 1986 | concat-map: 0.0.1 1987 | 1988 | brace-expansion@2.0.1: 1989 | dependencies: 1990 | balanced-match: 1.0.2 1991 | 1992 | braces@3.0.3: 1993 | dependencies: 1994 | fill-range: 7.1.1 1995 | 1996 | browser-stdout@1.3.1: {} 1997 | 1998 | buffer-crc32@0.2.13: {} 1999 | 2000 | buffer-equal-constant-time@1.0.1: {} 2001 | 2002 | buffer@5.7.1: 2003 | dependencies: 2004 | base64-js: 1.5.1 2005 | ieee754: 1.2.1 2006 | optional: true 2007 | 2008 | buffer@6.0.3: 2009 | dependencies: 2010 | base64-js: 1.5.1 2011 | ieee754: 1.2.1 2012 | 2013 | c8@9.1.0: 2014 | dependencies: 2015 | '@bcoe/v8-coverage': 0.2.3 2016 | '@istanbuljs/schema': 0.1.3 2017 | find-up: 5.0.0 2018 | foreground-child: 3.3.0 2019 | istanbul-lib-coverage: 3.2.2 2020 | istanbul-lib-report: 3.0.1 2021 | istanbul-reports: 3.1.7 2022 | test-exclude: 6.0.0 2023 | v8-to-istanbul: 9.3.0 2024 | yargs: 17.7.2 2025 | yargs-parser: 21.1.1 2026 | 2027 | call-bind-apply-helpers@1.0.1: 2028 | dependencies: 2029 | es-errors: 1.3.0 2030 | function-bind: 1.1.2 2031 | 2032 | call-bound@1.0.3: 2033 | dependencies: 2034 | call-bind-apply-helpers: 1.0.1 2035 | get-intrinsic: 1.2.7 2036 | 2037 | callsites@3.1.0: {} 2038 | 2039 | camelcase@6.3.0: {} 2040 | 2041 | chalk@2.4.2: 2042 | dependencies: 2043 | ansi-styles: 3.2.1 2044 | escape-string-regexp: 1.0.5 2045 | supports-color: 5.5.0 2046 | 2047 | chalk@4.1.2: 2048 | dependencies: 2049 | ansi-styles: 4.3.0 2050 | supports-color: 7.2.0 2051 | 2052 | chalk@5.4.1: {} 2053 | 2054 | cheerio-select@2.1.0: 2055 | dependencies: 2056 | boolbase: 1.0.0 2057 | css-select: 5.1.0 2058 | css-what: 6.1.0 2059 | domelementtype: 2.3.0 2060 | domhandler: 5.0.3 2061 | domutils: 3.2.1 2062 | 2063 | cheerio@1.0.0: 2064 | dependencies: 2065 | cheerio-select: 2.1.0 2066 | dom-serializer: 2.0.0 2067 | domhandler: 5.0.3 2068 | domutils: 3.2.1 2069 | encoding-sniffer: 0.2.0 2070 | htmlparser2: 9.1.0 2071 | parse5: 7.2.1 2072 | parse5-htmlparser2-tree-adapter: 7.1.0 2073 | parse5-parser-stream: 7.1.2 2074 | undici: 6.21.0 2075 | whatwg-mimetype: 4.0.0 2076 | 2077 | chokidar@3.6.0: 2078 | dependencies: 2079 | anymatch: 3.1.3 2080 | braces: 3.0.3 2081 | glob-parent: 5.1.2 2082 | is-binary-path: 2.1.0 2083 | is-glob: 4.0.3 2084 | normalize-path: 3.0.0 2085 | readdirp: 3.6.0 2086 | optionalDependencies: 2087 | fsevents: 2.3.3 2088 | 2089 | chownr@1.1.4: 2090 | optional: true 2091 | 2092 | cli-cursor@4.0.0: 2093 | dependencies: 2094 | restore-cursor: 4.0.0 2095 | 2096 | cli-spinners@2.9.2: {} 2097 | 2098 | cliui@7.0.4: 2099 | dependencies: 2100 | string-width: 4.2.3 2101 | strip-ansi: 6.0.1 2102 | wrap-ansi: 7.0.0 2103 | 2104 | cliui@8.0.1: 2105 | dependencies: 2106 | string-width: 4.2.3 2107 | strip-ansi: 6.0.1 2108 | wrap-ansi: 7.0.0 2109 | 2110 | cockatiel@3.2.1: {} 2111 | 2112 | color-convert@1.9.3: 2113 | dependencies: 2114 | color-name: 1.1.3 2115 | 2116 | color-convert@2.0.1: 2117 | dependencies: 2118 | color-name: 1.1.4 2119 | 2120 | color-name@1.1.3: {} 2121 | 2122 | color-name@1.1.4: {} 2123 | 2124 | combined-stream@1.0.8: 2125 | dependencies: 2126 | delayed-stream: 1.0.0 2127 | 2128 | commander@6.2.1: {} 2129 | 2130 | concat-map@0.0.1: {} 2131 | 2132 | convert-source-map@2.0.0: {} 2133 | 2134 | core-util-is@1.0.3: {} 2135 | 2136 | cross-spawn@7.0.6: 2137 | dependencies: 2138 | path-key: 3.1.1 2139 | shebang-command: 2.0.0 2140 | which: 2.0.2 2141 | 2142 | css-select@5.1.0: 2143 | dependencies: 2144 | boolbase: 1.0.0 2145 | css-what: 6.1.0 2146 | domhandler: 5.0.3 2147 | domutils: 3.2.1 2148 | nth-check: 2.1.1 2149 | 2150 | css-what@6.1.0: {} 2151 | 2152 | debug@4.4.0(supports-color@8.1.1): 2153 | dependencies: 2154 | ms: 2.1.3 2155 | optionalDependencies: 2156 | supports-color: 8.1.1 2157 | 2158 | decamelize@4.0.0: {} 2159 | 2160 | decompress-response@6.0.0: 2161 | dependencies: 2162 | mimic-response: 3.1.0 2163 | optional: true 2164 | 2165 | deep-extend@0.6.0: 2166 | optional: true 2167 | 2168 | deep-is@0.1.4: {} 2169 | 2170 | define-lazy-prop@2.0.0: {} 2171 | 2172 | delayed-stream@1.0.0: {} 2173 | 2174 | detect-libc@2.0.3: 2175 | optional: true 2176 | 2177 | diff@5.2.0: {} 2178 | 2179 | dom-serializer@2.0.0: 2180 | dependencies: 2181 | domelementtype: 2.3.0 2182 | domhandler: 5.0.3 2183 | entities: 4.5.0 2184 | 2185 | domelementtype@2.3.0: {} 2186 | 2187 | domhandler@5.0.3: 2188 | dependencies: 2189 | domelementtype: 2.3.0 2190 | 2191 | domutils@3.2.1: 2192 | dependencies: 2193 | dom-serializer: 2.0.0 2194 | domelementtype: 2.3.0 2195 | domhandler: 5.0.3 2196 | 2197 | dunder-proto@1.0.1: 2198 | dependencies: 2199 | call-bind-apply-helpers: 1.0.1 2200 | es-errors: 1.3.0 2201 | gopd: 1.2.0 2202 | 2203 | eastasianwidth@0.2.0: {} 2204 | 2205 | ecdsa-sig-formatter@1.0.11: 2206 | dependencies: 2207 | safe-buffer: 5.2.1 2208 | 2209 | emoji-regex@10.4.0: {} 2210 | 2211 | emoji-regex@8.0.0: {} 2212 | 2213 | emoji-regex@9.2.2: {} 2214 | 2215 | encoding-sniffer@0.2.0: 2216 | dependencies: 2217 | iconv-lite: 0.6.3 2218 | whatwg-encoding: 3.1.1 2219 | 2220 | end-of-stream@1.4.4: 2221 | dependencies: 2222 | once: 1.4.0 2223 | optional: true 2224 | 2225 | enhanced-resolve@5.18.0: 2226 | dependencies: 2227 | graceful-fs: 4.2.11 2228 | tapable: 2.2.1 2229 | 2230 | entities@4.5.0: {} 2231 | 2232 | es-define-property@1.0.1: {} 2233 | 2234 | es-errors@1.3.0: {} 2235 | 2236 | es-object-atoms@1.0.0: 2237 | dependencies: 2238 | es-errors: 1.3.0 2239 | 2240 | escalade@3.2.0: {} 2241 | 2242 | escape-string-regexp@1.0.5: {} 2243 | 2244 | escape-string-regexp@4.0.0: {} 2245 | 2246 | eslint-scope@8.2.0: 2247 | dependencies: 2248 | esrecurse: 4.3.0 2249 | estraverse: 5.3.0 2250 | 2251 | eslint-visitor-keys@3.4.3: {} 2252 | 2253 | eslint-visitor-keys@4.2.0: {} 2254 | 2255 | eslint@9.17.0: 2256 | dependencies: 2257 | '@eslint-community/eslint-utils': 4.4.1(eslint@9.17.0) 2258 | '@eslint-community/regexpp': 4.12.1 2259 | '@eslint/config-array': 0.19.1 2260 | '@eslint/core': 0.9.1 2261 | '@eslint/eslintrc': 3.2.0 2262 | '@eslint/js': 9.17.0 2263 | '@eslint/plugin-kit': 0.2.4 2264 | '@humanfs/node': 0.16.6 2265 | '@humanwhocodes/module-importer': 1.0.1 2266 | '@humanwhocodes/retry': 0.4.1 2267 | '@types/estree': 1.0.6 2268 | '@types/json-schema': 7.0.15 2269 | ajv: 6.12.6 2270 | chalk: 4.1.2 2271 | cross-spawn: 7.0.6 2272 | debug: 4.4.0(supports-color@8.1.1) 2273 | escape-string-regexp: 4.0.0 2274 | eslint-scope: 8.2.0 2275 | eslint-visitor-keys: 4.2.0 2276 | espree: 10.3.0 2277 | esquery: 1.6.0 2278 | esutils: 2.0.3 2279 | fast-deep-equal: 3.1.3 2280 | file-entry-cache: 8.0.0 2281 | find-up: 5.0.0 2282 | glob-parent: 6.0.2 2283 | ignore: 5.3.2 2284 | imurmurhash: 0.1.4 2285 | is-glob: 4.0.3 2286 | json-stable-stringify-without-jsonify: 1.0.1 2287 | lodash.merge: 4.6.2 2288 | minimatch: 3.1.2 2289 | natural-compare: 1.4.0 2290 | optionator: 0.9.4 2291 | transitivePeerDependencies: 2292 | - supports-color 2293 | 2294 | espree@10.3.0: 2295 | dependencies: 2296 | acorn: 8.14.0 2297 | acorn-jsx: 5.3.2(acorn@8.14.0) 2298 | eslint-visitor-keys: 4.2.0 2299 | 2300 | esquery@1.6.0: 2301 | dependencies: 2302 | estraverse: 5.3.0 2303 | 2304 | esrecurse@4.3.0: 2305 | dependencies: 2306 | estraverse: 5.3.0 2307 | 2308 | estraverse@5.3.0: {} 2309 | 2310 | esutils@2.0.3: {} 2311 | 2312 | events@3.3.0: {} 2313 | 2314 | expand-template@2.0.3: 2315 | optional: true 2316 | 2317 | fast-deep-equal@3.1.3: {} 2318 | 2319 | fast-glob@3.3.3: 2320 | dependencies: 2321 | '@nodelib/fs.stat': 2.0.5 2322 | '@nodelib/fs.walk': 1.2.8 2323 | glob-parent: 5.1.2 2324 | merge2: 1.4.1 2325 | micromatch: 4.0.8 2326 | 2327 | fast-json-stable-stringify@2.1.0: {} 2328 | 2329 | fast-levenshtein@2.0.6: {} 2330 | 2331 | fastq@1.18.0: 2332 | dependencies: 2333 | reusify: 1.0.4 2334 | 2335 | fd-slicer@1.1.0: 2336 | dependencies: 2337 | pend: 1.2.0 2338 | 2339 | file-entry-cache@8.0.0: 2340 | dependencies: 2341 | flat-cache: 4.0.1 2342 | 2343 | fill-range@7.1.1: 2344 | dependencies: 2345 | to-regex-range: 5.0.1 2346 | 2347 | find-up@5.0.0: 2348 | dependencies: 2349 | locate-path: 6.0.0 2350 | path-exists: 4.0.0 2351 | 2352 | flat-cache@4.0.1: 2353 | dependencies: 2354 | flatted: 3.3.2 2355 | keyv: 4.5.4 2356 | 2357 | flat@5.0.2: {} 2358 | 2359 | flatted@3.3.2: {} 2360 | 2361 | foreground-child@3.3.0: 2362 | dependencies: 2363 | cross-spawn: 7.0.6 2364 | signal-exit: 4.1.0 2365 | 2366 | form-data@4.0.1: 2367 | dependencies: 2368 | asynckit: 0.4.0 2369 | combined-stream: 1.0.8 2370 | mime-types: 2.1.35 2371 | 2372 | fs-constants@1.0.0: 2373 | optional: true 2374 | 2375 | fs.realpath@1.0.0: {} 2376 | 2377 | fsevents@2.3.3: 2378 | optional: true 2379 | 2380 | function-bind@1.1.2: {} 2381 | 2382 | get-caller-file@2.0.5: {} 2383 | 2384 | get-intrinsic@1.2.7: 2385 | dependencies: 2386 | call-bind-apply-helpers: 1.0.1 2387 | es-define-property: 1.0.1 2388 | es-errors: 1.3.0 2389 | es-object-atoms: 1.0.0 2390 | function-bind: 1.1.2 2391 | get-proto: 1.0.1 2392 | gopd: 1.2.0 2393 | has-symbols: 1.1.0 2394 | hasown: 2.0.2 2395 | math-intrinsics: 1.1.0 2396 | 2397 | get-proto@1.0.1: 2398 | dependencies: 2399 | dunder-proto: 1.0.1 2400 | es-object-atoms: 1.0.0 2401 | 2402 | github-from-package@0.0.0: 2403 | optional: true 2404 | 2405 | glob-parent@5.1.2: 2406 | dependencies: 2407 | is-glob: 4.0.3 2408 | 2409 | glob-parent@6.0.2: 2410 | dependencies: 2411 | is-glob: 4.0.3 2412 | 2413 | glob@10.4.5: 2414 | dependencies: 2415 | foreground-child: 3.3.0 2416 | jackspeak: 3.4.3 2417 | minimatch: 9.0.5 2418 | minipass: 7.1.2 2419 | package-json-from-dist: 1.0.1 2420 | path-scurry: 1.11.1 2421 | 2422 | glob@11.0.0: 2423 | dependencies: 2424 | foreground-child: 3.3.0 2425 | jackspeak: 4.0.2 2426 | minimatch: 10.0.1 2427 | minipass: 7.1.2 2428 | package-json-from-dist: 1.0.1 2429 | path-scurry: 2.0.0 2430 | 2431 | glob@7.2.3: 2432 | dependencies: 2433 | fs.realpath: 1.0.0 2434 | inflight: 1.0.6 2435 | inherits: 2.0.4 2436 | minimatch: 3.1.2 2437 | once: 1.4.0 2438 | path-is-absolute: 1.0.1 2439 | 2440 | glob@8.1.0: 2441 | dependencies: 2442 | fs.realpath: 1.0.0 2443 | inflight: 1.0.6 2444 | inherits: 2.0.4 2445 | minimatch: 5.1.6 2446 | once: 1.4.0 2447 | 2448 | globals@14.0.0: {} 2449 | 2450 | gopd@1.2.0: {} 2451 | 2452 | graceful-fs@4.2.11: {} 2453 | 2454 | graphemer@1.4.0: {} 2455 | 2456 | has-flag@3.0.0: {} 2457 | 2458 | has-flag@4.0.0: {} 2459 | 2460 | has-symbols@1.1.0: {} 2461 | 2462 | hasown@2.0.2: 2463 | dependencies: 2464 | function-bind: 1.1.2 2465 | 2466 | he@1.2.0: {} 2467 | 2468 | hosted-git-info@4.1.0: 2469 | dependencies: 2470 | lru-cache: 6.0.0 2471 | 2472 | html-escaper@2.0.2: {} 2473 | 2474 | htmlparser2@9.1.0: 2475 | dependencies: 2476 | domelementtype: 2.3.0 2477 | domhandler: 5.0.3 2478 | domutils: 3.2.1 2479 | entities: 4.5.0 2480 | 2481 | http-proxy-agent@7.0.2: 2482 | dependencies: 2483 | agent-base: 7.1.3 2484 | debug: 4.4.0(supports-color@8.1.1) 2485 | transitivePeerDependencies: 2486 | - supports-color 2487 | 2488 | https-proxy-agent@7.0.6: 2489 | dependencies: 2490 | agent-base: 7.1.3 2491 | debug: 4.4.0(supports-color@8.1.1) 2492 | transitivePeerDependencies: 2493 | - supports-color 2494 | 2495 | iconv-lite@0.6.3: 2496 | dependencies: 2497 | safer-buffer: 2.1.2 2498 | 2499 | ieee754@1.2.1: {} 2500 | 2501 | ignore@5.3.2: {} 2502 | 2503 | immediate@3.0.6: {} 2504 | 2505 | import-fresh@3.3.0: 2506 | dependencies: 2507 | parent-module: 1.0.1 2508 | resolve-from: 4.0.0 2509 | 2510 | imurmurhash@0.1.4: {} 2511 | 2512 | inflight@1.0.6: 2513 | dependencies: 2514 | once: 1.4.0 2515 | wrappy: 1.0.2 2516 | 2517 | inherits@2.0.4: {} 2518 | 2519 | ini@1.3.8: 2520 | optional: true 2521 | 2522 | is-binary-path@2.1.0: 2523 | dependencies: 2524 | binary-extensions: 2.3.0 2525 | 2526 | is-docker@2.2.1: {} 2527 | 2528 | is-extglob@2.1.1: {} 2529 | 2530 | is-fullwidth-code-point@3.0.0: {} 2531 | 2532 | is-glob@4.0.3: 2533 | dependencies: 2534 | is-extglob: 2.1.1 2535 | 2536 | is-interactive@2.0.0: {} 2537 | 2538 | is-number@7.0.0: {} 2539 | 2540 | is-plain-obj@2.1.0: {} 2541 | 2542 | is-unicode-supported@0.1.0: {} 2543 | 2544 | is-unicode-supported@1.3.0: {} 2545 | 2546 | is-wsl@2.2.0: 2547 | dependencies: 2548 | is-docker: 2.2.1 2549 | 2550 | isarray@1.0.0: {} 2551 | 2552 | isexe@2.0.0: {} 2553 | 2554 | istanbul-lib-coverage@3.2.2: {} 2555 | 2556 | istanbul-lib-report@3.0.1: 2557 | dependencies: 2558 | istanbul-lib-coverage: 3.2.2 2559 | make-dir: 4.0.0 2560 | supports-color: 7.2.0 2561 | 2562 | istanbul-reports@3.1.7: 2563 | dependencies: 2564 | html-escaper: 2.0.2 2565 | istanbul-lib-report: 3.0.1 2566 | 2567 | jackspeak@3.4.3: 2568 | dependencies: 2569 | '@isaacs/cliui': 8.0.2 2570 | optionalDependencies: 2571 | '@pkgjs/parseargs': 0.11.0 2572 | 2573 | jackspeak@4.0.2: 2574 | dependencies: 2575 | '@isaacs/cliui': 8.0.2 2576 | 2577 | js-yaml@4.1.0: 2578 | dependencies: 2579 | argparse: 2.0.1 2580 | 2581 | json-buffer@3.0.1: {} 2582 | 2583 | json-schema-traverse@0.4.1: {} 2584 | 2585 | json-stable-stringify-without-jsonify@1.0.1: {} 2586 | 2587 | jsonc-parser@3.3.1: {} 2588 | 2589 | jsonwebtoken@9.0.2: 2590 | dependencies: 2591 | jws: 3.2.2 2592 | lodash.includes: 4.3.0 2593 | lodash.isboolean: 3.0.3 2594 | lodash.isinteger: 4.0.4 2595 | lodash.isnumber: 3.0.3 2596 | lodash.isplainobject: 4.0.6 2597 | lodash.isstring: 4.0.1 2598 | lodash.once: 4.1.1 2599 | ms: 2.1.3 2600 | semver: 7.6.3 2601 | 2602 | jszip@3.10.1: 2603 | dependencies: 2604 | lie: 3.3.0 2605 | pako: 1.0.11 2606 | readable-stream: 2.3.8 2607 | setimmediate: 1.0.5 2608 | 2609 | jwa@1.4.1: 2610 | dependencies: 2611 | buffer-equal-constant-time: 1.0.1 2612 | ecdsa-sig-formatter: 1.0.11 2613 | safe-buffer: 5.2.1 2614 | 2615 | jwa@2.0.0: 2616 | dependencies: 2617 | buffer-equal-constant-time: 1.0.1 2618 | ecdsa-sig-formatter: 1.0.11 2619 | safe-buffer: 5.2.1 2620 | 2621 | jws@3.2.2: 2622 | dependencies: 2623 | jwa: 1.4.1 2624 | safe-buffer: 5.2.1 2625 | 2626 | jws@4.0.0: 2627 | dependencies: 2628 | jwa: 2.0.0 2629 | safe-buffer: 5.2.1 2630 | 2631 | keytar@7.9.0: 2632 | dependencies: 2633 | node-addon-api: 4.3.0 2634 | prebuild-install: 7.1.2 2635 | optional: true 2636 | 2637 | keyv@4.5.4: 2638 | dependencies: 2639 | json-buffer: 3.0.1 2640 | 2641 | leven@3.1.0: {} 2642 | 2643 | levn@0.4.1: 2644 | dependencies: 2645 | prelude-ls: 1.2.1 2646 | type-check: 0.4.0 2647 | 2648 | lie@3.3.0: 2649 | dependencies: 2650 | immediate: 3.0.6 2651 | 2652 | linkify-it@5.0.0: 2653 | dependencies: 2654 | uc.micro: 2.1.0 2655 | 2656 | locate-path@6.0.0: 2657 | dependencies: 2658 | p-locate: 5.0.0 2659 | 2660 | lodash.includes@4.3.0: {} 2661 | 2662 | lodash.isboolean@3.0.3: {} 2663 | 2664 | lodash.isinteger@4.0.4: {} 2665 | 2666 | lodash.isnumber@3.0.3: {} 2667 | 2668 | lodash.isplainobject@4.0.6: {} 2669 | 2670 | lodash.isstring@4.0.1: {} 2671 | 2672 | lodash.merge@4.6.2: {} 2673 | 2674 | lodash.once@4.1.1: {} 2675 | 2676 | log-symbols@4.1.0: 2677 | dependencies: 2678 | chalk: 4.1.2 2679 | is-unicode-supported: 0.1.0 2680 | 2681 | log-symbols@5.1.0: 2682 | dependencies: 2683 | chalk: 5.4.1 2684 | is-unicode-supported: 1.3.0 2685 | 2686 | lru-cache@10.4.3: {} 2687 | 2688 | lru-cache@11.0.2: {} 2689 | 2690 | lru-cache@6.0.0: 2691 | dependencies: 2692 | yallist: 4.0.0 2693 | 2694 | make-dir@4.0.0: 2695 | dependencies: 2696 | semver: 7.6.3 2697 | 2698 | markdown-it@14.1.0: 2699 | dependencies: 2700 | argparse: 2.0.1 2701 | entities: 4.5.0 2702 | linkify-it: 5.0.0 2703 | mdurl: 2.0.0 2704 | punycode.js: 2.3.1 2705 | uc.micro: 2.1.0 2706 | 2707 | math-intrinsics@1.1.0: {} 2708 | 2709 | mdurl@2.0.0: {} 2710 | 2711 | merge2@1.4.1: {} 2712 | 2713 | micromatch@4.0.8: 2714 | dependencies: 2715 | braces: 3.0.3 2716 | picomatch: 2.3.1 2717 | 2718 | mime-db@1.52.0: {} 2719 | 2720 | mime-types@2.1.35: 2721 | dependencies: 2722 | mime-db: 1.52.0 2723 | 2724 | mime@1.6.0: {} 2725 | 2726 | mimic-fn@2.1.0: {} 2727 | 2728 | mimic-response@3.1.0: 2729 | optional: true 2730 | 2731 | minimatch@10.0.1: 2732 | dependencies: 2733 | brace-expansion: 2.0.1 2734 | 2735 | minimatch@3.1.2: 2736 | dependencies: 2737 | brace-expansion: 1.1.11 2738 | 2739 | minimatch@5.1.6: 2740 | dependencies: 2741 | brace-expansion: 2.0.1 2742 | 2743 | minimatch@9.0.5: 2744 | dependencies: 2745 | brace-expansion: 2.0.1 2746 | 2747 | minimist@1.2.8: 2748 | optional: true 2749 | 2750 | minipass@7.1.2: {} 2751 | 2752 | mkdirp-classic@0.5.3: 2753 | optional: true 2754 | 2755 | mocha@10.8.2: 2756 | dependencies: 2757 | ansi-colors: 4.1.3 2758 | browser-stdout: 1.3.1 2759 | chokidar: 3.6.0 2760 | debug: 4.4.0(supports-color@8.1.1) 2761 | diff: 5.2.0 2762 | escape-string-regexp: 4.0.0 2763 | find-up: 5.0.0 2764 | glob: 8.1.0 2765 | he: 1.2.0 2766 | js-yaml: 4.1.0 2767 | log-symbols: 4.1.0 2768 | minimatch: 5.1.6 2769 | ms: 2.1.3 2770 | serialize-javascript: 6.0.2 2771 | strip-json-comments: 3.1.1 2772 | supports-color: 8.1.1 2773 | workerpool: 6.5.1 2774 | yargs: 16.2.0 2775 | yargs-parser: 20.2.9 2776 | yargs-unparser: 2.0.0 2777 | 2778 | ms@2.1.3: {} 2779 | 2780 | mute-stream@0.0.8: {} 2781 | 2782 | napi-build-utils@1.0.2: 2783 | optional: true 2784 | 2785 | natural-compare@1.4.0: {} 2786 | 2787 | node-abi@3.71.0: 2788 | dependencies: 2789 | semver: 7.6.3 2790 | optional: true 2791 | 2792 | node-addon-api@4.3.0: 2793 | optional: true 2794 | 2795 | normalize-path@3.0.0: {} 2796 | 2797 | nth-check@2.1.1: 2798 | dependencies: 2799 | boolbase: 1.0.0 2800 | 2801 | object-inspect@1.13.3: {} 2802 | 2803 | once@1.4.0: 2804 | dependencies: 2805 | wrappy: 1.0.2 2806 | 2807 | onetime@5.1.2: 2808 | dependencies: 2809 | mimic-fn: 2.1.0 2810 | 2811 | open@8.4.2: 2812 | dependencies: 2813 | define-lazy-prop: 2.0.0 2814 | is-docker: 2.2.1 2815 | is-wsl: 2.2.0 2816 | 2817 | optionator@0.9.4: 2818 | dependencies: 2819 | deep-is: 0.1.4 2820 | fast-levenshtein: 2.0.6 2821 | levn: 0.4.1 2822 | prelude-ls: 1.2.1 2823 | type-check: 0.4.0 2824 | word-wrap: 1.2.5 2825 | 2826 | ora@7.0.1: 2827 | dependencies: 2828 | chalk: 5.4.1 2829 | cli-cursor: 4.0.0 2830 | cli-spinners: 2.9.2 2831 | is-interactive: 2.0.0 2832 | is-unicode-supported: 1.3.0 2833 | log-symbols: 5.1.0 2834 | stdin-discarder: 0.1.0 2835 | string-width: 6.1.0 2836 | strip-ansi: 7.1.0 2837 | 2838 | p-limit@3.1.0: 2839 | dependencies: 2840 | yocto-queue: 0.1.0 2841 | 2842 | p-locate@5.0.0: 2843 | dependencies: 2844 | p-limit: 3.1.0 2845 | 2846 | package-json-from-dist@1.0.1: {} 2847 | 2848 | pako@1.0.11: {} 2849 | 2850 | parent-module@1.0.1: 2851 | dependencies: 2852 | callsites: 3.1.0 2853 | 2854 | parse-semver@1.1.1: 2855 | dependencies: 2856 | semver: 5.7.2 2857 | 2858 | parse5-htmlparser2-tree-adapter@7.1.0: 2859 | dependencies: 2860 | domhandler: 5.0.3 2861 | parse5: 7.2.1 2862 | 2863 | parse5-parser-stream@7.1.2: 2864 | dependencies: 2865 | parse5: 7.2.1 2866 | 2867 | parse5@7.2.1: 2868 | dependencies: 2869 | entities: 4.5.0 2870 | 2871 | path-exists@4.0.0: {} 2872 | 2873 | path-is-absolute@1.0.1: {} 2874 | 2875 | path-key@3.1.1: {} 2876 | 2877 | path-scurry@1.11.1: 2878 | dependencies: 2879 | lru-cache: 10.4.3 2880 | minipass: 7.1.2 2881 | 2882 | path-scurry@2.0.0: 2883 | dependencies: 2884 | lru-cache: 11.0.2 2885 | minipass: 7.1.2 2886 | 2887 | pend@1.2.0: {} 2888 | 2889 | picomatch@2.3.1: {} 2890 | 2891 | prebuild-install@7.1.2: 2892 | dependencies: 2893 | detect-libc: 2.0.3 2894 | expand-template: 2.0.3 2895 | github-from-package: 0.0.0 2896 | minimist: 1.2.8 2897 | mkdirp-classic: 0.5.3 2898 | napi-build-utils: 1.0.2 2899 | node-abi: 3.71.0 2900 | pump: 3.0.2 2901 | rc: 1.2.8 2902 | simple-get: 4.0.1 2903 | tar-fs: 2.1.1 2904 | tunnel-agent: 0.6.0 2905 | optional: true 2906 | 2907 | prelude-ls@1.2.1: {} 2908 | 2909 | process-nextick-args@2.0.1: {} 2910 | 2911 | pump@3.0.2: 2912 | dependencies: 2913 | end-of-stream: 1.4.4 2914 | once: 1.4.0 2915 | optional: true 2916 | 2917 | punycode.js@2.3.1: {} 2918 | 2919 | punycode@2.3.1: {} 2920 | 2921 | qs@6.13.1: 2922 | dependencies: 2923 | side-channel: 1.1.0 2924 | 2925 | queue-microtask@1.2.3: {} 2926 | 2927 | randombytes@2.1.0: 2928 | dependencies: 2929 | safe-buffer: 5.2.1 2930 | 2931 | rc@1.2.8: 2932 | dependencies: 2933 | deep-extend: 0.6.0 2934 | ini: 1.3.8 2935 | minimist: 1.2.8 2936 | strip-json-comments: 2.0.1 2937 | optional: true 2938 | 2939 | read@1.0.7: 2940 | dependencies: 2941 | mute-stream: 0.0.8 2942 | 2943 | readable-stream@2.3.8: 2944 | dependencies: 2945 | core-util-is: 1.0.3 2946 | inherits: 2.0.4 2947 | isarray: 1.0.0 2948 | process-nextick-args: 2.0.1 2949 | safe-buffer: 5.1.2 2950 | string_decoder: 1.1.1 2951 | util-deprecate: 1.0.2 2952 | 2953 | readable-stream@3.6.2: 2954 | dependencies: 2955 | inherits: 2.0.4 2956 | string_decoder: 1.3.0 2957 | util-deprecate: 1.0.2 2958 | 2959 | readdirp@3.6.0: 2960 | dependencies: 2961 | picomatch: 2.3.1 2962 | 2963 | require-directory@2.1.1: {} 2964 | 2965 | resolve-from@4.0.0: {} 2966 | 2967 | restore-cursor@4.0.0: 2968 | dependencies: 2969 | onetime: 5.1.2 2970 | signal-exit: 3.0.7 2971 | 2972 | reusify@1.0.4: {} 2973 | 2974 | run-parallel@1.2.0: 2975 | dependencies: 2976 | queue-microtask: 1.2.3 2977 | 2978 | safe-buffer@5.1.2: {} 2979 | 2980 | safe-buffer@5.2.1: {} 2981 | 2982 | safer-buffer@2.1.2: {} 2983 | 2984 | sax@1.4.1: {} 2985 | 2986 | semver@5.7.2: {} 2987 | 2988 | semver@7.6.3: {} 2989 | 2990 | serialize-javascript@6.0.2: 2991 | dependencies: 2992 | randombytes: 2.1.0 2993 | 2994 | setimmediate@1.0.5: {} 2995 | 2996 | shebang-command@2.0.0: 2997 | dependencies: 2998 | shebang-regex: 3.0.0 2999 | 3000 | shebang-regex@3.0.0: {} 3001 | 3002 | side-channel-list@1.0.0: 3003 | dependencies: 3004 | es-errors: 1.3.0 3005 | object-inspect: 1.13.3 3006 | 3007 | side-channel-map@1.0.1: 3008 | dependencies: 3009 | call-bound: 1.0.3 3010 | es-errors: 1.3.0 3011 | get-intrinsic: 1.2.7 3012 | object-inspect: 1.13.3 3013 | 3014 | side-channel-weakmap@1.0.2: 3015 | dependencies: 3016 | call-bound: 1.0.3 3017 | es-errors: 1.3.0 3018 | get-intrinsic: 1.2.7 3019 | object-inspect: 1.13.3 3020 | side-channel-map: 1.0.1 3021 | 3022 | side-channel@1.1.0: 3023 | dependencies: 3024 | es-errors: 1.3.0 3025 | object-inspect: 1.13.3 3026 | side-channel-list: 1.0.0 3027 | side-channel-map: 1.0.1 3028 | side-channel-weakmap: 1.0.2 3029 | 3030 | signal-exit@3.0.7: {} 3031 | 3032 | signal-exit@4.1.0: {} 3033 | 3034 | simple-concat@1.0.1: 3035 | optional: true 3036 | 3037 | simple-get@4.0.1: 3038 | dependencies: 3039 | decompress-response: 6.0.0 3040 | once: 1.4.0 3041 | simple-concat: 1.0.1 3042 | optional: true 3043 | 3044 | stdin-discarder@0.1.0: 3045 | dependencies: 3046 | bl: 5.1.0 3047 | 3048 | stoppable@1.1.0: {} 3049 | 3050 | string-width@4.2.3: 3051 | dependencies: 3052 | emoji-regex: 8.0.0 3053 | is-fullwidth-code-point: 3.0.0 3054 | strip-ansi: 6.0.1 3055 | 3056 | string-width@5.1.2: 3057 | dependencies: 3058 | eastasianwidth: 0.2.0 3059 | emoji-regex: 9.2.2 3060 | strip-ansi: 7.1.0 3061 | 3062 | string-width@6.1.0: 3063 | dependencies: 3064 | eastasianwidth: 0.2.0 3065 | emoji-regex: 10.4.0 3066 | strip-ansi: 7.1.0 3067 | 3068 | string_decoder@1.1.1: 3069 | dependencies: 3070 | safe-buffer: 5.1.2 3071 | 3072 | string_decoder@1.3.0: 3073 | dependencies: 3074 | safe-buffer: 5.2.1 3075 | 3076 | strip-ansi@6.0.1: 3077 | dependencies: 3078 | ansi-regex: 5.0.1 3079 | 3080 | strip-ansi@7.1.0: 3081 | dependencies: 3082 | ansi-regex: 6.1.0 3083 | 3084 | strip-json-comments@2.0.1: 3085 | optional: true 3086 | 3087 | strip-json-comments@3.1.1: {} 3088 | 3089 | supports-color@5.5.0: 3090 | dependencies: 3091 | has-flag: 3.0.0 3092 | 3093 | supports-color@7.2.0: 3094 | dependencies: 3095 | has-flag: 4.0.0 3096 | 3097 | supports-color@8.1.1: 3098 | dependencies: 3099 | has-flag: 4.0.0 3100 | 3101 | supports-color@9.4.0: {} 3102 | 3103 | tapable@2.2.1: {} 3104 | 3105 | tar-fs@2.1.1: 3106 | dependencies: 3107 | chownr: 1.1.4 3108 | mkdirp-classic: 0.5.3 3109 | pump: 3.0.2 3110 | tar-stream: 2.2.0 3111 | optional: true 3112 | 3113 | tar-stream@2.2.0: 3114 | dependencies: 3115 | bl: 4.1.0 3116 | end-of-stream: 1.4.4 3117 | fs-constants: 1.0.0 3118 | inherits: 2.0.4 3119 | readable-stream: 3.6.2 3120 | optional: true 3121 | 3122 | test-exclude@6.0.0: 3123 | dependencies: 3124 | '@istanbuljs/schema': 0.1.3 3125 | glob: 7.2.3 3126 | minimatch: 3.1.2 3127 | 3128 | tmp@0.2.3: {} 3129 | 3130 | to-regex-range@5.0.1: 3131 | dependencies: 3132 | is-number: 7.0.0 3133 | 3134 | ts-api-utils@1.4.3(typescript@5.7.2): 3135 | dependencies: 3136 | typescript: 5.7.2 3137 | 3138 | tslib@2.8.1: {} 3139 | 3140 | tunnel-agent@0.6.0: 3141 | dependencies: 3142 | safe-buffer: 5.2.1 3143 | optional: true 3144 | 3145 | tunnel@0.0.6: {} 3146 | 3147 | type-check@0.4.0: 3148 | dependencies: 3149 | prelude-ls: 1.2.1 3150 | 3151 | typed-rest-client@1.8.11: 3152 | dependencies: 3153 | qs: 6.13.1 3154 | tunnel: 0.0.6 3155 | underscore: 1.13.7 3156 | 3157 | typescript@5.7.2: {} 3158 | 3159 | uc.micro@2.1.0: {} 3160 | 3161 | underscore@1.13.7: {} 3162 | 3163 | undici-types@6.19.8: {} 3164 | 3165 | undici@6.21.0: {} 3166 | 3167 | uri-js@4.4.1: 3168 | dependencies: 3169 | punycode: 2.3.1 3170 | 3171 | url-join@4.0.1: {} 3172 | 3173 | util-deprecate@1.0.2: {} 3174 | 3175 | uuid@8.3.2: {} 3176 | 3177 | v8-to-istanbul@9.3.0: 3178 | dependencies: 3179 | '@jridgewell/trace-mapping': 0.3.25 3180 | '@types/istanbul-lib-coverage': 2.0.6 3181 | convert-source-map: 2.0.0 3182 | 3183 | whatwg-encoding@3.1.1: 3184 | dependencies: 3185 | iconv-lite: 0.6.3 3186 | 3187 | whatwg-mimetype@4.0.0: {} 3188 | 3189 | which@2.0.2: 3190 | dependencies: 3191 | isexe: 2.0.0 3192 | 3193 | word-wrap@1.2.5: {} 3194 | 3195 | workerpool@6.5.1: {} 3196 | 3197 | wrap-ansi@7.0.0: 3198 | dependencies: 3199 | ansi-styles: 4.3.0 3200 | string-width: 4.2.3 3201 | strip-ansi: 6.0.1 3202 | 3203 | wrap-ansi@8.1.0: 3204 | dependencies: 3205 | ansi-styles: 6.2.1 3206 | string-width: 5.1.2 3207 | strip-ansi: 7.1.0 3208 | 3209 | wrappy@1.0.2: {} 3210 | 3211 | xml2js@0.5.0: 3212 | dependencies: 3213 | sax: 1.4.1 3214 | xmlbuilder: 11.0.1 3215 | 3216 | xmlbuilder@11.0.1: {} 3217 | 3218 | y18n@5.0.8: {} 3219 | 3220 | yallist@4.0.0: {} 3221 | 3222 | yargs-parser@20.2.9: {} 3223 | 3224 | yargs-parser@21.1.1: {} 3225 | 3226 | yargs-unparser@2.0.0: 3227 | dependencies: 3228 | camelcase: 6.3.0 3229 | decamelize: 4.0.0 3230 | flat: 5.0.2 3231 | is-plain-obj: 2.1.0 3232 | 3233 | yargs@16.2.0: 3234 | dependencies: 3235 | cliui: 7.0.4 3236 | escalade: 3.2.0 3237 | get-caller-file: 2.0.5 3238 | require-directory: 2.1.1 3239 | string-width: 4.2.3 3240 | y18n: 5.0.8 3241 | yargs-parser: 20.2.9 3242 | 3243 | yargs@17.7.2: 3244 | dependencies: 3245 | cliui: 8.0.1 3246 | escalade: 3.2.0 3247 | get-caller-file: 2.0.5 3248 | require-directory: 2.1.1 3249 | string-width: 4.2.3 3250 | y18n: 5.0.8 3251 | yargs-parser: 21.1.1 3252 | 3253 | yauzl@2.10.0: 3254 | dependencies: 3255 | buffer-crc32: 0.2.13 3256 | fd-slicer: 1.1.0 3257 | 3258 | yazl@2.5.1: 3259 | dependencies: 3260 | buffer-crc32: 0.2.13 3261 | 3262 | yocto-queue@0.1.0: {} 3263 | -------------------------------------------------------------------------------- /src/extension.ts: -------------------------------------------------------------------------------- 1 | import * as vscode from 'vscode'; 2 | import { exec } from 'child_process'; 3 | import * as os from 'os'; 4 | import * as fs from 'fs'; 5 | 6 | function getMacIdeaPath(): string { 7 | const commonPaths = [ 8 | '/Applications/IDEA.app', 9 | '/Applications/IntelliJ IDEA.app', 10 | '/Applications/IntelliJ IDEA CE.app', 11 | '/Applications/IntelliJ IDEA Ultimate.app', 12 | '/Applications/IntelliJ IDEA Community Edition.app', 13 | `${os.homedir()}/Applications/IDEA.app`, 14 | `${os.homedir()}/Applications/IntelliJ IDEA.app`, 15 | `${os.homedir()}/Applications/IntelliJ IDEA CE.app`, 16 | `${os.homedir()}/Applications/IntelliJ IDEA Ultimate.app`, 17 | `${os.homedir()}/Applications/IntelliJ IDEA Community Edition.app`, 18 | ]; 19 | 20 | // Iterate through all possible IDEA installation paths and return the first existing path 21 | for (const path of commonPaths) { 22 | if (fs.existsSync(path)) { 23 | return path; 24 | } 25 | } 26 | // If no paths exist, return the default APP name 27 | return 'IntelliJ IDEA'; 28 | } 29 | 30 | function executeCommand(command: string): Promise { 31 | return new Promise((resolve, reject) => { 32 | const childProcess = exec(command, (error, stdout, stderr) => { 33 | if (error) { 34 | console.error('Error executing command:', error); 35 | console.error('Stderr:', stderr); 36 | reject(error); 37 | return; 38 | } 39 | if (stdout) { 40 | console.log('Command output:', stdout); 41 | } 42 | if (stderr) { 43 | console.log('Command stderr:', stderr); 44 | } 45 | resolve(); 46 | }); 47 | 48 | // Add error handling 49 | childProcess.on('error', (error: NodeJS.ErrnoException) => { 50 | if (error.code === 'EPIPE') { 51 | console.log('Pipe communication disconnected, but this may not affect IDEA startup'); 52 | resolve(); // Continue execution as IDEA may have started normally 53 | } else { 54 | reject(error); 55 | } 56 | }); 57 | }); 58 | } 59 | 60 | export function activate(context: vscode.ExtensionContext) { 61 | 62 | console.log('Switch2IDEA is now active!'); 63 | 64 | let openFileDisposable = vscode.commands.registerCommand('Switch2IDEA.openFileInIDEA', async (uri?: vscode.Uri) => { 65 | let filePath: string; 66 | let line = 1; 67 | let column = 1; 68 | 69 | if (uri) { 70 | filePath = uri.fsPath; 71 | const editor = vscode.window.activeTextEditor; 72 | if (editor && editor.document.uri.fsPath === filePath) { 73 | line = editor.selection.active.line + 1; 74 | column = editor.selection.active.character; 75 | } 76 | } else { 77 | const editor = vscode.window.activeTextEditor; 78 | if (!editor) { 79 | vscode.window.showErrorMessage('No active editor!'); 80 | return; 81 | } 82 | filePath = editor.document.uri.fsPath; 83 | line = editor.selection.active.line + 1; 84 | column = editor.selection.active.character; 85 | } 86 | 87 | const config = vscode.workspace.getConfiguration('switch2idea'); 88 | let ideaPath = config.get('ideaPath'); 89 | 90 | if (!ideaPath) { 91 | if (os.platform() === 'darwin') { 92 | ideaPath = getMacIdeaPath(); 93 | } else if (os.platform() === 'win32') { 94 | ideaPath = 'C:\\Program Files\\JetBrains\\IntelliJ IDEA\\bin\\idea64.exe'; 95 | } else { 96 | ideaPath = 'idea'; 97 | } 98 | } 99 | 100 | let command: string; 101 | if (os.platform() === 'darwin') { 102 | const ideaUrl = `idea://open?file=${encodeURIComponent(filePath)}&line=${line}&column=${column}`; 103 | // If IDEA is already open, using the 'idea' command will show two IDEA icons in the dock temporarily 104 | // Using the 'open' command instead will prevent this issue 105 | command = `open -a "${ideaPath}" "${ideaUrl}"`; 106 | } else { 107 | command = `"${ideaPath}" --line ${line} --column ${column} "${filePath}"`; 108 | } 109 | 110 | console.log('Executing command:', command); 111 | 112 | try { 113 | await executeCommand(command); 114 | } catch (error) { 115 | const err = error as Error; 116 | vscode.window.showErrorMessage(`Failed to open IDEA: ${err.message}`); 117 | } 118 | }); 119 | 120 | let openProjectDisposable = vscode.commands.registerCommand('Switch2IDEA.openProjectInIDEA', async () => { 121 | const workspaceFolders = vscode.workspace.workspaceFolders; 122 | if (!workspaceFolders || workspaceFolders.length === 0) { 123 | vscode.window.showErrorMessage('No workspace folder is opened!'); 124 | return; 125 | } 126 | 127 | const projectPath = workspaceFolders[0].uri.fsPath; 128 | 129 | const config = vscode.workspace.getConfiguration('switch2idea'); 130 | let ideaPath = config.get('ideaPath'); 131 | 132 | if (!ideaPath) { 133 | if (os.platform() === 'darwin') { 134 | const macIdeaPath = getMacIdeaPath(); 135 | ideaPath = macIdeaPath || 'IntelliJ IDEA'; 136 | } else if (os.platform() === 'win32') { 137 | ideaPath = 'C:\\Program Files\\JetBrains\\IntelliJ IDEA\\bin\\idea64.exe'; 138 | } else { 139 | ideaPath = 'idea'; 140 | } 141 | } 142 | 143 | let command: string; 144 | if (os.platform() === 'darwin') { 145 | const ideaUrl = `idea://open?file=${encodeURIComponent(projectPath)}`; 146 | command = `open -a "${ideaPath}" "${ideaUrl}"`; 147 | } else { 148 | command = `"${ideaPath}" "${projectPath}"`; 149 | } 150 | 151 | console.log('Executing command:', command); 152 | 153 | try { 154 | await executeCommand(command); 155 | } catch (error) { 156 | const err = error as Error; 157 | vscode.window.showErrorMessage(`Failed to open project in IDEA: ${err.message}`); 158 | } 159 | }); 160 | 161 | context.subscriptions.push(openFileDisposable); 162 | context.subscriptions.push(openProjectDisposable); 163 | } 164 | 165 | export function deactivate() {} 166 | -------------------------------------------------------------------------------- /src/test/extension.test.ts: -------------------------------------------------------------------------------- 1 | import * as assert from 'assert'; 2 | import * as vscode from 'vscode'; 3 | import * as os from 'os'; 4 | import * as path from 'path'; 5 | import * as fs from 'fs'; 6 | 7 | suite('Switch2IDEA Extension Test Suite', () => { 8 | // 在所有测试开始前激活扩展 9 | suiteSetup(async () => { 10 | // 等待扩展激活 11 | const extension = vscode.extensions.getExtension('qczone.switch2idea'); 12 | if (extension) { 13 | if (!extension.isActive) { 14 | await extension.activate(); 15 | } 16 | } 17 | }); 18 | 19 | test('Extension should be present', async () => { 20 | // 获取扩展并等待激活 21 | const extension = vscode.extensions.getExtension('qczone.switch2idea'); 22 | assert.ok(extension, 'Extension should be installed'); 23 | 24 | if (!extension.isActive) { 25 | await extension.activate(); 26 | } 27 | assert.ok(extension.isActive, 'Extension should be activated'); 28 | }); 29 | 30 | test('Should register open in IDEA command', () => { 31 | const commands = vscode.commands.getCommands(true); 32 | return commands.then((cmds) => { 33 | assert.ok(cmds.includes('Switch2IDEA.openInIDEA')); 34 | }); 35 | }); 36 | 37 | test('Should have correct configuration', () => { 38 | const config = vscode.workspace.getConfiguration('switch2idea'); 39 | assert.ok(config.has('ideaPath')); 40 | assert.ok(config.has('keyboardShortcut')); 41 | assert.strictEqual(config.get('keyboardShortcut'), 'alt+shift+o'); 42 | }); 43 | 44 | test('Should handle file path with spaces and special characters', async () => { 45 | // Create a temporary file for testing 46 | const tmpDir = os.tmpdir(); 47 | const testFileName = 'test file with spaces!.txt'; 48 | const testFilePath = path.join(tmpDir, testFileName); 49 | 50 | try { 51 | // Create test file 52 | fs.writeFileSync(testFilePath, 'test content'); 53 | 54 | // Open file 55 | const doc = await vscode.workspace.openTextDocument(testFilePath); 56 | const editor = await vscode.window.showTextDocument(doc); 57 | 58 | // Execute command 59 | await vscode.commands.executeCommand('Switch2IDEA.openInIDEA'); 60 | 61 | // Verify command execution completed without errors 62 | // Note: We cannot verify if IDEA actually opened the file as it's an external process 63 | assert.ok(true); 64 | } finally { 65 | // Cleanup test file 66 | try { 67 | fs.unlinkSync(testFilePath); 68 | } catch (e) { 69 | console.error('Failed to cleanup test file:', e); 70 | } 71 | } 72 | }); 73 | 74 | test('Should handle editor selection', async () => { 75 | // Create a temporary file 76 | const tmpDir = os.tmpdir(); 77 | const testFilePath = path.join(tmpDir, 'test.txt'); 78 | 79 | try { 80 | // Create multi-line test file 81 | const content = 'line1\nline2\nline3\nline4\n'; 82 | fs.writeFileSync(testFilePath, content); 83 | 84 | // Open file and set cursor position 85 | const doc = await vscode.workspace.openTextDocument(testFilePath); 86 | const editor = await vscode.window.showTextDocument(doc); 87 | 88 | // Move cursor to line 3, column 2 89 | const position = new vscode.Position(2, 1); 90 | editor.selection = new vscode.Selection(position, position); 91 | 92 | // Execute command 93 | await vscode.commands.executeCommand('Switch2IDEA.openInIDEA'); 94 | 95 | // Verify command execution completed without errors 96 | assert.ok(true); 97 | } finally { 98 | // Cleanup test file 99 | try { 100 | fs.unlinkSync(testFilePath); 101 | } catch (e) { 102 | console.error('Failed to cleanup test file:', e); 103 | } 104 | } 105 | }); 106 | 107 | test('Should handle non-existent ideaPath gracefully', async () => { 108 | // Temporarily set a non-existent ideaPath 109 | const config = vscode.workspace.getConfiguration('switch2idea'); 110 | const originalPath = config.get('ideaPath'); 111 | 112 | try { 113 | await config.update('ideaPath', 'non-existent-path', vscode.ConfigurationTarget.Global); 114 | 115 | // Execute command 116 | await vscode.commands.executeCommand('Switch2IDEA.openInIDEA'); 117 | 118 | // Command should complete without crashing 119 | assert.ok(true); 120 | } finally { 121 | // Restore original settings 122 | await config.update('ideaPath', originalPath, vscode.ConfigurationTarget.Global); 123 | } 124 | }); 125 | }); 126 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "module": "Node16", 4 | "target": "ES2022", 5 | "outDir": "out", 6 | "lib": [ 7 | "ES2022" 8 | ], 9 | "sourceMap": true, 10 | "rootDir": "src", 11 | "strict": true, /* enable all strict type-checking options */ 12 | /* Additional Checks */ 13 | // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ 14 | // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ 15 | // "noUnusedParameters": true, /* Report errors on unused parameters. */ 16 | } 17 | } 18 | --------------------------------------------------------------------------------