diff --git a/.eslintrc.json b/.eslintrc.json index 0cb0892db2..369478b085 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -33,42 +33,28 @@ "error", "always" ], - "@typescript-eslint/explicit-function-return-type": [ - "error" - ], + "@typescript-eslint/explicit-function-return-type": "error", + "@typescript-eslint/no-empty-object-type": "off", "@typescript-eslint/no-floating-promises": [ "error", { "ignoreVoid": true } ], - "@typescript-eslint/no-non-null-assertion": [ - "off" - ], + "@typescript-eslint/no-non-null-assertion": "off", + "@typescript-eslint/no-require-imports": "off", "@typescript-eslint/no-unused-vars": [ "error", { "argsIgnorePattern": "^_" } ], - "@typescript-eslint/no-unsafe-argument": [ - "off" - ], - "@typescript-eslint/no-unsafe-assignment": [ - "off" - ], - "@typescript-eslint/no-unsafe-call": [ - "off" - ], - "@typescript-eslint/no-unsafe-member-access": [ - "off" - ], - "@typescript-eslint/no-unsafe-return": [ - "off" - ], - "@typescript-eslint/restrict-template-expressions": [ - "off" - ], + "@typescript-eslint/no-unsafe-argument": "off", + "@typescript-eslint/no-unsafe-assignment": "off", + "@typescript-eslint/no-unsafe-call": "off", + "@typescript-eslint/no-unsafe-member-access": "off", + "@typescript-eslint/no-unsafe-return": "off", + "@typescript-eslint/restrict-template-expressions": "off", "@typescript-eslint/prefer-nullish-coalescing": [ "error", { diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index 941d4d9781..0000000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,25 +0,0 @@ -version: 2 -updates: -- package-ecosystem: npm - directory: "/" - labels: [ ] - schedule: - interval: weekly - open-pull-requests-limit: 10 - groups: - eslint: - patterns: - - "esbuild" - - "eslint" - - "@typescript-eslint/*" - types: - patterns: - - "@types/*" - ignore: - - dependency-name: "untildify" - versions: [ "5.x" ] -- package-ecosystem: github-actions - directory: "/" - labels: [ ] - schedule: - interval: weekly diff --git a/.github/workflows/ci-test.yml b/.github/workflows/ci-test.yml index aa92b8ab3c..1b448c7eb4 100644 --- a/.github/workflows/ci-test.yml +++ b/.github/workflows/ci-test.yml @@ -20,6 +20,7 @@ jobs: DOTNET_NOLOGO: true DOTNET_GENERATE_ASPNET_CERTIFICATE: false DISPLAY: ':99.0' + timeout-minutes: 10 steps: - name: Checkout PowerShellEditorServices uses: actions/checkout@v4 @@ -46,7 +47,7 @@ jobs: - uses: actions/setup-node@v4 with: - node-version: 18 + node-version: 20 cache: npm cache-dependency-path: vscode-powershell/package-lock.json diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml deleted file mode 100644 index 3d38ea5c1b..0000000000 --- a/.github/workflows/codeql-analysis.yml +++ /dev/null @@ -1,40 +0,0 @@ -name: CodeQL Analysis - -on: - push: - branches: [ main ] - pull_request: - # The branches below must be a subset of the branches above - branches: [ main ] - paths-ignore: [ '**/*.md' ] - schedule: - - cron: '25 9 * * 0' - -jobs: - analyze: - name: analyze - strategy: - fail-fast: false - matrix: - language: [ typescript ] - runs-on: ubuntu-latest - permissions: - actions: read - contents: read - security-events: write - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - - name: Initialize CodeQL - uses: github/codeql-action/init@v3 - with: - languages: ${{ matrix.language }} - - - name: Autobuild - uses: github/codeql-action/autobuild@v3 - - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v3 - with: - category: '/language:${{matrix.language}}' diff --git a/.pipelines/vscode-powershell-Official.yml b/.pipelines/vscode-powershell-Official.yml index 983877977d..cea5d0b6d3 100644 --- a/.pipelines/vscode-powershell-Official.yml +++ b/.pipelines/vscode-powershell-Official.yml @@ -8,7 +8,16 @@ # Support: https://aka.ms/onebranchsup # ################################################################################# -trigger: none +trigger: +- main + +schedules: +- cron: '25 9 * * 3' + displayName: Weekly CodeQL + branches: + include: + - main + always: true parameters: - name: debug @@ -19,7 +28,7 @@ parameters: variables: system.debug: ${{ parameters.debug }} BuildConfiguration: Release - WindowsContainerImage: onebranch.azurecr.io/windows/ltsc2019/vse2022:latest + WindowsContainerImage: onebranch.azurecr.io/windows/ltsc2022/vse2022:latest resources: repositories: @@ -33,6 +42,8 @@ resources: trigger: branches: - main + stages: + - release extends: # https://aka.ms/obpipelines/templates @@ -42,6 +53,11 @@ extends: asyncSdl: enabled: true forStages: [build] + featureFlags: + EnableCDPxPAT: false + WindowsHostVersion: + Version: 2022 + Network: KS3 stages: - stage: build jobs: @@ -68,14 +84,9 @@ extends: system: Custom customVersion: $(package.version) - task: UseNode@1 - displayName: Use Node 18.x - inputs: - version: 18.x - - task: PowerShell@2 - displayName: Install PSResources + displayName: Use Node 20.x inputs: - pwsh: true - filePath: tools/installPSResources.ps1 + version: 20.x - task: DownloadPipelineArtifact@2 displayName: Download PowerShellEditorServices inputs: @@ -83,13 +94,18 @@ extends: project: PowerShellCore definition: 2905 specificBuildWithTriggering: true - artifact: drop_release_github - itemPattern: PowerShellEditorServices.zip + branchName: refs/heads/main + artifact: drop_build_main - task: ExtractFiles@1 - displayName: Extract PowerShellEditorServices module + displayName: Extract PowerShellEditorServices inputs: archiveFilePatterns: $(Pipeline.Workspace)/PowerShellEditorServices.zip destinationFolder: $(Build.SourcesDirectory)/modules + - pwsh: | + Register-PSRepository -Name CFS -SourceLocation "https://pkgs.dev.azure.com/powershell/PowerShell/_packaging/powershell/nuget/v2" -InstallationPolicy Trusted + Install-Module -Repository CFS -Name Microsoft.PowerShell.PSResourceGet + ./tools/installPSResources.ps1 -PSRepository CFS + displayName: Install PSResources - pwsh: Invoke-Build Build -Configuration $(BuildConfiguration) displayName: Build - task: onebranch.pipeline.signing@1 @@ -101,6 +117,18 @@ extends: files_to_sign: '**/*.ps1;**/*.psd1;**/*.psm1' - pwsh: Invoke-Build Package displayName: Create package + - pwsh: | + npx vsce generate-manifest --packagePath out/powershell-$(package.vsixVersion).vsix + cp out/powershell-$(package.vsixVersion).manifest out/powershell-$(package.vsixVersion).signature.p7s + displayName: Generate VSIX manifest + - task: onebranch.pipeline.signing@1 + displayName: Sign VSIX manifest + inputs: + command: sign + cp_code: 'CP-401405-VSCodePublisherSign' + search_root: $(Build.SourcesDirectory)/out + files_to_sign: | + *.signature.p7s; - job: test displayName: Build and run tests pool: @@ -113,19 +141,14 @@ extends: skipComponentGovernanceDetection: true steps: - task: UseNode@1 - displayName: Use Node 18.x + displayName: Use Node 20.x inputs: - version: 18.x + version: 20.x - task: UseDotNet@2 displayName: Use .NET 8.x SDK inputs: packageType: sdk version: 8.x - - task: PowerShell@2 - displayName: Install PSResources - inputs: - pwsh: true - filePath: tools/installPSResources.ps1 - task: DownloadPipelineArtifact@2 displayName: Download PowerShellEditorServices inputs: @@ -133,17 +156,23 @@ extends: project: PowerShellCore definition: 2905 specificBuildWithTriggering: true - artifact: drop_release_github - itemPattern: PowerShellEditorServices.zip + branchName: refs/heads/main + artifact: drop_build_main - task: ExtractFiles@1 - displayName: Extract PowerShellEditorServices module + displayName: Extract PowerShellEditorServices inputs: archiveFilePatterns: $(Pipeline.Workspace)/PowerShellEditorServices.zip destinationFolder: $(Build.SourcesDirectory)/modules + - pwsh: | + Register-PSRepository -Name CFS -SourceLocation "https://pkgs.dev.azure.com/powershell/PowerShell/_packaging/powershell/nuget/v2" -InstallationPolicy Trusted + Install-Module -Repository CFS -Name Microsoft.PowerShell.PSResourceGet + ./tools/installPSResources.ps1 -PSRepository CFS + displayName: Install PSResources - pwsh: Invoke-Build Test -Configuration $(BuildConfiguration) displayName: Run tests - stage: release dependsOn: build + condition: eq(variables['Build.Reason'], 'Manual') variables: version: $[ stageDependencies.build.main.outputs['package.version'] ] vsixVersion: $[ stageDependencies.build.main.outputs['package.vsixVersion'] ] @@ -164,6 +193,7 @@ extends: inputs: gitHubConnection: GitHub repositoryName: PowerShell/vscode-powershell + target: main assets: $(drop)/powershell-$(vsixVersion).vsix tagSource: userSpecifiedTag tag: v$(version) @@ -194,6 +224,10 @@ extends: steps: - download: current displayName: Download artifacts + - task: UseNode@1 + displayName: Use Node 20.x + inputs: + version: 20.x - pwsh: npm ci displayName: Install NPM packages (for vsce) - task: AzureCLI@2 @@ -207,6 +241,10 @@ extends: '--azure-credential' '--packagePath' '$(drop)/powershell-$(vsixVersion).vsix' + '--manifestPath' + '$(drop)/powershell-$(vsixVersion).manifest' + '--signaturePath' + '$(drop)/powershell-$(vsixVersion).signature.p7s' if ([bool]::Parse('$(prerelease)')) { '--pre-release' } ) npm run publish -- @publishArgs diff --git a/CHANGELOG.md b/CHANGELOG.md index d072a033b5..a2e4a57b76 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,23 @@ # PowerShell Extension Release History +## v2024.4.0 +### Monday, November 04, 2024 + +With PowerShell Editor Services [v3.21.0](https://github.com/PowerShell/PowerShellEditorServices/releases/tag/v3.21.0)! + +Call-operator support and various bug fixes. + +See more details at the GitHub Release for [v2024.4.0](https://github.com/PowerShell/vscode-powershell/releases/tag/v2024.4.0). + +## v2024.5.0-preview +### Wednesday, October 30, 2024 + +With PowerShell Editor Services [v3.21.0](https://github.com/PowerShell/PowerShellEditorServices/releases/tag/v3.21.0)! + +Call-operator support and various bug fixes. + +See more details at the GitHub Release for [v2024.5.0-preview](https://github.com/PowerShell/vscode-powershell/releases/tag/v2024.5.0-preview). + ## v2024.2.2 ### Friday, May 03, 2024 diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index dddfa22df2..686e5e7a09 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -1,8 +1,10 @@ -# Code of Conduct +# Microsoft Open Source Code of Conduct -This project has adopted the [Microsoft Open Source Code of Conduct][conduct-code]. -For more information see the [Code of Conduct FAQ][conduct-FAQ] or contact [opencode@microsoft.com][conduct-email] with any additional questions or comments. +This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). -[conduct-code]: http://opensource.microsoft.com/codeofconduct/ -[conduct-FAQ]: http://opensource.microsoft.com/codeofconduct/faq/ -[conduct-email]: mailto:opencode@microsoft.com +Resources: + +- [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/) +- [Microsoft Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) +- Contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with questions or concerns +- Employees can reach out at [aka.ms/opensource/moderation-support](https://aka.ms/opensource/moderation-support) diff --git a/Directory.Build.props b/Directory.Build.props new file mode 100644 index 0000000000..193280892b --- /dev/null +++ b/Directory.Build.props @@ -0,0 +1,5 @@ + + + true + + diff --git a/Directory.Packages.props b/Directory.Packages.props new file mode 100644 index 0000000000..38021b41e3 --- /dev/null +++ b/Directory.Packages.props @@ -0,0 +1,5 @@ + + + + + diff --git a/README.md b/README.md index 9d8db9cd2f..3c9398d92c 100644 --- a/README.md +++ b/README.md @@ -93,6 +93,10 @@ button and choosing **Install Another Version**. Please our [support](SUPPORT.md) document. +## Code of Conduct + +Please see our [Code of Conduct](CODE_OF_CONDUCT.md) before participating in this project. + ## Contributing to the Code Check out the [development documentation](docs/development.md) for more details @@ -100,7 +104,7 @@ on how to contribute to this extension! ## Security Note -For any security issues, please see [here](./SECURITY.md). +For any security issues, please see [here](SECURITY.md). ## Maintainers @@ -109,6 +113,7 @@ For any security issues, please see [here](./SECURITY.md). - Andy Jordan - [@andyleejordan](https://github.com/andyleejordan) - Patrick Meinecke - [@SeeminglyScience](https://github.com/SeeminglyScience) - Sydney Smith - [@SydneyhSmith](https://github.com/SydneyhSmith) +- Justin Grote - [@JustinGrote](https://github.com/JustinGrote) ### Emeriti @@ -120,15 +125,5 @@ For any security issues, please see [here](./SECURITY.md). ## License This extension is [licensed under the MIT License](LICENSE.txt). Please see the -[third-party notices](Third%20Party%20Notices.txt) file for details on the third-party +[third-party notices](NOTICE.txt) file for details on the third-party binaries that we include with releases of this project. - -## [Code of Conduct][conduct-md] - -This project has adopted the [Microsoft Open Source Code of Conduct][conduct-code]. -For more information see the [Code of Conduct FAQ][conduct-FAQ] or contact [opencode@microsoft.com][conduct-email] with any additional questions or comments. - -[conduct-code]: http://opensource.microsoft.com/codeofconduct/ -[conduct-FAQ]: http://opensource.microsoft.com/codeofconduct/faq/ -[conduct-email]: mailto:opencode@microsoft.com -[conduct-md]: https://github.com/PowerShell/vscode-powershell/blob/main/CODE_OF_CONDUCT.md diff --git a/SECURITY.md b/SECURITY.md index f7b89984f0..f941d308b1 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -1,18 +1,18 @@ - + ## Security -Microsoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include [Microsoft](https://github.com/Microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin), and [our GitHub organizations](https://opensource.microsoft.com/). +Microsoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include [Microsoft](https://github.com/Microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin) and [PowerShell](https://github.com/PowerShell). -If you believe you have found a security vulnerability in any Microsoft-owned repository that meets [Microsoft's definition of a security vulnerability](https://docs.microsoft.com/en-us/previous-versions/tn-archive/cc751383(v=technet.10)), please report it to us as described below. +If you believe you have found a security vulnerability in any Microsoft-owned repository that meets [Microsoft's definition of a security vulnerability](https://aka.ms/security.md/definition), please report it to us as described below. ## Reporting Security Issues **Please do not report security vulnerabilities through public GitHub issues.** -Instead, please report them to the Microsoft Security Response Center (MSRC) at [https://msrc.microsoft.com/create-report](https://msrc.microsoft.com/create-report). +Instead, please report them to the Microsoft Security Response Center (MSRC) at [https://msrc.microsoft.com/create-report](https://aka.ms/security.md/msrc/create-report). -If you prefer to submit without logging in, send email to [secure@microsoft.com](mailto:secure@microsoft.com). If possible, encrypt your message with our PGP key; please download it from the [Microsoft Security Response Center PGP Key page](https://www.microsoft.com/en-us/msrc/pgp-key-msrc). +If you prefer to submit without logging in, send email to [secure@microsoft.com](mailto:secure@microsoft.com). If possible, encrypt your message with our PGP key; please download it from the [Microsoft Security Response Center PGP Key page](https://aka.ms/security.md/msrc/pgp). You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Additional information can be found at [microsoft.com/msrc](https://www.microsoft.com/msrc). @@ -28,7 +28,7 @@ Please include the requested information listed below (as much as you can provid This information will help us triage your report more quickly. -If you are reporting for a bug bounty, more complete reports can contribute to a higher bounty award. Please visit our [Microsoft Bug Bounty Program](https://microsoft.com/msrc/bounty) page for more details about our active programs. +If you are reporting for a bug bounty, more complete reports can contribute to a higher bounty award. Please visit our [Microsoft Bug Bounty Program](https://aka.ms/security.md/msrc/bounty) page for more details about our active programs. ## Preferred Languages @@ -36,6 +36,6 @@ We prefer all communications to be in English. ## Policy -Microsoft follows the principle of [Coordinated Vulnerability Disclosure](https://www.microsoft.com/en-us/msrc/cvd). +Microsoft follows the principle of [Coordinated Vulnerability Disclosure](https://aka.ms/security.md/cvd). - \ No newline at end of file + diff --git a/docs/development.md b/docs/development.md index 5cac5bcf9e..28b55750ab 100644 --- a/docs/development.md +++ b/docs/development.md @@ -22,6 +22,25 @@ [fork]: https://help.github.com/articles/fork-a-repo/ +## Tracking Upstream Dependencies + +As a VS Code extension, we first rely on the `engine` field of `package.json` to +state the lowest version of VS Code we support. + +When our `engine` field is updated the development dependency `@types/vscode` +must be updated to match. Note that it uses `~` (not `^`) so as to accept new +patches with `npm update` but not new minor versions. Then we check that version +of VS Code's own `package.json` file for their [`electron`][] dependency. The +major version of [Electron][] will tell us which [Node.js][] is included, which +dictates which version of Node.js the extension is eventually run with. This +lets us finally update our `@types/node` development dependency to match, our +developer machines if necessary, and the CI and OneBranch pipeline tasks. + +[`vscodeVersion`]: https://github.com/microsoft/azuredatastudio/blob/4970733324ef8254b7c22a5dc55af7f8a1dea93f/product.json#L50 +[`electron`]: https://github.com/microsoft/vscode/blob/384ff7382de624fb94dbaf6da11977bba1ecd427/package.json#L159 +[Electron]: https://www.electronjs.org/blog/electron-30-0 +[Node.js]: https://nodejs.org/en/download/package-manager + ### Building the Code #### From Visual Studio Code diff --git a/docs/troubleshooting.md b/docs/troubleshooting.md index de9428eac5..3c341a6e19 100644 --- a/docs/troubleshooting.md +++ b/docs/troubleshooting.md @@ -267,13 +267,12 @@ your logs for any sensitive information you would not like to share online!** "powershell.developer.editorServicesLogLevel": "Normal" ``` -* Logs are located at - `~/.vscode[-insiders]/extensions/ms-vscode.powershell[-preview]-/logs`. - For example: `~/.vscode/extensions/ms-vscode.powershell-2019.5.1/logs`. +* Logs are located at: + * Unix: `~/.config/Code/User/globalStorage/ms-vscode.powershell/logs`. + * Windows: `%APPDATA%\Code\User\globalStorage\ms-vscode.powershell\logs` * In VS Code you can open and read the logs directly from the [Command Palette][] - (Ctrl+Shift+P) with `PowerShell: Open PowerShell - Extension Logs Folder`. + (Ctrl+Shift+P) with `PowerShell: Open PowerShell Extension Logs Folder`. > NOTE: Don't forget to also attach the [Language Server Protocol payload > logs](#provide-language-server-protocol-payload-logs)! diff --git a/package-lock.json b/package-lock.json index 72bfb35dec..f185d2941a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,54 +1,57 @@ { "name": "powershell", - "version": "2024.2.1", + "version": "2024.2.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "powershell", - "version": "2024.2.1", + "version": "2024.2.2", "license": "SEE LICENSE IN LICENSE.txt", "dependencies": { - "@vscode/extension-telemetry": "^0.9.6", + "@types/vscode": "~1.94.0", + "@vscode/extension-telemetry": "^0.9.7", "node-fetch": "^2.7.0", - "semver": "^7.6.0", + "semver": "^7.6.3", "untildify": "^4.0.0", "uuid": "^9.0.1", "vscode-languageclient": "^9.0.1", "vscode-languageserver-protocol": "^3.17.5" }, "devDependencies": { - "@types/mocha": "^10.0.6", + "@vscode/vsce": "^3.1.1", + "esbuild": "^0.21.5" + }, + "engines": { + "vscode": "^1.94.0" + }, + "optionalDependencies": { + "@types/mocha": "^10.0.9", "@types/mock-fs": "^4.13.4", - "@types/node": "^18.19.31", + "@types/node": "^20.16.11", "@types/node-fetch": "^2.6.11", "@types/rewire": "^2.5.30", "@types/semver": "^7.5.8", "@types/sinon": "^17.0.3", "@types/ungap__structured-clone": "^1.2.0", "@types/uuid": "^9.0.8", - "@types/vscode": "~1.82.0", - "@typescript-eslint/eslint-plugin": "^7.8.0", - "@typescript-eslint/parser": "^7.8.0", + "@types/vscode": "~1.94.0", + "@typescript-eslint/eslint-plugin": "^8.8.1", + "@typescript-eslint/parser": "^8.8.1", "@ungap/structured-clone": "^1.2.0", - "@vscode/debugprotocol": "^1.65.0", - "@vscode/test-electron": "^2.3.9", - "@vscode/vsce": "^2.26.1", - "esbuild": "^0.20.2", + "@vscode/debugprotocol": "^1.68.0", + "@vscode/test-electron": "^2.4.1", "eslint": "^8.57.0", "eslint-plugin-header": "^3.1.1", - "glob": "^10.3.12", - "mocha": "^10.4.0", + "glob": "^11.0.0", + "mocha": "^10.7.3", "mocha-explorer-launcher-scripts": "^0.4.0", "mocha-multi-reporters": "^1.5.1", - "mock-fs": "^5.2.0", + "mock-fs": "^5.3.0", "rewire": "^7.0.0", - "sinon": "^17.0.1", + "sinon": "^18.0.1", "source-map-support": "^0.5.21", - "typescript": "^5.4.5" - }, - "engines": { - "vscode": "^1.82.0" + "typescript": "^5.6.3" } }, "node_modules/@azure/abort-controller": { @@ -63,8 +66,8 @@ } }, "node_modules/@azure/core-auth": { - "version": "1.7.2", - "integrity": "sha1-VYt8t90SsAvuwHrl31kH103x69k=", + "version": "1.8.0", + "integrity": "sha1-KBtKbTMJw+exW82WfwHUx5rkodY=", "dev": true, "dependencies": { "@azure/abort-controller": "^2.0.0", @@ -115,12 +118,12 @@ } }, "node_modules/@azure/core-rest-pipeline": { - "version": "1.16.0", - "integrity": "sha1-YxFy4v4DRs9EENHI4BrZjYSXOOI=", + "version": "1.17.0", + "integrity": "sha1-Vdr6EJNVPFSe1tjbymmqUFx7OqM=", "dev": true, "dependencies": { "@azure/abort-controller": "^2.0.0", - "@azure/core-auth": "^1.4.0", + "@azure/core-auth": "^1.8.0", "@azure/core-tracing": "^1.0.1", "@azure/core-util": "^1.9.0", "@azure/logger": "^1.0.0", @@ -143,44 +146,9 @@ "node": ">=18.0.0" } }, - "node_modules/@azure/core-rest-pipeline/node_modules/agent-base": { - "version": "7.1.1", - "integrity": "sha1-vb3tffsJa3UaKgh+7rlmRyWy4xc=", - "dev": true, - "dependencies": { - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@azure/core-rest-pipeline/node_modules/http-proxy-agent": { - "version": "7.0.2", - "integrity": "sha1-mosfJGhmwChQlIZYX2K48sGMJw4=", - "dev": true, - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@azure/core-rest-pipeline/node_modules/https-proxy-agent": { - "version": "7.0.4", - "integrity": "sha1-jpe4QaAprY3chzHyZZW62GjLQWg=", - "dev": true, - "dependencies": { - "agent-base": "^7.0.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/@azure/core-tracing": { - "version": "1.1.2", - "integrity": "sha1-Bl2rTgk/thiZmIoc28gn2a2QtO4=", + "version": "1.2.0", + "integrity": "sha1-e+XVPDUi1jnPGQQsvNsZ9xvDWrI=", "dev": true, "dependencies": { "tslib": "^2.6.2" @@ -190,8 +158,8 @@ } }, "node_modules/@azure/core-util": { - "version": "1.9.0", - "integrity": "sha1-Rpr9fmRS1TiLGJ+Q0z93VrCyENE=", + "version": "1.10.0", + "integrity": "sha1-zzFjOC1ANDlyhIyRSGmGTfXUS9s=", "dev": true, "dependencies": { "@azure/abort-controller": "^2.0.0", @@ -213,19 +181,19 @@ } }, "node_modules/@azure/identity": { - "version": "4.2.0", - "integrity": "sha1-rK7i9QeFzId3jsfu3MINbnLB2iM=", + "version": "4.4.1", + "integrity": "sha1-SQ+irSZ4Yimvo2QRiSu1Pfo0eNM=", "dev": true, "dependencies": { "@azure/abort-controller": "^1.0.0", "@azure/core-auth": "^1.5.0", - "@azure/core-client": "^1.4.0", + "@azure/core-client": "^1.9.2", "@azure/core-rest-pipeline": "^1.1.0", "@azure/core-tracing": "^1.0.0", "@azure/core-util": "^1.3.0", "@azure/logger": "^1.0.0", - "@azure/msal-browser": "^3.11.1", - "@azure/msal-node": "^2.6.6", + "@azure/msal-browser": "^3.14.0", + "@azure/msal-node": "^2.9.2", "events": "^3.0.0", "jws": "^4.0.0", "open": "^8.0.0", @@ -237,8 +205,8 @@ } }, "node_modules/@azure/logger": { - "version": "1.1.2", - "integrity": "sha1-P0uHbO+tMo3BSv+LhQ1jthHiSdw=", + "version": "1.1.4", + "integrity": "sha1-Ijy/K0JN+mZHjOmk9XX1nG83l2g=", "dev": true, "dependencies": { "tslib": "^2.6.2" @@ -248,30 +216,30 @@ } }, "node_modules/@azure/msal-browser": { - "version": "3.13.0", - "integrity": "sha1-3FLF1JV8MyCeijQ6jDH89mIoUCQ=", + "version": "3.26.1", + "integrity": "sha1-L0No15l2gtsw3KUuMvysNj+g760=", "dev": true, "dependencies": { - "@azure/msal-common": "14.9.0" + "@azure/msal-common": "14.15.0" }, "engines": { "node": ">=0.8.0" } }, "node_modules/@azure/msal-common": { - "version": "14.9.0", - "integrity": "sha1-zhiVtO78yqDmqqOduGlhHq7E438=", + "version": "14.15.0", + "integrity": "sha1-DiesC7iP4QD0+NFgW2TVwmhjalU=", "dev": true, "engines": { "node": ">=0.8.0" } }, "node_modules/@azure/msal-node": { - "version": "2.7.0", - "integrity": "sha1-hkGrhGcE3U/L7tMK75RUTF/s+jA=", + "version": "2.15.0", + "integrity": "sha1-UL+OaSpmVgJ8Bzp12HeopHiq/f0=", "dev": true, "dependencies": { - "@azure/msal-common": "14.9.0", + "@azure/msal-common": "14.15.0", "jsonwebtoken": "^9.0.0", "uuid": "^8.3.0" }, @@ -288,8 +256,8 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.20.2", - "integrity": "sha1-pw9KwRxqHfwYuLuxMoQVXZM7lTc=", + "version": "0.21.5", + "integrity": "sha1-xxhKMmUz/N8bjuBzPiHHE7l1V18=", "cpu": [ "ppc64" ], @@ -303,8 +271,8 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.20.2", - "integrity": "sha1-O0iMSa7p1JHCyPmKkJt4WHDW6ZU=", + "version": "0.21.5", + "integrity": "sha1-mwQ4T7dxkm36bXrQQyTssqubLig=", "cpu": [ "arm" ], @@ -318,8 +286,8 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.20.2", - "integrity": "sha1-2xySAqW8kuoEx7aEDxu+Cev55rk=", + "version": "0.21.5", + "integrity": "sha1-Cdm0NXeA2p6jp9+4M6Hx/0ObQFI=", "cpu": [ "arm64" ], @@ -333,8 +301,8 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.20.2", - "integrity": "sha1-OxYoAp5VdiSdKy12ZpblB2hEn5g=", + "version": "0.21.5", + "integrity": "sha1-KZGOwtt1TO3LbBsE3ozWVHr2Rh4=", "cpu": [ "x64" ], @@ -348,8 +316,8 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.20.2", - "integrity": "sha1-boUXoEXd2GrjDGYIyEdevAxAALs=", + "version": "0.21.5", + "integrity": "sha1-5JW1OWYOUWkPOSivUKdvsKbM/yo=", "cpu": [ "arm64" ], @@ -363,8 +331,8 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.20.2", - "integrity": "sha1-kO0Jjh+d2Kk4FpWyB+HP9FVAoNA=", + "version": "0.21.5", + "integrity": "sha1-wTg4+lc3KDmr3dyR1xVCzuouHiI=", "cpu": [ "x64" ], @@ -378,8 +346,8 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.20.2", - "integrity": "sha1-1xUC0e6JoRMDJ+iQNkZmx2CiqRE=", + "version": "0.21.5", + "integrity": "sha1-ZGuYmqIL+J/Qcd1dv61po1QuVQ4=", "cpu": [ "arm64" ], @@ -393,8 +361,8 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.20.2", - "integrity": "sha1-ql6ljZwd2a9oi4tvY+8NPWDOpTw=", + "version": "0.21.5", + "integrity": "sha1-qmFc/ICvlU00WJBuOMoiwYz1wmE=", "cpu": [ "x64" ], @@ -408,8 +376,8 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.20.2", - "integrity": "sha1-drO5jLH4eTb7w38HPvq61J3NiJw=", + "version": "0.21.5", + "integrity": "sha1-/G/RGorKVsH284lPK+oEefj2Jrk=", "cpu": [ "arm" ], @@ -423,8 +391,8 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.20.2", - "integrity": "sha1-BVtjcl32eDebD2250PqFRjdVsuU=", + "version": "0.21.5", + "integrity": "sha1-cKxvoU9ct+H3+Ie8/7aArQmSK1s=", "cpu": [ "arm64" ], @@ -438,8 +406,8 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.20.2", - "integrity": "sha1-wOXnh8KFJk5d/Hp58EuLTu/a1/o=", + "version": "0.21.5", + "integrity": "sha1-MnH1Oz+T49CT1RjRZJ1taNNG7eI=", "cpu": [ "ia32" ], @@ -453,8 +421,8 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.20.2", - "integrity": "sha1-phhOYr183GPgwESLg4AQAWUyGcU=", + "version": "0.21.5", + "integrity": "sha1-7WLgQjjFcCauqDHFoTC3PA+fJt8=", "cpu": [ "loong64" ], @@ -468,8 +436,8 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.20.2", - "integrity": "sha1-0I45zob0Xvj8iFSdKcYris9WSao=", + "version": "0.21.5", + "integrity": "sha1-55uOtIvzsQb63sGsgkD7l7TmTL4=", "cpu": [ "mips64el" ], @@ -483,8 +451,8 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.20.2", - "integrity": "sha1-jSUvC3dW/9bRy95epn/4/SBDfyA=", + "version": "0.21.5", + "integrity": "sha1-XyIDhgoUO5kZ04PvdXNSH7FUw+Q=", "cpu": [ "ppc64" ], @@ -498,8 +466,8 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.20.2", - "integrity": "sha1-Gfbc2xRAna5gf2bKEYHdTp24EwA=", + "version": "0.21.5", + "integrity": "sha1-B7yv2ZMi1a9i9hjLnmqbf0u4Jdw=", "cpu": [ "riscv64" ], @@ -513,8 +481,8 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.20.2", - "integrity": "sha1-PIMMkPGl190Uc9VZXqTruSCYhoU=", + "version": "0.21.5", + "integrity": "sha1-t8z2hnUdaj5EuGJ6uryL4+9i2N4=", "cpu": [ "s390x" ], @@ -528,8 +496,8 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.20.2", - "integrity": "sha1-huyjUgOvwNneBpTGTsCrCjePb/8=", + "version": "0.21.5", + "integrity": "sha1-bY8Mdo4HDmQwmvgAS7lOaKsrs7A=", "cpu": [ "x64" ], @@ -543,8 +511,8 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.20.2", - "integrity": "sha1-53HI6w4Pbhh3/9QiADa5iu1ZFeY=", + "version": "0.21.5", + "integrity": "sha1-u+Qw9g03jsuI3sshnGAmZzh6YEc=", "cpu": [ "x64" ], @@ -558,8 +526,8 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.20.2", - "integrity": "sha1-mnla5LTjfmdPD01xbz4ibdfDm68=", + "version": "0.21.5", + "integrity": "sha1-mdHPKTcnlWDSEEgh9czOIgyyr3A=", "cpu": [ "x64" ], @@ -573,8 +541,8 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.20.2", - "integrity": "sha1-ffI7YaSXuKwYne9uJalWc8rtsD8=", + "version": "0.21.5", + "integrity": "sha1-CHQVEsENUpVmurqDe0/gUsjzSHs=", "cpu": [ "x64" ], @@ -588,8 +556,8 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.20.2", - "integrity": "sha1-8a5av5ygUq4RwbyAb7TA9Rm6z5A=", + "version": "0.21.5", + "integrity": "sha1-Z1tzhTmEESQHNQFhRKsumaYPx10=", "cpu": [ "arm64" ], @@ -603,8 +571,8 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.20.2", - "integrity": "sha1-JB/mLDTY6EYc1wgneBPh0LpVziM=", + "version": "0.21.5", + "integrity": "sha1-G/w86YqmypoJaeTSr3IUTFnBGTs=", "cpu": [ "ia32" ], @@ -618,8 +586,8 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.20.2", - "integrity": "sha1-nJB7IeMKUtuVm6T4C7AaDMQD1cw=", + "version": "0.21.5", + "integrity": "sha1-rK01HVgtFXuxRVNdsqb/U91RS1w=", "cpu": [ "x64" ], @@ -635,7 +603,7 @@ "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", "integrity": "sha1-ojUU6Pua8SadX3eIqlVnmNYca1k=", - "dev": true, + "optional": true, "dependencies": { "eslint-visitor-keys": "^3.3.0" }, @@ -647,9 +615,9 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.10.0", - "integrity": "sha1-VI9t5VaFfIu3O77nDDXcgqLnTWM=", - "dev": true, + "version": "4.11.1", + "integrity": "sha1-pUe638cZ6z5fS1VjJeVC++nXoY8=", + "optional": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } @@ -657,7 +625,7 @@ "node_modules/@eslint/eslintrc": { "version": "2.1.4", "integrity": "sha1-OIomnw8lwbatwxe1osVXFIlMcK0=", - "dev": true, + "optional": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -679,7 +647,7 @@ "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { "version": "1.1.11", "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", - "dev": true, + "optional": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -688,7 +656,7 @@ "node_modules/@eslint/eslintrc/node_modules/minimatch": { "version": "3.1.2", "integrity": "sha1-Gc0ZS/0+Qo8EmnCBfAONiatL41s=", - "dev": true, + "optional": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -699,7 +667,7 @@ "node_modules/@eslint/js": { "version": "8.57.0", "integrity": "sha1-pUF66EJ4c/HdCLcLNXS0U+Z7X38=", - "dev": true, + "optional": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } @@ -707,7 +675,7 @@ "node_modules/@humanwhocodes/config-array": { "version": "0.11.14", "integrity": "sha1-145IGgOfdWbsyWYLTqf+ax/sRCs=", - "dev": true, + "optional": true, "dependencies": { "@humanwhocodes/object-schema": "^2.0.2", "debug": "^4.3.1", @@ -720,7 +688,7 @@ "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { "version": "1.1.11", "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", - "dev": true, + "optional": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -729,7 +697,7 @@ "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { "version": "3.1.2", "integrity": "sha1-Gc0ZS/0+Qo8EmnCBfAONiatL41s=", - "dev": true, + "optional": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -740,7 +708,7 @@ "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", "integrity": "sha1-r1smkaIrRL6EewyoFkHF+2rQFyw=", - "dev": true, + "optional": true, "engines": { "node": ">=12.22" }, @@ -752,12 +720,12 @@ "node_modules/@humanwhocodes/object-schema": { "version": "2.0.3", "integrity": "sha1-Siho111taWPkI7z5C3/RvjQ0CdM=", - "dev": true + "optional": true }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "integrity": "sha1-s3Znt7wYHBaHgiWbq0JHT79StVA=", - "dev": true, + "devOptional": true, "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -771,9 +739,9 @@ } }, "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "integrity": "sha1-MYPjj66aZdfLXlOUXNWJfQJgoGo=", - "dev": true, + "version": "6.1.0", + "integrity": "sha1-lexAnGlhnWyxuLNPFLZg7yjr1lQ=", + "devOptional": true, "engines": { "node": ">=12" }, @@ -784,7 +752,7 @@ "node_modules/@isaacs/cliui/node_modules/strip-ansi": { "version": "7.1.0", "integrity": "sha1-1bZWjKaJ2FYTcLBwdoXSJDT6/0U=", - "dev": true, + "devOptional": true, "dependencies": { "ansi-regex": "^6.0.1" }, @@ -796,66 +764,66 @@ } }, "node_modules/@microsoft/1ds-core-js": { - "version": "4.2.0", - "integrity": "sha1-rdN5AzaBS+ahKFEnSMUccxmerlE=", + "version": "4.3.3", + "integrity": "sha1-+HAkGN3vebFBfwQNlGpJ4XOlBFQ=", "dependencies": { - "@microsoft/applicationinsights-core-js": "3.2.0", + "@microsoft/applicationinsights-core-js": "3.3.3", "@microsoft/applicationinsights-shims": "3.0.1", "@microsoft/dynamicproto-js": "^2.0.3", - "@nevware21/ts-async": ">= 0.5.1 < 2.x", - "@nevware21/ts-utils": ">= 0.11.1 < 2.x" + "@nevware21/ts-async": ">= 0.5.2 < 2.x", + "@nevware21/ts-utils": ">= 0.11.3 < 2.x" } }, "node_modules/@microsoft/1ds-post-js": { - "version": "4.2.0", - "integrity": "sha1-HZtYBnXiTozprbyBw9muSgghaA4=", + "version": "4.3.3", + "integrity": "sha1-FR9adD1ZmOgCkZII7wqcX1Xv+HQ=", "dependencies": { - "@microsoft/1ds-core-js": "4.2.0", + "@microsoft/1ds-core-js": "4.3.3", "@microsoft/applicationinsights-shims": "3.0.1", "@microsoft/dynamicproto-js": "^2.0.3", - "@nevware21/ts-async": ">= 0.5.1 < 2.x", - "@nevware21/ts-utils": ">= 0.11.1 < 2.x" + "@nevware21/ts-async": ">= 0.5.2 < 2.x", + "@nevware21/ts-utils": ">= 0.11.3 < 2.x" } }, "node_modules/@microsoft/applicationinsights-channel-js": { - "version": "3.2.0", - "integrity": "sha1-STn6htz/sY5HKy2bEt/Vou+yTc4=", + "version": "3.3.3", + "integrity": "sha1-bukPn7WxMzMgMxNTs/VBOFM0cY4=", "dependencies": { - "@microsoft/applicationinsights-common": "3.2.0", - "@microsoft/applicationinsights-core-js": "3.2.0", + "@microsoft/applicationinsights-common": "3.3.3", + "@microsoft/applicationinsights-core-js": "3.3.3", "@microsoft/applicationinsights-shims": "3.0.1", "@microsoft/dynamicproto-js": "^2.0.3", - "@nevware21/ts-async": ">= 0.5.1 < 2.x", - "@nevware21/ts-utils": ">= 0.11.1 < 2.x" + "@nevware21/ts-async": ">= 0.5.2 < 2.x", + "@nevware21/ts-utils": ">= 0.11.3 < 2.x" }, "peerDependencies": { - "tslib": "*" + "tslib": ">= 1.0.0" } }, "node_modules/@microsoft/applicationinsights-common": { - "version": "3.2.0", - "integrity": "sha1-NcfwT+hcA6HQr/kTUNGjuQ9oGOA=", + "version": "3.3.3", + "integrity": "sha1-jEcJ7AqYANxwrZJYD9c7HCZOOVQ=", "dependencies": { - "@microsoft/applicationinsights-core-js": "3.2.0", + "@microsoft/applicationinsights-core-js": "3.3.3", "@microsoft/applicationinsights-shims": "3.0.1", "@microsoft/dynamicproto-js": "^2.0.3", - "@nevware21/ts-utils": ">= 0.11.1 < 2.x" + "@nevware21/ts-utils": ">= 0.11.3 < 2.x" }, "peerDependencies": { - "tslib": "*" + "tslib": ">= 1.0.0" } }, "node_modules/@microsoft/applicationinsights-core-js": { - "version": "3.2.0", - "integrity": "sha1-LQIGdP+Y72X0JR0ywaPt+H6S/f0=", + "version": "3.3.3", + "integrity": "sha1-Z+C6y7gwv7dYzEo3BhqC31KkCRQ=", "dependencies": { "@microsoft/applicationinsights-shims": "3.0.1", "@microsoft/dynamicproto-js": "^2.0.3", - "@nevware21/ts-async": ">= 0.5.1 < 2.x", - "@nevware21/ts-utils": ">= 0.11.1 < 2.x" + "@nevware21/ts-async": ">= 0.5.2 < 2.x", + "@nevware21/ts-utils": ">= 0.11.3 < 2.x" }, "peerDependencies": { - "tslib": "*" + "tslib": ">= 1.0.0" } }, "node_modules/@microsoft/applicationinsights-shims": { @@ -866,19 +834,19 @@ } }, "node_modules/@microsoft/applicationinsights-web-basic": { - "version": "3.2.0", - "integrity": "sha1-l6DJ0rwEczHsAzYEQBAjVXf8Yn0=", + "version": "3.3.3", + "integrity": "sha1-twQmd5FzzT/OdF2k/AYrmdUAFMA=", "dependencies": { - "@microsoft/applicationinsights-channel-js": "3.2.0", - "@microsoft/applicationinsights-common": "3.2.0", - "@microsoft/applicationinsights-core-js": "3.2.0", + "@microsoft/applicationinsights-channel-js": "3.3.3", + "@microsoft/applicationinsights-common": "3.3.3", + "@microsoft/applicationinsights-core-js": "3.3.3", "@microsoft/applicationinsights-shims": "3.0.1", "@microsoft/dynamicproto-js": "^2.0.3", - "@nevware21/ts-async": ">= 0.5.1 < 2.x", - "@nevware21/ts-utils": ">= 0.11.1 < 2.x" + "@nevware21/ts-async": ">= 0.5.2 < 2.x", + "@nevware21/ts-utils": ">= 0.11.3 < 2.x" }, "peerDependencies": { - "tslib": "*" + "tslib": ">= 1.0.0" } }, "node_modules/@microsoft/dynamicproto-js": { @@ -889,20 +857,20 @@ } }, "node_modules/@nevware21/ts-async": { - "version": "0.5.1", - "integrity": "sha1-P1X6UiKwr1pbsBn2cJLNzWpfguY=", + "version": "0.5.2", + "integrity": "sha1-pBiD3GzMRma98VbpLzXzAD/T9vA=", "dependencies": { - "@nevware21/ts-utils": ">= 0.11.2 < 2.x" + "@nevware21/ts-utils": ">= 0.11.3 < 2.x" } }, "node_modules/@nevware21/ts-utils": { - "version": "0.11.2", - "integrity": "sha1-WDbzOMCR9HNYKY2h93pnqIIZpqU=" + "version": "0.11.4", + "integrity": "sha1-sLfqRs/xO51lrFMbWebc2N7AGGk=" }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "integrity": "sha1-dhnC6yGyVIP20WdUi0z9WnSIw9U=", - "dev": true, + "optional": true, "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -914,7 +882,7 @@ "node_modules/@nodelib/fs.stat": { "version": "2.0.5", "integrity": "sha1-W9Jir5Tp0lvR5xsF3u1Eh2oiLos=", - "dev": true, + "optional": true, "engines": { "node": ">= 8" } @@ -922,7 +890,7 @@ "node_modules/@nodelib/fs.walk": { "version": "1.2.8", "integrity": "sha1-6Vc36LtnRt3t9pxVaVNJTxlv5po=", - "dev": true, + "optional": true, "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -931,19 +899,10 @@ "node": ">= 8" } }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "integrity": "sha1-p36nQvqyV3UUVDTrHSMoz1ATrDM=", - "dev": true, - "optional": true, - "engines": { - "node": ">=14" - } - }, "node_modules/@sinonjs/commons": { "version": "3.0.1", "integrity": "sha1-ECk1fkTKkBphVYX20nc428iQhM0=", - "dev": true, + "optional": true, "dependencies": { "type-detect": "4.0.8" } @@ -951,72 +910,59 @@ "node_modules/@sinonjs/fake-timers": { "version": "11.2.2", "integrity": "sha1-UAY8w1dPSie9hFMYCgQXHIXMlpk=", - "dev": true, + "optional": true, "dependencies": { "@sinonjs/commons": "^3.0.0" } }, "node_modules/@sinonjs/samsam": { - "version": "8.0.0", - "integrity": "sha1-DUiMke+z+hRC4mq+qBdZ38i1rGA=", - "dev": true, + "version": "8.0.2", + "integrity": "sha1-5Dhr9mj/NslZSeVaONxfWJL8Jok=", + "optional": true, "dependencies": { - "@sinonjs/commons": "^2.0.0", + "@sinonjs/commons": "^3.0.1", "lodash.get": "^4.4.2", - "type-detect": "^4.0.8" - } - }, - "node_modules/@sinonjs/samsam/node_modules/@sinonjs/commons": { - "version": "2.0.0", - "integrity": "sha1-/UylsGNVQwfoMntFZL1W07c5JKM=", - "dev": true, - "dependencies": { - "type-detect": "4.0.8" + "type-detect": "^4.1.0" } }, - "node_modules/@sinonjs/text-encoding": { - "version": "0.7.2", - "integrity": "sha1-WYGo2xi1a6OO8O+32ZWxKqe1GRg=", - "dev": true - }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "integrity": "sha1-zLkURTYBeaBOf+av94wA/8Hur4I=", - "dev": true, + "node_modules/@sinonjs/samsam/node_modules/type-detect": { + "version": "4.1.0", + "integrity": "sha1-3rJFPo8I3K566YxiaxPd2wFVkGw=", + "optional": true, "engines": { - "node": ">= 6" + "node": ">=4" } }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "integrity": "sha1-WWoXRyM2lNUPatinhp/Lb1bPWEE=", - "dev": true + "node_modules/@sinonjs/text-encoding": { + "version": "0.7.3", + "integrity": "sha1-KCBG8D6IbjUrLV9dpet1XgFFfz8=", + "optional": true }, "node_modules/@types/mocha": { - "version": "10.0.6", - "integrity": "sha1-gYVR05ETCBBIvd2++WcBtOi7nRs=", - "dev": true + "version": "10.0.9", + "integrity": "sha1-EB6dqI0sAuWsiVKYLCOyJFJNZio=", + "optional": true }, "node_modules/@types/mock-fs": { "version": "4.13.4", "integrity": "sha1-5z7bS0iJ1E0j8eoC1u6+UKowsJo=", - "dev": true, + "optional": true, "dependencies": { "@types/node": "*" } }, "node_modules/@types/node": { - "version": "18.19.31", - "integrity": "sha1-t9SgD3y4JrYKVDzr29pdGJquzc0=", - "dev": true, + "version": "20.16.11", + "integrity": "sha1-m1RMPnFrFXesEucPkUUZPzJ1CzM=", + "optional": true, "dependencies": { - "undici-types": "~5.26.4" + "undici-types": "~6.19.2" } }, "node_modules/@types/node-fetch": { "version": "2.6.11", "integrity": "sha1-mzm3hmXa4OgqCPAvSWfWLGb5XSQ=", - "dev": true, + "optional": true, "dependencies": { "@types/node": "*", "form-data": "^4.0.0" @@ -1025,17 +971,17 @@ "node_modules/@types/rewire": { "version": "2.5.30", "integrity": "sha1-da8QbSlOyIriEij+/jqlee/sJ24=", - "dev": true + "optional": true }, "node_modules/@types/semver": { "version": "7.5.8", "integrity": "sha1-gmioxXo+Sr0lwWXs02I323lIpV4=", - "dev": true + "optional": true }, "node_modules/@types/sinon": { "version": "17.0.3", "integrity": "sha1-mqfmLwoyO56tF37SOjbqdXFBpfo=", - "dev": true, + "optional": true, "dependencies": { "@types/sinonjs__fake-timers": "*" } @@ -1043,50 +989,48 @@ "node_modules/@types/sinonjs__fake-timers": { "version": "8.1.5", "integrity": "sha1-X9NZL/EMHpaV03cCDAMxFswoifI=", - "dev": true + "optional": true }, "node_modules/@types/ungap__structured-clone": { "version": "1.2.0", "integrity": "sha1-Ern9SrPmqCKS1gBISSsF63W0pI8=", - "dev": true + "optional": true }, "node_modules/@types/uuid": { "version": "9.0.8", "integrity": "sha1-dUW6T8PAA9bHVvZR878WPY8PKbo=", - "dev": true + "optional": true }, "node_modules/@types/vscode": { - "version": "1.82.0", - "integrity": "sha1-ibCyEXnc9ejO4WZKmgXF9sYNONA=", - "dev": true + "version": "1.94.0", + "integrity": "sha1-zNIRG27KumrU2hnC1SSCj6c64lA=", + "optional": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.8.0", - "integrity": "sha1-x44wn+lny03gW4XNyHb7lfjgG28=", - "dev": true, + "version": "8.8.1", + "integrity": "sha1-k2S3VtTXi8vfb9PpNF5pJMaK03E=", + "optional": true, "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "7.8.0", - "@typescript-eslint/type-utils": "7.8.0", - "@typescript-eslint/utils": "7.8.0", - "@typescript-eslint/visitor-keys": "7.8.0", - "debug": "^4.3.4", + "@typescript-eslint/scope-manager": "8.8.1", + "@typescript-eslint/type-utils": "8.8.1", + "@typescript-eslint/utils": "8.8.1", + "@typescript-eslint/visitor-keys": "8.8.1", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", - "semver": "^7.6.0", "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^7.0.0", - "eslint": "^8.56.0" + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -1095,25 +1039,25 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "7.8.0", - "integrity": "sha1-Hh2zDIq4Msr/7l835nfby5NX3cg=", - "dev": true, + "version": "8.8.1", + "integrity": "sha1-WVK6KoO9UgJLhy8/3I7S02Ngc7g=", + "optional": true, "dependencies": { - "@typescript-eslint/scope-manager": "7.8.0", - "@typescript-eslint/types": "7.8.0", - "@typescript-eslint/typescript-estree": "7.8.0", - "@typescript-eslint/visitor-keys": "7.8.0", + "@typescript-eslint/scope-manager": "8.8.1", + "@typescript-eslint/types": "8.8.1", + "@typescript-eslint/typescript-estree": "8.8.1", + "@typescript-eslint/visitor-keys": "8.8.1", "debug": "^4.3.4" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.56.0" + "eslint": "^8.57.0 || ^9.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -1122,15 +1066,15 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "7.8.0", - "integrity": "sha1-uxkJbRHsa4f7ZkDZId8ZuBPgIEc=", - "dev": true, + "version": "8.8.1", + "integrity": "sha1-tL6hwHharr/jxKsFntrqHEl35/8=", + "optional": true, "dependencies": { - "@typescript-eslint/types": "7.8.0", - "@typescript-eslint/visitor-keys": "7.8.0" + "@typescript-eslint/types": "8.8.1", + "@typescript-eslint/visitor-keys": "8.8.1" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -1138,25 +1082,22 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "7.8.0", - "integrity": "sha1-neFm8YKm5NHF2nbpSIDpGDHj4m8=", - "dev": true, + "version": "8.8.1", + "integrity": "sha1-MfWexG6ToCtAn7TUBqNopZ+tMG4=", + "optional": true, "dependencies": { - "@typescript-eslint/typescript-estree": "7.8.0", - "@typescript-eslint/utils": "7.8.0", + "@typescript-eslint/typescript-estree": "8.8.1", + "@typescript-eslint/utils": "8.8.1", "debug": "^4.3.4", "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependencies": { - "eslint": "^8.56.0" - }, "peerDependenciesMeta": { "typescript": { "optional": true @@ -1164,11 +1105,11 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "7.8.0", - "integrity": "sha1-H9JXezrYg7dpVG4tHvN5+SmnCR0=", - "dev": true, + "version": "8.8.1", + "integrity": "sha1-6+heD6So4yokpWra3wYBA77xO9E=", + "optional": true, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -1176,21 +1117,21 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.8.0", - "integrity": "sha1-sCipImhgtm5iPB7lXMJGS5XSmHw=", - "dev": true, + "version": "8.8.1", + "integrity": "sha1-NGSfTijTLuSRUhk7x97cDnjl0ew=", + "optional": true, "dependencies": { - "@typescript-eslint/types": "7.8.0", - "@typescript-eslint/visitor-keys": "7.8.0", + "@typescript-eslint/types": "8.8.1", + "@typescript-eslint/visitor-keys": "8.8.1", "debug": "^4.3.4", - "globby": "^11.1.0", + "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -1203,39 +1144,36 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "7.8.0", - "integrity": "sha1-V6efnAwHQOrS9iLkRM+u65/QR80=", - "dev": true, + "version": "8.8.1", + "integrity": "sha1-nilID7+iZMJpRiU9qnIYH58FPJ0=", + "optional": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.15", - "@types/semver": "^7.5.8", - "@typescript-eslint/scope-manager": "7.8.0", - "@typescript-eslint/types": "7.8.0", - "@typescript-eslint/typescript-estree": "7.8.0", - "semver": "^7.6.0" + "@typescript-eslint/scope-manager": "8.8.1", + "@typescript-eslint/types": "8.8.1", + "@typescript-eslint/typescript-estree": "8.8.1" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.56.0" + "eslint": "^8.57.0 || ^9.0.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.8.0", - "integrity": "sha1-coWquZHai+5BGkLtvV23YNIv3ZE=", - "dev": true, + "version": "8.8.1", + "integrity": "sha1-D7EoDzgRSfw0Xf3in3VC/05Yf8U=", + "optional": true, "dependencies": { - "@typescript-eslint/types": "7.8.0", + "@typescript-eslint/types": "8.8.1", "eslint-visitor-keys": "^3.4.3" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -1245,62 +1183,64 @@ "node_modules/@ungap/structured-clone": { "version": "1.2.0", "integrity": "sha1-dWZBrbWHhRtcyz4JXa8nrlgchAY=", - "dev": true + "optional": true }, "node_modules/@vscode/debugprotocol": { - "version": "1.65.0", - "integrity": "sha1-MEqeD08oJaZttGRxSNSy7GNy8X4=", - "dev": true + "version": "1.68.0", + "integrity": "sha1-5Vi6av/hvnr/TsgkWZ8xa2HZpp0=", + "optional": true }, "node_modules/@vscode/extension-telemetry": { - "version": "0.9.6", - "integrity": "sha1-lwQZht2uGugNPexXfkrhB+gSLz8=", + "version": "0.9.7", + "integrity": "sha1-OG4IwfmDUL1aNozPJ5pQGgzW3Wc=", "dependencies": { - "@microsoft/1ds-core-js": "^4.1.2", - "@microsoft/1ds-post-js": "^4.1.2", - "@microsoft/applicationinsights-web-basic": "^3.1.2" + "@microsoft/1ds-core-js": "^4.3.0", + "@microsoft/1ds-post-js": "^4.3.0", + "@microsoft/applicationinsights-web-basic": "^3.3.0" }, "engines": { "vscode": "^1.75.0" } }, "node_modules/@vscode/test-electron": { - "version": "2.3.9", - "integrity": "sha1-9hGBOSY0tAhBHkMCrvbhzS3UFHQ=", - "dev": true, + "version": "2.4.1", + "integrity": "sha1-XCdgZAv2ku+9qhi6/NNftRloiUE=", + "optional": true, "dependencies": { - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", + "http-proxy-agent": "^7.0.2", + "https-proxy-agent": "^7.0.5", "jszip": "^3.10.1", - "semver": "^7.5.2" + "ora": "^7.0.1", + "semver": "^7.6.2" }, "engines": { "node": ">=16" } }, "node_modules/@vscode/vsce": { - "version": "2.26.1", - "integrity": "sha1-xPE7BCJeXNFtCoDrW7mLlkUc5DE=", + "version": "3.1.1", + "integrity": "sha1-sYtEeW2eW3pIo6Hon5Pe+cOzOLk=", "dev": true, "dependencies": { "@azure/identity": "^4.1.0", + "@vscode/vsce-sign": "^2.0.0", "azure-devops-node-api": "^12.5.0", "chalk": "^2.4.2", "cheerio": "^1.0.0-rc.9", "cockatiel": "^3.1.2", "commander": "^6.2.1", "form-data": "^4.0.0", - "glob": "^7.0.6", + "glob": "^11.0.0", "hosted-git-info": "^4.0.2", "jsonc-parser": "^3.2.0", "leven": "^3.1.0", - "markdown-it": "^12.3.2", + "markdown-it": "^14.1.0", "mime": "^1.3.4", "minimatch": "^3.0.3", "parse-semver": "^1.1.1", "read": "^1.0.7", "semver": "^7.5.2", - "tmp": "^0.2.1", + "tmp": "^0.2.3", "typed-rest-client": "^1.8.4", "url-join": "^4.0.1", "xml2js": "^0.5.0", @@ -1311,85 +1251,191 @@ "vsce": "vsce" }, "engines": { - "node": ">= 16" + "node": ">= 20" }, "optionalDependencies": { "keytar": "^7.7.0" } }, - "node_modules/@vscode/vsce/node_modules/brace-expansion": { - "version": "1.1.11", - "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", + "node_modules/@vscode/vsce-sign": { + "version": "2.0.4", + "integrity": "sha1-tL8VXRbypLrcBp34UNyG91YSSEI=", "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@vscode/vsce/node_modules/glob": { - "version": "7.2.3", - "integrity": "sha1-uN8PuAK7+o6JvR2Ti04WV47UTys=", + "hasInstallScript": true, + "optionalDependencies": { + "@vscode/vsce-sign-alpine-arm64": "2.0.2", + "@vscode/vsce-sign-alpine-x64": "2.0.2", + "@vscode/vsce-sign-darwin-arm64": "2.0.2", + "@vscode/vsce-sign-darwin-x64": "2.0.2", + "@vscode/vsce-sign-linux-arm": "2.0.2", + "@vscode/vsce-sign-linux-arm64": "2.0.2", + "@vscode/vsce-sign-linux-x64": "2.0.2", + "@vscode/vsce-sign-win32-arm64": "2.0.2", + "@vscode/vsce-sign-win32-x64": "2.0.2" + } + }, + "node_modules/@vscode/vsce-sign-alpine-arm64": { + "version": "2.0.2", + "integrity": "sha1-SszEheVapv8EsZW0f3IurVfapY4=", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } + "optional": true, + "os": [ + "alpine" + ] }, - "node_modules/@vscode/vsce/node_modules/minimatch": { - "version": "3.1.2", - "integrity": "sha1-Gc0ZS/0+Qo8EmnCBfAONiatL41s=", + "node_modules/@vscode/vsce-sign-alpine-x64": { + "version": "2.0.2", + "integrity": "sha1-Skt7UFtMwPWFljlIl8SaC84OVAw=", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } + "optional": true, + "os": [ + "alpine" + ] }, - "node_modules/acorn": { - "version": "8.11.3", - "integrity": "sha1-ceCxThOk7BYHJLOPt7DyM7G4HXo=", + "node_modules/@vscode/vsce-sign-darwin-arm64": { + "version": "2.0.2", + "integrity": "sha1-EKpp/rf4Gj3GjCQgOMoD6v8ZwS4=", + "cpu": [ + "arm64" + ], "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "integrity": "sha1-ftW7VZCLOy8bxVxq8WU7rafweTc=", + "node_modules/@vscode/vsce-sign-darwin-x64": { + "version": "2.0.2", + "integrity": "sha1-MxVSjz6hAHpkizMgv/NqM6ngeqU=", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@vscode/vsce-sign-linux-arm": { + "version": "2.0.2", + "integrity": "sha1-QUL9qD5xMLMa7diqgeTapjNDI8I=", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@vscode/vsce-sign-linux-arm64": { + "version": "2.0.2", + "integrity": "sha1-zlxc/JnjRUtPt3BAWBK0a9bcqHA=", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@vscode/vsce-sign-linux-x64": { + "version": "2.0.2", + "integrity": "sha1-WauT8yLvs89JFm1OLoEnicMRdCg=", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@vscode/vsce-sign-win32-arm64": { + "version": "2.0.2", + "integrity": "sha1-0JVwShSwQEwLb2lumInppRsxqGw=", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@vscode/vsce-sign-win32-x64": { + "version": "2.0.2", + "integrity": "sha1-KU6nK0T+3WlNSfXO9MVb84dtwlc=", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@vscode/vsce/node_modules/brace-expansion": { + "version": "1.1.11", + "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@vscode/vsce/node_modules/minimatch": { + "version": "3.1.2", + "integrity": "sha1-Gc0ZS/0+Qo8EmnCBfAONiatL41s=", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/acorn": { + "version": "8.12.1", + "integrity": "sha1-cWFr3MviXielRDngBG6JynbfIkg=", + "optional": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "integrity": "sha1-ftW7VZCLOy8bxVxq8WU7rafweTc=", + "optional": true, "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/agent-base": { - "version": "6.0.2", - "integrity": "sha1-Sf/1hXfP7j83F2/qtMIuAPhtf3c=", - "dev": true, + "version": "7.1.1", + "integrity": "sha1-vb3tffsJa3UaKgh+7rlmRyWy4xc=", + "devOptional": true, "dependencies": { - "debug": "4" + "debug": "^4.3.4" }, "engines": { - "node": ">= 6.0.0" + "node": ">= 14" } }, "node_modules/ajv": { "version": "6.12.6", "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=", - "dev": true, + "optional": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -1402,9 +1448,9 @@ } }, "node_modules/ansi-colors": { - "version": "4.1.1", - "integrity": "sha1-y7muJWv3UK8eqzRPIpqif+lLo0g=", - "dev": true, + "version": "4.1.3", + "integrity": "sha1-N2ETQOsiQ+cMxgTK011jJw1IeBs=", + "optional": true, "engines": { "node": ">=6" } @@ -1412,7 +1458,7 @@ "node_modules/ansi-regex": { "version": "5.0.1", "integrity": "sha1-CCyyyJyf6GWaMRpTvWpNxTAdswQ=", - "dev": true, + "devOptional": true, "engines": { "node": ">=8" } @@ -1431,7 +1477,7 @@ "node_modules/anymatch": { "version": "3.1.3", "integrity": "sha1-eQxYsZuhcgqEIFtXxhjVrYUklz4=", - "dev": true, + "optional": true, "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -1443,20 +1489,12 @@ "node_modules/argparse": { "version": "2.0.1", "integrity": "sha1-JG9Q88p4oyQPbJl+ipvR6sSeSzg=", - "dev": true - }, - "node_modules/array-union": { - "version": "2.1.0", - "integrity": "sha1-t5hCCtvrHego2ErNii4j0+/oXo0=", - "dev": true, - "engines": { - "node": ">=8" - } + "devOptional": true }, "node_modules/asynckit": { "version": "0.4.0", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true + "devOptional": true }, "node_modules/azure-devops-node-api": { "version": "12.5.0", @@ -1474,7 +1512,6 @@ "node_modules/base64-js": { "version": "1.5.1", "integrity": "sha1-GxtEAWClv3rUC2UPCVljSBkDkwo=", - "dev": true, "funding": [ { "type": "github", @@ -1494,7 +1531,7 @@ "node_modules/binary-extensions": { "version": "2.3.0", "integrity": "sha1-9uFKl4WNMnJSIAJC1Mz+UixEVSI=", - "dev": true, + "optional": true, "engines": { "node": ">=8" }, @@ -1503,12 +1540,11 @@ } }, "node_modules/bl": { - "version": "4.1.0", - "integrity": "sha1-RRU1JkGCvsL7vIOmKrmM8R2fezo=", - "dev": true, + "version": "5.1.0", + "integrity": "sha1-GDcV9njHGI7O+f5HXZAglABiQnM=", "optional": true, "dependencies": { - "buffer": "^5.5.0", + "buffer": "^6.0.3", "inherits": "^2.0.4", "readable-stream": "^3.4.0" } @@ -1516,7 +1552,6 @@ "node_modules/bl/node_modules/readable-stream": { "version": "3.6.2", "integrity": "sha1-VqmzbqllwAxak+8x6xEaDxEFaWc=", - "dev": true, "optional": true, "dependencies": { "inherits": "^2.0.3", @@ -1540,11 +1575,11 @@ } }, "node_modules/braces": { - "version": "3.0.2", - "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=", - "dev": true, + "version": "3.0.3", + "integrity": "sha1-SQMy9AkZRSJy1VqEgK3AxEE1h4k=", + "optional": true, "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" @@ -1553,12 +1588,11 @@ "node_modules/browser-stdout": { "version": "1.3.1", "integrity": "sha1-uqVZ7hTO1zRSIputcyZGfGH6vWA=", - "dev": true + "optional": true }, "node_modules/buffer": { - "version": "5.7.1", - "integrity": "sha1-umLnwTEzBTWCGXFghRqPZI6Z7tA=", - "dev": true, + "version": "6.0.3", + "integrity": "sha1-Ks5XhFnMj74qcKqo9S7mO2p0xsY=", "funding": [ { "type": "github", @@ -1576,7 +1610,7 @@ "optional": true, "dependencies": { "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "ieee754": "^1.2.1" } }, "node_modules/buffer-crc32": { @@ -1595,7 +1629,7 @@ "node_modules/buffer-from": { "version": "1.1.2", "integrity": "sha1-KxRqb9cugLT1XSVfNe1Zo6mkG9U=", - "dev": true + "optional": true }, "node_modules/call-bind": { "version": "1.0.7", @@ -1618,7 +1652,7 @@ "node_modules/callsites": { "version": "3.1.0", "integrity": "sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M=", - "dev": true, + "optional": true, "engines": { "node": ">=6" } @@ -1626,7 +1660,7 @@ "node_modules/camelcase": { "version": "6.3.0", "integrity": "sha1-VoW5XrIJrJwMF3Rnd4ychN9Yupo=", - "dev": true, + "optional": true, "engines": { "node": ">=10" }, @@ -1648,20 +1682,24 @@ } }, "node_modules/cheerio": { - "version": "1.0.0-rc.12", - "integrity": "sha1-eIv3RmUGsca/X65R0kosTWLkdoM=", + "version": "1.0.0", + "integrity": "sha1-Ht5IlagvJuivcQCflhqbjLYNaoE=", "dev": true, "dependencies": { "cheerio-select": "^2.1.0", "dom-serializer": "^2.0.0", "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "htmlparser2": "^8.0.1", - "parse5": "^7.0.0", - "parse5-htmlparser2-tree-adapter": "^7.0.0" + "domutils": "^3.1.0", + "encoding-sniffer": "^0.2.0", + "htmlparser2": "^9.1.0", + "parse5": "^7.1.2", + "parse5-htmlparser2-tree-adapter": "^7.0.0", + "parse5-parser-stream": "^7.1.2", + "undici": "^6.19.5", + "whatwg-mimetype": "^4.0.0" }, "engines": { - "node": ">= 6" + "node": ">=18.17" }, "funding": { "url": "https://github.com/cheeriojs/cheerio?sponsor=1" @@ -1684,15 +1722,9 @@ } }, "node_modules/chokidar": { - "version": "3.5.3", - "integrity": "sha1-HPN8hwe5Mr0a8a4iwEMuKs0ZA70=", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], + "version": "3.6.0", + "integrity": "sha1-GXxsxmnvKo3F57TZfuTgksPrDVs=", + "optional": true, "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -1705,6 +1737,9 @@ "engines": { "node": ">= 8.10.0" }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, "optionalDependencies": { "fsevents": "~2.3.2" } @@ -1712,7 +1747,7 @@ "node_modules/chokidar/node_modules/glob-parent": { "version": "5.1.2", "integrity": "sha1-hpgyxYA0/mikCTwX3BXoNA2EAcQ=", - "dev": true, + "optional": true, "dependencies": { "is-glob": "^4.0.1" }, @@ -1726,10 +1761,35 @@ "dev": true, "optional": true }, + "node_modules/cli-cursor": { + "version": "4.0.0", + "integrity": "sha1-POz+NzS/T+Aqg2HL3A9v4oxqV+o=", + "optional": true, + "dependencies": { + "restore-cursor": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "integrity": "sha1-F3Oo9LnE1qwxVj31Oz/B15Ri/kE=", + "optional": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/cliui": { "version": "7.0.4", "integrity": "sha1-oCZe5lVHb8gHrqnfPfjfd4OAi08=", - "dev": true, + "optional": true, "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -1739,7 +1799,7 @@ "node_modules/cliui/node_modules/ansi-styles": { "version": "4.3.0", "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "dev": true, + "optional": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -1753,7 +1813,7 @@ "node_modules/cliui/node_modules/color-convert": { "version": "2.0.1", "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "dev": true, + "optional": true, "dependencies": { "color-name": "~1.1.4" }, @@ -1764,17 +1824,17 @@ "node_modules/cliui/node_modules/color-name": { "version": "1.1.4", "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", - "dev": true + "optional": true }, "node_modules/cliui/node_modules/emoji-regex": { "version": "8.0.0", "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=", - "dev": true + "optional": true }, "node_modules/cliui/node_modules/string-width": { "version": "4.2.3", "integrity": "sha1-JpxxF9J7Ba0uU2gwqOyJXvnG0BA=", - "dev": true, + "optional": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -1787,7 +1847,7 @@ "node_modules/cliui/node_modules/wrap-ansi": { "version": "7.0.0", "integrity": "sha1-Z+FFz/UQpqaYS98RUpEdadLrnkM=", - "dev": true, + "optional": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -1801,8 +1861,8 @@ } }, "node_modules/cockatiel": { - "version": "3.1.2", - "integrity": "sha1-SGPXqSw8IteKyMauNRN8d/gZJOs=", + "version": "3.2.1", + "integrity": "sha1-V1+Te8QECiCuJzUqbQfJxadBmB8=", "dev": true, "engines": { "node": ">=16" @@ -1824,7 +1884,7 @@ "node_modules/combined-stream": { "version": "1.0.8", "integrity": "sha1-w9RaizT9cwYxoRCoolIGgrMdWn8=", - "dev": true, + "devOptional": true, "dependencies": { "delayed-stream": "~1.0.0" }, @@ -1843,17 +1903,17 @@ "node_modules/concat-map": { "version": "0.0.1", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "devOptional": true }, "node_modules/core-util-is": { "version": "1.0.3", "integrity": "sha1-pgQtNjTCsn6TKPg3uWX6yDgI24U=", - "dev": true + "optional": true }, "node_modules/cross-spawn": { "version": "7.0.3", "integrity": "sha1-9zqFudXUHQRVUcF34ogtSshXKKY=", - "dev": true, + "devOptional": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -1890,11 +1950,11 @@ } }, "node_modules/debug": { - "version": "4.3.4", - "integrity": "sha1-Exn2V5NX8jONMzfSzdSRS7XcyGU=", - "dev": true, + "version": "4.3.7", + "integrity": "sha1-h5RbQVGgEddtlaGY1xEchlw2ClI=", + "devOptional": true, "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -1908,7 +1968,7 @@ "node_modules/decamelize": { "version": "4.0.0", "integrity": "sha1-qkcte/Zg6xXzSU79UxyrfypwmDc=", - "dev": true, + "optional": true, "engines": { "node": ">=10" }, @@ -1943,7 +2003,7 @@ "node_modules/deep-is": { "version": "0.1.4", "integrity": "sha1-pvLc5hL63S7x9Rm3NVHxfoUZmDE=", - "dev": true + "optional": true }, "node_modules/define-data-property": { "version": "1.1.4", @@ -1972,7 +2032,7 @@ "node_modules/delayed-stream": { "version": "1.0.0", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true, + "devOptional": true, "engines": { "node": ">=0.4.0" } @@ -1987,28 +2047,17 @@ } }, "node_modules/diff": { - "version": "5.0.0", - "integrity": "sha1-ftatdthZ0DB4fsNYVfWx2vMdhSs=", - "dev": true, + "version": "5.2.0", + "integrity": "sha1-Jt7QR80RebeLlTfV73JVA84a5TE=", + "optional": true, "engines": { "node": ">=0.3.1" } }, - "node_modules/dir-glob": { - "version": "3.0.1", - "integrity": "sha1-Vtv3PZkqSpO6FYT0U0Bj/S5BcX8=", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/doctrine": { "version": "3.0.0", "integrity": "sha1-rd6+rXKmV023g2OdyHoSF3OXOWE=", - "dev": true, + "optional": true, "dependencies": { "esutils": "^2.0.2" }, @@ -2070,7 +2119,7 @@ "node_modules/eastasianwidth": { "version": "0.2.0", "integrity": "sha1-aWzi7Aqg5uqTo5f/zySqeEDIJ8s=", - "dev": true + "devOptional": true }, "node_modules/ecdsa-sig-formatter": { "version": "1.0.11", @@ -2083,7 +2132,19 @@ "node_modules/emoji-regex": { "version": "9.2.2", "integrity": "sha1-hAyIA7DYBH9P8M+WMXazLU7z7XI=", - "dev": true + "devOptional": true + }, + "node_modules/encoding-sniffer": { + "version": "0.2.0", + "integrity": "sha1-eZVp1m1EO6voKvGMn0A0mDZe8dU=", + "dev": true, + "dependencies": { + "iconv-lite": "^0.6.3", + "whatwg-encoding": "^3.1.1" + }, + "funding": { + "url": "https://github.com/fb55/encoding-sniffer?sponsor=1" + } }, "node_modules/end-of-stream": { "version": "1.4.4", @@ -2125,8 +2186,8 @@ } }, "node_modules/esbuild": { - "version": "0.20.2", - "integrity": "sha1-nWsjhlYXZu5rWlUZbG12bSjIfqE=", + "version": "0.21.5", + "integrity": "sha1-nKMBsSCSKVm3ZjYNisgw2g0CmX0=", "dev": true, "hasInstallScript": true, "bin": { @@ -2136,35 +2197,35 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.20.2", - "@esbuild/android-arm": "0.20.2", - "@esbuild/android-arm64": "0.20.2", - "@esbuild/android-x64": "0.20.2", - "@esbuild/darwin-arm64": "0.20.2", - "@esbuild/darwin-x64": "0.20.2", - "@esbuild/freebsd-arm64": "0.20.2", - "@esbuild/freebsd-x64": "0.20.2", - "@esbuild/linux-arm": "0.20.2", - "@esbuild/linux-arm64": "0.20.2", - "@esbuild/linux-ia32": "0.20.2", - "@esbuild/linux-loong64": "0.20.2", - "@esbuild/linux-mips64el": "0.20.2", - "@esbuild/linux-ppc64": "0.20.2", - "@esbuild/linux-riscv64": "0.20.2", - "@esbuild/linux-s390x": "0.20.2", - "@esbuild/linux-x64": "0.20.2", - "@esbuild/netbsd-x64": "0.20.2", - "@esbuild/openbsd-x64": "0.20.2", - "@esbuild/sunos-x64": "0.20.2", - "@esbuild/win32-arm64": "0.20.2", - "@esbuild/win32-ia32": "0.20.2", - "@esbuild/win32-x64": "0.20.2" + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" } }, "node_modules/escalade": { - "version": "3.1.2", - "integrity": "sha1-VAdumrKepb89jx7WKs/7uIJy3yc=", - "dev": true, + "version": "3.2.0", + "integrity": "sha1-ARo/aYVroYnf+n3I/M6Z0qh5A+U=", + "optional": true, "engines": { "node": ">=6" } @@ -2180,7 +2241,7 @@ "node_modules/eslint": { "version": "8.57.0", "integrity": "sha1-x4am/Q4LaJQar2JFlvuYcIkZVmg=", - "dev": true, + "optional": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -2234,7 +2295,7 @@ "node_modules/eslint-plugin-header": { "version": "3.1.1", "integrity": "sha1-bOUSQy1XZ1Jl+sRykrUNHv8RrNY=", - "dev": true, + "optional": true, "peerDependencies": { "eslint": ">=7.7.0" } @@ -2242,7 +2303,7 @@ "node_modules/eslint-scope": { "version": "7.2.2", "integrity": "sha1-3rT5JWM5DzIAaJSvYqItuhxGQj8=", - "dev": true, + "optional": true, "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -2257,7 +2318,7 @@ "node_modules/eslint-visitor-keys": { "version": "3.4.3", "integrity": "sha1-DNcv6FUOPC6uFWqWpN3c0cisWAA=", - "dev": true, + "optional": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -2268,7 +2329,7 @@ "node_modules/eslint/node_modules/ansi-styles": { "version": "4.3.0", "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "dev": true, + "optional": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -2282,7 +2343,7 @@ "node_modules/eslint/node_modules/brace-expansion": { "version": "1.1.11", "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", - "dev": true, + "optional": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -2291,7 +2352,7 @@ "node_modules/eslint/node_modules/chalk": { "version": "4.1.2", "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "dev": true, + "optional": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -2306,7 +2367,7 @@ "node_modules/eslint/node_modules/color-convert": { "version": "2.0.1", "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "dev": true, + "optional": true, "dependencies": { "color-name": "~1.1.4" }, @@ -2317,12 +2378,12 @@ "node_modules/eslint/node_modules/color-name": { "version": "1.1.4", "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", - "dev": true + "optional": true }, "node_modules/eslint/node_modules/escape-string-regexp": { "version": "4.0.0", "integrity": "sha1-FLqDpdNz49MR5a/KKc9b+tllvzQ=", - "dev": true, + "optional": true, "engines": { "node": ">=10" }, @@ -2333,7 +2394,7 @@ "node_modules/eslint/node_modules/has-flag": { "version": "4.0.0", "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", - "dev": true, + "optional": true, "engines": { "node": ">=8" } @@ -2341,7 +2402,7 @@ "node_modules/eslint/node_modules/minimatch": { "version": "3.1.2", "integrity": "sha1-Gc0ZS/0+Qo8EmnCBfAONiatL41s=", - "dev": true, + "optional": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -2352,7 +2413,7 @@ "node_modules/eslint/node_modules/supports-color": { "version": "7.2.0", "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "dev": true, + "optional": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -2363,7 +2424,7 @@ "node_modules/espree": { "version": "9.6.1", "integrity": "sha1-oqF7jkNGkKVDLy+AGM5x0zGkjG8=", - "dev": true, + "optional": true, "dependencies": { "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", @@ -2377,9 +2438,9 @@ } }, "node_modules/esquery": { - "version": "1.5.0", - "integrity": "sha1-bOF3ON6Fd2lO3XNhxXGCrIyw2ws=", - "dev": true, + "version": "1.6.0", + "integrity": "sha1-kUGSNPgE2FKoLc7sPhbNwiz52uc=", + "optional": true, "dependencies": { "estraverse": "^5.1.0" }, @@ -2390,7 +2451,7 @@ "node_modules/esrecurse": { "version": "4.3.0", "integrity": "sha1-eteWTWeauyi+5yzsY3WLHF0smSE=", - "dev": true, + "optional": true, "dependencies": { "estraverse": "^5.2.0" }, @@ -2401,7 +2462,7 @@ "node_modules/estraverse": { "version": "5.3.0", "integrity": "sha1-LupSkHAvJquP5TcDcP+GyWXSESM=", - "dev": true, + "optional": true, "engines": { "node": ">=4.0" } @@ -2409,7 +2470,7 @@ "node_modules/esutils": { "version": "2.0.3", "integrity": "sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=", - "dev": true, + "optional": true, "engines": { "node": ">=0.10.0" } @@ -2434,12 +2495,12 @@ "node_modules/fast-deep-equal": { "version": "3.1.3", "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=", - "dev": true + "optional": true }, "node_modules/fast-glob": { "version": "3.3.2", "integrity": "sha1-qQRQHlfP3S/83tRemaVP71XkYSk=", - "dev": true, + "optional": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -2454,7 +2515,7 @@ "node_modules/fast-glob/node_modules/glob-parent": { "version": "5.1.2", "integrity": "sha1-hpgyxYA0/mikCTwX3BXoNA2EAcQ=", - "dev": true, + "optional": true, "dependencies": { "is-glob": "^4.0.1" }, @@ -2465,17 +2526,17 @@ "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=", - "dev": true + "optional": true }, "node_modules/fast-levenshtein": { "version": "2.0.6", "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true + "optional": true }, "node_modules/fastq": { "version": "1.17.1", "integrity": "sha1-KlI/B6TnsegaQrkbi/IlQQd1O0c=", - "dev": true, + "optional": true, "dependencies": { "reusify": "^1.0.4" } @@ -2491,7 +2552,7 @@ "node_modules/file-entry-cache": { "version": "6.0.1", "integrity": "sha1-IRst2WWcsDlLBz5zI6w8kz1SICc=", - "dev": true, + "optional": true, "dependencies": { "flat-cache": "^3.0.4" }, @@ -2500,9 +2561,9 @@ } }, "node_modules/fill-range": { - "version": "7.0.1", - "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=", - "dev": true, + "version": "7.1.1", + "integrity": "sha1-RCZdPKwH4+p9wkdRY4BkN1SgUpI=", + "optional": true, "dependencies": { "to-regex-range": "^5.0.1" }, @@ -2513,7 +2574,7 @@ "node_modules/find-up": { "version": "5.0.0", "integrity": "sha1-TJKBnstwg1YeT0okCoa+UZj1Nvw=", - "dev": true, + "optional": true, "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -2528,7 +2589,7 @@ "node_modules/flat": { "version": "5.0.2", "integrity": "sha1-jKb+MyBp/6nTJMMnGYxZglnOskE=", - "dev": true, + "optional": true, "bin": { "flat": "cli.js" } @@ -2536,7 +2597,7 @@ "node_modules/flat-cache": { "version": "3.2.0", "integrity": "sha1-LAwtUEDJmxYydxqdEFclwBFTY+4=", - "dev": true, + "optional": true, "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.3", @@ -2549,12 +2610,12 @@ "node_modules/flatted": { "version": "3.3.1", "integrity": "sha1-IdtHBymmc01JlwAvQ5yzCJh/Vno=", - "dev": true + "optional": true }, "node_modules/foreground-child": { - "version": "3.1.1", - "integrity": "sha1-HRc+d2110ncv7Qjv5KDeHqGxLQ0=", - "dev": true, + "version": "3.3.0", + "integrity": "sha1-CshkTAbkMUOfhWHbjs8pp7VRnHc=", + "devOptional": true, "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" @@ -2567,9 +2628,9 @@ } }, "node_modules/form-data": { - "version": "4.0.0", - "integrity": "sha1-k5Gdrq82HuUpWEubMWZNwSyfpFI=", - "dev": true, + "version": "4.0.1", + "integrity": "sha1-uhB22qqlv9fpnBpssCqgpc/5DUg=", + "devOptional": true, "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -2588,12 +2649,11 @@ "node_modules/fs.realpath": { "version": "1.0.0", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true + "optional": true }, "node_modules/fsevents": { "version": "2.3.3", "integrity": "sha1-ysZAd4XQNnWipeGlMFxpezR9kNY=", - "dev": true, "hasInstallScript": true, "optional": true, "os": [ @@ -2614,7 +2674,7 @@ "node_modules/get-caller-file": { "version": "2.0.5", "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=", - "dev": true, + "optional": true, "engines": { "node": "6.* || 8.* || >= 10.*" } @@ -2644,21 +2704,22 @@ "optional": true }, "node_modules/glob": { - "version": "10.3.12", - "integrity": "sha1-OmXDY8LpmY0iAzjoil9qyXMClgs=", - "dev": true, + "version": "11.0.0", + "integrity": "sha1-YDHfDXtl6qHMubKbXO0WzqZY534=", + "devOptional": true, "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.6", - "minimatch": "^9.0.1", - "minipass": "^7.0.4", - "path-scurry": "^1.10.2" + "jackspeak": "^4.0.1", + "minimatch": "^10.0.0", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" }, "bin": { "glob": "dist/esm/bin.mjs" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -2667,7 +2728,7 @@ "node_modules/glob-parent": { "version": "6.0.2", "integrity": "sha1-bSN9mQg5UMeSkPJMdkKj3poo+eM=", - "dev": true, + "optional": true, "dependencies": { "is-glob": "^4.0.3" }, @@ -2675,34 +2736,29 @@ "node": ">=10.13.0" } }, - "node_modules/globals": { - "version": "13.24.0", - "integrity": "sha1-hDKhnXjODB6DOUnDats0VAC7EXE=", - "dev": true, + "node_modules/glob/node_modules/minimatch": { + "version": "10.0.1", + "integrity": "sha1-zgUhhWtFPIbiXyxMDQPm/33cRAs=", + "devOptional": true, "dependencies": { - "type-fest": "^0.20.2" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=8" + "node": "20 || >=22" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/globby": { - "version": "11.1.0", - "integrity": "sha1-vUvpi7BC+D15b344EZkfvoKg00s=", - "dev": true, + "node_modules/globals": { + "version": "13.24.0", + "integrity": "sha1-hDKhnXjODB6DOUnDats0VAC7EXE=", + "optional": true, "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" + "type-fest": "^0.20.2" }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -2722,7 +2778,7 @@ "node_modules/graphemer": { "version": "1.4.0", "integrity": "sha1-+y8dVeDjoYSa7/yQxPoN1ToOZsY=", - "dev": true + "optional": true }, "node_modules/has-flag": { "version": "3.0.0", @@ -2779,7 +2835,7 @@ "node_modules/he": { "version": "1.2.0", "integrity": "sha1-hK5l+n6vsWX922FWauFLrwVmTw8=", - "dev": true, + "optional": true, "bin": { "he": "bin/he" } @@ -2796,8 +2852,8 @@ } }, "node_modules/htmlparser2": { - "version": "8.0.2", - "integrity": "sha1-8AIVFwWzg+YkM7XPRm9bcW7a7CE=", + "version": "9.1.0", + "integrity": "sha1-zbSY2KdaUfc5th0/cYE2w2m8jCM=", "dev": true, "funding": [ "https://github.com/fb55/htmlparser2?sponsor=1", @@ -2809,39 +2865,48 @@ "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "entities": "^4.4.0" + "domutils": "^3.1.0", + "entities": "^4.5.0" } }, "node_modules/http-proxy-agent": { - "version": "4.0.1", - "integrity": "sha1-ioyO9/WTLM+VPClsqCkblap0qjo=", - "dev": true, + "version": "7.0.2", + "integrity": "sha1-mosfJGhmwChQlIZYX2K48sGMJw4=", + "devOptional": true, "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" + "agent-base": "^7.1.0", + "debug": "^4.3.4" }, "engines": { - "node": ">= 6" + "node": ">= 14" } }, "node_modules/https-proxy-agent": { - "version": "5.0.1", - "integrity": "sha1-xZ7yJKBP6LdU89sAY6Jeow0ABdY=", - "dev": true, + "version": "7.0.5", + "integrity": "sha1-notQE4cymeEfq2/VSEBdotbGArI=", + "devOptional": true, "dependencies": { - "agent-base": "6", + "agent-base": "^7.0.2", "debug": "4" }, "engines": { - "node": ">= 6" + "node": ">= 14" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "integrity": "sha1-pS+AvzjaGVLrXGgXkHGYcaGnJQE=", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, "node_modules/ieee754": { "version": "1.2.1", "integrity": "sha1-jrehCmP/8l0VpXsAFYbRd9Gw01I=", - "dev": true, "funding": [ { "type": "github", @@ -2859,9 +2924,9 @@ "optional": true }, "node_modules/ignore": { - "version": "5.3.1", - "integrity": "sha1-UHPlVM1CxbM7OUN19Ti4WT401O8=", - "dev": true, + "version": "5.3.2", + "integrity": "sha1-PNQOcp82Q/2HywTlC/DrcivFlvU=", + "optional": true, "engines": { "node": ">= 4" } @@ -2869,12 +2934,12 @@ "node_modules/immediate": { "version": "3.0.6", "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", - "dev": true + "optional": true }, "node_modules/import-fresh": { "version": "3.3.0", "integrity": "sha1-NxYsJfy566oublPVtNiM4X2eDCs=", - "dev": true, + "optional": true, "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -2889,7 +2954,7 @@ "node_modules/imurmurhash": { "version": "0.1.4", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true, + "optional": true, "engines": { "node": ">=0.8.19" } @@ -2897,7 +2962,7 @@ "node_modules/inflight": { "version": "1.0.6", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, + "optional": true, "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -2906,7 +2971,7 @@ "node_modules/inherits": { "version": "2.0.4", "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=", - "dev": true + "optional": true }, "node_modules/ini": { "version": "1.3.8", @@ -2917,7 +2982,7 @@ "node_modules/is-binary-path": { "version": "2.1.0", "integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=", - "dev": true, + "optional": true, "dependencies": { "binary-extensions": "^2.0.0" }, @@ -2942,7 +3007,7 @@ "node_modules/is-extglob": { "version": "2.1.1", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, + "optional": true, "engines": { "node": ">=0.10.0" } @@ -2950,7 +3015,7 @@ "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=", - "dev": true, + "devOptional": true, "engines": { "node": ">=8" } @@ -2958,7 +3023,7 @@ "node_modules/is-glob": { "version": "4.0.3", "integrity": "sha1-ZPYeQsu7LuwgcanawLKLoeZdUIQ=", - "dev": true, + "optional": true, "dependencies": { "is-extglob": "^2.1.1" }, @@ -2966,10 +3031,21 @@ "node": ">=0.10.0" } }, + "node_modules/is-interactive": { + "version": "2.0.0", + "integrity": "sha1-QMV2FFk4JtoRAK3mBZd41ZfxbpA=", + "optional": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-number": { "version": "7.0.0", "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=", - "dev": true, + "optional": true, "engines": { "node": ">=0.12.0" } @@ -2977,7 +3053,7 @@ "node_modules/is-path-inside": { "version": "3.0.3", "integrity": "sha1-0jE2LlOgf/Kw4Op/7QSRYf/RYoM=", - "dev": true, + "optional": true, "engines": { "node": ">=8" } @@ -2985,7 +3061,7 @@ "node_modules/is-plain-obj": { "version": "2.1.0", "integrity": "sha1-ReQuN/zPH0Dajl927iFRWEDAkoc=", - "dev": true, + "optional": true, "engines": { "node": ">=8" } @@ -2993,7 +3069,7 @@ "node_modules/is-unicode-supported": { "version": "0.1.0", "integrity": "sha1-PybHaoCVk7Ur+i7LVxDtJ3m1Iqc=", - "dev": true, + "optional": true, "engines": { "node": ">=10" }, @@ -3015,34 +3091,31 @@ "node_modules/isarray": { "version": "1.0.0", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "optional": true }, "node_modules/isexe": { "version": "2.0.0", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true + "devOptional": true }, "node_modules/jackspeak": { - "version": "2.3.6", - "integrity": "sha1-ZH7MRyI4ruSwasDkYazCGoxQXKg=", - "dev": true, + "version": "4.0.2", + "integrity": "sha1-EflGijcwxv9vVoI6gg1+O+m+8BU=", + "devOptional": true, "dependencies": { "@isaacs/cliui": "^8.0.2" }, "engines": { - "node": ">=14" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" } }, "node_modules/js-yaml": { "version": "4.1.0", "integrity": "sha1-wftl+PUBeQHN0slRhkuhhFihBgI=", - "dev": true, + "optional": true, "dependencies": { "argparse": "^2.0.1" }, @@ -3053,21 +3126,21 @@ "node_modules/json-buffer": { "version": "3.0.1", "integrity": "sha1-kziAKjDTtmBfvgYT4JQAjKjAWhM=", - "dev": true + "optional": true }, "node_modules/json-schema-traverse": { "version": "0.4.1", "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=", - "dev": true + "optional": true }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true + "optional": true }, "node_modules/jsonc-parser": { - "version": "3.2.1", - "integrity": "sha1-AxkEVxzPkp12cO6MVHVFCByzfxo=", + "version": "3.3.1", + "integrity": "sha1-8qUktPf9EePXkeVZl3rWC5i3mLQ=", "dev": true }, "node_modules/jsonwebtoken": { @@ -3113,7 +3186,7 @@ "node_modules/jszip": { "version": "3.10.1", "integrity": "sha1-NK7nDrGOofrsL1iSCKFX0f6wkcI=", - "dev": true, + "optional": true, "dependencies": { "lie": "~3.3.0", "pako": "~1.0.2", @@ -3124,7 +3197,7 @@ "node_modules/just-extend": { "version": "6.2.0", "integrity": "sha1-uBar+z1n7oYEgudAFWRnJVgWOUc=", - "dev": true + "optional": true }, "node_modules/jwa": { "version": "2.0.0", @@ -3159,7 +3232,7 @@ "node_modules/keyv": { "version": "4.5.4", "integrity": "sha1-qHmpnilFL5QkOfKkBeOvizHU3pM=", - "dev": true, + "optional": true, "dependencies": { "json-buffer": "3.0.1" } @@ -3175,7 +3248,7 @@ "node_modules/levn": { "version": "0.4.1", "integrity": "sha1-rkViwAdHO5MqYgDUAyaN0v/8at4=", - "dev": true, + "optional": true, "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -3187,23 +3260,23 @@ "node_modules/lie": { "version": "3.3.0", "integrity": "sha1-3Pgt7lRfRgdNryAMfBxaCOD0D2o=", - "dev": true, + "optional": true, "dependencies": { "immediate": "~3.0.5" } }, "node_modules/linkify-it": { - "version": "3.0.3", - "integrity": "sha1-qYuvRM5FpVDvtNScdp0HUkzC+i4=", + "version": "5.0.0", + "integrity": "sha1-nvI4v6bccL2Of5VytS02mvVptCE=", "dev": true, "dependencies": { - "uc.micro": "^1.0.1" + "uc.micro": "^2.0.0" } }, "node_modules/locate-path": { "version": "6.0.0", "integrity": "sha1-VTIeswn+u8WcSAHZMackUqaB0oY=", - "dev": true, + "optional": true, "dependencies": { "p-locate": "^5.0.0" }, @@ -3217,12 +3290,12 @@ "node_modules/lodash": { "version": "4.17.21", "integrity": "sha1-Z5WRxWTDv/quhFTPCz3zcMPWkRw=", - "dev": true + "optional": true }, "node_modules/lodash.get": { "version": "4.4.2", "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", - "dev": true + "optional": true }, "node_modules/lodash.includes": { "version": "4.3.0", @@ -3257,7 +3330,7 @@ "node_modules/lodash.merge": { "version": "4.6.2", "integrity": "sha1-VYqlO0O2YeGSWgr9+japoQhf5Xo=", - "dev": true + "optional": true }, "node_modules/lodash.once": { "version": "4.1.1", @@ -3267,7 +3340,7 @@ "node_modules/log-symbols": { "version": "4.1.0", "integrity": "sha1-P727lbRoOsn8eFER55LlWNSr1QM=", - "dev": true, + "optional": true, "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" @@ -3282,7 +3355,7 @@ "node_modules/log-symbols/node_modules/ansi-styles": { "version": "4.3.0", "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "dev": true, + "optional": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -3296,7 +3369,7 @@ "node_modules/log-symbols/node_modules/chalk": { "version": "4.1.2", "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "dev": true, + "optional": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -3311,7 +3384,7 @@ "node_modules/log-symbols/node_modules/color-convert": { "version": "2.0.1", "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "dev": true, + "optional": true, "dependencies": { "color-name": "~1.1.4" }, @@ -3322,12 +3395,12 @@ "node_modules/log-symbols/node_modules/color-name": { "version": "1.1.4", "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", - "dev": true + "optional": true }, "node_modules/log-symbols/node_modules/has-flag": { "version": "4.0.0", "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", - "dev": true, + "optional": true, "engines": { "node": ">=8" } @@ -3335,7 +3408,7 @@ "node_modules/log-symbols/node_modules/supports-color": { "version": "7.2.0", "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "dev": true, + "optional": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -3346,6 +3419,7 @@ "node_modules/lru-cache": { "version": "6.0.0", "integrity": "sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=", + "dev": true, "dependencies": { "yallist": "^4.0.0" }, @@ -3354,47 +3428,40 @@ } }, "node_modules/markdown-it": { - "version": "12.3.2", - "integrity": "sha1-v5Kskig/6YP+Tej/ir+1rXLNDJA=", + "version": "14.1.0", + "integrity": "sha1-PDxZkog8Yz20cUzLTXtZNdmLfUU=", "dev": true, "dependencies": { "argparse": "^2.0.1", - "entities": "~2.1.0", - "linkify-it": "^3.0.1", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" }, "bin": { - "markdown-it": "bin/markdown-it.js" - } - }, - "node_modules/markdown-it/node_modules/entities": { - "version": "2.1.0", - "integrity": "sha1-mS0xKc999ocLlsV4WMJJoSD4uLU=", - "dev": true, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "markdown-it": "bin/markdown-it.mjs" } }, "node_modules/mdurl": { - "version": "1.0.1", - "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=", + "version": "2.0.0", + "integrity": "sha1-gGduwEMwJd0+F+6YPQ/o3loiN+A=", "dev": true }, "node_modules/merge2": { "version": "1.4.1", "integrity": "sha1-Q2iJL4hekHRVpv19xVwMnUBJkK4=", - "dev": true, + "optional": true, "engines": { "node": ">= 8" } }, "node_modules/micromatch": { - "version": "4.0.5", - "integrity": "sha1-vImZp8u/d83InxMvbkZwUbSQkMY=", - "dev": true, + "version": "4.0.8", + "integrity": "sha1-1m+hjzpHB2eJMgubGvMr2G2fogI=", + "optional": true, "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { @@ -3415,7 +3482,7 @@ "node_modules/mime-db": { "version": "1.52.0", "integrity": "sha1-u6vNwChZ9JhzAchW4zh85exDv3A=", - "dev": true, + "devOptional": true, "engines": { "node": ">= 0.6" } @@ -3423,7 +3490,7 @@ "node_modules/mime-types": { "version": "2.1.35", "integrity": "sha1-OBqHG2KnNEUGYK497uRIE/cNlZo=", - "dev": true, + "devOptional": true, "dependencies": { "mime-db": "1.52.0" }, @@ -3431,6 +3498,14 @@ "node": ">= 0.6" } }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=", + "optional": true, + "engines": { + "node": ">=6" + } + }, "node_modules/mimic-response": { "version": "3.1.0", "integrity": "sha1-LR1Zr5wbEpgVrMwsRqAipc4fo8k=", @@ -3444,9 +3519,9 @@ } }, "node_modules/minimatch": { - "version": "9.0.4", - "integrity": "sha1-jknHMdF0nL7AUFDuUUUUezJJalE=", - "dev": true, + "version": "9.0.5", + "integrity": "sha1-10+d1rV9g9jpjPuCEzsDl4vJKeU=", + "optional": true, "dependencies": { "brace-expansion": "^2.0.1" }, @@ -3467,9 +3542,9 @@ } }, "node_modules/minipass": { - "version": "7.0.4", - "integrity": "sha1-284DdA9QpHhrqZTB+5CIRNJ7A4w=", - "dev": true, + "version": "7.1.2", + "integrity": "sha1-k6libOXl5mvU24aEnnUV6SNApwc=", + "devOptional": true, "engines": { "node": ">=16 || 14 >=14.17" } @@ -3481,30 +3556,30 @@ "optional": true }, "node_modules/mocha": { - "version": "10.4.0", - "integrity": "sha1-7QPblu6c/G0gxW+OKvB7lh264mE=", - "dev": true, - "dependencies": { - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.3", - "debug": "4.3.4", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "8.1.0", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "5.0.1", - "ms": "2.1.3", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "workerpool": "6.2.1", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" + "version": "10.7.3", + "integrity": "sha1-rjIAPKu9UrWa7OF4RgVqaOtLB1I=", + "optional": true, + "dependencies": { + "ansi-colors": "^4.1.3", + "browser-stdout": "^1.3.1", + "chokidar": "^3.5.3", + "debug": "^4.3.5", + "diff": "^5.2.0", + "escape-string-regexp": "^4.0.0", + "find-up": "^5.0.0", + "glob": "^8.1.0", + "he": "^1.2.0", + "js-yaml": "^4.1.0", + "log-symbols": "^4.1.0", + "minimatch": "^5.1.6", + "ms": "^2.1.3", + "serialize-javascript": "^6.0.2", + "strip-json-comments": "^3.1.1", + "supports-color": "^8.1.1", + "workerpool": "^6.5.1", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9", + "yargs-unparser": "^2.0.0" }, "bin": { "_mocha": "bin/_mocha", @@ -3517,7 +3592,7 @@ "node_modules/mocha-explorer-launcher-scripts": { "version": "0.4.0", "integrity": "sha1-kVauKTxShWU3XHnD+5O2tbEIgSY=", - "dev": true, + "optional": true, "dependencies": { "vscode-test-adapter-remoting-util": "^0.13.0" } @@ -3525,7 +3600,7 @@ "node_modules/mocha-multi-reporters": { "version": "1.5.1", "integrity": "sha1-xzSGvtVRnh1Zyc45rHqXkmAOVnY=", - "dev": true, + "optional": true, "dependencies": { "debug": "^4.1.1", "lodash": "^4.17.15" @@ -3540,7 +3615,7 @@ "node_modules/mocha/node_modules/escape-string-regexp": { "version": "4.0.0", "integrity": "sha1-FLqDpdNz49MR5a/KKc9b+tllvzQ=", - "dev": true, + "optional": true, "engines": { "node": ">=10" }, @@ -3551,7 +3626,7 @@ "node_modules/mocha/node_modules/glob": { "version": "8.1.0", "integrity": "sha1-04j2Vlk+9wjuPjRkD9+5mp/Rwz4=", - "dev": true, + "optional": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -3569,15 +3644,15 @@ "node_modules/mocha/node_modules/has-flag": { "version": "4.0.0", "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", - "dev": true, + "optional": true, "engines": { "node": ">=8" } }, "node_modules/mocha/node_modules/minimatch": { - "version": "5.0.1", - "integrity": "sha1-+5Ai91KBJRh8kr2em2NmvhzzQVs=", - "dev": true, + "version": "5.1.6", + "integrity": "sha1-HPy4z1Ui6mmVLNKvla4JR38SKpY=", + "optional": true, "dependencies": { "brace-expansion": "^2.0.1" }, @@ -3585,15 +3660,10 @@ "node": ">=10" } }, - "node_modules/mocha/node_modules/ms": { - "version": "2.1.3", - "integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=", - "dev": true - }, "node_modules/mocha/node_modules/supports-color": { "version": "8.1.1", "integrity": "sha1-zW/BfihQDP9WwbhsCn/UpUpzAFw=", - "dev": true, + "optional": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -3605,17 +3675,17 @@ } }, "node_modules/mock-fs": { - "version": "5.2.0", - "integrity": "sha1-NQKpSZyEwKEhjuS/kq5b8uqbK14=", - "dev": true, + "version": "5.3.0", + "integrity": "sha1-ffyVzlUor/jhD6EXFhuR2BKeDp4=", + "optional": true, "engines": { "node": ">=12.0.0" } }, "node_modules/ms": { - "version": "2.1.2", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", - "dev": true + "version": "2.1.3", + "integrity": "sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=", + "devOptional": true }, "node_modules/mute-stream": { "version": "0.0.8", @@ -3631,23 +3701,31 @@ "node_modules/natural-compare": { "version": "1.4.0", "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true + "optional": true }, "node_modules/nise": { - "version": "5.1.9", - "integrity": "sha1-DLc7XkSZ1zgjGkc82JvYr7thgTk=", - "dev": true, + "version": "6.1.1", + "integrity": "sha1-eOqTzEm+Ei5Ey3yP31l7Dod4tko=", + "optional": true, "dependencies": { - "@sinonjs/commons": "^3.0.0", - "@sinonjs/fake-timers": "^11.2.2", - "@sinonjs/text-encoding": "^0.7.2", + "@sinonjs/commons": "^3.0.1", + "@sinonjs/fake-timers": "^13.0.1", + "@sinonjs/text-encoding": "^0.7.3", "just-extend": "^6.2.0", - "path-to-regexp": "^6.2.1" + "path-to-regexp": "^8.1.0" + } + }, + "node_modules/nise/node_modules/@sinonjs/fake-timers": { + "version": "13.0.2", + "integrity": "sha1-P/6Iq7BiBnpYD9+6cGrQBDWg8qY=", + "optional": true, + "dependencies": { + "@sinonjs/commons": "^3.0.1" } }, "node_modules/node-abi": { - "version": "3.62.0", - "integrity": "sha1-AXlY7RIPiaOhSnJT2oEPXXJOPzY=", + "version": "3.68.0", + "integrity": "sha1-jzf7Auz09D6+aUCQ3LUuDEzEuiU=", "dev": true, "optional": true, "dependencies": { @@ -3684,7 +3762,7 @@ "node_modules/normalize-path": { "version": "3.0.0", "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=", - "dev": true, + "optional": true, "engines": { "node": ">=0.10.0" } @@ -3701,9 +3779,12 @@ } }, "node_modules/object-inspect": { - "version": "1.13.1", - "integrity": "sha1-uWxhCTJMz+9rEiFqlWyk3C/5S8I=", + "version": "1.13.2", + "integrity": "sha1-3qAIhGf7mR5nr0BYFHokgkowQ/8=", "dev": true, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -3711,11 +3792,25 @@ "node_modules/once": { "version": "1.4.0", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, + "optional": true, "dependencies": { "wrappy": "1" } }, + "node_modules/onetime": { + "version": "5.1.2", + "integrity": "sha1-0Oluu1awdHbfHdnEgG5SN5hcpF4=", + "optional": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/open": { "version": "8.4.2", "integrity": "sha1-W1/+Ko95Pc0qrXPlUMuHtZywhPk=", @@ -3735,7 +3830,7 @@ "node_modules/optionator": { "version": "0.9.4", "integrity": "sha1-fqHBpdkddk+yghOciP4R4YKjpzQ=", - "dev": true, + "optional": true, "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", @@ -3748,10 +3843,115 @@ "node": ">= 0.8.0" } }, + "node_modules/ora": { + "version": "7.0.1", + "integrity": "sha1-zdUw7Nhl/jnkUaDnaXhlZpyxGTA=", + "optional": true, + "dependencies": { + "chalk": "^5.3.0", + "cli-cursor": "^4.0.0", + "cli-spinners": "^2.9.0", + "is-interactive": "^2.0.0", + "is-unicode-supported": "^1.3.0", + "log-symbols": "^5.1.0", + "stdin-discarder": "^0.1.0", + "string-width": "^6.1.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/ansi-regex": { + "version": "6.1.0", + "integrity": "sha1-lexAnGlhnWyxuLNPFLZg7yjr1lQ=", + "optional": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ora/node_modules/chalk": { + "version": "5.3.0", + "integrity": "sha1-Z8IKfr73Dn85cKAfkPohDLaGA4U=", + "optional": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/ora/node_modules/emoji-regex": { + "version": "10.4.0", + "integrity": "sha1-A1U6/qgLOXV0nPyzb3dsomjkE9Q=", + "optional": true + }, + "node_modules/ora/node_modules/is-unicode-supported": { + "version": "1.3.0", + "integrity": "sha1-2CSYS2FsKSouGYIH1KYJmDhC9xQ=", + "optional": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/log-symbols": { + "version": "5.1.0", + "integrity": "sha1-og47ml9T+sauuOK7IsB88sjxbZM=", + "optional": true, + "dependencies": { + "chalk": "^5.0.0", + "is-unicode-supported": "^1.1.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/string-width": { + "version": "6.1.0", + "integrity": "sha1-lkiNbtI/mtXYLRNSKvnkxMP9dRg=", + "optional": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^10.2.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/strip-ansi": { + "version": "7.1.0", + "integrity": "sha1-1bZWjKaJ2FYTcLBwdoXSJDT6/0U=", + "optional": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/p-limit": { "version": "3.1.0", "integrity": "sha1-4drMvnjQ0TiMoYxk/qOOPlfjcGs=", - "dev": true, + "optional": true, "dependencies": { "yocto-queue": "^0.1.0" }, @@ -3765,7 +3965,7 @@ "node_modules/p-locate": { "version": "5.0.0", "integrity": "sha1-g8gxXGeFAF470CGDlBHJ4RDm2DQ=", - "dev": true, + "optional": true, "dependencies": { "p-limit": "^3.0.2" }, @@ -3776,15 +3976,20 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "integrity": "sha1-TxRxoBCCeob5TP2bByfjbSZ95QU=", + "devOptional": true + }, "node_modules/pako": { "version": "1.0.11", "integrity": "sha1-bJWZ00DVTf05RjgCUqNXBaa5kr8=", - "dev": true + "optional": true }, "node_modules/parent-module": { "version": "1.0.1", "integrity": "sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI=", - "dev": true, + "optional": true, "dependencies": { "callsites": "^3.0.0" }, @@ -3824,7 +4029,18 @@ "integrity": "sha1-I8LMIzvPCbt766i4pp1GsIxiwvE=", "dev": true, "dependencies": { - "domhandler": "^5.0.2", + "domhandler": "^5.0.2", + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-parser-stream": { + "version": "7.1.2", + "integrity": "sha1-18IOrcN5aNJy4sAmYP/5LdJ+YOE=", + "dev": true, + "dependencies": { "parse5": "^7.0.0" }, "funding": { @@ -3834,7 +4050,7 @@ "node_modules/path-exists": { "version": "4.0.0", "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=", - "dev": true, + "optional": true, "engines": { "node": ">=8" } @@ -3842,7 +4058,7 @@ "node_modules/path-is-absolute": { "version": "1.0.1", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, + "optional": true, "engines": { "node": ">=0.10.0" } @@ -3850,45 +4066,40 @@ "node_modules/path-key": { "version": "3.1.1", "integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=", - "dev": true, + "devOptional": true, "engines": { "node": ">=8" } }, "node_modules/path-scurry": { - "version": "1.10.2", - "integrity": "sha1-j2NX6xI51fodqLn3DpwIBnVFi6c=", - "dev": true, + "version": "2.0.0", + "integrity": "sha1-nwUiifI62L+Tl6KgQl57hhXFhYA=", + "devOptional": true, "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.2", - "integrity": "sha1-SCBrwRTBJSlAxBsltBr1tUWsqHg=", - "dev": true, + "version": "11.0.1", + "integrity": "sha1-OnMvv+24LFunvKZWStP0Kvy24Uc=", + "devOptional": true, "engines": { - "node": "14 || >=16.14" + "node": "20 || >=22" } }, "node_modules/path-to-regexp": { - "version": "6.2.2", - "integrity": "sha1-MkN3qD5QScvsrcVVTWpjqaSGazY=", - "dev": true - }, - "node_modules/path-type": { - "version": "4.0.0", - "integrity": "sha1-hO0BwKe6OAr+CdkKjBgNzZ0DBDs=", - "dev": true, + "version": "8.2.0", + "integrity": "sha1-c5kMwp5Xo/8qDZFAlRVt9dt56LQ=", + "optional": true, "engines": { - "node": ">=8" + "node": ">=16" } }, "node_modules/pend": { @@ -3899,7 +4110,7 @@ "node_modules/picomatch": { "version": "2.3.1", "integrity": "sha1-O6ODNzNkbZ0+SZWUbBNlpn+wekI=", - "dev": true, + "optional": true, "engines": { "node": ">=8.6" }, @@ -3936,7 +4147,7 @@ "node_modules/prelude-ls": { "version": "1.2.1", "integrity": "sha1-3rxkidem5rDnYRiIzsiAM30xY5Y=", - "dev": true, + "optional": true, "engines": { "node": ">= 0.8.0" } @@ -3944,11 +4155,11 @@ "node_modules/process-nextick-args": { "version": "2.0.1", "integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I=", - "dev": true + "optional": true }, "node_modules/pump": { - "version": "3.0.0", - "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", + "version": "3.0.2", + "integrity": "sha1-g28+3WvC7lmSVskk/+DYhXPdy/g=", "dev": true, "optional": true, "dependencies": { @@ -3959,14 +4170,22 @@ "node_modules/punycode": { "version": "2.3.1", "integrity": "sha1-AnQi4vrsCyXhVJw+G9gwm5EztuU=", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/punycode.js": { + "version": "2.3.1", + "integrity": "sha1-a1PlatdViCNOefSv+pCXLH3Yzbc=", "dev": true, "engines": { "node": ">=6" } }, "node_modules/qs": { - "version": "6.12.1", - "integrity": "sha1-OUIhEcp8vbcEJVQcuiDH17IWWZo=", + "version": "6.13.0", + "integrity": "sha1-bKO9WEOffiRWVXmJl3h7DYilGQY=", "dev": true, "dependencies": { "side-channel": "^1.0.6" @@ -3981,7 +4200,6 @@ "node_modules/queue-microtask": { "version": "1.2.3", "integrity": "sha1-SSkii7xyTfrEPg77BYyve2z7YkM=", - "dev": true, "funding": [ { "type": "github", @@ -3995,12 +4213,13 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "optional": true }, "node_modules/randombytes": { "version": "2.1.0", "integrity": "sha1-32+ENy8CcNxlzfYpE0mrekc9Tyo=", - "dev": true, + "optional": true, "dependencies": { "safe-buffer": "^5.1.0" } @@ -4043,7 +4262,7 @@ "node_modules/readable-stream": { "version": "2.3.8", "integrity": "sha1-kRJegEK7obmIf0k0X2J3Anzovps=", - "dev": true, + "optional": true, "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -4057,12 +4276,12 @@ "node_modules/readable-stream/node_modules/safe-buffer": { "version": "5.1.2", "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=", - "dev": true + "optional": true }, "node_modules/readdirp": { "version": "3.6.0", "integrity": "sha1-dKNwvYVxFuJFspzJc0DNQxoCpsc=", - "dev": true, + "optional": true, "dependencies": { "picomatch": "^2.2.1" }, @@ -4073,7 +4292,7 @@ "node_modules/require-directory": { "version": "2.1.1", "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true, + "optional": true, "engines": { "node": ">=0.10.0" } @@ -4081,15 +4300,35 @@ "node_modules/resolve-from": { "version": "4.0.0", "integrity": "sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=", - "dev": true, + "optional": true, "engines": { "node": ">=4" } }, + "node_modules/restore-cursor": { + "version": "4.0.0", + "integrity": "sha1-UZVgpDGJdQlt725gnUQQDtqkzLk=", + "optional": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/restore-cursor/node_modules/signal-exit": { + "version": "3.0.7", + "integrity": "sha1-qaF2f4r4QVURTqq9c/mSc8j1mtk=", + "optional": true + }, "node_modules/reusify": { "version": "1.0.4", "integrity": "sha1-kNo4Kx4SbvwCFG6QhFqI2xKSXXY=", - "dev": true, + "optional": true, "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -4098,7 +4337,7 @@ "node_modules/rewire": { "version": "7.0.0", "integrity": "sha1-QdtUgjcMiHWP/Jpxn3ySp2H6j78=", - "dev": true, + "optional": true, "dependencies": { "eslint": "^8.47.0" } @@ -4106,7 +4345,7 @@ "node_modules/rimraf": { "version": "3.0.2", "integrity": "sha1-8aVAK6YiCtUswSgrrBrjqkn9Bho=", - "dev": true, + "optional": true, "dependencies": { "glob": "^7.1.3" }, @@ -4120,7 +4359,7 @@ "node_modules/rimraf/node_modules/brace-expansion": { "version": "1.1.11", "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", - "dev": true, + "optional": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -4129,7 +4368,7 @@ "node_modules/rimraf/node_modules/glob": { "version": "7.2.3", "integrity": "sha1-uN8PuAK7+o6JvR2Ti04WV47UTys=", - "dev": true, + "optional": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -4148,7 +4387,7 @@ "node_modules/rimraf/node_modules/minimatch": { "version": "3.1.2", "integrity": "sha1-Gc0ZS/0+Qo8EmnCBfAONiatL41s=", - "dev": true, + "optional": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -4159,7 +4398,6 @@ "node_modules/run-parallel": { "version": "1.2.0", "integrity": "sha1-ZtE2jae9+SHrnZW9GpIp5/IaQ+4=", - "dev": true, "funding": [ { "type": "github", @@ -4174,6 +4412,7 @@ "url": "https://feross.org/support" } ], + "optional": true, "dependencies": { "queue-microtask": "^1.2.2" } @@ -4181,7 +4420,7 @@ "node_modules/safe-buffer": { "version": "5.2.1", "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=", - "dev": true, + "devOptional": true, "funding": [ { "type": "github", @@ -4197,17 +4436,19 @@ } ] }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=", + "dev": true + }, "node_modules/sax": { - "version": "1.3.0", - "integrity": "sha1-pdvnfbO+BcnR7neF29PqneUVk9A=", + "version": "1.4.1", + "integrity": "sha1-RMyJiDd/EmME07P8EBDHM7kp7w8=", "dev": true }, "node_modules/semver": { - "version": "7.6.0", - "integrity": "sha1-Gkak20v/zM2Xt0O1AFyDJfI9Ti0=", - "dependencies": { - "lru-cache": "^6.0.0" - }, + "version": "7.6.3", + "integrity": "sha1-mA97VVC8F1+03AlAMIVif56zMUM=", "bin": { "semver": "bin/semver.js" }, @@ -4216,9 +4457,9 @@ } }, "node_modules/serialize-javascript": { - "version": "6.0.0", - "integrity": "sha1-765diPRdeSQUHai1w6en5mP+/rg=", - "dev": true, + "version": "6.0.2", + "integrity": "sha1-3voeBVyDv21Z6oBdjahiJU62psI=", + "optional": true, "dependencies": { "randombytes": "^2.1.0" } @@ -4242,12 +4483,12 @@ "node_modules/setimmediate": { "version": "1.0.5", "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true + "optional": true }, "node_modules/shebang-command": { "version": "2.0.0", "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=", - "dev": true, + "devOptional": true, "dependencies": { "shebang-regex": "^3.0.0" }, @@ -4258,7 +4499,7 @@ "node_modules/shebang-regex": { "version": "3.0.0", "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=", - "dev": true, + "devOptional": true, "engines": { "node": ">=8" } @@ -4283,7 +4524,7 @@ "node_modules/signal-exit": { "version": "4.1.0", "integrity": "sha1-lSGIwcvVRgcOLdIND0HArgUwywQ=", - "dev": true, + "devOptional": true, "engines": { "node": ">=14" }, @@ -4337,34 +4578,26 @@ } }, "node_modules/sinon": { - "version": "17.0.1", - "integrity": "sha1-JrjvcZJhv430P5JZJMzMlnSOQHo=", - "dev": true, + "version": "18.0.1", + "integrity": "sha1-RkM0zf6izdxe2ppOp+Lj8MepHF4=", + "optional": true, "dependencies": { - "@sinonjs/commons": "^3.0.0", - "@sinonjs/fake-timers": "^11.2.2", + "@sinonjs/commons": "^3.0.1", + "@sinonjs/fake-timers": "11.2.2", "@sinonjs/samsam": "^8.0.0", - "diff": "^5.1.0", - "nise": "^5.1.5", - "supports-color": "^7.2.0" + "diff": "^5.2.0", + "nise": "^6.0.0", + "supports-color": "^7" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/sinon" } }, - "node_modules/sinon/node_modules/diff": { - "version": "5.2.0", - "integrity": "sha1-Jt7QR80RebeLlTfV73JVA84a5TE=", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, "node_modules/sinon/node_modules/has-flag": { "version": "4.0.0", "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", - "dev": true, + "optional": true, "engines": { "node": ">=8" } @@ -4372,7 +4605,7 @@ "node_modules/sinon/node_modules/supports-color": { "version": "7.2.0", "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "dev": true, + "optional": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -4380,18 +4613,10 @@ "node": ">=8" } }, - "node_modules/slash": { - "version": "3.0.0", - "integrity": "sha1-ZTm+hwwWWtvVJAIg2+Nh8bxNRjQ=", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/source-map": { "version": "0.6.1", "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, + "optional": true, "engines": { "node": ">=0.10.0" } @@ -4399,7 +4624,7 @@ "node_modules/source-map-support": { "version": "0.5.21", "integrity": "sha1-BP58f54e0tZiIzwoyys1ufY/bk8=", - "dev": true, + "optional": true, "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -4408,7 +4633,7 @@ "node_modules/split": { "version": "1.0.1", "integrity": "sha1-YFvZvjA6pZ+zX5Ip++oN3snqB9k=", - "dev": true, + "optional": true, "dependencies": { "through": "2" }, @@ -4416,6 +4641,20 @@ "node": "*" } }, + "node_modules/stdin-discarder": { + "version": "0.1.0", + "integrity": "sha1-IrPkADk6jijr9T+ZWPOIBiLv3iE=", + "optional": true, + "dependencies": { + "bl": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/stoppable": { "version": "1.1.0", "integrity": "sha1-MtpWjoPqSIsI5NfqLDvMnXUBXVs=", @@ -4428,7 +4667,7 @@ "node_modules/string_decoder": { "version": "1.1.1", "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", - "dev": true, + "optional": true, "dependencies": { "safe-buffer": "~5.1.0" } @@ -4436,12 +4675,12 @@ "node_modules/string_decoder/node_modules/safe-buffer": { "version": "5.1.2", "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=", - "dev": true + "optional": true }, "node_modules/string-width": { "version": "5.1.2", "integrity": "sha1-FPja7G2B5yIdKjV+Zoyrc728p5Q=", - "dev": true, + "devOptional": true, "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -4458,7 +4697,7 @@ "name": "string-width", "version": "4.2.3", "integrity": "sha1-JpxxF9J7Ba0uU2gwqOyJXvnG0BA=", - "dev": true, + "devOptional": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -4471,12 +4710,12 @@ "node_modules/string-width-cjs/node_modules/emoji-regex": { "version": "8.0.0", "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=", - "dev": true + "devOptional": true }, "node_modules/string-width/node_modules/ansi-regex": { - "version": "6.0.1", - "integrity": "sha1-MYPjj66aZdfLXlOUXNWJfQJgoGo=", - "dev": true, + "version": "6.1.0", + "integrity": "sha1-lexAnGlhnWyxuLNPFLZg7yjr1lQ=", + "devOptional": true, "engines": { "node": ">=12" }, @@ -4487,7 +4726,7 @@ "node_modules/string-width/node_modules/strip-ansi": { "version": "7.1.0", "integrity": "sha1-1bZWjKaJ2FYTcLBwdoXSJDT6/0U=", - "dev": true, + "devOptional": true, "dependencies": { "ansi-regex": "^6.0.1" }, @@ -4501,7 +4740,7 @@ "node_modules/strip-ansi": { "version": "6.0.1", "integrity": "sha1-nibGPTD1NEPpSJSVshBdN7Z6hdk=", - "dev": true, + "devOptional": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -4513,7 +4752,7 @@ "name": "strip-ansi", "version": "6.0.1", "integrity": "sha1-nibGPTD1NEPpSJSVshBdN7Z6hdk=", - "dev": true, + "devOptional": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -4524,7 +4763,7 @@ "node_modules/strip-json-comments": { "version": "3.1.1", "integrity": "sha1-MfEoGzgyYwQ0gxwxDAHMzajL4AY=", - "dev": true, + "optional": true, "engines": { "node": ">=8" }, @@ -4571,6 +4810,41 @@ "node": ">=6" } }, + "node_modules/tar-stream/node_modules/bl": { + "version": "4.1.0", + "integrity": "sha1-RRU1JkGCvsL7vIOmKrmM8R2fezo=", + "dev": true, + "optional": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/tar-stream/node_modules/buffer": { + "version": "5.7.1", + "integrity": "sha1-umLnwTEzBTWCGXFghRqPZI6Z7tA=", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "optional": true, + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, "node_modules/tar-stream/node_modules/readable-stream": { "version": "3.6.2", "integrity": "sha1-VqmzbqllwAxak+8x6xEaDxEFaWc=", @@ -4588,12 +4862,12 @@ "node_modules/text-table": { "version": "0.2.0", "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true + "optional": true }, "node_modules/through": { "version": "2.3.8", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true + "optional": true }, "node_modules/tmp": { "version": "0.2.3", @@ -4606,7 +4880,7 @@ "node_modules/to-regex-range": { "version": "5.0.1", "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=", - "dev": true, + "optional": true, "dependencies": { "is-number": "^7.0.0" }, @@ -4621,7 +4895,7 @@ "node_modules/ts-api-utils": { "version": "1.3.0", "integrity": "sha1-S0kOJxKfHo5oa0XMSrY3FNxg7qE=", - "dev": true, + "optional": true, "engines": { "node": ">=16" }, @@ -4630,8 +4904,8 @@ } }, "node_modules/tslib": { - "version": "2.6.2", - "integrity": "sha1-cDrClCXns3zW/UVukkBNRtHz5K4=" + "version": "2.7.0", + "integrity": "sha1-2bQMXECrWehzjyl98wh78aJpDAE=" }, "node_modules/tunnel": { "version": "0.0.6", @@ -4656,7 +4930,7 @@ "node_modules/type-check": { "version": "0.4.0", "integrity": "sha1-B7ggO/pwVsBlcFDjzNLDdzC6uPE=", - "dev": true, + "optional": true, "dependencies": { "prelude-ls": "^1.2.1" }, @@ -4667,7 +4941,7 @@ "node_modules/type-detect": { "version": "4.0.8", "integrity": "sha1-dkb7XxiHHPu3dJ5pvTmmOI63RQw=", - "dev": true, + "optional": true, "engines": { "node": ">=4" } @@ -4675,7 +4949,7 @@ "node_modules/type-fest": { "version": "0.20.2", "integrity": "sha1-G/IH9LKPkVg2ZstfvTJ4hzAc1fQ=", - "dev": true, + "optional": true, "engines": { "node": ">=10" }, @@ -4694,9 +4968,9 @@ } }, "node_modules/typescript": { - "version": "5.4.5", - "integrity": "sha1-QszvLFcf29D2cYsdH15uXvAG9hE=", - "dev": true, + "version": "5.6.3", + "integrity": "sha1-XzRJ4xydlP67F94DzAgd1W2B21s=", + "optional": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -4706,19 +4980,27 @@ } }, "node_modules/uc.micro": { - "version": "1.0.6", - "integrity": "sha1-nEEagCpAmpH8bPdAgbq6NLJEmaw=", + "version": "2.1.0", + "integrity": "sha1-+NP30OxMPeo1p+PI76TLi0XJ5+4=", "dev": true }, "node_modules/underscore": { - "version": "1.13.6", - "integrity": "sha1-BHhqH1idxsCfdh/F9FuJ6TUTZEE=", + "version": "1.13.7", + "integrity": "sha1-lw4zljr5p92iKPF+voOZ5fvmOhA=", "dev": true }, + "node_modules/undici": { + "version": "6.20.0", + "integrity": "sha1-O5TZZ2k3WepiWjt4sglyE/MEBaE=", + "dev": true, + "engines": { + "node": ">=18.17" + } + }, "node_modules/undici-types": { - "version": "5.26.5", - "integrity": "sha1-vNU5iT0AtW6WT9JlekhmsiGmVhc=", - "dev": true + "version": "6.19.8", + "integrity": "sha1-NREcnRQ3q4OnzcCrri8m2I7aCgI=", + "optional": true }, "node_modules/untildify": { "version": "4.0.0", @@ -4730,7 +5012,7 @@ "node_modules/uri-js": { "version": "4.4.1", "integrity": "sha1-mxpSWVIlhZ5V9mnZKPiMbFfyp34=", - "dev": true, + "optional": true, "dependencies": { "punycode": "^2.1.0" } @@ -4743,7 +5025,7 @@ "node_modules/util-deprecate": { "version": "1.0.2", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true + "optional": true }, "node_modules/uuid": { "version": "9.0.1", @@ -4800,7 +5082,7 @@ "node_modules/vscode-test-adapter-api": { "version": "1.9.0", "integrity": "sha1-D9Ff7Z8mFZZwmWyz349WGJAKAHk=", - "dev": true, + "optional": true, "engines": { "vscode": "^1.23.0" } @@ -4808,7 +5090,7 @@ "node_modules/vscode-test-adapter-remoting-util": { "version": "0.13.0", "integrity": "sha1-5BNv1y0pK1dul6ZvRLdPkB9PJj8=", - "dev": true, + "optional": true, "dependencies": { "split": "^1.0.1", "tslib": "^2.0.0", @@ -4819,6 +5101,25 @@ "version": "3.0.1", "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" }, + "node_modules/whatwg-encoding": { + "version": "3.1.1", + "integrity": "sha1-0PTvdpkF1CbhaI8+NDgambYLduU=", + "dev": true, + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-mimetype": { + "version": "4.0.0", + "integrity": "sha1-vBv5SphdxQOI1UqSWKxAXDyi/Ao=", + "dev": true, + "engines": { + "node": ">=18" + } + }, "node_modules/whatwg-url": { "version": "5.0.0", "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", @@ -4830,7 +5131,7 @@ "node_modules/which": { "version": "2.0.2", "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=", - "dev": true, + "devOptional": true, "dependencies": { "isexe": "^2.0.0" }, @@ -4844,20 +5145,20 @@ "node_modules/word-wrap": { "version": "1.2.5", "integrity": "sha1-0sRcbdT7zmIaZvE2y+Mor9BBCzQ=", - "dev": true, + "optional": true, "engines": { "node": ">=0.10.0" } }, "node_modules/workerpool": { - "version": "6.2.1", - "integrity": "sha1-RvwVDBfYJrhqAI5aRQhlZ3fpw0M=", - "dev": true + "version": "6.5.1", + "integrity": "sha1-Bg9zs50Mr5fG22TaAEzQG0wJlUQ=", + "optional": true }, "node_modules/wrap-ansi": { "version": "8.1.0", "integrity": "sha1-VtwiNo7lcPrOG0mBmXXZuaXq0hQ=", - "dev": true, + "devOptional": true, "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -4874,7 +5175,7 @@ "name": "wrap-ansi", "version": "7.0.0", "integrity": "sha1-Z+FFz/UQpqaYS98RUpEdadLrnkM=", - "dev": true, + "devOptional": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -4890,7 +5191,7 @@ "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { "version": "4.3.0", "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "dev": true, + "devOptional": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -4904,7 +5205,7 @@ "node_modules/wrap-ansi-cjs/node_modules/color-convert": { "version": "2.0.1", "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "dev": true, + "devOptional": true, "dependencies": { "color-name": "~1.1.4" }, @@ -4915,17 +5216,17 @@ "node_modules/wrap-ansi-cjs/node_modules/color-name": { "version": "1.1.4", "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", - "dev": true + "devOptional": true }, "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { "version": "8.0.0", "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=", - "dev": true + "devOptional": true }, "node_modules/wrap-ansi-cjs/node_modules/string-width": { "version": "4.2.3", "integrity": "sha1-JpxxF9J7Ba0uU2gwqOyJXvnG0BA=", - "dev": true, + "devOptional": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -4936,9 +5237,9 @@ } }, "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.0.1", - "integrity": "sha1-MYPjj66aZdfLXlOUXNWJfQJgoGo=", - "dev": true, + "version": "6.1.0", + "integrity": "sha1-lexAnGlhnWyxuLNPFLZg7yjr1lQ=", + "devOptional": true, "engines": { "node": ">=12" }, @@ -4949,7 +5250,7 @@ "node_modules/wrap-ansi/node_modules/ansi-styles": { "version": "6.2.1", "integrity": "sha1-DmIyDPmcIa//OzASGSVGqsv7BcU=", - "dev": true, + "devOptional": true, "engines": { "node": ">=12" }, @@ -4960,7 +5261,7 @@ "node_modules/wrap-ansi/node_modules/strip-ansi": { "version": "7.1.0", "integrity": "sha1-1bZWjKaJ2FYTcLBwdoXSJDT6/0U=", - "dev": true, + "devOptional": true, "dependencies": { "ansi-regex": "^6.0.1" }, @@ -4974,7 +5275,7 @@ "node_modules/wrappy": { "version": "1.0.2", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "optional": true }, "node_modules/xml2js": { "version": "0.5.0", @@ -4999,19 +5300,20 @@ "node_modules/y18n": { "version": "5.0.8", "integrity": "sha1-f0k00PfKjFb5UxSTndzS3ZHOHVU=", - "dev": true, + "optional": true, "engines": { "node": ">=10" } }, "node_modules/yallist": { "version": "4.0.0", - "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=" + "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=", + "dev": true }, "node_modules/yargs": { "version": "16.2.0", "integrity": "sha1-HIK/D2tqZur85+8w43b0mhJHf2Y=", - "dev": true, + "optional": true, "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -5026,9 +5328,9 @@ } }, "node_modules/yargs-parser": { - "version": "20.2.4", - "integrity": "sha1-tCiQ8UVmeW+Fro46JSkNIF8VSlQ=", - "dev": true, + "version": "20.2.9", + "integrity": "sha1-LrfcOwKJcY/ClfNidThFxBoMlO4=", + "optional": true, "engines": { "node": ">=10" } @@ -5036,7 +5338,7 @@ "node_modules/yargs-unparser": { "version": "2.0.0", "integrity": "sha1-8TH5ImkRrl2a04xDL+gJNmwjJes=", - "dev": true, + "optional": true, "dependencies": { "camelcase": "^6.0.0", "decamelize": "^4.0.0", @@ -5050,12 +5352,12 @@ "node_modules/yargs/node_modules/emoji-regex": { "version": "8.0.0", "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=", - "dev": true + "optional": true }, "node_modules/yargs/node_modules/string-width": { "version": "4.2.3", "integrity": "sha1-JpxxF9J7Ba0uU2gwqOyJXvnG0BA=", - "dev": true, + "optional": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -5085,7 +5387,7 @@ "node_modules/yocto-queue": { "version": "0.1.0", "integrity": "sha1-ApTrPe4FAo0x7hpfosVWpqrxChs=", - "dev": true, + "optional": true, "engines": { "node": ">=10" }, diff --git a/package.json b/package.json index cdfca6c936..55b397dab6 100644 --- a/package.json +++ b/package.json @@ -1,12 +1,12 @@ { "name": "powershell", "displayName": "PowerShell", - "version": "2024.2.2", + "version": "2024.4.0", "preview": false, "publisher": "ms-vscode", "description": "Develop PowerShell modules, commands and scripts in Visual Studio Code!", "engines": { - "vscode": "^1.82.0" + "vscode": "^1.94.0" }, "author": "Microsoft Corporation", "license": "SEE LICENSE IN LICENSE.txt", @@ -55,61 +55,50 @@ "activationEvents": [ "onDebugResolve:PowerShell", "onLanguage:powershell", - "onCommand:PowerShell.OpenExamplesFolder", "onCommand:PowerShell.PickPSHostProcess", "onCommand:PowerShell.PickRunspace", - "onCommand:PowerShell.SpecifyScriptArgs", - "onCommand:PowerShell.ShowSessionConsole", - "onCommand:PowerShell.ShowSessionMenu", - "onCommand:PowerShell.RestartSession", - "onCommand:PowerShell.ShowLogs", - "onCommand:PowerShell.OpenLogFolder", - "onCommand:PowerShell.GenerateBugReport", - "onCommand:PowerShell.OpenExamplesFolder", - "onCommand:PowerShell.EnableISEMode", - "onCommand:PowerShell.DisableISEMode", - "onCommand:PowerShell.ToggleISEMode", - "onView:PowerShellCommands", - "onWalkthrough:PowerShell" + "onCommand:PowerShell.SpecifyScriptArgs" ], "dependencies": { - "@vscode/extension-telemetry": "^0.9.6", + "@vscode/extension-telemetry": "^0.9.7", "node-fetch": "^2.7.0", - "semver": "^7.6.0", + "semver": "^7.6.3", "untildify": "^4.0.0", "uuid": "^9.0.1", "vscode-languageclient": "^9.0.1", "vscode-languageserver-protocol": "^3.17.5" }, "devDependencies": { - "@types/mocha": "^10.0.6", + "@vscode/vsce": "^3.1.1", + "esbuild": "^0.21.5" + }, + "optionalDependencies": { + "@types/mocha": "^10.0.9", "@types/mock-fs": "^4.13.4", - "@types/node": "^18.19.31", + "@types/node": "^20.16.11", "@types/node-fetch": "^2.6.11", "@types/rewire": "^2.5.30", "@types/semver": "^7.5.8", "@types/sinon": "^17.0.3", "@types/ungap__structured-clone": "^1.2.0", "@types/uuid": "^9.0.8", - "@types/vscode": "~1.82.0", - "@typescript-eslint/eslint-plugin": "^7.8.0", - "@typescript-eslint/parser": "^7.8.0", + "@types/vscode": "~1.94.0", + "@typescript-eslint/eslint-plugin": "^8.8.1", + "@typescript-eslint/parser": "^8.8.1", "@ungap/structured-clone": "^1.2.0", - "@vscode/debugprotocol": "^1.65.0", - "@vscode/test-electron": "^2.3.9", - "@vscode/vsce": "^2.26.1", - "esbuild": "^0.20.2", + "@vscode/debugprotocol": "^1.68.0", + "@vscode/test-electron": "^2.4.1", "eslint": "^8.57.0", "eslint-plugin-header": "^3.1.1", - "glob": "^10.3.12", - "mocha": "^10.4.0", + "glob": "^11.0.0", + "mocha": "^10.7.3", "mocha-explorer-launcher-scripts": "^0.4.0", "mocha-multi-reporters": "^1.5.1", - "mock-fs": "^5.2.0", + "mock-fs": "^5.3.0", "rewire": "^7.0.0", - "sinon": "^17.0.1", + "sinon": "^18.0.1", "source-map-support": "^0.5.21", - "typescript": "^5.4.5" + "typescript": "^5.6.3" }, "extensionDependencies": [ "vscode.powershell" @@ -460,7 +449,7 @@ "name": "PowerShell Launch Script", "type": "PowerShell", "request": "launch", - "script": "^\"enter path or command to execute e.g.: \\${workspaceFolder}/src/foo.ps1 or Invoke-Pester\"", + "script": "^\"Enter path or command to execute, for example, \\${workspaceFolder}/src/foo.ps1 or Invoke-Pester\"", "cwd": "^\"\\${cwd}\"" } }, @@ -907,6 +896,19 @@ "default": false, "markdownDescription": "Creates a temporary PowerShell Extension Terminal for each debugging session. This is useful for debugging PowerShell classes and binary modules." }, + "powershell.debugging.executeMode": { + "type": "string", + "enum": [ + "DotSource", + "Call" + ], + "default": "DotSource", + "markdownEnumDescriptions": [ + "Use the Dot-Source operator `.` to launch the script, for example, `. 'C:\\Data\\MyScript.ps1'`", + "Use the Call operator `&` to launch the script, for example, `& 'C:\\Data\\MyScript.ps1'`" + ], + "markdownDescription": "Sets the operator used to launch scripts." + }, "powershell.developer.bundledModulesPath": { "type": "string", "default": "../../PowerShellEditorServices/module", @@ -1009,7 +1011,12 @@ "verbose" ], "default": "off", - "description": "Traces the communication between VS Code and the PowerShell Editor Services language server. **This setting is only meant for extension developers!**" + "markdownDescription": "Traces the communication between VS Code and the PowerShell Editor Services [LSP Server](https://microsoft.github.io/language-server-protocol/). **only for extension developers and issue troubleshooting!**" + }, + "powershell.trace.dap": { + "type": "boolean", + "default": false, + "markdownDescription": "Traces the communication between VS Code and the PowerShell Editor Services [DAP Server](https://microsoft.github.io/debug-adapter-protocol/). **This setting is only meant for extension developers and issue troubleshooting!**" } } }, diff --git a/snippets/PowerShell.json b/snippets/PowerShell.json index 5ed99e184d..bd478f1ff3 100644 --- a/snippets/PowerShell.json +++ b/snippets/PowerShell.json @@ -161,6 +161,25 @@ "}" ] }, + "Foreach with Progress": { + "prefix": "foreach-progress", + "description": "Insert a foreach loop with Write-Progress initialized", + "body": [ +\\$progPercent = \"{0:n2}\" -f ([math]::round(\\$i/\\$array.count,4) * 100)", + +Write-Progress -Activity \"${3:activityName}\" -Status \"\\$i of \\$array.count - \\$progPercent% Complete:\" -PercentComplete \\$progPercent", + "\\$i = 1", + "foreach ($${2:item} in $${1:array}) {", + " \\$progPercent = \"{0:n2}\" -f ([math]::round(\\$i/\\$total,4) * 100)", + " Write-Progress -Activity \"${3:activityName}\" -Status \"\\$i of \\$total - \\$progPercent% Complete:\" -PercentComplete \\$progPercent", + " # Insert Code Here", + " ${0}", + " ", + " \\$i++", + "}", + "" + ] + }, "ForEach-Object -Parallel": { "prefix": "foreach-parallel", "description": "[PS 7+] Process multiple objects in parallel using runspaces. This has some limitations compared to a regular ForEach-Object. More: Get-Help ForEach-Object", @@ -505,7 +524,7 @@ "description": "Suppress a PSScriptAnalyzer rule on a parameter. More: https://docs.microsoft.com/en-us/powershell/utility-modules/psscriptanalyzer/overview?view=ps-modules#suppressing-rules", "body": [ "[Diagnostics.CodeAnalysis.SuppressMessageAttribute(<#Category#>'${1:PSUseDeclaredVarsMoreThanAssignments}',", - "\t<#ParameterName#>'${0:${TM_SELECTED_TEXT:ParamName}}", + "\t<#ParameterName#>'${0:${TM_SELECTED_TEXT:ParamName}}',", "\tJustification = '${0:${TM_SELECTED_TEXT:Reason for suppressing}}'", ")]" ] diff --git a/src/controls/checkboxQuickPick.ts b/src/controls/checkboxQuickPick.ts index 1ec18b5b3e..e318992365 100644 --- a/src/controls/checkboxQuickPick.ts +++ b/src/controls/checkboxQuickPick.ts @@ -73,7 +73,7 @@ async function showInner( } function getItemIndex(items: ICheckboxQuickPickItem[], itemLabel: string): number { - const trimmedLabel = itemLabel.substr(itemLabel.indexOf("]") + 2); + const trimmedLabel = itemLabel.substring(itemLabel.indexOf("]") + 2); return items.findIndex((item) => item.label === trimmedLabel); } diff --git a/src/extension.ts b/src/extension.ts index 01a4ee4a1c..0cb8f3f52e 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -26,10 +26,6 @@ import { LogLevel, getSettings } from "./settings"; import { PowerShellLanguageId } from "./utils"; import { LanguageClientConsumer } from "./languageClientConsumer"; -// The most reliable way to get the name and version of the current extension. -// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-var-requires -const PackageJSON: any = require("../package.json"); - // The 1DS telemetry key, which is just shared among all Microsoft extensions // (and isn't sensitive). const TELEMETRY_KEY = "0c6ae279ed8443289764825290e4f9e2-1a736e7c-1324-4338-be46-fc2a58ae4d14-7255"; @@ -117,15 +113,23 @@ export async function activate(context: vscode.ExtensionContext): Promise("trace.dap") ?? false; + constructor(private adapterName = "PowerShell") { + this.disposables.push(workspace.onDidChangeConfiguration(change => { + if ( + change.affectsConfiguration("powershell.trace.dap") + ) { + this.dapLogEnabled = workspace.getConfiguration("powershell").get("trace.dap") ?? false; + if (this.dapLogEnabled) { + // Trigger the output pane to appear. This gives the user time to position it before starting a debug. + this.log?.show(true); + } + } + })); + } + + /* We want to use a shared output log for separate debug sessions as usually only one is running at a time and we + * dont need an output window for every debug session. We also want to leave it active so user can copy and paste + * even on run end. When user changes the setting and disables it getter will return undefined, which will result + * in a noop for the logging activities, effectively pausing logging but not disposing the output channel. If the + * user re-enables, then logging resumes. + */ + _log: LogOutputChannel | undefined; + get log(): LogOutputChannel | undefined { + if (this.dapLogEnabled && this._log === undefined) { + this._log = window.createOutputChannel(`${this.adapterName} Trace - DAP`, { log: true }); + this.disposables.push(this._log); + } + return this.dapLogEnabled ? this._log : undefined; + } + + createDebugAdapterTracker(session: DebugSession): DebugAdapterTracker { + const sessionInfo = `${this.adapterName} Debug Session: ${session.name} [${session.id}]`; + return { + onWillStartSession: () => this.log?.info(`Starting ${sessionInfo}. Set log level to trace to see DAP messages beyond errors`), + onWillStopSession: () => this.log?.info(`Stopping ${sessionInfo}`), + onExit: code => this.log?.info(`${sessionInfo} exited with code ${code}`), + onWillReceiveMessage: (m): void => { + this.log?.debug(`➡️${m.seq} ${m.type}: ${m.command}`); + if (m.arguments && (Array.isArray(m.arguments) ? m.arguments.length > 0 : Object.keys(m.arguments).length > 0)) { + this.log?.trace(`${m.seq}: ` + JSON.stringify(m.arguments, undefined, 2)); + } + }, + onDidSendMessage: (m):void => { + const responseSummary = m.request_seq !== undefined + ? `${m.success ? "✅" : "❌"}${m.request_seq} ${m.type}(${m.seq}): ${m.command}` + : `⬅️${m.seq} ${m.type}: ${m.event ?? m.command}`; + this.log?.debug( + responseSummary + ); + if (m.body && (Array.isArray(m.body) ? m.body.length > 0 : Object.keys(m.body).length > 0)) { + this.log?.trace(`${m.seq}: ` + JSON.stringify(m.body, undefined, 2)); + } + }, + onError: e => this.log?.error(e), + }; + } + + dispose(): void { + this.disposables.forEach(d => d.dispose()); + } +} + export class SpecifyScriptArgsFeature implements Disposable { private command: Disposable; private context: ExtensionContext; diff --git a/src/features/HelpCompletion.ts b/src/features/HelpCompletion.ts index 426da44df8..a5dc47459d 100644 --- a/src/features/HelpCompletion.ts +++ b/src/features/HelpCompletion.ts @@ -175,7 +175,7 @@ class HelpCompletionProvider extends LanguageClientConsumer { // Trim the last empty line and join the strings. const lines: string[] = result.content; const text = lines - .map((x) => x.trimLeft()) + .map((x) => x.trimStart()) .join(this.getEOL(doc.eol)); const snippetString = new SnippetString(text); diff --git a/src/process.ts b/src/process.ts index 8d36333121..d363c8e2ee 100644 --- a/src/process.ts +++ b/src/process.ts @@ -14,6 +14,8 @@ export class PowerShellProcess { // This is used to warn the user that the extension is taking longer than expected to startup. private static warnUserThreshold = 30; + private static title = "PowerShell Extension"; + public onExited: vscode.Event; private onExitedEmitter?: vscode.EventEmitter; @@ -25,7 +27,8 @@ export class PowerShellProcess { constructor( public exePath: string, private bundledModulesPath: string, - private title: string, + private isTemp: boolean, + private shellIntegrationEnabled: boolean, private logger: ILogger, private startPsesArgs: string, private sessionFilePath: vscode.Uri, @@ -97,12 +100,27 @@ export class PowerShellProcess { // Make sure no old session file exists await this.deleteSessionFile(this.sessionFilePath); + // When VS Code shell integration is enabled, the script expects certain + // variables to be added to the environment. + let envMixin = undefined; + if (this.shellIntegrationEnabled) { + envMixin = { + "VSCODE_INJECTION": "1", + // There is no great way to check if we are running stable VS + // Code. Since this is used to disable experimental features, we + // default to stable unless we're definitely running Insiders. + "VSCODE_STABLE": vscode.env.appName.includes("Insiders") ? "0" : "1", + // Maybe one day we can set VSCODE_NONCE... + }; + } + // Launch PowerShell in the integrated terminal const terminalOptions: vscode.TerminalOptions = { - name: this.title, + name: this.isTemp ? `${PowerShellProcess.title} (TEMP)` : PowerShellProcess.title, shellPath: this.exePath, shellArgs: powerShellArgs, cwd: await validateCwdSetting(this.logger), + env: envMixin, iconPath: new vscode.ThemeIcon("terminal-powershell"), isTransient: true, hideFromUser: this.sessionSettings.integratedConsole.startInBackground, @@ -127,6 +145,17 @@ export class PowerShellProcess { return await this.waitForSessionFile(cancellationToken); } + // This function is used to clean-up stale PowerShell Extension terminals, + // which can happen with `restartExtensionHost` is called because we are + // unable to finish diposing before we're gone. + public static cleanUpTerminals(): void { + for (const terminal of vscode.window.terminals) { + if (terminal.name.startsWith(PowerShellProcess.title)) { + terminal.dispose(); + } + } + } + // This function should only be used after a failure has occurred because it is slow! public async getVersionCli(): Promise { const exec = promisify(cp.execFile); diff --git a/src/session.ts b/src/session.ts index 238becbf04..71164b4564 100644 --- a/src/session.ts +++ b/src/session.ts @@ -89,6 +89,7 @@ export class SessionManager implements Middleware { private sessionDetails: IEditorServicesSessionDetails | undefined; private sessionsFolder: vscode.Uri; private sessionStatus: SessionStatus = SessionStatus.NotStarted; + private shellIntegrationEnabled = false; private startCancellationTokenSource: vscode.CancellationTokenSource | undefined; private suppressRestartPrompt = false; private versionDetails: IPowerShellVersionDetails | undefined; @@ -109,6 +110,7 @@ export class SessionManager implements Middleware { // We have to override the scheme because it defaults to // 'vscode-userdata' which breaks UNC paths. this.sessionsFolder = vscode.Uri.joinPath(extensionContext.globalStorageUri.with({ scheme: "file" }), "sessions"); + this.platformDetails = getPlatformDetails(); this.HostName = hostName; this.DisplayName = displayName; @@ -189,6 +191,9 @@ export class SessionManager implements Middleware { // Migrate things. await this.migrateWhitespaceAroundPipeSetting(); + // Update non-PowerShell settings. + this.shellIntegrationEnabled = vscode.workspace.getConfiguration("terminal.integrated.shellIntegration").get("enabled") ?? false; + // Find the PowerShell executable to use for the server. this.PowerShellExeDetails = await this.findPowerShell(); @@ -345,7 +350,8 @@ export class SessionManager implements Middleware { new PowerShellProcess( this.PowerShellExeDetails.exePath, bundledModulesPath, - "[TEMP] PowerShell Extension", + true, + false, this.logger, this.getEditorServicesArgs(bundledModulesPath, this.PowerShellExeDetails) + "-DebugServiceOnly ", this.getNewSessionFilePath(), @@ -447,19 +453,23 @@ export class SessionManager implements Middleware { private async onConfigurationUpdated(): Promise { const settings = getSettings(); + const shellIntegrationEnabled = vscode.workspace.getConfiguration("terminal.integrated.shellIntegration").get("enabled"); this.logger.updateLogLevel(settings.developer.editorServicesLogLevel); // Detect any setting changes that would affect the session. - if (!this.suppressRestartPrompt && this.sessionStatus === SessionStatus.Running && - (settings.cwd !== this.sessionSettings.cwd - || settings.powerShellDefaultVersion !== this.sessionSettings.powerShellDefaultVersion - || settings.developer.editorServicesLogLevel !== this.sessionSettings.developer.editorServicesLogLevel - || settings.developer.bundledModulesPath !== this.sessionSettings.developer.bundledModulesPath - || settings.developer.editorServicesWaitForDebugger !== this.sessionSettings.developer.editorServicesWaitForDebugger - || settings.developer.setExecutionPolicy !== this.sessionSettings.developer.setExecutionPolicy - || settings.integratedConsole.useLegacyReadLine !== this.sessionSettings.integratedConsole.useLegacyReadLine - || settings.integratedConsole.startInBackground !== this.sessionSettings.integratedConsole.startInBackground - || settings.integratedConsole.startLocation !== this.sessionSettings.integratedConsole.startLocation)) { + if (!this.suppressRestartPrompt + && this.sessionStatus === SessionStatus.Running + && ((shellIntegrationEnabled !== this.shellIntegrationEnabled + && !settings.integratedConsole.startInBackground) + || settings.cwd !== this.sessionSettings.cwd + || settings.powerShellDefaultVersion !== this.sessionSettings.powerShellDefaultVersion + || settings.developer.editorServicesLogLevel !== this.sessionSettings.developer.editorServicesLogLevel + || settings.developer.bundledModulesPath !== this.sessionSettings.developer.bundledModulesPath + || settings.developer.editorServicesWaitForDebugger !== this.sessionSettings.developer.editorServicesWaitForDebugger + || settings.developer.setExecutionPolicy !== this.sessionSettings.developer.setExecutionPolicy + || settings.integratedConsole.useLegacyReadLine !== this.sessionSettings.integratedConsole.useLegacyReadLine + || settings.integratedConsole.startInBackground !== this.sessionSettings.integratedConsole.startInBackground + || settings.integratedConsole.startLocation !== this.sessionSettings.integratedConsole.startLocation)) { this.logger.writeVerbose("Settings changed, prompting to restart..."); const response = await vscode.window.showInformationMessage( @@ -519,11 +529,15 @@ export class SessionManager implements Middleware { cancellationToken: vscode.CancellationToken): Promise { const bundledModulesPath = await this.getBundledModulesPath(); + + // Dispose any stale terminals from previous killed sessions. + PowerShellProcess.cleanUpTerminals(); const languageServerProcess = new PowerShellProcess( powerShellExeDetails.exePath, bundledModulesPath, - "PowerShell Extension", + false, + this.shellIntegrationEnabled, this.logger, this.getEditorServicesArgs(bundledModulesPath, powerShellExeDetails), this.getNewSessionFilePath(), @@ -609,12 +623,6 @@ export class SessionManager implements Middleware { }); }); }; - - // When Terminal Shell Integration is enabled, we pass the path to the script that the server should execute. - // Passing an empty string implies integration is disabled. - const shellIntegrationEnabled = vscode.workspace.getConfiguration("terminal.integrated.shellIntegration").get("enabled"); - const shellIntegrationScript = path.join(vscode.env.appRoot, "out", "vs", "workbench", "contrib", "terminal", "browser", "media", "shellIntegration.ps1"); - const clientOptions: LanguageClientOptions = { documentSelector: this.documentSelector, synchronize: { @@ -624,10 +632,13 @@ export class SessionManager implements Middleware { // TODO: fileEvents: vscode.workspace.createFileSystemWatcher('**/.eslintrc') }, // NOTE: Some settings are only applicable on startup, so we send them during initialization. + // When Terminal Shell Integration is enabled, we pass the path to the script that the server should execute. + // Passing an empty string implies integration is disabled. initializationOptions: { enableProfileLoading: this.sessionSettings.enableProfileLoading, initialWorkingDirectory: await validateCwdSetting(this.logger), - shellIntegrationScript: shellIntegrationEnabled ? shellIntegrationScript : "", + shellIntegrationScript: this.shellIntegrationEnabled + ? utils.ShellIntegrationScript : "", }, errorHandler: { // Override the default error handler to prevent it from @@ -647,6 +658,7 @@ export class SessionManager implements Middleware { }, revealOutputChannelOn: RevealOutputChannelOn.Never, middleware: this, + traceOutputChannel: vscode.window.createOutputChannel("PowerShell Trace - LSP", {log: true}), }; const languageClient = new LanguageClient("powershell", "PowerShell Editor Services Client", connectFunc, clientOptions); diff --git a/src/settings.ts b/src/settings.ts index 878cac9036..9c2ef38452 100644 --- a/src/settings.ts +++ b/src/settings.ts @@ -76,6 +76,11 @@ export enum StartLocation { Panel = "Panel" } +export enum ExecuteMode{ + Call = "Call", + DotSource = "DotSource" +} + export type PowerShellAdditionalExePathSettings = Record; class CodeFormattingSettings extends PartialSettings { @@ -107,6 +112,7 @@ class ScriptAnalysisSettings extends PartialSettings { class DebuggingSettings extends PartialSettings { createTemporaryIntegratedConsole = false; + executeMode = ExecuteMode.DotSource; } class DeveloperSettings extends PartialSettings { diff --git a/src/utils.ts b/src/utils.ts index 182612194e..7ea266e9c7 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -4,9 +4,18 @@ import os = require("os"); import path = require("path"); import vscode = require("vscode"); +import { satisfies } from "semver"; export const PowerShellLanguageId = "powershell"; +// Path to the shell integration script in the VS Code installation +// See https://github.com/microsoft/vscode/pull/227244 +const shellIntegrationMoved = satisfies(vscode.version, ">=1.94", { includePrerelease: true }); +export const ShellIntegrationScript = path.join(vscode.env.appRoot, "out", "vs", "workbench", "contrib", "terminal", + shellIntegrationMoved ? "common" : "browser", + shellIntegrationMoved ? "scripts" : "media", + "shellIntegration.ps1"); + export function escapeSingleQuotes(p: string): string { return p.replace(new RegExp("'", "g"), "''"); } diff --git a/test/core/paths.test.ts b/test/core/paths.test.ts index 628034a581..15f60f5bd1 100644 --- a/test/core/paths.test.ts +++ b/test/core/paths.test.ts @@ -5,7 +5,7 @@ import assert from "assert"; import * as vscode from "vscode"; import { IPowerShellExtensionClient } from "../../src/features/ExternalApi"; import utils = require("../utils"); -import { checkIfDirectoryExists } from "../../src/utils"; +import { checkIfDirectoryExists, checkIfFileExists, ShellIntegrationScript } from "../../src/utils"; describe("Path assumptions", function () { let globalStorageUri: vscode.Uri; @@ -21,4 +21,9 @@ describe("Path assumptions", function () { it("Creates the log folder at the correct path", async function () { assert(await checkIfDirectoryExists(vscode.Uri.joinPath(globalStorageUri, "logs"))); }); + + it("Finds the Terminal Shell Integration Script", async function () { + // If VS Code changes the location of the script, we need to know ASAP (as it's not a public API). + assert(await checkIfFileExists(ShellIntegrationScript)); + }); }); diff --git a/test/features/DebugSession.test.ts b/test/features/DebugSession.test.ts index 5a237fe881..e27ef85274 100644 --- a/test/features/DebugSession.test.ts +++ b/test/features/DebugSession.test.ts @@ -69,7 +69,7 @@ describe("DebugSessionFeature", () => { createDebugSessionFeatureStub({context: context}); assert.ok(registerFactoryStub.calledOnce, "Debug adapter factory method called"); assert.ok(registerProviderStub.calledTwice, "Debug config provider registered for both Initial and Dynamic"); - assert.equal(context.subscriptions.length, 3, "DebugSessionFeature disposables populated"); + assert.equal(context.subscriptions.length, 4, "DebugSessionFeature disposables populated"); // TODO: Validate the registration content, such as the language name }); }); diff --git a/test/mocks/BinaryModule/BinaryModule.csproj b/test/mocks/BinaryModule/BinaryModule.csproj index 52ec116dda..5f9e3d340d 100644 --- a/test/mocks/BinaryModule/BinaryModule.csproj +++ b/test/mocks/BinaryModule/BinaryModule.csproj @@ -5,7 +5,7 @@ - + All diff --git a/test/runTests.ts b/test/runTests.ts index e5771854b3..87a27182bd 100644 --- a/test/runTests.ts +++ b/test/runTests.ts @@ -5,7 +5,7 @@ // https://github.com/microsoft/vscode-extension-samples/tree/main/helloworld-test-sample/src/test import * as path from "path"; -import { ConsoleReporter, downloadAndUnzipVSCode, resolveCliArgsFromVSCodeExecutablePath, runTests } from "@vscode/test-electron"; +import { makeConsoleReporter, downloadAndUnzipVSCode, resolveCliArgsFromVSCodeExecutablePath, runTests } from "@vscode/test-electron"; import { existsSync } from "fs"; import { spawnSync } from "child_process"; @@ -38,7 +38,7 @@ async function main(): Promise { const vsCodeVersion = process.env.__TEST_VSCODE_VERSION ?? "insiders"; /** Install a temporary vscode. This must be done ahead of RunTests in order to install extensions ahead of time. @see https://github.com/microsoft/vscode-test/blob/addc23e100b744de598220adbbf0761da870eda9/README.md?plain=1#L71-L89 **/ - const testVSCodePath = await downloadAndUnzipVSCode(vsCodeVersion, undefined, new ConsoleReporter(true)); + const testVSCodePath = await downloadAndUnzipVSCode(vsCodeVersion, undefined, await makeConsoleReporter()); InstallExtension(testVSCodePath, "ms-dotnettools.csharp"); const launchArgs = [ @@ -108,7 +108,7 @@ function InstallExtension(vscodeExePath: string, extensionIdOrVSIXPath: string): console.error(`Failed to install extension: ${installResult.stderr}`); console.log("Binary Module Tests will fail if not skipped!"); } - + return installResult.stdout; } diff --git a/tools/installPSResources.ps1 b/tools/installPSResources.ps1 index 0602324b77..e98910d70a 100644 --- a/tools/installPSResources.ps1 +++ b/tools/installPSResources.ps1 @@ -1,11 +1,13 @@ # Copyright (c) Microsoft Corporation. # Licensed under the MIT License. +param( + [ValidateSet("PSGallery", "CFS")] + [string]$PSRepository = "PSGallery" +) -Set-PSRepository -Name PSGallery -InstallationPolicy Trusted | Out-Null -if ($PSVersionTable.PSVersion.Major -lt 6) { - throw "The build script requires PowerShell 7!" +if ($PSRepository -eq "CFS" -and -not (Get-PSResourceRepository -Name CFS -ErrorAction SilentlyContinue)) { + Register-PSResourceRepository -Name CFS -Uri "https://pkgs.dev.azure.com/powershell/PowerShell/_packaging/powershell/nuget/v3/index.json" } -# TODO: Switch to Install-PSResource when CI uses PowerShell 7.4 -Install-Module -Name InvokeBuild -Scope CurrentUser -Install-Module -Name platyPS -Scope CurrentUser +Install-PSResource -Repository $PSRepository -TrustRepository -Name InvokeBuild +Install-PSResource -Repository $PSRepository -TrustRepository -Name platyPS diff --git a/vscode-powershell.build.ps1 b/vscode-powershell.build.ps1 index c2c8ae59fd..8f297ba4fe 100644 --- a/vscode-powershell.build.ps1 +++ b/vscode-powershell.build.ps1 @@ -7,7 +7,7 @@ param( [string]$EditorServicesRepoPath = $null ) -#Requires -Modules @{ ModuleName = "InvokeBuild"; ModuleVersion = "3.0.0" } +#Requires -Modules @{ ModuleName = "InvokeBuild"; ModuleVersion = "5.0.0" } function Get-EditorServicesPath { $psesRepoPath = if ($EditorServicesRepoPath) { @@ -17,20 +17,19 @@ function Get-EditorServicesPath { } # NOTE: The ErrorActionPreference for both Invoke-Build and Azure DevOps # scripts is Stop, but we want to continue and return false here. - return Resolve-Path "$psesRepoPath/PowerShellEditorServices.build.ps1" -ErrorAction Continue + return Resolve-Path "$psesRepoPath/PowerShellEditorServices.build.ps1" -ErrorAction SilentlyContinue } #region Setup tasks -task RestoreNodeModules -If { !(Test-Path ./node_modules) } { - Write-Host "`n### Restoring vscode-powershell dependencies`n" -ForegroundColor Green - # When in a CI build use the --loglevel=error parameter so that - # package install warnings don't cause PowerShell to throw up - if ($env:CI -or $env:TF_BUILD) { - Invoke-BuildExec { & npm ci --loglevel=error } - } else { - Invoke-BuildExec { & npm install } - } +task RestoreNode -If { !(Test-Path ./node_modules/esbuild) } { + Write-Build DarkGreen "Restoring build dependencies" + Invoke-BuildExec { & npm ci --omit=optional } +} + +task RestoreNodeOptional -If { !(Test-Path ./node_modules/eslint) } { + Write-Build DarkMagenta "Restoring build, test, and lint dependencies" + Invoke-BuildExec { & npm ci --include=optional } } task RestoreEditorServices -If (Get-EditorServicesPath) { @@ -39,61 +38,60 @@ task RestoreEditorServices -If (Get-EditorServicesPath) { # When debugging, we always rebuild PSES and ensure its symlinked so # that developers always have the latest local bits. if ((Get-Item ./modules -ErrorAction SilentlyContinue).LinkType -ne "SymbolicLink") { - Write-Host "`n### Creating symbolic link to PSES" -ForegroundColor Green + Write-Build DarkMagenta "Creating symbolic link to PSES" Remove-BuildItem ./modules New-Item -ItemType SymbolicLink -Path ./modules -Target "$(Split-Path (Get-EditorServicesPath))/module" } - Write-Host "`n### Building PSES`n" -ForegroundColor Green + Write-Build DarkGreen "Building PSES" Invoke-Build Build (Get-EditorServicesPath) -Configuration $Configuration } "Release" { # When releasing, we ensure the bits are not symlinked but copied, # and only if they don't already exist. if ((Get-Item ./modules -ErrorAction SilentlyContinue).LinkType -eq "SymbolicLink") { - Write-Host "`n### Deleting PSES symbolic link" -ForegroundColor Green + Write-Build DarkRed "Deleting PSES symbolic link" Remove-BuildItem ./modules } if (!(Test-Path ./modules)) { # We only build if it hasn't been built at all. if (!(Test-Path "$(Split-Path (Get-EditorServicesPath))/module/PowerShellEditorServices/bin")) { - Write-Host "`n### Building PSES`n" -ForegroundColor Green + Write-Build DarkGreen "Building PSES" Invoke-Build Build (Get-EditorServicesPath) -Configuration $Configuration } - Write-Host "`n### Copying PSES`n" -ForegroundColor Green + Write-Build DarkGreen "Copying PSES" Copy-Item -Recurse -Force "$(Split-Path (Get-EditorServicesPath))/module" ./modules } } } } -task Restore RestoreEditorServices, RestoreNodeModules - #endregion #region Clean tasks task Clean { - Write-Host "`n### Cleaning vscode-powershell`n" -ForegroundColor Green + Write-Build DarkMagenta "Cleaning vscode-powershell" Remove-BuildItem *.js, *.js.map, ./dist, ./modules, ./node_modules, ./out } task CleanEditorServices -If (Get-EditorServicesPath) { - Write-Host "`n### Cleaning PowerShellEditorServices`n" -ForegroundColor Green + Write-Build DarkMagenta "Cleaning PSES" Invoke-Build Clean (Get-EditorServicesPath) } #endregion #region Build tasks +task Lint RestoreNodeOptional, { + Write-Build DarkMagenta "Linting TypeScript" + Invoke-BuildExec { & npm run lint } +} -task Build Restore, { - Write-Host "`n### Building vscode-powershell`n" -ForegroundColor Green +task Build RestoreEditorServices, RestoreNode, { + Write-Build DarkGreen "Building vscode-powershell" Assert-Build (Test-Path ./modules/PowerShellEditorServices/bin) "Extension requires PSES" - Write-Host "`n### Linting TypeScript`n" -ForegroundColor Green - Invoke-BuildExec { & npm run lint } - # TODO: When supported we should use `esbuild` for the tests too. Although # we now use `esbuild` to transpile, bundle, and minify the extension, we # still use `tsc` to transpile everything in `src` and `test` because the VS @@ -109,15 +107,15 @@ task Build Restore, { #endregion #region Test tasks -task Test Build, { - Write-Host "`n### Running extension tests" -ForegroundColor Green +task Test Lint, Build, { + Write-Build DarkMagenta "Running extension tests" Invoke-BuildExec { & npm run test } # Reset the state of files modified by tests Invoke-BuildExec { git checkout package.json test/TestEnvironment.code-workspace } } task TestEditorServices -If (Get-EditorServicesPath) { - Write-Host "`n### Testing PowerShellEditorServices`n" -ForegroundColor Green + Write-Build DarkMagenta "Testing PSES" Invoke-Build Test (Get-EditorServicesPath) } @@ -126,7 +124,7 @@ task TestEditorServices -If (Get-EditorServicesPath) { task Package { [semver]$version = $((Get-Content -Raw -Path package.json | ConvertFrom-Json).version) - Write-Host "`n### Packaging powershell-$version.vsix`n" -ForegroundColor Green + Write-Build DarkGreen "Packaging powershell-$version.vsix" Remove-BuildItem ./out New-Item -ItemType Directory -Force out | Out-Null @@ -136,13 +134,13 @@ task Package { # we might have built in Debug configuration, not Release, and still want to # package it. So delete the symlink and copy what we just built. if ((Get-Item ./modules -ErrorAction SilentlyContinue).LinkType -eq "SymbolicLink") { - Write-Host "`n### PSES is a symbolic link, replacing with copy!" -ForegroundColor Green + Write-Build DarkRed "PSES is a symbolic link, replacing with copy!" Remove-BuildItem ./modules Copy-Item -Recurse -Force "$(Split-Path (Get-EditorServicesPath))/module" ./modules } if ($version.Minor % 2 -ne 0) { - Write-Host "`n### This is a pre-release!`n" -ForegroundColor Green + Write-Build DarkRed "This is a pre-release!" Invoke-BuildExec { & npm run package -- --pre-release } } else { Invoke-BuildExec { & npm run package } @@ -151,4 +149,4 @@ task Package { #endregion -task . Build, Test, Package +task . Test, Package