diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index d40f767932..60152b403b 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -56,5 +56,5 @@ ] } }, - "postCreateCommand": "npm ci && npx gulp installDependencies && npm i -g gulp" + "postCreateCommand": "npm ci" } diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 36b786bbd4..3941037fc7 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -17,18 +17,18 @@ - **Build**: `npm run compile` (or use VS Code build task) - **Test**: `npm test` (runs Jest tests) - **Package**: `npm run package` (creates VSIX) -- **Dependencies**: Use `gulp installDependencies` to fetch .NET/LS components +- **Dependencies**: Use `npm run installDependencies` to fetch .NET/LS components - **Debugging**: See `docs/debugger/` for advanced .NET debugging, including runtime and external library debugging. - **Roslyn Copilot Language Server**: To update/test, see instructions in `CONTRIBUTING.md` (triggers pipeline, checks logs for install, etc.) ## Infrastructure Tasks -- **Tasks Directory**: Build automation is in `tasks/` using Gulp. Key modules: +- **Tasks Directory**: Build automation is in `tasks/` with one script per task under task-area folders such as `tasks/packaging/`, `tasks/tests/`, etc. Key modules: - `testTasks.ts`: Test orchestration for unit/integration tests across components - `offlinePackagingTasks.ts`: VSIX packaging for different platforms (`vsix:release:package:*`) - `componentUpdateTasks.ts`: Automated updates for Roslyn Copilot components - `snapTasks.ts`: Version bumping and changelog management for releases - `gitTasks.ts`: Git operations for automated PR creation and branch management -- **Adding New Tasks**: Create `.ts` file in `tasks/`, define `gulp.task()` functions, require in `gulpfile.ts` +- **Adding New Tasks**: Create a dedicated `.ts` entry script under the matching area in `tasks/` and matching scripts entry in the `package.json` - **Task Patterns**: Use `projectPaths.ts` for consistent path references, follow existing naming conventions (`test:integration:*`, `vsix:*`, etc.) ## Project Conventions & Patterns diff --git a/.github/skills/update-roslyn-version/SKILL.md b/.github/skills/update-roslyn-version/SKILL.md index 4cc0f68773..a8ada0df5d 100644 --- a/.github/skills/update-roslyn-version/SKILL.md +++ b/.github/skills/update-roslyn-version/SKILL.md @@ -45,12 +45,12 @@ Update the `defaults.roslyn` field in `package.json`: } ``` -### Step 3: Run gulp updateRoslynVersion +### Step 3: Run updateRoslynVersion This step acquires the new Roslyn packages and ensures they are in the proper feeds: ```powershell -gulp updateRoslynVersion +npm run updateRoslynVersion ``` This task: @@ -62,7 +62,7 @@ This task: ### Step 4: Get the Previous Roslyn Commit SHA -The commit SHAs are stored in the `.nuspec` files inside the downloaded NuGet packages. After running `gulp updateRoslynVersion`, the new version's package will be cached locally, but you need to explicitly download the old version to get its commit SHA. +The commit SHAs are stored in the `.nuspec` files inside the downloaded NuGet packages. After running `npm run updateRoslynVersion`, the new version's package will be cached locally, but you need to explicitly download the old version to get its commit SHA. **To get the old version's commit SHA:** @@ -82,7 +82,7 @@ The commit SHAs are stored in the `.nuspec` files inside the downloaded NuGet pa ### Step 5: Get the New Roslyn Commit SHA -After running `gulp updateRoslynVersion`, the new version's package is already cached. Extract the commit SHA: +After running `npm run updateRoslynVersion`, the new version's package is already cached. Extract the commit SHA: ```powershell Get-Content "C:\Users\\source\repos\vscode-csharp\out\.nuget\roslyn-language-server.osx-arm64\\roslyn-language-server.osx-arm64.nuspec" | Select-String -Pattern "commit" @@ -183,7 +183,7 @@ For updating from `5.4.0-2.26077.7` to `5.5.0-2.26080.10`: 4. Find new commit from package metadata for version `5.5.0-2.26080.10` 5. Run pr-finder in roslyn repo 6. Update CHANGELOG.md with the output -7. Run `gulp updateRoslynVersion` +7. Run `npm run updateRoslynVersion` 8. Create PR titled "Update roslyn to 5.5.0-2.26080.10" 9. Update changelog with PR number @@ -198,7 +198,7 @@ See [PR #8941](https://github.com/dotnet/vscode-csharp/pull/8941) as an example ## Troubleshooting -### Authentication Issues with gulp updateRoslynVersion +### Authentication Issues with updateRoslynVersion If you encounter authentication errors: 1. Install Azure Artifacts Credential Provider @@ -216,7 +216,7 @@ Ensure: The commit SHAs are embedded in the nuspec files inside the downloaded NuGet packages: -1. After running `gulp updateRoslynVersion`, packages are cached in `out/.nuget/` +1. After running `npm run updateRoslynVersion`, packages are cached in `out/.nuget/` 2. To get the old version's commit, you may need to explicitly download it first: ```powershell dotnet restore "msbuild\server" /p:PackageName=roslyn-language-server.osx-arm64 /p:PackageVersion= --interactive diff --git a/.github/workflows/branch-snap.yml b/.github/workflows/branch-snap.yml index 17640ea2f2..d9165f26d3 100644 --- a/.github/workflows/branch-snap.yml +++ b/.github/workflows/branch-snap.yml @@ -34,9 +34,9 @@ jobs: - name: Update version.json run: | if [ "${{ github.event.inputs.releaseCandidate }}" = "true" ]; then - npx gulp incrementVersion --releaseCandidate=true + npm run incrementVersion -- --releaseCandidate=true else - npx gulp incrementVersion + npm run incrementVersion fi - name: Create version update PR uses: peter-evans/create-pull-request@v4 @@ -63,7 +63,7 @@ jobs: - name: Install dependencies run: npm ci - name: Update version.json for release - run: npx gulp updateVersionForStableRelease + run: npm run updateVersionForStableRelease - name: Commit and push version update run: | git config user.name "github-actions[bot]" diff --git a/.github/workflows/copilot-setup-steps.yml b/.github/workflows/copilot-setup-steps.yml index 17b8a521a7..49e1fa4b18 100644 --- a/.github/workflows/copilot-setup-steps.yml +++ b/.github/workflows/copilot-setup-steps.yml @@ -40,16 +40,6 @@ jobs: - name: Install dependencies run: npm ci - # Install gulp globally (required for build tasks) - - name: Install gulp - run: npm install -g gulp - # Install vsce (needed for packaging tasks) - name: Install vsce run: npm install -g vsce - - # Install server dependencies (needed for integration tests and running) - - name: Install dependencies - run: gulp installDependencies - - diff --git a/.github/workflows/update-changelog.yml b/.github/workflows/update-changelog.yml index 1628a2041e..26701b2e6f 100644 --- a/.github/workflows/update-changelog.yml +++ b/.github/workflows/update-changelog.yml @@ -26,7 +26,7 @@ jobs: - name: Install dependencies run: npm ci - name: Update CHANGELOG - run: npx gulp updateChangelog + run: npm run updateChangelog - name: Create update PR uses: peter-evans/create-pull-request@v4 with: diff --git a/.vscode/launch.json b/.vscode/launch.json index d9b513857a..9174b7ab44 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -177,10 +177,10 @@ { "type": "node", "request": "launch", - "name": "Debug gulp task", + "name": "Debug task", "preLaunchTask": "build", - "program": "${workspaceFolder}/node_modules/gulp/bin/gulp.js", - "args": ["${input:gulpTaskName}"], + "program": "${workspaceFolder}/node_modules/ts-node/dist/bin.js", + "args": ["tasks/${input:taskScript}"], "cwd": "${workspaceFolder}" }, { @@ -188,8 +188,8 @@ "request": "launch", "name": "Update OmniSharp package dependencies", "preLaunchTask": "build", - "program": "${workspaceFolder}/node_modules/gulp/bin/gulp.js", - "args": ["updatePackageDependencies"], + "program": "${workspaceFolder}/node_modules/ts-node/dist/bin.js", + "args": ["tasks/debugger/updatePackageDependencies.ts"], "env": { "NEW_DEPS_ID": "OmniSharp", "NEW_DEPS_URLS": "https://roslynomnisharp.blob.core.windows.net/releases/1.39.14/omnisharp-linux-x64.zip,https://roslynomnisharp.blob.core.windows.net/releases/1.39.14/omnisharp-linux-x86.zip,https://roslynomnisharp.blob.core.windows.net/releases/1.39.14/omnisharp-linux-arm64.zip,https://roslynomnisharp.blob.core.windows.net/releases/1.39.14/omnisharp-osx.zip,https://roslynomnisharp.blob.core.windows.net/releases/1.39.14/omnisharp-win-x64.zip,https://roslynomnisharp.blob.core.windows.net/releases/1.39.14/omnisharp-win-arm64.zip,https://roslynomnisharp.blob.core.windows.net/releases/1.39.14/omnisharp-linux-musl-x64-net6.0.zip,https://roslynomnisharp.blob.core.windows.net/releases/1.39.14/omnisharp-linux-musl-arm64-net6.0.zip,https://roslynomnisharp.blob.core.windows.net/releases/1.39.14/omnisharp-linux-x64-net6.0.zip,https://roslynomnisharp.blob.core.windows.net/releases/1.39.14/omnisharp-linux-arm64-net6.0.zip,https://roslynomnisharp.blob.core.windows.net/releases/1.39.14/omnisharp-osx-x64-net6.0.zip,https://roslynomnisharp.blob.core.windows.net/releases/1.39.14/omnisharp-osx-arm64-net6.0.zip,https://roslynomnisharp.blob.core.windows.net/releases/1.39.14/omnisharp-win-x64-net6.0.zip,https://roslynomnisharp.blob.core.windows.net/releases/1.39.14/omnisharp-win-arm64-net6.0.zip", @@ -203,8 +203,8 @@ "request": "launch", "name": "Update razor telemetry package dependencies", "preLaunchTask": "build", - "program": "${workspaceFolder}/node_modules/gulp/bin/gulp.js", - "args": ["updatePackageDependencies"], + "program": "${workspaceFolder}/node_modules/ts-node/dist/bin.js", + "args": ["tasks/debugger/updatePackageDependencies.ts"], "env": { "NEW_DEPS_URLS": "https://download.visualstudio.microsoft.com/download/pr/534f8426-a4f4-4b2d-b3ba-c4e16a38c48c/704e369c5905f9ece819ebce77fb78d8/devkittelemetry-linux-arm64-7.0.0-preview.24178.4.zip,https://download.visualstudio.microsoft.com/download/pr/534f8426-a4f4-4b2d-b3ba-c4e16a38c48c/4049a66147717a53860bbc969bf32faa/devkittelemetry-linux-musl-arm64-7.0.0-preview.24178.4.zip,https://download.visualstudio.microsoft.com/download/pr/534f8426-a4f4-4b2d-b3ba-c4e16a38c48c/c75e84ff813be5c9833d96dc2066a364/devkittelemetry-linux-musl-x64-7.0.0-preview.24178.4.zip,https://download.visualstudio.microsoft.com/download/pr/534f8426-a4f4-4b2d-b3ba-c4e16a38c48c/f58cf629939f0df77d142be881f9e233/devkittelemetry-linux-x64-7.0.0-preview.24178.4.zip,https://download.visualstudio.microsoft.com/download/pr/534f8426-a4f4-4b2d-b3ba-c4e16a38c48c/1c912419ea45c8d95cfa28a8a04640dc/devkittelemetry-osx-arm64-7.0.0-preview.24178.4.zip,https://download.visualstudio.microsoft.com/download/pr/534f8426-a4f4-4b2d-b3ba-c4e16a38c48c/36545ba0998f1fc380e877e38b2f35f1/devkittelemetry-osx-x64-7.0.0-preview.24178.4.zip,https://download.visualstudio.microsoft.com/download/pr/534f8426-a4f4-4b2d-b3ba-c4e16a38c48c/0a32698e8ba1ab93489d79f34f8ae8d0/devkittelemetry-platformagnostic-7.0.0-preview.24178.4.zip,https://download.visualstudio.microsoft.com/download/pr/534f8426-a4f4-4b2d-b3ba-c4e16a38c48c/4f16ff826fedd33ad80d265c5409588b/devkittelemetry-win-arm64-7.0.0-preview.24178.4.zip,https://download.visualstudio.microsoft.com/download/pr/534f8426-a4f4-4b2d-b3ba-c4e16a38c48c/5a98d8f4e481dbb7ae3cdb3695b75c46/devkittelemetry-win-x64-7.0.0-preview.24178.4.zip", "NEW_DEPS_VERSION": "7.0.0-preview.24178.4", @@ -217,8 +217,8 @@ "request": "launch", "name": "Generate debugger options schema", "preLaunchTask": "build", - "program": "${workspaceFolder}/node_modules/gulp/bin/gulp.js", - "args": ["generateOptionsSchema"], + "program": "${workspaceFolder}/node_modules/ts-node/dist/bin.js", + "args": ["tasks/debugger/generateOptionsSchema.ts"], "cwd": "${workspaceFolder}" }, { @@ -226,8 +226,8 @@ "request": "launch", "name": "Razor Cohost integration tests", "preLaunchTask": "build", - "program": "${workspaceFolder}/node_modules/gulp/bin/gulp.js", - "args": ["test:integration:razor:cohost"], + "program": "${workspaceFolder}/node_modules/ts-node/dist/bin.js", + "args": ["tasks/tests/testIntegrationRazorCohost.ts"], "cwd": "${workspaceFolder}" } ], @@ -239,8 +239,8 @@ "options": ["singleCsproj", "RazorApp", "slnWithCsproj", "slnFilterWithCsproj", "slnWithGenerator"] }, { - "id": "gulpTaskName", - "description": "The name of the gulp task to debug", + "id": "taskScript", + "description": "The task script path under tasks (ex. `tests/testUnit.ts`)", "type": "promptString" } ] diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7b9294cdf7..82334a12e5 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -38,9 +38,7 @@ Follow these steps to build, run, and test the repository: If you have the ability to run powershell, you can invoke "init.ps1" from the root of the repo. If not, the following steps will get build going for you as well: -1. Run `npm i` - This command installs the project dependencies. -2. Run `npm i -g gulp` - This command installs Gulp globally. -3. Run `gulp installDependencies` - This command downloads the various dependencies as specified by the version in the [package.json](package.json) file. +1. Run `npm ci` - This command installs the project dependencies. **Note**: Authentication with `ado-npm-auth` is only required when adding new packages to the feeds. For regular development with existing dependencies, authentication is not necessary. See the [Updating NPM packages](#updating-npm-packages) section for details. @@ -164,7 +162,7 @@ To add new packages, you must authenticate by running: ## Creating VSIX Packages for the Extension -To package this extension, we need to create VSIX Packages. The VSIX packages can be created using the gulp command `gulp vsix:release:package`. This will create all the platform specific VSIXs that you can then install manually in VSCode. +To package this extension, we need to create VSIX Packages. The VSIX packages can be created using the command `npm run vsix:release:package`. This will create all the platform specific VSIXs that you can then install manually in VSCode. ## Updating the `Roslyn` Language Server Version @@ -174,7 +172,7 @@ To update the version of the roslyn server used by the extension do the followin 1. Find the the Roslyn signed build you want from [here](https://dnceng.visualstudio.com/internal/_build?definitionId=327&_a=summary). Typically the latest successful build of main is fine. 2. In the official build stage, look for the `Publish Assets` step. In there you will see it publishing the `Microsoft.CodeAnalysis.LanguageServer.neutral` package with some version, e.g. `4.6.0-3.23158.4`. Take note of that version number. 3. In the [package.json](package.json) inside the `defaults` section update the `roslyn` key to point to the version number you found above in step 2. -4. Ensure that version of the package is in the proper feeds by running `gulp updateRoslynVersion`. Note: you may need to install the [Azure Artifacts NuGet Credential Provider](https://github.com/microsoft/artifacts-credprovider#installation-on-windows) to run interactive authentication. +4. Ensure that version of the package is in the proper feeds by running `npm run updateRoslynVersion`. Note: you may need to install the [Azure Artifacts NuGet Credential Provider](https://github.com/microsoft/artifacts-credprovider#installation-on-windows) to run interactive authentication. 5. Build and test the change. If everything looks good, submit a PR. ## Updating the `Roslyn` Copilot Language Server version diff --git a/azure-pipelines/build-vsix.yml b/azure-pipelines/build-vsix.yml index d6a7168512..93cd734d7b 100644 --- a/azure-pipelines/build-vsix.yml +++ b/azure-pipelines/build-vsix.yml @@ -157,9 +157,9 @@ stages: - pwsh: | Write-Host "Building VSIXs for channel $(channel)" if ("$(channel)" -eq "Release") { - gulp vsix:release:package + npm run vsix:release:package } else { - gulp vsix:release:package --prerelease + npm run vsix:release:package -- --prerelease } displayName: 'Build VSIXs' env: @@ -167,7 +167,7 @@ stages: SYSTEM_ACCESSTOKEN: $(System.AccessToken) - ${{ if eq(parameters.isOfficial, true) }}: - - script: gulp signVsix + - script: npm run signVsix condition: succeeded() displayName: 'Sign VSIXs' env: @@ -181,7 +181,7 @@ stages: TargetFolder: '$(Build.SourcesDirectory)/Packages/VSIX_$(channel)' - ${{ if eq(parameters.isOfficial, true) }}: - - script: gulp verifyVsix + - script: npm run verifyVsix condition: and( succeeded(), eq('$(SignType)', 'Real')) displayName: šŸ”‘ Verify VSIX Signature Files workingDirectory: '$(Build.SourcesDirectory)/Packages/VSIX_$(channel)' diff --git a/azure-pipelines/loc.yml b/azure-pipelines/loc.yml index d12735f869..59eb12003d 100644 --- a/azure-pipelines/loc.yml +++ b/azure-pipelines/loc.yml @@ -66,7 +66,6 @@ extends: fetchDepth: 0 - pwsh: | npm install - npm install -g gulp --globalconfig $(Build.SourcesDirectory)/.npmrc displayName: 'Install tools' - pwsh: npm run compile displayName: 'Compile' @@ -87,7 +86,7 @@ extends: LclPackageId: 'LCL-JUNO-PROD-VSCODECS' - pwsh: npm run l10nDevImportXlf displayName: 'Import xlf to json.' - - pwsh: gulp 'publish localization content' --userName dotnet-bot --email dotnet-bot@dotnetfoundation.org --commitSha $(Build.SourceVersion) --targetRemoteRepo vscode-csharp --baseBranch 'main' + - pwsh: npm run publishLocalizationContent -- --userName dotnet-bot --email dotnet-bot@dotnetfoundation.org --commitSha $(Build.SourceVersion) --targetRemoteRepo vscode-csharp --baseBranch 'main' displayName: 'Create PR in GitHub.' env: GitHubPAT: $(BotAccount-dotnet-bot-repo-PAT) diff --git a/azure-pipelines/prereqs.yml b/azure-pipelines/prereqs.yml index f8748db708..4f72b47df7 100644 --- a/azure-pipelines/prereqs.yml +++ b/azure-pipelines/prereqs.yml @@ -20,7 +20,7 @@ steps: inputs: useGlobalJson: true workingDirectory: $(Build.SourcesDirectory)/msbuild - + - script: dotnet --info displayName: Display dotnet info @@ -40,5 +40,4 @@ steps: - script: | npm ci - npm i -g gulp displayName: 'Install dependencies' diff --git a/azure-pipelines/publish-roslyn-copilot.yml b/azure-pipelines/publish-roslyn-copilot.yml index b0335762a6..d4cd1661d4 100644 --- a/azure-pipelines/publish-roslyn-copilot.yml +++ b/azure-pipelines/publish-roslyn-copilot.yml @@ -64,12 +64,11 @@ extends: storage: "$(AzStorage)" ContainerName: "$(AzContainerName)" - - pwsh: | + - pwsh: | npm install - npm install -g gulp displayName: 'Install tools' - - pwsh: gulp 'publish roslyn copilot' --userName dotnet-maestro-bot --email dotnet-maestro-bot@microsoft.com --stagingDirectory '$(Build.ArtifactStagingDirectory)/staging' + - pwsh: npm run publishRoslynCopilot -- --userName dotnet-maestro-bot --email dotnet-maestro-bot@microsoft.com --stagingDirectory '$(Build.ArtifactStagingDirectory)/staging' displayName: 'Create component update PR' env: GitHubPAT: $(BotAccount-dotnet-maestro-bot-PAT) diff --git a/azure-pipelines/release.yml b/azure-pipelines/release.yml index baa225a080..17a93d8222 100644 --- a/azure-pipelines/release.yml +++ b/azure-pipelines/release.yml @@ -54,7 +54,7 @@ extends: - pwsh: | $artifactVersion = '$(resources.pipeline.officialBuildCI.runName)' $artifactBranchName = '$(resources.pipeline.officialBuildCI.sourceBranch)' -replace 'refs/heads/','' - + # Set the BuildNumber in the form `# Publish prerelease v2.69.22 #` to improve readability in AzDO $buildNumberName = "Publish $artifactBranchName $artifactVersion" if ('${{ parameters.test }}' -eq 'true') { @@ -164,12 +164,10 @@ extends: - pwsh: | npm ci npm install - npm install -g gulp - gulp installDependencies displayName: 'Install dependencies.' - pwsh: | # build number is generated by nerdbank git versioning and set to AzureDev - gulp createTags --releaseVersion $(resources.pipeline.officialBuildCI.runName) --releaseCommit $(resources.pipeline.officialBuildCI.sourceCommit) --dryRun ${{ parameters.test }} --prerelease $(isPrerelease) + npm run createTags -- --releaseVersion $(resources.pipeline.officialBuildCI.runName) --releaseCommit $(resources.pipeline.officialBuildCI.sourceCommit) --dryRun ${{ parameters.test }} --prerelease $(isPrerelease) env: GitHubPAT: $(BotAccount-dotnet-bot-content-rw-grained-pat) displayName: 'Create release tags' diff --git a/azure-pipelines/test-prereqs.yml b/azure-pipelines/test-prereqs.yml index ee918b2128..a2da9abafd 100644 --- a/azure-pipelines/test-prereqs.yml +++ b/azure-pipelines/test-prereqs.yml @@ -1,9 +1,5 @@ steps: -# We need to download the roslyn language server for the current platform to run integration tests against it. -- script: gulp installDependencies - displayName: 'Install Roslyn Language Server' - - script: /usr/bin/Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 & displayName: 'Activate screen emulation' condition: eq(variables['Agent.OS'], 'Linux') diff --git a/gulpfile.ts b/gulpfile.ts deleted file mode 100644 index dedaf17128..0000000000 --- a/gulpfile.ts +++ /dev/null @@ -1,15 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ - -require('./tasks/testTasks'); -require('./tasks/offlinePackagingTasks'); -require('./tasks/backcompatTasks'); -require('./tasks/localizationTasks'); -require('./tasks/createTagsTasks'); -require('./tasks/debuggerTasks'); -require('./tasks/snapTasks'); -require('./tasks/signingTasks'); -require('./tasks/profilingTasks'); -require('./tasks/componentUpdateTasks'); diff --git a/init.ps1 b/init.ps1 index 1a748e3606..c96fd57c60 100644 --- a/init.ps1 +++ b/init.ps1 @@ -18,14 +18,13 @@ function Run-Command($command, $arguments, $errorMsg) { } } - Push-Location $PSScriptRoot try { - Write-Host "`n[1/5] Installing ado-npm-auth globally..." -ForegroundColor Cyan + Write-Host "`n[1/3] Installing ado-npm-auth globally..." -ForegroundColor Cyan Run-Command "npm" @("install", "-g", "ado-npm-auth") "Failed to install ado-npm-auth." - Write-Host "`n[2/5] Authenticating with Azure DevOps..." -ForegroundColor Cyan + Write-Host "`n[2/3] Authenticating with Azure DevOps..." -ForegroundColor Cyan if (Test-Path ".npmrc") { Run-Command "ado-npm-auth" @("-c", ".npmrc") "Authentication failed." } else { @@ -33,14 +32,8 @@ try { throw ".npmrc file not found in the current directory." } - Write-Host "`n[3/5] Installing project dependencies..." -ForegroundColor Cyan - Run-Command "npm" @("install") "Failed to install project dependencies." - - Write-Host "`n[4/5] Installing Gulp globally..." -ForegroundColor Cyan - Run-Command "npm" @("install", "-g", "gulp") "Failed to install Gulp globally." - - Write-Host "`n[5/5] Running gulp installDependencies..." -ForegroundColor Cyan - Run-Command "gulp" @("installDependencies") "Failed to run 'gulp installDependencies'." + Write-Host "`n[3/3] Installing project dependencies..." -ForegroundColor Cyan + Run-Command "npm" @("ci") "Failed to install project dependencies." Write-Host "`nāœ… Setup complete." -ForegroundColor Green } diff --git a/jest.config.ts b/jest.config.ts index 43dcd9327e..54ca228dea 100644 --- a/jest.config.ts +++ b/jest.config.ts @@ -18,7 +18,7 @@ const config: Config = { ], // Reporters are a global jest configuration property and cannot be set in the project jest config. // This configuration will create a 'junit.xml' file in the output directory, no matter which test project is running. - // In order to not overwrite test results in CI, we configure a unique output file name in the gulp testTasks. + // In order to not overwrite test results in CI, we configure a unique output file name in the testTasks. reporters: [ 'default', [ diff --git a/msbuild/signing/SIGNING.md b/msbuild/signing/SIGNING.md index 4928a851cc..fa52bbf5b4 100644 --- a/msbuild/signing/SIGNING.md +++ b/msbuild/signing/SIGNING.md @@ -13,20 +13,20 @@ Official builds are responsible for signing. We only real sign builds from the ### Signing JS As part of packaging, the extension TS/JS code is compiled/minified into the `dist/` folder which gets distributed inside the VSIX. The contents of `dist/` are generated by the `vscode:prepublish` NPM target, which is run by `vsce` during packaging. -After the JS code is generated, but before it gets packaged we need to sign it. This is handled by running the `gulp signJs` target as a part of `vscode:prepublish`. Internally the gulp task delegates to the `signJs/signJs.proj` project to configure what and how to sign using MicroBuild. +After the JS code is generated, but before it gets packaged we need to sign it. This is handled by running the `signJs` target as a part of `vscode:prepublish`. Internally the task delegates to the `signJs/signJs.proj` project to configure what and how to sign using MicroBuild. ### Signing VSIX Once we've generated the VSIX with the signed JS contents, we also need to sign the VSIX. VSIX signing for VSCode is a bit different from VS. Instead of submitting the VSIX itself to be signed, we submit a copy of the manifest file to the signing service. -To do this, as the last step of VSIX packaging (in `gulp vsix:release:package`) we call out to `vsce generate-manifest` to generate the manifest file for each VSIX. Once the task is finished, every `.vsix` will be paired with a `.manifest` file inside the `vsix/` folder. +To do this, as the last step of VSIX packaging (in `vsix:release:package`) we call out to `vsce generate-manifest` to generate the manifest file for each VSIX. Once the task is finished, every `.vsix` will be paired with a `.manifest` file inside the `vsix/` folder. -The next step is to copy the manifest file to a `.signature.p7s` file which gets submitted to the signing service (and replaced with the signed version). The `signVsix.proj` (invoked via the `gulp signVsix` task) copies and transforms the manifest file and submits it to the signing service. +The next step is to copy the manifest file to a `.signature.p7s` file which gets submitted to the signing service (and replaced with the signed version). The `signVsix.proj` (invoked via `npm run signVsix`) copies and transforms the manifest file and submits it to the signing service. Finally, when we actually publish the extension, we must pass upload the vsix, manifest file, and signed signature file to `vsce`. # Running test signing locally To test various signing workflows, you may need to run signing locally. -1. Run `gulp installSignPlugin` - this will install the MicroBuild signing plugin to your global nuget packages directory. This is required to make the signing targets on the various signing projects actually run. In CI, this is installed via a pipeline step. -2. To test JS signing, run `npm run vscode:prepublish` (or the `gulp signJs` task to skip generation of `dist/`). You can verify the JS is signed by checking for the 'Digital Signatures' tab on the file properties in Windows. The binlog, in `out/logs/signJs.binlog` will have details on the signing that took place. If you do not see a 'Sign' target running, then signing did not run. -3. To test VSIX signing, first generate the VSIX's as normal. Then run the `gulp signVsix` target. If signing ran successfully, the VSIX's should be updated in-place and have a `package/services/digital-signature` folder inside of them. For more details on the signing, see the `out/logs/signVsix.binlog`. \ No newline at end of file +1. Run `npm run installSignPlugin` - this will install the MicroBuild signing plugin to your global nuget packages directory. This is required to make the signing targets on the various signing projects actually run. In CI, this is installed via a pipeline step. +2. To test JS signing, run `npm run vscode:prepublish` (or `npm run signJs` to skip generation of `dist/`). You can verify the JS is signed by checking for the 'Digital Signatures' tab on the file properties in Windows. The binlog, in `out/logs/signJs.binlog` will have details on the signing that took place. If you do not see a 'Sign' target running, then signing did not run. +3. To test VSIX signing, first generate the VSIX's as normal. Then run `npm run signVsix`. If signing ran successfully, the VSIX's should be updated in-place and have a `package/services/digital-signature` folder inside of them. For more details on the signing, see the `out/logs/signVsix.binlog`. diff --git a/package-lock.json b/package-lock.json index d099f30f69..114c21041d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,17 +11,15 @@ "dependencies": { "@github/copilot-language-server": "1.290.0", "@microsoft/servicehub-framework": "4.2.99-beta", - "@octokit/rest": "^20.0.1", - "@vscode/debugprotocol": "1.56.0", "@vscode/extension-telemetry": "^0.9.0", "@vscode/js-debug-browsers": "^1.1.0", + "archiver": "5.3.0", "execa": "4.0.0", "fs-extra": "11.3.0", "http-proxy-agent": "7.0.0", "https-proxy-agent": "7.0.2", "jsonc-parser": "3.0.0", "microsoft.aspnetcore.razor.vscode": "https://download.visualstudio.microsoft.com/download/pr/aee63398-023f-48db-bba2-30162c68f0c4/0af42abab690d5de903a4a814d6aedc1/microsoft.aspnetcore.razor.vscode-7.0.0-preview.23363.1.tgz", - "nerdbank-gitversioning": "^3.6.79-alpha", "node-machine-id": "1.1.12", "ps-list": "7.2.0", "rxjs": "6.6.7", @@ -32,14 +30,13 @@ "vscode-languageserver-protocol": "3.17.6-next.15", "vscode-languageserver-textdocument": "1.0.12", "vscode-languageserver-types": "3.17.6-next.6", - "vscode-nls": "5.0.1", "yauzl": "2.10.0" }, "devDependencies": { "@jest/globals": "^29.6.2", + "@octokit/rest": "^20.0.1", "@types/archiver": "5.1.0", "@types/fs-extra": "11.0.4", - "@types/gulp": "4.0.5", "@types/minimist": "1.2.1", "@types/node": "24.10.8", "@types/semver": "7.3.13", @@ -52,7 +49,6 @@ "@vscode/l10n-dev": "^0.0.35", "@vscode/test-electron": "2.3.8", "@vscode/vsce": "3.7.0", - "archiver": "5.3.0", "esbuild": "^0.25.0", "eslint": "^8.43.0", "eslint-config-prettier": "^8.8.0", @@ -63,11 +59,10 @@ "eslint-plugin-promise": "^6.1.1", "eslint-plugin-unicorn": "^47.0.0", "get-port": "5.1.1", - "gulp": "5.0.0", "jest": "^29.6.2", "jest-junit": "^16.0.0", "mock-http-server": "1.4.2", - "octokit": "^3.1.0", + "nerdbank-gitversioning": "^3.6.79-alpha", "prettier": "2.8.8", "tmp": "0.2.4", "ts-jest": "^29.1.1", @@ -1567,29 +1562,6 @@ "integrity": "sha1-MnNnbwzy6rQLP0TQhay7fwijnYo=", "license": "MIT" }, - "node_modules/@gulpjs/messages": { - "version": "1.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@gulpjs/messages/-/messages-1.1.0.tgz", - "integrity": "sha1-lOcJeP9nat5UH6q0WcN64McJXlo=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/@gulpjs/to-absolute-glob": { - "version": "4.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@gulpjs/to-absolute-glob/-/to-absolute-glob-4.0.0.tgz", - "integrity": "sha1-H8JGDTlT4dm58t/bS8yZ2kcQwCE=", - "dev": true, - "license": "MIT", - "dependencies": { - "is-negated-glob": "^1.0.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.14", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", @@ -2383,234 +2355,20 @@ "node": ">= 8" } }, - "node_modules/@octokit/app": { - "version": "14.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/app/-/app-14.1.0.tgz", - "integrity": "sha1-LUkdxwdGdzuD9h7fXFaBfdfThUs=", - "dev": true, - "license": "MIT", - "dependencies": { - "@octokit/auth-app": "^6.0.0", - "@octokit/auth-unauthenticated": "^5.0.0", - "@octokit/core": "^5.0.0", - "@octokit/oauth-app": "^6.0.0", - "@octokit/plugin-paginate-rest": "^9.0.0", - "@octokit/types": "^12.0.0", - "@octokit/webhooks": "^12.0.4" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/app/node_modules/@octokit/openapi-types": { - "version": "20.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/openapi-types/-/openapi-types-20.0.0.tgz", - "integrity": "sha1-nsLaoAkO64Ze4UdjbgwA9zeQxuU=", - "dev": true, - "license": "MIT" - }, - "node_modules/@octokit/app/node_modules/@octokit/types": { - "version": "12.6.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/types/-/types-12.6.0.tgz", - "integrity": "sha1-gQD7nu7f4IOq5mRzvZexW2Ku3LI=", - "dev": true, - "license": "MIT", - "dependencies": { - "@octokit/openapi-types": "^20.0.0" - } - }, - "node_modules/@octokit/auth-app": { - "version": "6.1.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/auth-app/-/auth-app-6.1.2.tgz", - "integrity": "sha1-Gf8dfy/6XtYw1Gj6RTMOpZs5tHw=", - "dev": true, - "license": "MIT", - "dependencies": { - "@octokit/auth-oauth-app": "^7.1.0", - "@octokit/auth-oauth-user": "^4.1.0", - "@octokit/request": "^8.3.1", - "@octokit/request-error": "^5.1.0", - "@octokit/types": "^13.1.0", - "deprecation": "^2.3.1", - "lru-cache": "^10.0.0", - "universal-github-app-jwt": "^1.1.2", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/auth-app/node_modules/@octokit/openapi-types": { - "version": "22.2.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", - "integrity": "sha1-dap9zUQIIdmd72pgtfAUIHrklo4=", - "dev": true, - "license": "MIT" - }, - "node_modules/@octokit/auth-app/node_modules/@octokit/types": { - "version": "13.5.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/types/-/types-13.5.1.tgz", - "integrity": "sha1-VoWpHylRld3/85cjsJOw35YJzm4=", - "dev": true, - "license": "MIT", - "dependencies": { - "@octokit/openapi-types": "^22.2.0" - } - }, - "node_modules/@octokit/auth-app/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha1-QQ/IoXtw5ZgBPfJXwkRrfzOD8Rk=", - "dev": true, - "license": "ISC" - }, - "node_modules/@octokit/auth-oauth-app": { - "version": "7.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/auth-oauth-app/-/auth-oauth-app-7.1.0.tgz", - "integrity": "sha1-0PdOGevVpIKct4DBB87dbIlPIPw=", - "dev": true, - "license": "MIT", - "dependencies": { - "@octokit/auth-oauth-device": "^6.1.0", - "@octokit/auth-oauth-user": "^4.1.0", - "@octokit/request": "^8.3.1", - "@octokit/types": "^13.0.0", - "@types/btoa-lite": "^1.0.0", - "btoa-lite": "^1.0.0", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/auth-oauth-app/node_modules/@octokit/openapi-types": { - "version": "22.2.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", - "integrity": "sha1-dap9zUQIIdmd72pgtfAUIHrklo4=", - "dev": true, - "license": "MIT" - }, - "node_modules/@octokit/auth-oauth-app/node_modules/@octokit/types": { - "version": "13.5.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/types/-/types-13.5.1.tgz", - "integrity": "sha1-VoWpHylRld3/85cjsJOw35YJzm4=", - "dev": true, - "license": "MIT", - "dependencies": { - "@octokit/openapi-types": "^22.2.0" - } - }, - "node_modules/@octokit/auth-oauth-device": { - "version": "6.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/auth-oauth-device/-/auth-oauth-device-6.1.0.tgz", - "integrity": "sha1-+GghOj2wX+J+aNH8YHUCoyI3ndk=", - "dev": true, - "license": "MIT", - "dependencies": { - "@octokit/oauth-methods": "^4.1.0", - "@octokit/request": "^8.3.1", - "@octokit/types": "^13.0.0", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/auth-oauth-device/node_modules/@octokit/openapi-types": { - "version": "22.2.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", - "integrity": "sha1-dap9zUQIIdmd72pgtfAUIHrklo4=", - "dev": true, - "license": "MIT" - }, - "node_modules/@octokit/auth-oauth-device/node_modules/@octokit/types": { - "version": "13.5.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/types/-/types-13.5.1.tgz", - "integrity": "sha1-VoWpHylRld3/85cjsJOw35YJzm4=", - "dev": true, - "license": "MIT", - "dependencies": { - "@octokit/openapi-types": "^22.2.0" - } - }, - "node_modules/@octokit/auth-oauth-user": { - "version": "4.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/auth-oauth-user/-/auth-oauth-user-4.1.0.tgz", - "integrity": "sha1-MuVSn4vZYa+YOaH4xqsMitIYTu4=", - "dev": true, - "license": "MIT", - "dependencies": { - "@octokit/auth-oauth-device": "^6.1.0", - "@octokit/oauth-methods": "^4.1.0", - "@octokit/request": "^8.3.1", - "@octokit/types": "^13.0.0", - "btoa-lite": "^1.0.0", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/auth-oauth-user/node_modules/@octokit/openapi-types": { - "version": "22.2.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", - "integrity": "sha1-dap9zUQIIdmd72pgtfAUIHrklo4=", - "dev": true, - "license": "MIT" - }, - "node_modules/@octokit/auth-oauth-user/node_modules/@octokit/types": { - "version": "13.5.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/types/-/types-13.5.1.tgz", - "integrity": "sha1-VoWpHylRld3/85cjsJOw35YJzm4=", - "dev": true, - "license": "MIT", - "dependencies": { - "@octokit/openapi-types": "^22.2.0" - } - }, "node_modules/@octokit/auth-token": { "version": "4.0.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/auth-token/-/auth-token-4.0.0.tgz", "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==", - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/auth-unauthenticated": { - "version": "5.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/auth-unauthenticated/-/auth-unauthenticated-5.0.1.tgz", - "integrity": "sha1-2AMiEXKDMwaLLge1OZfCnlmgNQc=", "dev": true, - "license": "MIT", - "dependencies": { - "@octokit/request-error": "^5.0.0", - "@octokit/types": "^12.0.0" - }, "engines": { "node": ">= 18" } }, - "node_modules/@octokit/auth-unauthenticated/node_modules/@octokit/openapi-types": { - "version": "20.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/openapi-types/-/openapi-types-20.0.0.tgz", - "integrity": "sha1-nsLaoAkO64Ze4UdjbgwA9zeQxuU=", - "dev": true, - "license": "MIT" - }, - "node_modules/@octokit/auth-unauthenticated/node_modules/@octokit/types": { - "version": "12.6.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/types/-/types-12.6.0.tgz", - "integrity": "sha1-gQD7nu7f4IOq5mRzvZexW2Ku3LI=", - "dev": true, - "license": "MIT", - "dependencies": { - "@octokit/openapi-types": "^20.0.0" - } - }, "node_modules/@octokit/core": { "version": "5.2.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/core/-/core-5.2.2.tgz", "integrity": "sha1-JSgFcy3ptOjk9ljTS4DEybJTR2E=", + "dev": true, "license": "MIT", "dependencies": { "@octokit/auth-token": "^4.0.0", @@ -2629,12 +2387,14 @@ "version": "24.2.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/openapi-types/-/openapi-types-24.2.0.tgz", "integrity": "sha1-PVXDLqwNONoacIOpw7DMp3kk99M=", + "dev": true, "license": "MIT" }, "node_modules/@octokit/core/node_modules/@octokit/types": { "version": "13.10.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/types/-/types-13.10.0.tgz", "integrity": "sha1-PnxrGcAjbCcGVuTqZmFIwrUf0aM=", + "dev": true, "license": "MIT", "dependencies": { "@octokit/openapi-types": "^24.2.0" @@ -2644,6 +2404,7 @@ "version": "9.0.6", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/endpoint/-/endpoint-9.0.6.tgz", "integrity": "sha1-EU2RIQj+aS2LE5z+f8CEbf0RtsA=", + "dev": true, "license": "MIT", "dependencies": { "@octokit/types": "^13.1.0", @@ -2657,12 +2418,14 @@ "version": "24.2.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/openapi-types/-/openapi-types-24.2.0.tgz", "integrity": "sha1-PVXDLqwNONoacIOpw7DMp3kk99M=", + "dev": true, "license": "MIT" }, "node_modules/@octokit/endpoint/node_modules/@octokit/types": { "version": "13.10.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/types/-/types-13.10.0.tgz", "integrity": "sha1-PnxrGcAjbCcGVuTqZmFIwrUf0aM=", + "dev": true, "license": "MIT", "dependencies": { "@octokit/openapi-types": "^24.2.0" @@ -2672,6 +2435,7 @@ "version": "7.1.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/graphql/-/graphql-7.1.1.tgz", "integrity": "sha1-ednz0Mlqj9E9ZBhv5cM2BtSLecw=", + "dev": true, "license": "MIT", "dependencies": { "@octokit/request": "^8.4.1", @@ -2686,136 +2450,24 @@ "version": "24.2.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/openapi-types/-/openapi-types-24.2.0.tgz", "integrity": "sha1-PVXDLqwNONoacIOpw7DMp3kk99M=", + "dev": true, "license": "MIT" }, "node_modules/@octokit/graphql/node_modules/@octokit/types": { "version": "13.10.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/types/-/types-13.10.0.tgz", "integrity": "sha1-PnxrGcAjbCcGVuTqZmFIwrUf0aM=", - "license": "MIT", - "dependencies": { - "@octokit/openapi-types": "^24.2.0" - } - }, - "node_modules/@octokit/oauth-app": { - "version": "6.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/oauth-app/-/oauth-app-6.1.0.tgz", - "integrity": "sha1-IsJ29q0jZMaZmDe/3V2cEJKDhyY=", - "dev": true, - "license": "MIT", - "dependencies": { - "@octokit/auth-oauth-app": "^7.0.0", - "@octokit/auth-oauth-user": "^4.0.0", - "@octokit/auth-unauthenticated": "^5.0.0", - "@octokit/core": "^5.0.0", - "@octokit/oauth-authorization-url": "^6.0.2", - "@octokit/oauth-methods": "^4.0.0", - "@types/aws-lambda": "^8.10.83", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/oauth-authorization-url": { - "version": "6.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/oauth-authorization-url/-/oauth-authorization-url-6.0.2.tgz", - "integrity": "sha1-zILKKcxeM5yZIWcvOfKz9cjrbvI=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/oauth-methods": { - "version": "4.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/oauth-methods/-/oauth-methods-4.1.0.tgz", - "integrity": "sha1-FAOsnE1OJ3ki/dxMifqKeC+PeRs=", - "dev": true, - "license": "MIT", - "dependencies": { - "@octokit/oauth-authorization-url": "^6.0.2", - "@octokit/request": "^8.3.1", - "@octokit/request-error": "^5.1.0", - "@octokit/types": "^13.0.0", - "btoa-lite": "^1.0.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/oauth-methods/node_modules/@octokit/openapi-types": { - "version": "22.2.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", - "integrity": "sha1-dap9zUQIIdmd72pgtfAUIHrklo4=", - "dev": true, - "license": "MIT" - }, - "node_modules/@octokit/oauth-methods/node_modules/@octokit/types": { - "version": "13.5.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/types/-/types-13.5.1.tgz", - "integrity": "sha1-VoWpHylRld3/85cjsJOw35YJzm4=", - "dev": true, - "license": "MIT", - "dependencies": { - "@octokit/openapi-types": "^22.2.0" - } - }, - "node_modules/@octokit/openapi-types": { - "version": "18.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/openapi-types/-/openapi-types-18.0.0.tgz", - "integrity": "sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw==", - "dev": true - }, - "node_modules/@octokit/plugin-paginate-graphql": { - "version": "4.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/plugin-paginate-graphql/-/plugin-paginate-graphql-4.0.0.tgz", - "integrity": "sha512-7HcYW5tP7/Z6AETAPU14gp5H5KmCPT3hmJrS/5tO7HIgbwenYmgw4OY9Ma54FDySuxMwD+wsJlxtuGWwuZuItA==", - "dev": true, - "engines": { - "node": ">= 18" - }, - "peerDependencies": { - "@octokit/core": ">=5" - } - }, - "node_modules/@octokit/plugin-paginate-rest": { - "version": "9.2.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.2.2.tgz", - "integrity": "sha1-xRa8SYc2vNqpCVuaHRDZ0FAa6DE=", - "dev": true, - "license": "MIT", - "dependencies": { - "@octokit/types": "^12.6.0" - }, - "engines": { - "node": ">= 18" - }, - "peerDependencies": { - "@octokit/core": "5" - } - }, - "node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/openapi-types": { - "version": "20.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/openapi-types/-/openapi-types-20.0.0.tgz", - "integrity": "sha1-nsLaoAkO64Ze4UdjbgwA9zeQxuU=", - "dev": true, - "license": "MIT" - }, - "node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types": { - "version": "12.6.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/types/-/types-12.6.0.tgz", - "integrity": "sha1-gQD7nu7f4IOq5mRzvZexW2Ku3LI=", "dev": true, "license": "MIT", "dependencies": { - "@octokit/openapi-types": "^20.0.0" + "@octokit/openapi-types": "^24.2.0" } }, "node_modules/@octokit/plugin-request-log": { "version": "4.0.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/plugin-request-log/-/plugin-request-log-4.0.0.tgz", "integrity": "sha512-2uJI1COtYCq8Z4yNSnM231TgH50bRkheQ9+aH8TnZanB6QilOnx8RMD2qsnamSOXtDj0ilxvevf5fGsBhBBzKA==", + "dev": true, "engines": { "node": ">= 18" }, @@ -2827,6 +2479,7 @@ "version": "13.3.2-cjs.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-13.3.2-cjs.1.tgz", "integrity": "sha1-0KFC/0HY94krbM70WXkEn1Hsqo0=", + "dev": true, "license": "MIT", "dependencies": { "@octokit/types": "^13.8.0" @@ -2842,73 +2495,25 @@ "version": "24.2.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/openapi-types/-/openapi-types-24.2.0.tgz", "integrity": "sha1-PVXDLqwNONoacIOpw7DMp3kk99M=", + "dev": true, "license": "MIT" }, "node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types": { "version": "13.10.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/types/-/types-13.10.0.tgz", "integrity": "sha1-PnxrGcAjbCcGVuTqZmFIwrUf0aM=", + "dev": true, "license": "MIT", "dependencies": { "@octokit/openapi-types": "^24.2.0" } }, - "node_modules/@octokit/plugin-retry": { - "version": "6.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/plugin-retry/-/plugin-retry-6.0.0.tgz", - "integrity": "sha512-a1/A4A+PB1QoAHQfLJxGHhLfSAT03bR1jJz3GgQJZvty2ozawFWs93MiBQXO7SL2YbO7CIq0Goj4qLOBj8JeMQ==", + "node_modules/@octokit/request": { + "version": "8.4.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/request/-/request-8.4.1.tgz", + "integrity": "sha1-cVoBXM+ZMIeXfqQ2XER5H8RXJIY=", "dev": true, - "dependencies": { - "@octokit/request-error": "^5.0.0", - "@octokit/types": "^11.0.0", - "bottleneck": "^2.15.3" - }, - "engines": { - "node": ">= 18" - }, - "peerDependencies": { - "@octokit/core": ">=5" - } - }, - "node_modules/@octokit/plugin-throttling": { - "version": "8.2.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/plugin-throttling/-/plugin-throttling-8.2.0.tgz", - "integrity": "sha1-nsPqLje5L6xj8GkR0MgUG0bcSUE=", - "dev": true, - "license": "MIT", - "dependencies": { - "@octokit/types": "^12.2.0", - "bottleneck": "^2.15.3" - }, - "engines": { - "node": ">= 18" - }, - "peerDependencies": { - "@octokit/core": "^5.0.0" - } - }, - "node_modules/@octokit/plugin-throttling/node_modules/@octokit/openapi-types": { - "version": "20.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/openapi-types/-/openapi-types-20.0.0.tgz", - "integrity": "sha1-nsLaoAkO64Ze4UdjbgwA9zeQxuU=", - "dev": true, - "license": "MIT" - }, - "node_modules/@octokit/plugin-throttling/node_modules/@octokit/types": { - "version": "12.6.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/types/-/types-12.6.0.tgz", - "integrity": "sha1-gQD7nu7f4IOq5mRzvZexW2Ku3LI=", - "dev": true, - "license": "MIT", - "dependencies": { - "@octokit/openapi-types": "^20.0.0" - } - }, - "node_modules/@octokit/request": { - "version": "8.4.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/request/-/request-8.4.1.tgz", - "integrity": "sha1-cVoBXM+ZMIeXfqQ2XER5H8RXJIY=", - "license": "MIT", + "license": "MIT", "dependencies": { "@octokit/endpoint": "^9.0.6", "@octokit/request-error": "^5.1.1", @@ -2923,6 +2528,7 @@ "version": "5.1.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/request-error/-/request-error-5.1.1.tgz", "integrity": "sha1-uSGPnBFm5ou00MibY47cYskzSAU=", + "dev": true, "license": "MIT", "dependencies": { "@octokit/types": "^13.1.0", @@ -2937,12 +2543,14 @@ "version": "22.2.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", "integrity": "sha1-dap9zUQIIdmd72pgtfAUIHrklo4=", + "dev": true, "license": "MIT" }, "node_modules/@octokit/request-error/node_modules/@octokit/types": { "version": "13.5.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/types/-/types-13.5.1.tgz", "integrity": "sha1-VoWpHylRld3/85cjsJOw35YJzm4=", + "dev": true, "license": "MIT", "dependencies": { "@octokit/openapi-types": "^22.2.0" @@ -2952,12 +2560,14 @@ "version": "22.2.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", "integrity": "sha1-dap9zUQIIdmd72pgtfAUIHrklo4=", + "dev": true, "license": "MIT" }, "node_modules/@octokit/request/node_modules/@octokit/types": { "version": "13.5.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/types/-/types-13.5.1.tgz", "integrity": "sha1-VoWpHylRld3/85cjsJOw35YJzm4=", + "dev": true, "license": "MIT", "dependencies": { "@octokit/openapi-types": "^22.2.0" @@ -2967,6 +2577,7 @@ "version": "20.1.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/rest/-/rest-20.1.2.tgz", "integrity": "sha1-HXTQxyreDWT3xUFkSNXIhfXjzMQ=", + "dev": true, "license": "MIT", "dependencies": { "@octokit/core": "^5.0.2", @@ -2982,12 +2593,14 @@ "version": "24.2.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/openapi-types/-/openapi-types-24.2.0.tgz", "integrity": "sha1-PVXDLqwNONoacIOpw7DMp3kk99M=", + "dev": true, "license": "MIT" }, "node_modules/@octokit/rest/node_modules/@octokit/plugin-paginate-rest": { "version": "11.4.4-cjs.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.4.4-cjs.2.tgz", "integrity": "sha1-l5oQ1Xe856OT6OZZU4h+QrCgUAA=", + "dev": true, "license": "MIT", "dependencies": { "@octokit/types": "^13.7.0" @@ -3003,53 +2616,12 @@ "version": "13.10.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/types/-/types-13.10.0.tgz", "integrity": "sha1-PnxrGcAjbCcGVuTqZmFIwrUf0aM=", - "license": "MIT", - "dependencies": { - "@octokit/openapi-types": "^24.2.0" - } - }, - "node_modules/@octokit/types": { - "version": "11.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/types/-/types-11.1.0.tgz", - "integrity": "sha512-Fz0+7GyLm/bHt8fwEqgvRBWwIV1S6wRRyq+V6exRKLVWaKGsuy6H9QFYeBVDV7rK6fO3XwHgQOPxv+cLj2zpXQ==", - "dev": true, - "dependencies": { - "@octokit/openapi-types": "^18.0.0" - } - }, - "node_modules/@octokit/webhooks": { - "version": "12.3.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/webhooks/-/webhooks-12.3.2.tgz", - "integrity": "sha1-repy+/u2Er2LAaVnQb1M9XLhCgw=", "dev": true, "license": "MIT", "dependencies": { - "@octokit/request-error": "^5.0.0", - "@octokit/webhooks-methods": "^4.1.0", - "@octokit/webhooks-types": "7.6.1", - "aggregate-error": "^3.1.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@octokit/webhooks-methods": { - "version": "4.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/webhooks-methods/-/webhooks-methods-4.1.0.tgz", - "integrity": "sha1-aBpshsmyHU7J4pEI+wU651Er4DM=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 18" + "@octokit/openapi-types": "^24.2.0" } }, - "node_modules/@octokit/webhooks-types": { - "version": "7.6.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/webhooks-types/-/webhooks-types-7.6.1.tgz", - "integrity": "sha1-vJY3EFfC1UyYLJ+PZCZVsmzViOs=", - "dev": true, - "license": "MIT" - }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", @@ -3395,13 +2967,6 @@ "@types/glob": "*" } }, - "node_modules/@types/aws-lambda": { - "version": "8.10.145", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/aws-lambda/-/aws-lambda-8.10.145.tgz", - "integrity": "sha1-stMamH9IiOVVP/GBn1fK+kdVlNk=", - "dev": true, - "license": "MIT" - }, "node_modules/@types/babel__core": { "version": "7.20.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/babel__core/-/babel__core-7.20.1.tgz", @@ -3443,28 +3008,6 @@ "@babel/types": "^7.20.7" } }, - "node_modules/@types/btoa-lite": { - "version": "1.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/btoa-lite/-/btoa-lite-1.0.2.tgz", - "integrity": "sha1-grtqqwCr98/zyiglq+AQwM1TauU=", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/chokidar": { - "version": "2.1.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/chokidar/-/chokidar-2.1.3.tgz", - "integrity": "sha512-6qK3xoLLAhQVTucQGHTySwOVA1crHRXnJeLwqK6KIFkkKa2aoMFXh+WEi8PotxDtvN6MQJLyYN9ag9P6NLV81w==", - "dev": true, - "dependencies": { - "chokidar": "*" - } - }, - "node_modules/@types/expect": { - "version": "1.20.4", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/expect/-/expect-1.20.4.tgz", - "integrity": "sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==", - "dev": true - }, "node_modules/@types/fs-extra": { "version": "11.0.4", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/fs-extra/-/fs-extra-11.0.4.tgz", @@ -3486,16 +3029,6 @@ "@types/node": "*" } }, - "node_modules/@types/glob-stream": { - "version": "6.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/glob-stream/-/glob-stream-6.1.0.tgz", - "integrity": "sha512-RHv6ZQjcTncXo3thYZrsbAVwoy4vSKosSWhuhuQxLOTv74OJuFQxXkmUuZCr3q9uNBEVCvIzmZL/FeRNbHZGUg==", - "dev": true, - "dependencies": { - "@types/glob": "*", - "@types/node": "*" - } - }, "node_modules/@types/graceful-fs": { "version": "4.1.6", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", @@ -3505,17 +3038,6 @@ "@types/node": "*" } }, - "node_modules/@types/gulp": { - "version": "4.0.5", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/gulp/-/gulp-4.0.5.tgz", - "integrity": "sha512-nx1QjPTiRpvLfYsZ7MBu7bT6Cm7tAXyLbY0xbdx2IEMxCK2v2urIhJMQZHW0iV1TskM71Xl6p2uRRuWDbk+/7g==", - "dev": true, - "dependencies": { - "@types/chokidar": "*", - "@types/undertaker": "*", - "@types/vinyl-fs": "*" - } - }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.4", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", @@ -3556,16 +3078,6 @@ "@types/node": "*" } }, - "node_modules/@types/jsonwebtoken": { - "version": "9.0.7", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/jsonwebtoken/-/jsonwebtoken-9.0.7.tgz", - "integrity": "sha1-5JuWwrKTVu1GLpcI/HO4MwFHJ9I=", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/minimatch": { "version": "3.0.3", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/minimatch/-/minimatch-3.0.3.tgz", @@ -3620,49 +3132,12 @@ "integrity": "sha1-EHPEvIJHVK49EM+riKsCN7qWTk0=", "dev": true }, - "node_modules/@types/undertaker": { - "version": "1.2.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/undertaker/-/undertaker-1.2.3.tgz", - "integrity": "sha512-OhvIYx6pUJBxYZf5fM/BVMNXZQMy095kplml+4cWrlNqM1t6XtSIQCuVySGmICZCnzi69Epdljyplm86BlTouQ==", - "dev": true, - "dependencies": { - "@types/node": "*", - "@types/undertaker-registry": "*" - } - }, - "node_modules/@types/undertaker-registry": { - "version": "1.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/undertaker-registry/-/undertaker-registry-1.0.1.tgz", - "integrity": "sha512-Z4TYuEKn9+RbNVk1Ll2SS4x1JeLHecolIbM/a8gveaHsW0Hr+RQMraZACwTO2VD7JvepgA6UO1A1VrbktQrIbQ==", - "dev": true - }, "node_modules/@types/uuid": { "version": "9.0.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/uuid/-/uuid-9.0.2.tgz", "integrity": "sha512-kNnC1GFBLuhImSnV7w4njQkUiJi0ZXUycu1rUaouPqiKlXkh77JKgdRnTAp1x5eBwcIwbtI+3otwzuIDEuDoxQ==", "dev": true }, - "node_modules/@types/vinyl": { - "version": "2.0.7", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/vinyl/-/vinyl-2.0.7.tgz", - "integrity": "sha512-4UqPv+2567NhMQuMLdKAyK4yzrfCqwaTt6bLhHEs8PFcxbHILsrxaY63n4wgE/BRLDWDQeI+WcTmkXKExh9hQg==", - "dev": true, - "dependencies": { - "@types/expect": "^1.20.4", - "@types/node": "*" - } - }, - "node_modules/@types/vinyl-fs": { - "version": "2.4.11", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/vinyl-fs/-/vinyl-fs-2.4.11.tgz", - "integrity": "sha512-2OzQSfIr9CqqWMGqmcERE6Hnd2KY3eBVtFaulVo3sJghplUcaeMdL9ZjEiljcQQeHjheWY9RlNmumjIAvsBNaA==", - "dev": true, - "dependencies": { - "@types/glob-stream": "*", - "@types/node": "*", - "@types/vinyl": "*" - } - }, "node_modules/@types/vscode": { "version": "1.98.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/vscode/-/vscode-1.98.0.tgz", @@ -3933,11 +3408,6 @@ "dev": true, "license": "ISC" }, - "node_modules/@vscode/debugprotocol": { - "version": "1.56.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@vscode/debugprotocol/-/debugprotocol-1.56.0.tgz", - "integrity": "sha512-hM+LlYNimM5HxoWG5lvNYIStjsKJdKE/4nwOIYaAjr/M7Cb5bFaJcHfkcdTJZAZejao/ueakuZ0Iq3JkC1avcQ==" - }, "node_modules/@vscode/extension-telemetry": { "version": "0.9.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@vscode/extension-telemetry/-/extension-telemetry-0.9.0.tgz", @@ -4541,20 +4011,6 @@ "node": ">= 14" } }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha1-kmcP9Q9TWb23o+DUDQ7DDFc3aHo=", - "dev": true, - "license": "MIT", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ajv/-/ajv-6.12.6.tgz", @@ -4641,7 +4097,6 @@ "version": "5.3.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/archiver/-/archiver-5.3.0.tgz", "integrity": "sha512-iUw+oDwK0fgNpvveEsdQ0Ase6IIKztBJU2U0E9MzszMfmVVUyv1QJhS2ITW9ZCqx8dktAxVAjWWkKehuZE8OPg==", - "dev": true, "dependencies": { "archiver-utils": "^2.1.0", "async": "^3.2.0", @@ -4659,7 +4114,6 @@ "version": "2.1.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/archiver-utils/-/archiver-utils-2.1.0.tgz", "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", - "dev": true, "dependencies": { "glob": "^7.1.4", "graceful-fs": "^4.2.0", @@ -4680,7 +4134,6 @@ "version": "3.6.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -4693,8 +4146,9 @@ "node_modules/arg": { "version": "4.1.3", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true + "integrity": "sha1-Jp/HrVuOQstjyJbVZmAXJhwUQIk=", + "dev": true, + "license": "MIT" }, "node_modules/argparse": { "version": "1.0.10", @@ -4718,16 +4172,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array-each": { - "version": "1.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/array-includes": { "version": "3.1.6", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/array-includes/-/array-includes-3.1.6.tgz", @@ -4747,16 +4191,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array-slice": { - "version": "1.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/array-slice/-/array-slice-1.1.0.tgz", - "integrity": "sha1-42jqFfibxwaff/uJrsOmx9SsItQ=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/array.prototype.flat": { "version": "1.3.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", @@ -4806,36 +4240,7 @@ "node_modules/async": { "version": "3.2.3", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/async/-/async-3.2.3.tgz", - "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==", - "dev": true - }, - "node_modules/async-done": { - "version": "2.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/async-done/-/async-done-2.0.0.tgz", - "integrity": "sha1-8exd9zjGODpSsKMNCQL9iXMpwVo=", - "dev": true, - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.4.4", - "once": "^1.4.0", - "stream-exhaust": "^1.0.2" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/async-settle": { - "version": "2.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/async-settle/-/async-settle-2.0.0.tgz", - "integrity": "sha1-xpWtFOBw9qdV0BnTLW6zgCkCAoc=", - "dev": true, - "license": "MIT", - "dependencies": { - "async-done": "^2.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } + "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==" }, "node_modules/asynckit": { "version": "0.4.0", @@ -4872,13 +4277,6 @@ "typed-rest-client": "^1.8.4" } }, - "node_modules/b4a": { - "version": "1.6.6", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/b4a/-/b4a-1.6.6.tgz", - "integrity": "sha1-pMw0mjhRmHw8SsLXeFwYdE9tqbo=", - "dev": true, - "license": "Apache-2.0" - }, "node_modules/babel-jest": { "version": "29.6.4", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/babel-jest/-/babel-jest-29.6.4.tgz", @@ -4970,53 +4368,21 @@ "@babel/core": "^7.0.0" } }, - "node_modules/bach": { - "version": "2.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/bach/-/bach-2.0.1.tgz", - "integrity": "sha1-RaOjy/fbujEyCHGFxgNXSCuYiXI=", - "dev": true, - "license": "MIT", - "dependencies": { - "async-done": "^2.0.0", - "async-settle": "^2.0.0", - "now-and-later": "^3.0.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/balanced-match": { "version": "1.0.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, - "node_modules/bare-events": { - "version": "2.3.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/bare-events/-/bare-events-2.3.1.tgz", - "integrity": "sha1-WvLuC+lXj4Hjwaqbw6aivPIjB84=", - "dev": true, - "license": "Apache-2.0", - "optional": true - }, "node_modules/base64-js": { "version": "1.3.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", - "dev": true + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" }, "node_modules/before-after-hook": { "version": "2.2.3", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/before-after-hook/-/before-after-hook-2.2.3.tgz", - "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==" - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } + "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", + "dev": true }, "node_modules/binaryextensions": { "version": "6.11.0", @@ -5038,7 +4404,6 @@ "version": "4.1.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/bl/-/bl-4.1.0.tgz", "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", @@ -5048,14 +4413,12 @@ "node_modules/bl/node_modules/inherits": { "version": "2.0.4", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "node_modules/bl/node_modules/readable-stream": { "version": "3.6.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -5182,12 +4545,6 @@ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", "dev": true }, - "node_modules/bottleneck": { - "version": "2.19.5", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/bottleneck/-/bottleneck-2.19.5.tgz", - "integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==", - "dev": true - }, "node_modules/boundary": { "version": "2.0.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/boundary/-/boundary-2.0.0.tgz", @@ -5271,18 +4628,10 @@ "node-int64": "^0.4.0" } }, - "node_modules/btoa-lite": { - "version": "1.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/btoa-lite/-/btoa-lite-1.0.0.tgz", - "integrity": "sha1-M3dm2hWAEhD92VbCLpxokaudAzc=", - "dev": true, - "license": "MIT" - }, "node_modules/buffer": { "version": "5.7.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/buffer/-/buffer-5.7.1.tgz", "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, "funding": [ { "type": "github", @@ -5406,6 +4755,7 @@ "version": "4.1.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/camel-case/-/camel-case-4.1.2.tgz", "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dev": true, "dependencies": { "pascal-case": "^3.1.2", "tslib": "^2.0.3" @@ -5414,7 +4764,8 @@ "node_modules/camel-case/node_modules/tslib": { "version": "2.5.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", + "dev": true }, "node_modules/cancellationtoken": { "version": "2.2.0", @@ -5515,33 +4866,6 @@ "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", "dev": true }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, "node_modules/chownr": { "version": "1.1.4", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/chownr/-/chownr-1.1.4.tgz", @@ -5582,45 +4906,6 @@ "node": ">=4" } }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha1-7oRy27Ep5yezHooQpCfe6d/kAIs=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha1-oCZe5lVHb8gHrqnfPfjfd4OAi08=", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/clone": { - "version": "2.1.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/clone-stats": { - "version": "1.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", - "dev": true, - "license": "MIT" - }, "node_modules/co": { "version": "4.6.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/co/-/co-4.6.0.tgz", @@ -5694,7 +4979,6 @@ "version": "4.1.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/compress-commons/-/compress-commons-4.1.0.tgz", "integrity": "sha512-ofaaLqfraD1YRTkrRKPCrGJ1pFeDG/MVCkVVV2FNGeWquSlqw5wOrwOfPQ1xF2u+blpeWASie5EubHz+vsNIgA==", - "dev": true, "dependencies": { "buffer-crc32": "^0.2.13", "crc32-stream": "^4.0.1", @@ -5709,7 +4993,6 @@ "version": "3.6.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -5766,41 +5049,15 @@ "safe-buffer": "~5.1.1" } }, - "node_modules/copy-props": { - "version": "4.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/copy-props/-/copy-props-4.0.0.tgz", - "integrity": "sha1-AdJJGYuMLk2KXoe5DJYw9SyZqck=", - "dev": true, - "license": "MIT", - "dependencies": { - "each-props": "^3.0.0", - "is-plain-object": "^5.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/copy-props/node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha1-RCf1CrNCnpAl6n1S6QQ6nvQVk0Q=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/core-util-is": { "version": "1.0.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "node_modules/crc-32": { "version": "1.2.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/crc-32/-/crc-32-1.2.0.tgz", "integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==", - "dev": true, "dependencies": { "exit-on-epipe": "~1.0.1", "printj": "~1.1.0" @@ -5816,7 +5073,6 @@ "version": "4.0.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/crc32-stream/-/crc32-stream-4.0.2.tgz", "integrity": "sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w==", - "dev": true, "dependencies": { "crc-32": "^1.2.0", "readable-stream": "^3.4.0" @@ -5829,7 +5085,6 @@ "version": "3.6.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -5842,8 +5097,9 @@ "node_modules/create-require": { "version": "1.1.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true + "integrity": "sha1-wdfo8eX2z8n/ZfnNNS03NIdWwzM=", + "dev": true, + "license": "MIT" }, "node_modules/css-select": { "version": "4.1.3", @@ -6027,7 +5283,8 @@ "node_modules/deprecation": { "version": "2.3.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", + "dev": true }, "node_modules/destroy": { "version": "1.2.0", @@ -6039,16 +5296,6 @@ "npm": "1.2.8000 || >= 1.4.16" } }, - "node_modules/detect-file": { - "version": "1.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/detect-libc": { "version": "2.0.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/detect-libc/-/detect-libc-2.0.1.tgz", @@ -6068,6 +5315,16 @@ "node": ">=8" } }, + "node_modules/diff": { + "version": "4.0.4", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/diff/-/diff-4.0.4.tgz", + "integrity": "sha1-em2/2jJfJfB1F+m1GPiXwIMy4H0=", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, "node_modules/diff-sequences": { "version": "29.6.3", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/diff-sequences/-/diff-sequences-29.6.3.tgz", @@ -6160,30 +5417,6 @@ "node": ">= 0.4" } }, - "node_modules/each-props": { - "version": "3.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/each-props/-/each-props-3.0.0.tgz", - "integrity": "sha1-qI+xdjSkgoMHYQ7Ggmn7ovcoDNg=", - "dev": true, - "license": "MIT", - "dependencies": { - "is-plain-object": "^5.0.0", - "object.defaults": "^1.1.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/each-props/node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha1-RCf1CrNCnpAl6n1S6QQ6nvQVk0Q=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eastasianwidth/-/eastasianwidth-0.2.0.tgz", @@ -7337,7 +6570,6 @@ "version": "1.0.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==", - "dev": true, "engines": { "node": ">=0.8" } @@ -7352,19 +6584,6 @@ "node": ">=6" } }, - "node_modules/expand-tilde": { - "version": "2.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "dev": true, - "license": "MIT", - "dependencies": { - "homedir-polyfill": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/expect": { "version": "29.6.4", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/expect/-/expect-29.6.4.tgz", @@ -7381,13 +6600,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/extend/-/extend-3.0.2.tgz", - "integrity": "sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=", - "dev": true, - "license": "MIT" - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -7400,13 +6612,6 @@ "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", "dev": true }, - "node_modules/fast-fifo": { - "version": "1.3.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fast-fifo/-/fast-fifo-1.3.2.tgz", - "integrity": "sha1-KG4x3pbrltOKl4mYFXQLoqTzZAw=", - "dev": true, - "license": "MIT" - }, "node_modules/fast-glob": { "version": "3.3.3", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fast-glob/-/fast-glob-3.3.3.tgz", @@ -7454,12 +6659,6 @@ ], "license": "BSD-3-Clause" }, - "node_modules/fastest-levenshtein": { - "version": "1.0.12", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", - "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", - "dev": true - }, "node_modules/fastq": { "version": "1.15.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fastq/-/fastq-1.15.0.tgz", @@ -7554,59 +6753,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/findup-sync": { - "version": "5.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/findup-sync/-/findup-sync-5.0.0.tgz", - "integrity": "sha1-VDgK2WWn7coAzI9jETVZqtxUG9I=", - "dev": true, - "license": "MIT", - "dependencies": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.3", - "micromatch": "^4.0.4", - "resolve-dir": "^1.0.1" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/fined": { - "version": "2.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fined/-/fined-2.0.0.tgz", - "integrity": "sha1-aEZWPtloec5t5shccVxCJQ+NgIk=", - "dev": true, - "license": "MIT", - "dependencies": { - "expand-tilde": "^2.0.2", - "is-plain-object": "^5.0.0", - "object.defaults": "^1.1.0", - "object.pick": "^1.3.0", - "parse-filepath": "^1.0.2" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/fined/node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha1-RCf1CrNCnpAl6n1S6QQ6nvQVk0Q=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/flagged-respawn": { - "version": "2.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/flagged-respawn/-/flagged-respawn-2.0.0.tgz", - "integrity": "sha1-q/OXGdz+GsBshslGYIHFQcaCmHs=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10.13.0" - } - }, "node_modules/flat": { "version": "5.0.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/flat/-/flat-5.0.2.tgz", @@ -7659,29 +6805,6 @@ "is-callable": "^1.1.3" } }, - "node_modules/for-in": { - "version": "1.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/for-own": { - "version": "1.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "dev": true, - "license": "MIT", - "dependencies": { - "for-in": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/foreground-child": { "version": "3.3.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/foreground-child/-/foreground-child-3.3.1.tgz", @@ -7791,8 +6914,7 @@ "node_modules/fs-constants": { "version": "1.0.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" }, "node_modules/fs-extra": { "version": "11.3.0", @@ -7808,25 +6930,10 @@ "node": ">=14.14" } }, - "node_modules/fs-mkdirp-stream": { - "version": "2.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fs-mkdirp-stream/-/fs-mkdirp-stream-2.0.1.tgz", - "integrity": "sha1-HoJXXEAjkprTXPaSafhPGoyXOqc=", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.8", - "streamx": "^2.12.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "node_modules/fsevents": { "version": "2.3.2", @@ -8008,7 +7115,6 @@ "version": "7.2.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/glob/-/glob-7.2.0.tgz", "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -8036,85 +7142,6 @@ "node": ">= 6" } }, - "node_modules/glob-stream": { - "version": "8.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/glob-stream/-/glob-stream-8.0.2.tgz", - "integrity": "sha1-CeWBjkHBbdhSdNcsenFY0wdCYxM=", - "dev": true, - "license": "MIT", - "dependencies": { - "@gulpjs/to-absolute-glob": "^4.0.0", - "anymatch": "^3.1.3", - "fastq": "^1.13.0", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "is-negated-glob": "^1.0.0", - "normalize-path": "^3.0.0", - "streamx": "^2.12.5" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/glob-stream/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha1-bSN9mQg5UMeSkPJMdkKj3poo+eM=", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/glob-watcher": { - "version": "6.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/glob-watcher/-/glob-watcher-6.0.0.tgz", - "integrity": "sha1-hWU0GXipIjP7OIG4hXtNHpxr8IA=", - "dev": true, - "license": "MIT", - "dependencies": { - "async-done": "^2.0.0", - "chokidar": "^3.5.3" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/global-modules": { - "version": "1.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha1-bXcPDrUjrHgWTXK15xqIdyZcw+o=", - "dev": true, - "license": "MIT", - "dependencies": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/global-prefix": { - "version": "1.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "dev": true, - "license": "MIT", - "dependencies": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/globals": { "version": "13.24.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/globals/-/globals-13.24.0.tgz", @@ -8190,19 +7217,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/glogg": { - "version": "2.2.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/glogg/-/glogg-2.2.0.tgz", - "integrity": "sha1-lWzrhVoFoqofpmjXSPK+jnNhwRw=", - "dev": true, - "license": "MIT", - "dependencies": { - "sparkles": "^2.1.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, "node_modules/gopd": { "version": "1.2.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/gopd/-/gopd-1.2.0.tgz", @@ -8228,65 +7242,6 @@ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true }, - "node_modules/gulp": { - "version": "5.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/gulp/-/gulp-5.0.0.tgz", - "integrity": "sha1-ePS4rEigv2GzVNOeW+hE3ixcw/M=", - "dev": true, - "license": "MIT", - "dependencies": { - "glob-watcher": "^6.0.0", - "gulp-cli": "^3.0.0", - "undertaker": "^2.0.0", - "vinyl-fs": "^4.0.0" - }, - "bin": { - "gulp": "bin/gulp.js" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/gulp-cli": { - "version": "3.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/gulp-cli/-/gulp-cli-3.0.0.tgz", - "integrity": "sha1-V3AI9TI/rWEGtE2ySAPCfDpkmEE=", - "dev": true, - "license": "MIT", - "dependencies": { - "@gulpjs/messages": "^1.1.0", - "chalk": "^4.1.2", - "copy-props": "^4.0.0", - "gulplog": "^2.2.0", - "interpret": "^3.1.1", - "liftoff": "^5.0.0", - "mute-stdout": "^2.0.0", - "replace-homedir": "^2.0.0", - "semver-greatest-satisfied-range": "^2.0.0", - "string-width": "^4.2.3", - "v8flags": "^4.0.0", - "yargs": "^16.2.0" - }, - "bin": { - "gulp": "bin/gulp.js" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/gulplog": { - "version": "2.2.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/gulplog/-/gulplog-2.2.0.tgz", - "integrity": "sha1-ca30PqXNB8I97Q+4r0qES2fGO+g=", - "dev": true, - "license": "MIT", - "dependencies": { - "glogg": "^2.2.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, "node_modules/has": { "version": "1.0.3", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/has/-/has-1.0.3.tgz", @@ -8395,19 +7350,6 @@ "he": "bin/he" } }, - "node_modules/homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha1-dDKYzvTlrz4ZQWH7rcwhUdOgWOg=", - "dev": true, - "license": "MIT", - "dependencies": { - "parse-passwd": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/hosted-git-info": { "version": "2.8.9", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/hosted-git-info/-/hosted-git-info-2.8.9.tgz", @@ -8619,7 +7561,6 @@ "version": "1.0.6", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -8628,14 +7569,14 @@ "node_modules/inherits": { "version": "2.0.3", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "node_modules/ini": { "version": "1.3.7", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ini/-/ini-1.3.7.tgz", "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", - "dev": true + "dev": true, + "optional": true }, "node_modules/int64-buffer": { "version": "0.1.10", @@ -8656,30 +7597,6 @@ "node": ">= 0.4" } }, - "node_modules/interpret": { - "version": "3.1.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/interpret/-/interpret-3.1.1.tgz", - "integrity": "sha1-W+DO7WfKecbEvFzw1+6EPc6hEMQ=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/is-absolute": { - "version": "1.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha1-OV4a6EsR8mrReV5zwXN45IowFXY=", - "dev": true, - "license": "MIT", - "dependencies": { - "is-relative": "^1.0.0", - "is-windows": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-array-buffer": { "version": "3.0.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-array-buffer/-/is-array-buffer-3.0.2.tgz", @@ -8712,18 +7629,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/is-boolean-object": { "version": "1.1.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-boolean-object/-/is-boolean-object-1.1.2.tgz", @@ -8861,16 +7766,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-negated-glob": { - "version": "1.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-negated-glob/-/is-negated-glob-1.0.0.tgz", - "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-negative-zero": { "version": "2.0.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-negative-zero/-/is-negative-zero-2.0.2.tgz", @@ -8924,23 +7819,10 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-relative": { - "version": "1.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha1-obtpNc6MXboei5dUubLcwCDiJg0=", - "dev": true, - "license": "MIT", - "dependencies": { - "is-unc-path": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", "dev": true, "dependencies": { "call-bind": "^1.0.2" @@ -9009,29 +7891,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-unc-path": { - "version": "1.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha1-1zHoiY7QkKEsNSrS6u1Qla0yLJ0=", - "dev": true, - "license": "MIT", - "dependencies": { - "unc-path-regex": "^0.1.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-valid-glob": { - "version": "1.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-valid-glob/-/is-valid-glob-1.0.0.tgz", - "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-weakref": { "version": "1.0.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-weakref/-/is-weakref-1.0.2.tgz", @@ -9044,16 +7903,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-wsl": { "version": "2.2.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-wsl/-/is-wsl-2.2.0.tgz", @@ -9077,15 +7926,6 @@ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/isexe/-/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/istanbul-lib-coverage": { "version": "3.2.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", @@ -9148,15 +7988,6 @@ "node": ">=10" } }, - "node_modules/istanbul-lib-source-maps/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/istanbul-reports": { "version": "3.1.6", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/istanbul-reports/-/istanbul-reports-3.1.6.tgz", @@ -9842,15 +8673,6 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/jest-runner/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/jest-runner/node_modules/source-map-support": { "version": "0.5.13", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/source-map-support/-/source-map-support-0.5.13.tgz", @@ -10163,21 +8985,10 @@ "node": ">=6" } }, - "node_modules/last-run": { - "version": "2.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/last-run/-/last-run-2.0.0.tgz", - "integrity": "sha1-+C3Pv85uY9BBvYPWTILjTNumVy4=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10.13.0" - } - }, "node_modules/lazystream": { "version": "1.0.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/lazystream/-/lazystream-1.0.0.tgz", "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", - "dev": true, "dependencies": { "readable-stream": "^2.0.5" }, @@ -10185,16 +8996,6 @@ "node": ">= 0.6.3" } }, - "node_modules/lead": { - "version": "4.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/lead/-/lead-4.0.0.tgz", - "integrity": "sha1-Uxeknv+w5+w6DI+5wbJPtxaquTk=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/leven": { "version": "3.1.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/leven/-/leven-3.1.0.tgz", @@ -10227,35 +9028,6 @@ "immediate": "~3.0.5" } }, - "node_modules/liftoff": { - "version": "5.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/liftoff/-/liftoff-5.0.0.tgz", - "integrity": "sha1-Dl7SdbwzTK7A5VHs8IuyK+WD4jY=", - "dev": true, - "license": "MIT", - "dependencies": { - "extend": "^3.0.2", - "findup-sync": "^5.0.0", - "fined": "^2.0.0", - "flagged-respawn": "^2.0.0", - "is-plain-object": "^5.0.0", - "rechoir": "^0.8.0", - "resolve": "^1.20.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/liftoff/node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha1-RCf1CrNCnpAl6n1S6QQ6nvQVk0Q=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/lines-and-columns/-/lines-and-columns-1.2.4.tgz", @@ -10288,28 +9060,26 @@ } }, "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true + "version": "4.17.23", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/lodash/-/lodash-4.17.23.tgz", + "integrity": "sha1-8ROwN4OGEDvk9okziMc9C95/LFo=", + "dev": true, + "license": "MIT" }, "node_modules/lodash.defaults": { "version": "4.2.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=", - "dev": true + "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=" }, "node_modules/lodash.difference": { "version": "4.5.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/lodash.difference/-/lodash.difference-4.5.0.tgz", - "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=", - "dev": true + "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=" }, "node_modules/lodash.flatten": { "version": "4.4.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", - "dev": true + "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=" }, "node_modules/lodash.includes": { "version": "4.3.0", @@ -10342,8 +9112,7 @@ "node_modules/lodash.isplainobject": { "version": "4.0.6", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", - "dev": true + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" }, "node_modules/lodash.isstring": { "version": "4.0.1", @@ -10381,13 +9150,13 @@ "node_modules/lodash.union": { "version": "4.6.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/lodash.union/-/lodash.union-4.6.0.tgz", - "integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=", - "dev": true + "integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=" }, "node_modules/lower-case": { "version": "2.0.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/lower-case/-/lower-case-2.0.2.tgz", "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, "dependencies": { "tslib": "^2.0.3" } @@ -10395,7 +9164,8 @@ "node_modules/lower-case/node_modules/tslib": { "version": "2.5.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", + "dev": true }, "node_modules/lru-cache": { "version": "6.0.0", @@ -10438,20 +9208,10 @@ "tmpl": "1.0.5" } }, - "node_modules/map-cache": { - "version": "0.2.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/markdown-it": { - "version": "14.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/markdown-it/-/markdown-it-14.1.0.tgz", - "integrity": "sha1-PDxZkog8Yz20cUzLTXtZNdmLfUU=", + "version": "14.1.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/markdown-it/-/markdown-it-14.1.1.tgz", + "integrity": "sha1-hW+Qtm/DmucK/9JcGxi1gdfe7h8=", "dev": true, "license": "MIT", "dependencies": { @@ -10735,16 +9495,6 @@ "node": ">= 0.10" } }, - "node_modules/mute-stdout": { - "version": "2.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/mute-stdout/-/mute-stdout-2.0.0.tgz", - "integrity": "sha1-xqm0thhdO39w0//Lc0y/yLDzh2E=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10.13.0" - } - }, "node_modules/mute-stream": { "version": "0.0.8", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/mute-stream/-/mute-stream-0.0.8.tgz", @@ -10768,6 +9518,7 @@ "version": "3.6.79-alpha", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/nerdbank-gitversioning/-/nerdbank-gitversioning-3.6.79-alpha.tgz", "integrity": "sha512-7kfYYxpLJdhaA6oPFFcfhlCvsVyLHPUw9cmR5E7gZdVd8FPO1FaY7zAUDBX0cMbqEEt3zkqUH1o9xrE3Sbqi4g==", + "dev": true, "dependencies": { "camel-case": "^4.1.2" }, @@ -10791,6 +9542,7 @@ "version": "3.0.4", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/no-case/-/no-case-3.0.4.tgz", "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, "dependencies": { "lower-case": "^2.0.2", "tslib": "^2.0.3" @@ -10799,7 +9551,8 @@ "node_modules/no-case/node_modules/tslib": { "version": "2.5.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", + "dev": true }, "node_modules/node-abi": { "version": "3.22.0", @@ -10990,25 +9743,11 @@ "version": "3.0.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/now-and-later": { - "version": "3.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/now-and-later/-/now-and-later-3.0.0.tgz", - "integrity": "sha1-zcBF3FuJSzV5PPJ2zDIGB3u3MC0=", - "dev": true, - "license": "MIT", - "dependencies": { - "once": "^1.4.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, "node_modules/npm-run-path": { "version": "4.0.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/npm-run-path/-/npm-run-path-4.0.1.tgz", @@ -11080,35 +9819,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object.defaults": { - "version": "1.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", - "dev": true, - "license": "MIT", - "dependencies": { - "array-each": "^1.0.1", - "array-slice": "^1.0.0", - "for-own": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.pick": { - "version": "1.3.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "license": "MIT", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/object.values": { "version": "1.1.6", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/object.values/-/object.values-1.1.6.tgz", @@ -11126,62 +9836,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/octokit": { - "version": "3.2.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/octokit/-/octokit-3.2.2.tgz", - "integrity": "sha1-KuJqBM/mDaHMFoHyw8xxDm9cRAM=", - "dev": true, - "license": "MIT", - "dependencies": { - "@octokit/app": "^14.0.2", - "@octokit/core": "^5.0.0", - "@octokit/oauth-app": "^6.0.0", - "@octokit/plugin-paginate-graphql": "^4.0.0", - "@octokit/plugin-paginate-rest": "11.4.4-cjs.2", - "@octokit/plugin-rest-endpoint-methods": "13.3.2-cjs.1", - "@octokit/plugin-retry": "^6.0.0", - "@octokit/plugin-throttling": "^8.0.0", - "@octokit/request-error": "^5.0.0", - "@octokit/types": "^13.0.0", - "@octokit/webhooks": "^12.3.1" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/octokit/node_modules/@octokit/openapi-types": { - "version": "24.2.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/openapi-types/-/openapi-types-24.2.0.tgz", - "integrity": "sha1-PVXDLqwNONoacIOpw7DMp3kk99M=", - "dev": true, - "license": "MIT" - }, - "node_modules/octokit/node_modules/@octokit/plugin-paginate-rest": { - "version": "11.4.4-cjs.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.4.4-cjs.2.tgz", - "integrity": "sha1-l5oQ1Xe856OT6OZZU4h+QrCgUAA=", - "dev": true, - "license": "MIT", - "dependencies": { - "@octokit/types": "^13.7.0" - }, - "engines": { - "node": ">= 18" - }, - "peerDependencies": { - "@octokit/core": "5" - } - }, - "node_modules/octokit/node_modules/@octokit/types": { - "version": "13.10.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/types/-/types-13.10.0.tgz", - "integrity": "sha1-PnxrGcAjbCcGVuTqZmFIwrUf0aM=", - "dev": true, - "license": "MIT", - "dependencies": { - "@octokit/openapi-types": "^24.2.0" - } - }, "node_modules/on-finished": { "version": "2.3.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/on-finished/-/on-finished-2.3.0.tgz", @@ -11330,21 +9984,6 @@ "node": ">=6" } }, - "node_modules/parse-filepath": { - "version": "1.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", - "dev": true, - "license": "MIT", - "dependencies": { - "is-absolute": "^1.0.0", - "map-cache": "^0.2.0", - "path-root": "^0.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, "node_modules/parse-json": { "version": "8.3.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/parse-json/-/parse-json-8.3.0.tgz", @@ -11376,16 +10015,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/parse-passwd": { - "version": "1.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/parse-semver": { "version": "1.1.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/parse-semver/-/parse-semver-1.1.1.tgz", @@ -11432,6 +10061,7 @@ "version": "3.1.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/pascal-case/-/pascal-case-3.1.2.tgz", "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dev": true, "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" @@ -11440,7 +10070,8 @@ "node_modules/pascal-case/node_modules/tslib": { "version": "2.5.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", + "dev": true }, "node_modules/path-exists": { "version": "4.0.0", @@ -11455,7 +10086,6 @@ "version": "1.0.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -11466,29 +10096,6 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, - "node_modules/path-root": { - "version": "0.1.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", - "dev": true, - "license": "MIT", - "dependencies": { - "path-root-regex": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-root-regex": { - "version": "0.1.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/path-scurry": { "version": "1.11.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/path-scurry/-/path-scurry-1.11.1.tgz", @@ -11723,7 +10330,6 @@ "version": "1.1.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/printj/-/printj-1.1.2.tgz", "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==", - "dev": true, "bin": { "printj": "bin/printj.njs" }, @@ -11734,8 +10340,7 @@ "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, "node_modules/prompts": { "version": "2.4.2", @@ -11898,13 +10503,6 @@ } ] }, - "node_modules/queue-tick": { - "version": "1.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/queue-tick/-/queue-tick-1.0.1.tgz", - "integrity": "sha1-9vB6yCwf1g+C4Ji0F6gOUvH0wUI=", - "dev": true, - "license": "MIT" - }, "node_modules/random-bytes": { "version": "1.0.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/random-bytes/-/random-bytes-1.0.0.tgz", @@ -12157,7 +10755,6 @@ "version": "2.3.7", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -12172,36 +10769,10 @@ "version": "1.1.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/readdir-glob/-/readdir-glob-1.1.1.tgz", "integrity": "sha512-91/k1EzZwDx6HbERR+zucygRFfiPl2zkIYZtv3Jjr6Mn7SkKcVct8aVO+sSRiGMc6fLf72du3d92/uY63YPdEA==", - "dev": true, "dependencies": { "minimatch": "^3.0.4" } }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/rechoir": { - "version": "0.8.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/rechoir/-/rechoir-0.8.0.tgz", - "integrity": "sha1-Sfhm4NMhRhQto62PDv81KzIV/yI=", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve": "^1.20.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, "node_modules/regexp-tree": { "version": "0.1.27", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/regexp-tree/-/regexp-tree-0.1.27.tgz", @@ -12261,33 +10832,6 @@ "jsesc": "bin/jsesc" } }, - "node_modules/remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true, - "license": "ISC" - }, - "node_modules/replace-ext": { - "version": "2.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/replace-ext/-/replace-ext-2.0.0.tgz", - "integrity": "sha1-lHHCE9IuG8wmcXzW5QiB2I+BKwY=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "node_modules/replace-homedir": { - "version": "2.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/replace-homedir/-/replace-homedir-2.0.0.tgz", - "integrity": "sha1-JFvZyQknXgvu516uhbtAeAzWGQM=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10.13.0" - } - }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/require-directory/-/require-directory-2.1.1.tgz", @@ -12336,20 +10880,6 @@ "node": ">=8" } }, - "node_modules/resolve-dir": { - "version": "1.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "dev": true, - "license": "MIT", - "dependencies": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/resolve-from": { "version": "5.0.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/resolve-from/-/resolve-from-5.0.0.tgz", @@ -12359,19 +10889,6 @@ "node": ">=8" } }, - "node_modules/resolve-options": { - "version": "2.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/resolve-options/-/resolve-options-2.0.0.tgz", - "integrity": "sha1-oaV6mUnbVJ3Qdd4/VVBnXwLx5MU=", - "dev": true, - "license": "MIT", - "dependencies": { - "value-or-function": "^4.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, "node_modules/resolve.exports": { "version": "2.0.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/resolve.exports/-/resolve.exports-2.0.2.tgz", @@ -12428,8 +10945,7 @@ "node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "node_modules/safe-regex-test": { "version": "1.0.0", @@ -12493,19 +11009,6 @@ "node": ">=10" } }, - "node_modules/semver-greatest-satisfied-range": { - "version": "2.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-2.0.0.tgz", - "integrity": "sha1-S2KUKnocy9slLlMpZ3wAO6xUb+c=", - "dev": true, - "license": "MIT", - "dependencies": { - "sver": "^1.8.3" - }, - "engines": { - "node": ">= 10.13.0" - } - }, "node_modules/set-function-length": { "version": "1.2.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/set-function-length/-/set-function-length-1.2.2.tgz", @@ -12697,33 +11200,25 @@ "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/node_modules/source-map": { + "node_modules/source-map": { "version": "0.6.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, - "node_modules/sparkles": { - "version": "2.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/sparkles/-/sparkles-2.1.0.tgz", - "integrity": "sha1-itTozsun5Wi7pmDDm220ZiXs8a0=", + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha1-BP58f54e0tZiIzwoyys1ufY/bk8=", "dev": true, "license": "MIT", - "engines": { - "node": ">= 10.13.0" + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, "node_modules/spdx-correct": { @@ -12805,38 +11300,6 @@ "npm": ">=6" } }, - "node_modules/stream-composer": { - "version": "1.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/stream-composer/-/stream-composer-1.0.2.tgz", - "integrity": "sha1-fuYcoVh79fMbLimqIJPL8RRC0VI=", - "dev": true, - "license": "MIT", - "dependencies": { - "streamx": "^2.13.2" - } - }, - "node_modules/stream-exhaust": { - "version": "1.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/stream-exhaust/-/stream-exhaust-1.0.2.tgz", - "integrity": "sha1-rNrI2lnvK8HheiwMz2wyDRIOVV0=", - "dev": true, - "license": "MIT" - }, - "node_modules/streamx": { - "version": "2.18.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/streamx/-/streamx-2.18.0.tgz", - "integrity": "sha1-W8GlHrQSpmfr/c1ObPam/GVyGsc=", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-fifo": "^1.3.2", - "queue-tick": "^1.0.1", - "text-decoder": "^1.1.0" - }, - "optionalDependencies": { - "bare-events": "^2.2.0" - } - }, "node_modules/strict-event-emitter-types": { "version": "2.0.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/strict-event-emitter-types/-/strict-event-emitter-types-2.0.0.tgz", @@ -12846,7 +11309,6 @@ "version": "1.1.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, "dependencies": { "safe-buffer": "~5.1.0" } @@ -13052,27 +11514,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/sver": { - "version": "1.8.4", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/sver/-/sver-1.8.4.tgz", - "integrity": "sha1-m9b2JlJj8BqrFS35Ndx6VUwVZz8=", - "dev": true, - "license": "MIT", - "optionalDependencies": { - "semver": "^6.3.0" - } - }, - "node_modules/sver/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/semver/-/semver-6.3.1.tgz", - "integrity": "sha1-VW0u+GiRRuRtzqS/3QlfNDTf/LQ=", - "dev": true, - "license": "ISC", - "optional": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/table": { "version": "6.9.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/table/-/table-6.9.0.tgz", @@ -13132,7 +11573,6 @@ "version": "2.2.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/tar-stream/-/tar-stream-2.2.0.tgz", "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dev": true, "dependencies": { "bl": "^4.0.3", "end-of-stream": "^1.4.1", @@ -13148,7 +11588,6 @@ "version": "3.6.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -13158,16 +11597,6 @@ "node": ">= 6" } }, - "node_modules/teex": { - "version": "1.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/teex/-/teex-1.0.1.tgz", - "integrity": "sha1-uPpyRe+Ojv+oB4KBlGyFq3gKCxI=", - "dev": true, - "license": "MIT", - "dependencies": { - "streamx": "^2.12.5" - } - }, "node_modules/terminal-link": { "version": "4.0.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/terminal-link/-/terminal-link-4.0.0.tgz", @@ -13215,16 +11644,6 @@ "node": ">=8" } }, - "node_modules/text-decoder": { - "version": "1.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/text-decoder/-/text-decoder-1.1.0.tgz", - "integrity": "sha1-M3nnKPz004k+wa6jXowsrCFe8ZA=", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "b4a": "^1.6.4" - } - }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/text-table/-/text-table-0.2.0.tgz", @@ -13276,19 +11695,6 @@ "node": ">=8.0" } }, - "node_modules/to-through": { - "version": "3.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/to-through/-/to-through-3.0.0.tgz", - "integrity": "sha1-v0lW6spaBHZHSFClNnK+1pBqzlQ=", - "dev": true, - "license": "MIT", - "dependencies": { - "streamx": "^2.12.5" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/toidentifier": { "version": "1.0.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/toidentifier/-/toidentifier-1.0.0.tgz", @@ -13357,8 +11763,9 @@ "node_modules/ts-node": { "version": "9.1.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ts-node/-/ts-node-9.1.1.tgz", - "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", + "integrity": "sha1-UamkUKPpWUAb2l8ASnLVS5NtN20=", "dev": true, + "license": "MIT", "dependencies": { "arg": "^4.1.0", "create-require": "^1.1.0", @@ -13380,15 +11787,6 @@ "typescript": ">=2.7" } }, - "node_modules/ts-node/node_modules/diff": { - "version": "4.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, "node_modules/tsconfig-paths": { "version": "3.14.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", @@ -13572,58 +11970,12 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/unc-path-regex": { - "version": "0.1.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/underscore": { "version": "1.13.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/underscore/-/underscore-1.13.1.tgz", "integrity": "sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g==", "dev": true }, - "node_modules/undertaker": { - "version": "2.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/undertaker/-/undertaker-2.0.0.tgz", - "integrity": "sha1-/k1A3HGCPOWoDx7MY+yLiK1AtUo=", - "dev": true, - "license": "MIT", - "dependencies": { - "bach": "^2.0.1", - "fast-levenshtein": "^3.0.0", - "last-run": "^2.0.0", - "undertaker-registry": "^2.0.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/undertaker-registry": { - "version": "2.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/undertaker-registry/-/undertaker-registry-2.0.0.tgz", - "integrity": "sha1-1DQkbjmERHQN1/5MlUPkAq2Z5Mo=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/undertaker/node_modules/fast-levenshtein": { - "version": "3.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fast-levenshtein/-/fast-levenshtein-3.0.0.tgz", - "integrity": "sha1-N7iZrkfhCQ5A4/0jGOTV8BQsqRI=", - "dev": true, - "license": "MIT", - "dependencies": { - "fastest-levenshtein": "^1.0.7" - } - }, "node_modules/undici-types": { "version": "7.16.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/undici-types/-/undici-types-7.16.0.tgz", @@ -13644,21 +11996,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/universal-github-app-jwt": { - "version": "1.1.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/universal-github-app-jwt/-/universal-github-app-jwt-1.1.2.tgz", - "integrity": "sha1-jBhno5TX2dQs2jTxHRvLAjeX2N8=", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/jsonwebtoken": "^9.0.0", - "jsonwebtoken": "^9.0.2" - } - }, "node_modules/universal-user-agent": { "version": "6.0.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/universal-user-agent/-/universal-user-agent-6.0.0.tgz", - "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==" + "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==", + "dev": true }, "node_modules/universalify": { "version": "2.0.0", @@ -13725,8 +12067,7 @@ "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "node_modules/utils-merge": { "version": "1.0.1", @@ -13759,16 +12100,6 @@ "node": ">=10.12.0" } }, - "node_modules/v8flags": { - "version": "4.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/v8flags/-/v8flags-4.0.1.tgz", - "integrity": "sha1-mP5sQwgxfF85TYWkNesZJJD34TI=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10.13.0" - } - }, "node_modules/validate-npm-package-license": { "version": "3.0.4", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -13779,16 +12110,6 @@ "spdx-expression-parse": "^3.0.0" } }, - "node_modules/value-or-function": { - "version": "4.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/value-or-function/-/value-or-function-4.0.0.tgz", - "integrity": "sha1-cINraodqAQ3DoriE55AunbBkN40=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10.13.0" - } - }, "node_modules/version-range": { "version": "4.15.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/version-range/-/version-range-4.15.0.tgz", @@ -13802,160 +12123,6 @@ "url": "https://bevry.me/fund" } }, - "node_modules/vinyl": { - "version": "3.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/vinyl/-/vinyl-3.0.0.tgz", - "integrity": "sha1-EeFHMr9W4vqpj/3lFX/mwTJZ/zA=", - "dev": true, - "license": "MIT", - "dependencies": { - "clone": "^2.1.2", - "clone-stats": "^1.0.0", - "remove-trailing-separator": "^1.1.0", - "replace-ext": "^2.0.0", - "teex": "^1.0.1" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/vinyl-contents": { - "version": "2.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/vinyl-contents/-/vinyl-contents-2.0.0.tgz", - "integrity": "sha1-zCuk2zo2ZY0Gkknp422eK0GTXYk=", - "dev": true, - "license": "MIT", - "dependencies": { - "bl": "^5.0.0", - "vinyl": "^3.0.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/vinyl-contents/node_modules/bl": { - "version": "5.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/bl/-/bl-5.1.0.tgz", - "integrity": "sha1-GDcV9njHGI7O+f5HXZAglABiQnM=", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/vinyl-contents/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha1-Ks5XhFnMj74qcKqo9S7mO2p0xsY=", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/vinyl-contents/node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=", - "dev": true, - "license": "ISC" - }, - "node_modules/vinyl-contents/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha1-VqmzbqllwAxak+8x6xEaDxEFaWc=", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/vinyl-fs": { - "version": "4.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/vinyl-fs/-/vinyl-fs-4.0.0.tgz", - "integrity": "sha1-Bss278kRxuEoRS8jC5ZYSpEzw6E=", - "dev": true, - "license": "MIT", - "dependencies": { - "fs-mkdirp-stream": "^2.0.1", - "glob-stream": "^8.0.0", - "graceful-fs": "^4.2.11", - "iconv-lite": "^0.6.3", - "is-valid-glob": "^1.0.0", - "lead": "^4.0.0", - "normalize-path": "3.0.0", - "resolve-options": "^2.0.0", - "stream-composer": "^1.0.2", - "streamx": "^2.14.0", - "to-through": "^3.0.0", - "value-or-function": "^4.0.0", - "vinyl": "^3.0.0", - "vinyl-sourcemap": "^2.0.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/vinyl-fs/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha1-pS+AvzjaGVLrXGgXkHGYcaGnJQE=", - "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/vinyl-sourcemap": { - "version": "2.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/vinyl-sourcemap/-/vinyl-sourcemap-2.0.0.tgz", - "integrity": "sha1-Qi9BCg6pfLVM69aY1WoG16IuAnc=", - "dev": true, - "license": "MIT", - "dependencies": { - "convert-source-map": "^2.0.0", - "graceful-fs": "^4.2.10", - "now-and-later": "^3.0.0", - "streamx": "^2.12.5", - "vinyl": "^3.0.0", - "vinyl-contents": "^2.0.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/vinyl-sourcemap/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha1-S1YPZJ/E6RjdCrdc9JYei8iC2Co=", - "dev": true, - "license": "MIT" - }, "node_modules/vscode-html-languageservice": { "version": "5.3.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/vscode-html-languageservice/-/vscode-html-languageservice-5.3.1.tgz", @@ -14046,11 +12213,6 @@ "integrity": "sha1-ZD7DWlJ+qbMmxnB1UfZtj+qz/q8=", "license": "MIT" }, - "node_modules/vscode-nls": { - "version": "5.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/vscode-nls/-/vscode-nls-5.0.1.tgz", - "integrity": "sha512-hHQV6iig+M21lTdItKPkJAaWrxALQb/nqpVffakO4knJOh3DrU2SXOMzUzNgo1eADPzu3qSsJY1weCzvR52q9A==" - }, "node_modules/vscode-oniguruma": { "version": "1.7.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", @@ -14084,18 +12246,6 @@ "integrity": "sha512-weOVgZ3aAARgdnb220GqYuh7+rZU0Ka9k9yfKtGAzEYMa6GgiCzW9JjQRJyCJakvibQW+dfjJdihjInKuuCAUQ==", "dev": true }, - "node_modules/which": { - "version": "1.3.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, "node_modules/which-boxed-primitive": { "version": "1.0.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", @@ -14239,25 +12389,6 @@ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha1-HIK/D2tqZur85+8w43b0mhJHf2Y=", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/yargs-parser": { "version": "21.1.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/yargs-parser/-/yargs-parser-21.1.1.tgz", @@ -14267,16 +12398,6 @@ "node": ">=12" } }, - "node_modules/yargs/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha1-LrfcOwKJcY/ClfNidThFxBoMlO4=", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, "node_modules/yauzl": { "version": "2.10.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/yauzl/-/yauzl-2.10.0.tgz", @@ -14298,8 +12419,9 @@ "node_modules/yn": { "version": "3.1.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "integrity": "sha1-HodAGgnXZ8HV6rJqbkwYUYLS61A=", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -14320,7 +12442,6 @@ "version": "4.1.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/zip-stream/-/zip-stream-4.1.0.tgz", "integrity": "sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==", - "dev": true, "dependencies": { "archiver-utils": "^2.1.0", "compress-commons": "^4.1.0", @@ -14334,7 +12455,6 @@ "version": "3.6.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -15338,21 +13458,6 @@ } } }, - "@gulpjs/messages": { - "version": "1.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@gulpjs/messages/-/messages-1.1.0.tgz", - "integrity": "sha1-lOcJeP9nat5UH6q0WcN64McJXlo=", - "dev": true - }, - "@gulpjs/to-absolute-glob": { - "version": "4.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@gulpjs/to-absolute-glob/-/to-absolute-glob-4.0.0.tgz", - "integrity": "sha1-H8JGDTlT4dm58t/bS8yZ2kcQwCE=", - "dev": true, - "requires": { - "is-negated-glob": "^1.0.0" - } - }, "@humanwhocodes/config-array": { "version": "0.11.14", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", @@ -15975,206 +14080,17 @@ "fastq": "^1.6.0" } }, - "@octokit/app": { - "version": "14.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/app/-/app-14.1.0.tgz", - "integrity": "sha1-LUkdxwdGdzuD9h7fXFaBfdfThUs=", - "dev": true, - "requires": { - "@octokit/auth-app": "^6.0.0", - "@octokit/auth-unauthenticated": "^5.0.0", - "@octokit/core": "^5.0.0", - "@octokit/oauth-app": "^6.0.0", - "@octokit/plugin-paginate-rest": "^9.0.0", - "@octokit/types": "^12.0.0", - "@octokit/webhooks": "^12.0.4" - }, - "dependencies": { - "@octokit/openapi-types": { - "version": "20.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/openapi-types/-/openapi-types-20.0.0.tgz", - "integrity": "sha1-nsLaoAkO64Ze4UdjbgwA9zeQxuU=", - "dev": true - }, - "@octokit/types": { - "version": "12.6.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/types/-/types-12.6.0.tgz", - "integrity": "sha1-gQD7nu7f4IOq5mRzvZexW2Ku3LI=", - "dev": true, - "requires": { - "@octokit/openapi-types": "^20.0.0" - } - } - } - }, - "@octokit/auth-app": { - "version": "6.1.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/auth-app/-/auth-app-6.1.2.tgz", - "integrity": "sha1-Gf8dfy/6XtYw1Gj6RTMOpZs5tHw=", - "dev": true, - "requires": { - "@octokit/auth-oauth-app": "^7.1.0", - "@octokit/auth-oauth-user": "^4.1.0", - "@octokit/request": "^8.3.1", - "@octokit/request-error": "^5.1.0", - "@octokit/types": "^13.1.0", - "deprecation": "^2.3.1", - "lru-cache": "^10.0.0", - "universal-github-app-jwt": "^1.1.2", - "universal-user-agent": "^6.0.0" - }, - "dependencies": { - "@octokit/openapi-types": { - "version": "22.2.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", - "integrity": "sha1-dap9zUQIIdmd72pgtfAUIHrklo4=", - "dev": true - }, - "@octokit/types": { - "version": "13.5.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/types/-/types-13.5.1.tgz", - "integrity": "sha1-VoWpHylRld3/85cjsJOw35YJzm4=", - "dev": true, - "requires": { - "@octokit/openapi-types": "^22.2.0" - } - }, - "lru-cache": { - "version": "10.4.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha1-QQ/IoXtw5ZgBPfJXwkRrfzOD8Rk=", - "dev": true - } - } - }, - "@octokit/auth-oauth-app": { - "version": "7.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/auth-oauth-app/-/auth-oauth-app-7.1.0.tgz", - "integrity": "sha1-0PdOGevVpIKct4DBB87dbIlPIPw=", - "dev": true, - "requires": { - "@octokit/auth-oauth-device": "^6.1.0", - "@octokit/auth-oauth-user": "^4.1.0", - "@octokit/request": "^8.3.1", - "@octokit/types": "^13.0.0", - "@types/btoa-lite": "^1.0.0", - "btoa-lite": "^1.0.0", - "universal-user-agent": "^6.0.0" - }, - "dependencies": { - "@octokit/openapi-types": { - "version": "22.2.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", - "integrity": "sha1-dap9zUQIIdmd72pgtfAUIHrklo4=", - "dev": true - }, - "@octokit/types": { - "version": "13.5.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/types/-/types-13.5.1.tgz", - "integrity": "sha1-VoWpHylRld3/85cjsJOw35YJzm4=", - "dev": true, - "requires": { - "@octokit/openapi-types": "^22.2.0" - } - } - } - }, - "@octokit/auth-oauth-device": { - "version": "6.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/auth-oauth-device/-/auth-oauth-device-6.1.0.tgz", - "integrity": "sha1-+GghOj2wX+J+aNH8YHUCoyI3ndk=", - "dev": true, - "requires": { - "@octokit/oauth-methods": "^4.1.0", - "@octokit/request": "^8.3.1", - "@octokit/types": "^13.0.0", - "universal-user-agent": "^6.0.0" - }, - "dependencies": { - "@octokit/openapi-types": { - "version": "22.2.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", - "integrity": "sha1-dap9zUQIIdmd72pgtfAUIHrklo4=", - "dev": true - }, - "@octokit/types": { - "version": "13.5.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/types/-/types-13.5.1.tgz", - "integrity": "sha1-VoWpHylRld3/85cjsJOw35YJzm4=", - "dev": true, - "requires": { - "@octokit/openapi-types": "^22.2.0" - } - } - } - }, - "@octokit/auth-oauth-user": { - "version": "4.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/auth-oauth-user/-/auth-oauth-user-4.1.0.tgz", - "integrity": "sha1-MuVSn4vZYa+YOaH4xqsMitIYTu4=", - "dev": true, - "requires": { - "@octokit/auth-oauth-device": "^6.1.0", - "@octokit/oauth-methods": "^4.1.0", - "@octokit/request": "^8.3.1", - "@octokit/types": "^13.0.0", - "btoa-lite": "^1.0.0", - "universal-user-agent": "^6.0.0" - }, - "dependencies": { - "@octokit/openapi-types": { - "version": "22.2.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", - "integrity": "sha1-dap9zUQIIdmd72pgtfAUIHrklo4=", - "dev": true - }, - "@octokit/types": { - "version": "13.5.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/types/-/types-13.5.1.tgz", - "integrity": "sha1-VoWpHylRld3/85cjsJOw35YJzm4=", - "dev": true, - "requires": { - "@octokit/openapi-types": "^22.2.0" - } - } - } - }, "@octokit/auth-token": { "version": "4.0.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/auth-token/-/auth-token-4.0.0.tgz", - "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==" - }, - "@octokit/auth-unauthenticated": { - "version": "5.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/auth-unauthenticated/-/auth-unauthenticated-5.0.1.tgz", - "integrity": "sha1-2AMiEXKDMwaLLge1OZfCnlmgNQc=", - "dev": true, - "requires": { - "@octokit/request-error": "^5.0.0", - "@octokit/types": "^12.0.0" - }, - "dependencies": { - "@octokit/openapi-types": { - "version": "20.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/openapi-types/-/openapi-types-20.0.0.tgz", - "integrity": "sha1-nsLaoAkO64Ze4UdjbgwA9zeQxuU=", - "dev": true - }, - "@octokit/types": { - "version": "12.6.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/types/-/types-12.6.0.tgz", - "integrity": "sha1-gQD7nu7f4IOq5mRzvZexW2Ku3LI=", - "dev": true, - "requires": { - "@octokit/openapi-types": "^20.0.0" - } - } - } + "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==", + "dev": true }, "@octokit/core": { "version": "5.2.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/core/-/core-5.2.2.tgz", "integrity": "sha1-JSgFcy3ptOjk9ljTS4DEybJTR2E=", + "dev": true, "requires": { "@octokit/auth-token": "^4.0.0", "@octokit/graphql": "^7.1.0", @@ -16188,12 +14104,14 @@ "@octokit/openapi-types": { "version": "24.2.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/openapi-types/-/openapi-types-24.2.0.tgz", - "integrity": "sha1-PVXDLqwNONoacIOpw7DMp3kk99M=" + "integrity": "sha1-PVXDLqwNONoacIOpw7DMp3kk99M=", + "dev": true }, "@octokit/types": { "version": "13.10.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/types/-/types-13.10.0.tgz", "integrity": "sha1-PnxrGcAjbCcGVuTqZmFIwrUf0aM=", + "dev": true, "requires": { "@octokit/openapi-types": "^24.2.0" } @@ -16204,138 +14122,53 @@ "version": "9.0.6", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/endpoint/-/endpoint-9.0.6.tgz", "integrity": "sha1-EU2RIQj+aS2LE5z+f8CEbf0RtsA=", - "requires": { - "@octokit/types": "^13.1.0", - "universal-user-agent": "^6.0.0" - }, - "dependencies": { - "@octokit/openapi-types": { - "version": "24.2.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/openapi-types/-/openapi-types-24.2.0.tgz", - "integrity": "sha1-PVXDLqwNONoacIOpw7DMp3kk99M=" - }, - "@octokit/types": { - "version": "13.10.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/types/-/types-13.10.0.tgz", - "integrity": "sha1-PnxrGcAjbCcGVuTqZmFIwrUf0aM=", - "requires": { - "@octokit/openapi-types": "^24.2.0" - } - } - } - }, - "@octokit/graphql": { - "version": "7.1.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/graphql/-/graphql-7.1.1.tgz", - "integrity": "sha1-ednz0Mlqj9E9ZBhv5cM2BtSLecw=", - "requires": { - "@octokit/request": "^8.4.1", - "@octokit/types": "^13.0.0", - "universal-user-agent": "^6.0.0" - }, - "dependencies": { - "@octokit/openapi-types": { - "version": "24.2.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/openapi-types/-/openapi-types-24.2.0.tgz", - "integrity": "sha1-PVXDLqwNONoacIOpw7DMp3kk99M=" - }, - "@octokit/types": { - "version": "13.10.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/types/-/types-13.10.0.tgz", - "integrity": "sha1-PnxrGcAjbCcGVuTqZmFIwrUf0aM=", - "requires": { - "@octokit/openapi-types": "^24.2.0" - } - } - } - }, - "@octokit/oauth-app": { - "version": "6.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/oauth-app/-/oauth-app-6.1.0.tgz", - "integrity": "sha1-IsJ29q0jZMaZmDe/3V2cEJKDhyY=", - "dev": true, - "requires": { - "@octokit/auth-oauth-app": "^7.0.0", - "@octokit/auth-oauth-user": "^4.0.0", - "@octokit/auth-unauthenticated": "^5.0.0", - "@octokit/core": "^5.0.0", - "@octokit/oauth-authorization-url": "^6.0.2", - "@octokit/oauth-methods": "^4.0.0", - "@types/aws-lambda": "^8.10.83", - "universal-user-agent": "^6.0.0" - } - }, - "@octokit/oauth-authorization-url": { - "version": "6.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/oauth-authorization-url/-/oauth-authorization-url-6.0.2.tgz", - "integrity": "sha1-zILKKcxeM5yZIWcvOfKz9cjrbvI=", - "dev": true - }, - "@octokit/oauth-methods": { - "version": "4.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/oauth-methods/-/oauth-methods-4.1.0.tgz", - "integrity": "sha1-FAOsnE1OJ3ki/dxMifqKeC+PeRs=", "dev": true, "requires": { - "@octokit/oauth-authorization-url": "^6.0.2", - "@octokit/request": "^8.3.1", - "@octokit/request-error": "^5.1.0", - "@octokit/types": "^13.0.0", - "btoa-lite": "^1.0.0" + "@octokit/types": "^13.1.0", + "universal-user-agent": "^6.0.0" }, "dependencies": { "@octokit/openapi-types": { - "version": "22.2.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", - "integrity": "sha1-dap9zUQIIdmd72pgtfAUIHrklo4=", + "version": "24.2.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/openapi-types/-/openapi-types-24.2.0.tgz", + "integrity": "sha1-PVXDLqwNONoacIOpw7DMp3kk99M=", "dev": true }, "@octokit/types": { - "version": "13.5.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/types/-/types-13.5.1.tgz", - "integrity": "sha1-VoWpHylRld3/85cjsJOw35YJzm4=", + "version": "13.10.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/types/-/types-13.10.0.tgz", + "integrity": "sha1-PnxrGcAjbCcGVuTqZmFIwrUf0aM=", "dev": true, "requires": { - "@octokit/openapi-types": "^22.2.0" + "@octokit/openapi-types": "^24.2.0" } } } }, - "@octokit/openapi-types": { - "version": "18.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/openapi-types/-/openapi-types-18.0.0.tgz", - "integrity": "sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw==", - "dev": true - }, - "@octokit/plugin-paginate-graphql": { - "version": "4.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/plugin-paginate-graphql/-/plugin-paginate-graphql-4.0.0.tgz", - "integrity": "sha512-7HcYW5tP7/Z6AETAPU14gp5H5KmCPT3hmJrS/5tO7HIgbwenYmgw4OY9Ma54FDySuxMwD+wsJlxtuGWwuZuItA==", - "dev": true, - "requires": {} - }, - "@octokit/plugin-paginate-rest": { - "version": "9.2.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.2.2.tgz", - "integrity": "sha1-xRa8SYc2vNqpCVuaHRDZ0FAa6DE=", + "@octokit/graphql": { + "version": "7.1.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/graphql/-/graphql-7.1.1.tgz", + "integrity": "sha1-ednz0Mlqj9E9ZBhv5cM2BtSLecw=", "dev": true, "requires": { - "@octokit/types": "^12.6.0" + "@octokit/request": "^8.4.1", + "@octokit/types": "^13.0.0", + "universal-user-agent": "^6.0.0" }, "dependencies": { "@octokit/openapi-types": { - "version": "20.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/openapi-types/-/openapi-types-20.0.0.tgz", - "integrity": "sha1-nsLaoAkO64Ze4UdjbgwA9zeQxuU=", + "version": "24.2.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/openapi-types/-/openapi-types-24.2.0.tgz", + "integrity": "sha1-PVXDLqwNONoacIOpw7DMp3kk99M=", "dev": true }, "@octokit/types": { - "version": "12.6.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/types/-/types-12.6.0.tgz", - "integrity": "sha1-gQD7nu7f4IOq5mRzvZexW2Ku3LI=", + "version": "13.10.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/types/-/types-13.10.0.tgz", + "integrity": "sha1-PnxrGcAjbCcGVuTqZmFIwrUf0aM=", "dev": true, "requires": { - "@octokit/openapi-types": "^20.0.0" + "@octokit/openapi-types": "^24.2.0" } } } @@ -16344,12 +14177,14 @@ "version": "4.0.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/plugin-request-log/-/plugin-request-log-4.0.0.tgz", "integrity": "sha512-2uJI1COtYCq8Z4yNSnM231TgH50bRkheQ9+aH8TnZanB6QilOnx8RMD2qsnamSOXtDj0ilxvevf5fGsBhBBzKA==", + "dev": true, "requires": {} }, "@octokit/plugin-rest-endpoint-methods": { "version": "13.3.2-cjs.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-13.3.2-cjs.1.tgz", "integrity": "sha1-0KFC/0HY94krbM70WXkEn1Hsqo0=", + "dev": true, "requires": { "@octokit/types": "^13.8.0" }, @@ -16357,52 +14192,16 @@ "@octokit/openapi-types": { "version": "24.2.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/openapi-types/-/openapi-types-24.2.0.tgz", - "integrity": "sha1-PVXDLqwNONoacIOpw7DMp3kk99M=" + "integrity": "sha1-PVXDLqwNONoacIOpw7DMp3kk99M=", + "dev": true }, "@octokit/types": { "version": "13.10.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/types/-/types-13.10.0.tgz", "integrity": "sha1-PnxrGcAjbCcGVuTqZmFIwrUf0aM=", - "requires": { - "@octokit/openapi-types": "^24.2.0" - } - } - } - }, - "@octokit/plugin-retry": { - "version": "6.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/plugin-retry/-/plugin-retry-6.0.0.tgz", - "integrity": "sha512-a1/A4A+PB1QoAHQfLJxGHhLfSAT03bR1jJz3GgQJZvty2ozawFWs93MiBQXO7SL2YbO7CIq0Goj4qLOBj8JeMQ==", - "dev": true, - "requires": { - "@octokit/request-error": "^5.0.0", - "@octokit/types": "^11.0.0", - "bottleneck": "^2.15.3" - } - }, - "@octokit/plugin-throttling": { - "version": "8.2.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/plugin-throttling/-/plugin-throttling-8.2.0.tgz", - "integrity": "sha1-nsPqLje5L6xj8GkR0MgUG0bcSUE=", - "dev": true, - "requires": { - "@octokit/types": "^12.2.0", - "bottleneck": "^2.15.3" - }, - "dependencies": { - "@octokit/openapi-types": { - "version": "20.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/openapi-types/-/openapi-types-20.0.0.tgz", - "integrity": "sha1-nsLaoAkO64Ze4UdjbgwA9zeQxuU=", - "dev": true - }, - "@octokit/types": { - "version": "12.6.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/types/-/types-12.6.0.tgz", - "integrity": "sha1-gQD7nu7f4IOq5mRzvZexW2Ku3LI=", "dev": true, "requires": { - "@octokit/openapi-types": "^20.0.0" + "@octokit/openapi-types": "^24.2.0" } } } @@ -16411,6 +14210,7 @@ "version": "8.4.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/request/-/request-8.4.1.tgz", "integrity": "sha1-cVoBXM+ZMIeXfqQ2XER5H8RXJIY=", + "dev": true, "requires": { "@octokit/endpoint": "^9.0.6", "@octokit/request-error": "^5.1.1", @@ -16421,12 +14221,14 @@ "@octokit/openapi-types": { "version": "22.2.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", - "integrity": "sha1-dap9zUQIIdmd72pgtfAUIHrklo4=" + "integrity": "sha1-dap9zUQIIdmd72pgtfAUIHrklo4=", + "dev": true }, "@octokit/types": { "version": "13.5.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/types/-/types-13.5.1.tgz", "integrity": "sha1-VoWpHylRld3/85cjsJOw35YJzm4=", + "dev": true, "requires": { "@octokit/openapi-types": "^22.2.0" } @@ -16437,6 +14239,7 @@ "version": "5.1.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/request-error/-/request-error-5.1.1.tgz", "integrity": "sha1-uSGPnBFm5ou00MibY47cYskzSAU=", + "dev": true, "requires": { "@octokit/types": "^13.1.0", "deprecation": "^2.0.0", @@ -16446,12 +14249,14 @@ "@octokit/openapi-types": { "version": "22.2.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", - "integrity": "sha1-dap9zUQIIdmd72pgtfAUIHrklo4=" + "integrity": "sha1-dap9zUQIIdmd72pgtfAUIHrklo4=", + "dev": true }, "@octokit/types": { "version": "13.5.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/types/-/types-13.5.1.tgz", "integrity": "sha1-VoWpHylRld3/85cjsJOw35YJzm4=", + "dev": true, "requires": { "@octokit/openapi-types": "^22.2.0" } @@ -16462,6 +14267,7 @@ "version": "20.1.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/rest/-/rest-20.1.2.tgz", "integrity": "sha1-HXTQxyreDWT3xUFkSNXIhfXjzMQ=", + "dev": true, "requires": { "@octokit/core": "^5.0.2", "@octokit/plugin-paginate-rest": "11.4.4-cjs.2", @@ -16472,12 +14278,14 @@ "@octokit/openapi-types": { "version": "24.2.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/openapi-types/-/openapi-types-24.2.0.tgz", - "integrity": "sha1-PVXDLqwNONoacIOpw7DMp3kk99M=" + "integrity": "sha1-PVXDLqwNONoacIOpw7DMp3kk99M=", + "dev": true }, "@octokit/plugin-paginate-rest": { "version": "11.4.4-cjs.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.4.4-cjs.2.tgz", "integrity": "sha1-l5oQ1Xe856OT6OZZU4h+QrCgUAA=", + "dev": true, "requires": { "@octokit/types": "^13.7.0" } @@ -16486,45 +14294,13 @@ "version": "13.10.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/types/-/types-13.10.0.tgz", "integrity": "sha1-PnxrGcAjbCcGVuTqZmFIwrUf0aM=", + "dev": true, "requires": { "@octokit/openapi-types": "^24.2.0" } } } }, - "@octokit/types": { - "version": "11.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/types/-/types-11.1.0.tgz", - "integrity": "sha512-Fz0+7GyLm/bHt8fwEqgvRBWwIV1S6wRRyq+V6exRKLVWaKGsuy6H9QFYeBVDV7rK6fO3XwHgQOPxv+cLj2zpXQ==", - "dev": true, - "requires": { - "@octokit/openapi-types": "^18.0.0" - } - }, - "@octokit/webhooks": { - "version": "12.3.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/webhooks/-/webhooks-12.3.2.tgz", - "integrity": "sha1-repy+/u2Er2LAaVnQb1M9XLhCgw=", - "dev": true, - "requires": { - "@octokit/request-error": "^5.0.0", - "@octokit/webhooks-methods": "^4.1.0", - "@octokit/webhooks-types": "7.6.1", - "aggregate-error": "^3.1.0" - } - }, - "@octokit/webhooks-methods": { - "version": "4.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/webhooks-methods/-/webhooks-methods-4.1.0.tgz", - "integrity": "sha1-aBpshsmyHU7J4pEI+wU651Er4DM=", - "dev": true - }, - "@octokit/webhooks-types": { - "version": "7.6.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/webhooks-types/-/webhooks-types-7.6.1.tgz", - "integrity": "sha1-vJY3EFfC1UyYLJ+PZCZVsmzViOs=", - "dev": true - }, "@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", @@ -16793,12 +14569,6 @@ "@types/glob": "*" } }, - "@types/aws-lambda": { - "version": "8.10.145", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/aws-lambda/-/aws-lambda-8.10.145.tgz", - "integrity": "sha1-stMamH9IiOVVP/GBn1fK+kdVlNk=", - "dev": true - }, "@types/babel__core": { "version": "7.20.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/babel__core/-/babel__core-7.20.1.tgz", @@ -16840,27 +14610,6 @@ "@babel/types": "^7.20.7" } }, - "@types/btoa-lite": { - "version": "1.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/btoa-lite/-/btoa-lite-1.0.2.tgz", - "integrity": "sha1-grtqqwCr98/zyiglq+AQwM1TauU=", - "dev": true - }, - "@types/chokidar": { - "version": "2.1.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/chokidar/-/chokidar-2.1.3.tgz", - "integrity": "sha512-6qK3xoLLAhQVTucQGHTySwOVA1crHRXnJeLwqK6KIFkkKa2aoMFXh+WEi8PotxDtvN6MQJLyYN9ag9P6NLV81w==", - "dev": true, - "requires": { - "chokidar": "*" - } - }, - "@types/expect": { - "version": "1.20.4", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/expect/-/expect-1.20.4.tgz", - "integrity": "sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==", - "dev": true - }, "@types/fs-extra": { "version": "11.0.4", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/fs-extra/-/fs-extra-11.0.4.tgz", @@ -16881,16 +14630,6 @@ "@types/node": "*" } }, - "@types/glob-stream": { - "version": "6.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/glob-stream/-/glob-stream-6.1.0.tgz", - "integrity": "sha512-RHv6ZQjcTncXo3thYZrsbAVwoy4vSKosSWhuhuQxLOTv74OJuFQxXkmUuZCr3q9uNBEVCvIzmZL/FeRNbHZGUg==", - "dev": true, - "requires": { - "@types/glob": "*", - "@types/node": "*" - } - }, "@types/graceful-fs": { "version": "4.1.6", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", @@ -16900,17 +14639,6 @@ "@types/node": "*" } }, - "@types/gulp": { - "version": "4.0.5", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/gulp/-/gulp-4.0.5.tgz", - "integrity": "sha512-nx1QjPTiRpvLfYsZ7MBu7bT6Cm7tAXyLbY0xbdx2IEMxCK2v2urIhJMQZHW0iV1TskM71Xl6p2uRRuWDbk+/7g==", - "dev": true, - "requires": { - "@types/chokidar": "*", - "@types/undertaker": "*", - "@types/vinyl-fs": "*" - } - }, "@types/istanbul-lib-coverage": { "version": "2.0.4", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", @@ -16950,15 +14678,6 @@ "@types/node": "*" } }, - "@types/jsonwebtoken": { - "version": "9.0.7", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/jsonwebtoken/-/jsonwebtoken-9.0.7.tgz", - "integrity": "sha1-5JuWwrKTVu1GLpcI/HO4MwFHJ9I=", - "dev": true, - "requires": { - "@types/node": "*" - } - }, "@types/minimatch": { "version": "3.0.3", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/minimatch/-/minimatch-3.0.3.tgz", @@ -17010,49 +14729,12 @@ "integrity": "sha1-EHPEvIJHVK49EM+riKsCN7qWTk0=", "dev": true }, - "@types/undertaker": { - "version": "1.2.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/undertaker/-/undertaker-1.2.3.tgz", - "integrity": "sha512-OhvIYx6pUJBxYZf5fM/BVMNXZQMy095kplml+4cWrlNqM1t6XtSIQCuVySGmICZCnzi69Epdljyplm86BlTouQ==", - "dev": true, - "requires": { - "@types/node": "*", - "@types/undertaker-registry": "*" - } - }, - "@types/undertaker-registry": { - "version": "1.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/undertaker-registry/-/undertaker-registry-1.0.1.tgz", - "integrity": "sha512-Z4TYuEKn9+RbNVk1Ll2SS4x1JeLHecolIbM/a8gveaHsW0Hr+RQMraZACwTO2VD7JvepgA6UO1A1VrbktQrIbQ==", - "dev": true - }, "@types/uuid": { "version": "9.0.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/uuid/-/uuid-9.0.2.tgz", "integrity": "sha512-kNnC1GFBLuhImSnV7w4njQkUiJi0ZXUycu1rUaouPqiKlXkh77JKgdRnTAp1x5eBwcIwbtI+3otwzuIDEuDoxQ==", "dev": true }, - "@types/vinyl": { - "version": "2.0.7", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/vinyl/-/vinyl-2.0.7.tgz", - "integrity": "sha512-4UqPv+2567NhMQuMLdKAyK4yzrfCqwaTt6bLhHEs8PFcxbHILsrxaY63n4wgE/BRLDWDQeI+WcTmkXKExh9hQg==", - "dev": true, - "requires": { - "@types/expect": "^1.20.4", - "@types/node": "*" - } - }, - "@types/vinyl-fs": { - "version": "2.4.11", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/vinyl-fs/-/vinyl-fs-2.4.11.tgz", - "integrity": "sha512-2OzQSfIr9CqqWMGqmcERE6Hnd2KY3eBVtFaulVo3sJghplUcaeMdL9ZjEiljcQQeHjheWY9RlNmumjIAvsBNaA==", - "dev": true, - "requires": { - "@types/glob-stream": "*", - "@types/node": "*", - "@types/vinyl": "*" - } - }, "@types/vscode": { "version": "1.98.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/vscode/-/vscode-1.98.0.tgz", @@ -17219,11 +14901,6 @@ "integrity": "sha1-dWZBrbWHhRtcyz4JXa8nrlgchAY=", "dev": true }, - "@vscode/debugprotocol": { - "version": "1.56.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@vscode/debugprotocol/-/debugprotocol-1.56.0.tgz", - "integrity": "sha512-hM+LlYNimM5HxoWG5lvNYIStjsKJdKE/4nwOIYaAjr/M7Cb5bFaJcHfkcdTJZAZejao/ueakuZ0Iq3JkC1avcQ==" - }, "@vscode/extension-telemetry": { "version": "0.9.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@vscode/extension-telemetry/-/extension-telemetry-0.9.0.tgz", @@ -17642,16 +15319,6 @@ "debug": "^4.3.4" } }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha1-kmcP9Q9TWb23o+DUDQ7DDFc3aHo=", - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, "ajv": { "version": "6.12.6", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ajv/-/ajv-6.12.6.tgz", @@ -17710,7 +15377,6 @@ "version": "5.3.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/archiver/-/archiver-5.3.0.tgz", "integrity": "sha512-iUw+oDwK0fgNpvveEsdQ0Ase6IIKztBJU2U0E9MzszMfmVVUyv1QJhS2ITW9ZCqx8dktAxVAjWWkKehuZE8OPg==", - "dev": true, "requires": { "archiver-utils": "^2.1.0", "async": "^3.2.0", @@ -17725,7 +15391,6 @@ "version": "3.6.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -17738,7 +15403,6 @@ "version": "2.1.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/archiver-utils/-/archiver-utils-2.1.0.tgz", "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", - "dev": true, "requires": { "glob": "^7.1.4", "graceful-fs": "^4.2.0", @@ -17755,7 +15419,7 @@ "arg": { "version": "4.1.3", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "integrity": "sha1-Jp/HrVuOQstjyJbVZmAXJhwUQIk=", "dev": true }, "argparse": { @@ -17777,12 +15441,6 @@ "is-array-buffer": "^3.0.1" } }, - "array-each": { - "version": "1.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", - "dev": true - }, "array-includes": { "version": "3.1.6", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/array-includes/-/array-includes-3.1.6.tgz", @@ -17796,12 +15454,6 @@ "is-string": "^1.0.7" } }, - "array-slice": { - "version": "1.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/array-slice/-/array-slice-1.1.0.tgz", - "integrity": "sha1-42jqFfibxwaff/uJrsOmx9SsItQ=", - "dev": true - }, "array.prototype.flat": { "version": "1.3.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", @@ -17835,28 +15487,7 @@ "async": { "version": "3.2.3", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/async/-/async-3.2.3.tgz", - "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==", - "dev": true - }, - "async-done": { - "version": "2.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/async-done/-/async-done-2.0.0.tgz", - "integrity": "sha1-8exd9zjGODpSsKMNCQL9iXMpwVo=", - "dev": true, - "requires": { - "end-of-stream": "^1.4.4", - "once": "^1.4.0", - "stream-exhaust": "^1.0.2" - } - }, - "async-settle": { - "version": "2.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/async-settle/-/async-settle-2.0.0.tgz", - "integrity": "sha1-xpWtFOBw9qdV0BnTLW6zgCkCAoc=", - "dev": true, - "requires": { - "async-done": "^2.0.0" - } + "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==" }, "asynckit": { "version": "0.4.0", @@ -17885,12 +15516,6 @@ "typed-rest-client": "^1.8.4" } }, - "b4a": { - "version": "1.6.6", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/b4a/-/b4a-1.6.6.tgz", - "integrity": "sha1-pMw0mjhRmHw8SsLXeFwYdE9tqbo=", - "dev": true - }, "babel-jest": { "version": "29.6.4", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/babel-jest/-/babel-jest-29.6.4.tgz", @@ -17961,44 +15586,20 @@ "babel-preset-current-node-syntax": "^1.0.0" } }, - "bach": { - "version": "2.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/bach/-/bach-2.0.1.tgz", - "integrity": "sha1-RaOjy/fbujEyCHGFxgNXSCuYiXI=", - "dev": true, - "requires": { - "async-done": "^2.0.0", - "async-settle": "^2.0.0", - "now-and-later": "^3.0.0" - } - }, "balanced-match": { "version": "1.0.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, - "bare-events": { - "version": "2.3.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/bare-events/-/bare-events-2.3.1.tgz", - "integrity": "sha1-WvLuC+lXj4Hjwaqbw6aivPIjB84=", - "dev": true, - "optional": true - }, "base64-js": { "version": "1.3.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", - "dev": true + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" }, "before-after-hook": { "version": "2.2.3", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/before-after-hook/-/before-after-hook-2.2.3.tgz", - "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==" - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", "dev": true }, "binaryextensions": { @@ -18014,7 +15615,6 @@ "version": "4.1.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/bl/-/bl-4.1.0.tgz", "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, "requires": { "buffer": "^5.5.0", "inherits": "^2.0.4", @@ -18024,14 +15624,12 @@ "inherits": { "version": "2.0.4", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "readable-stream": { "version": "3.6.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -18129,12 +15727,6 @@ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", "dev": true }, - "bottleneck": { - "version": "2.19.5", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/bottleneck/-/bottleneck-2.19.5.tgz", - "integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==", - "dev": true - }, "boundary": { "version": "2.0.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/boundary/-/boundary-2.0.0.tgz", @@ -18189,17 +15781,10 @@ "node-int64": "^0.4.0" } }, - "btoa-lite": { - "version": "1.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/btoa-lite/-/btoa-lite-1.0.0.tgz", - "integrity": "sha1-M3dm2hWAEhD92VbCLpxokaudAzc=", - "dev": true - }, "buffer": { "version": "5.7.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/buffer/-/buffer-5.7.1.tgz", "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, "requires": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -18280,6 +15865,7 @@ "version": "4.1.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/camel-case/-/camel-case-4.1.2.tgz", "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dev": true, "requires": { "pascal-case": "^3.1.2", "tslib": "^2.0.3" @@ -18288,7 +15874,8 @@ "tslib": { "version": "2.5.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", + "dev": true } } }, @@ -18360,22 +15947,6 @@ "domutils": "^2.7.0" } }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, "chownr": { "version": "1.1.4", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/chownr/-/chownr-1.1.4.tgz", @@ -18404,35 +15975,6 @@ "escape-string-regexp": "^1.0.5" } }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha1-7oRy27Ep5yezHooQpCfe6d/kAIs=", - "dev": true - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha1-oCZe5lVHb8gHrqnfPfjfd4OAi08=", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "clone": { - "version": "2.1.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true - }, - "clone-stats": { - "version": "1.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", - "dev": true - }, "co": { "version": "4.6.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/co/-/co-4.6.0.tgz", @@ -18485,7 +16027,6 @@ "version": "4.1.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/compress-commons/-/compress-commons-4.1.0.tgz", "integrity": "sha512-ofaaLqfraD1YRTkrRKPCrGJ1pFeDG/MVCkVVV2FNGeWquSlqw5wOrwOfPQ1xF2u+blpeWASie5EubHz+vsNIgA==", - "dev": true, "requires": { "buffer-crc32": "^0.2.13", "crc32-stream": "^4.0.1", @@ -18497,7 +16038,6 @@ "version": "3.6.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -18549,35 +16089,15 @@ "safe-buffer": "~5.1.1" } }, - "copy-props": { - "version": "4.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/copy-props/-/copy-props-4.0.0.tgz", - "integrity": "sha1-AdJJGYuMLk2KXoe5DJYw9SyZqck=", - "dev": true, - "requires": { - "each-props": "^3.0.0", - "is-plain-object": "^5.0.0" - }, - "dependencies": { - "is-plain-object": { - "version": "5.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha1-RCf1CrNCnpAl6n1S6QQ6nvQVk0Q=", - "dev": true - } - } - }, "core-util-is": { "version": "1.0.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "crc-32": { "version": "1.2.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/crc-32/-/crc-32-1.2.0.tgz", "integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==", - "dev": true, "requires": { "exit-on-epipe": "~1.0.1", "printj": "~1.1.0" @@ -18587,7 +16107,6 @@ "version": "4.0.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/crc32-stream/-/crc32-stream-4.0.2.tgz", "integrity": "sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w==", - "dev": true, "requires": { "crc-32": "^1.2.0", "readable-stream": "^3.4.0" @@ -18597,7 +16116,6 @@ "version": "3.6.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -18609,7 +16127,7 @@ "create-require": { "version": "1.1.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "integrity": "sha1-wdfo8eX2z8n/ZfnNNS03NIdWwzM=", "dev": true }, "css-select": { @@ -18730,7 +16248,8 @@ "deprecation": { "version": "2.3.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", + "dev": true }, "destroy": { "version": "1.2.0", @@ -18738,12 +16257,6 @@ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", "dev": true }, - "detect-file": { - "version": "1.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", - "dev": true - }, "detect-libc": { "version": "2.0.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/detect-libc/-/detect-libc-2.0.1.tgz", @@ -18757,6 +16270,12 @@ "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true }, + "diff": { + "version": "4.0.4", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/diff/-/diff-4.0.4.tgz", + "integrity": "sha1-em2/2jJfJfB1F+m1GPiXwIMy4H0=", + "dev": true + }, "diff-sequences": { "version": "29.6.3", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/diff-sequences/-/diff-sequences-29.6.3.tgz", @@ -18820,24 +16339,6 @@ "gopd": "^1.2.0" } }, - "each-props": { - "version": "3.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/each-props/-/each-props-3.0.0.tgz", - "integrity": "sha1-qI+xdjSkgoMHYQ7Ggmn7ovcoDNg=", - "dev": true, - "requires": { - "is-plain-object": "^5.0.0", - "object.defaults": "^1.1.0" - }, - "dependencies": { - "is-plain-object": { - "version": "5.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha1-RCf1CrNCnpAl6n1S6QQ6nvQVk0Q=", - "dev": true - } - } - }, "eastasianwidth": { "version": "0.2.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eastasianwidth/-/eastasianwidth-0.2.0.tgz", @@ -19683,8 +17184,7 @@ "exit-on-epipe": { "version": "1.0.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", - "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==", - "dev": true + "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==" }, "expand-template": { "version": "2.0.3", @@ -19693,15 +17193,6 @@ "dev": true, "optional": true }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, "expect": { "version": "29.6.4", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/expect/-/expect-29.6.4.tgz", @@ -19715,12 +17206,6 @@ "jest-util": "^29.6.3" } }, - "extend": { - "version": "3.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/extend/-/extend-3.0.2.tgz", - "integrity": "sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=", - "dev": true - }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -19730,13 +17215,7 @@ "fast-diff": { "version": "1.3.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fast-diff/-/fast-diff-1.3.0.tgz", - "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", - "dev": true - }, - "fast-fifo": { - "version": "1.3.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fast-fifo/-/fast-fifo-1.3.2.tgz", - "integrity": "sha1-KG4x3pbrltOKl4mYFXQLoqTzZAw=", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", "dev": true }, "fast-glob": { @@ -19770,12 +17249,6 @@ "integrity": "sha1-Zu7P9sdkwN+bdi5iyn7c+1O07fo=", "dev": true }, - "fastest-levenshtein": { - "version": "1.0.12", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", - "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", - "dev": true - }, "fastq": { "version": "1.15.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fastq/-/fastq-1.15.0.tgz", @@ -19856,45 +17329,6 @@ "path-exists": "^4.0.0" } }, - "findup-sync": { - "version": "5.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/findup-sync/-/findup-sync-5.0.0.tgz", - "integrity": "sha1-VDgK2WWn7coAzI9jETVZqtxUG9I=", - "dev": true, - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.3", - "micromatch": "^4.0.4", - "resolve-dir": "^1.0.1" - } - }, - "fined": { - "version": "2.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fined/-/fined-2.0.0.tgz", - "integrity": "sha1-aEZWPtloec5t5shccVxCJQ+NgIk=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "is-plain-object": "^5.0.0", - "object.defaults": "^1.1.0", - "object.pick": "^1.3.0", - "parse-filepath": "^1.0.2" - }, - "dependencies": { - "is-plain-object": { - "version": "5.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha1-RCf1CrNCnpAl6n1S6QQ6nvQVk0Q=", - "dev": true - } - } - }, - "flagged-respawn": { - "version": "2.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/flagged-respawn/-/flagged-respawn-2.0.0.tgz", - "integrity": "sha1-q/OXGdz+GsBshslGYIHFQcaCmHs=", - "dev": true - }, "flat": { "version": "5.0.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/flat/-/flat-5.0.2.tgz", @@ -19937,21 +17371,6 @@ "is-callable": "^1.1.3" } }, - "for-in": { - "version": "1.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "for-own": { - "version": "1.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "dev": true, - "requires": { - "for-in": "^1.0.1" - } - }, "foreground-child": { "version": "3.3.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/foreground-child/-/foreground-child-3.3.1.tgz", @@ -20027,8 +17446,7 @@ "fs-constants": { "version": "1.0.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" }, "fs-extra": { "version": "11.3.0", @@ -20040,21 +17458,10 @@ "universalify": "^2.0.0" } }, - "fs-mkdirp-stream": { - "version": "2.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fs-mkdirp-stream/-/fs-mkdirp-stream-2.0.1.tgz", - "integrity": "sha1-HoJXXEAjkprTXPaSafhPGoyXOqc=", - "dev": true, - "requires": { - "graceful-fs": "^4.2.8", - "streamx": "^2.12.0" - } - }, "fs.realpath": { "version": "1.0.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fsevents": { "version": "2.3.2", @@ -20174,7 +17581,6 @@ "version": "7.2.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/glob/-/glob-7.2.0.tgz", "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -20193,67 +17599,6 @@ "is-glob": "^4.0.1" } }, - "glob-stream": { - "version": "8.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/glob-stream/-/glob-stream-8.0.2.tgz", - "integrity": "sha1-CeWBjkHBbdhSdNcsenFY0wdCYxM=", - "dev": true, - "requires": { - "@gulpjs/to-absolute-glob": "^4.0.0", - "anymatch": "^3.1.3", - "fastq": "^1.13.0", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "is-negated-glob": "^1.0.0", - "normalize-path": "^3.0.0", - "streamx": "^2.12.5" - }, - "dependencies": { - "glob-parent": { - "version": "6.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha1-bSN9mQg5UMeSkPJMdkKj3poo+eM=", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - } - } - }, - "glob-watcher": { - "version": "6.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/glob-watcher/-/glob-watcher-6.0.0.tgz", - "integrity": "sha1-hWU0GXipIjP7OIG4hXtNHpxr8IA=", - "dev": true, - "requires": { - "async-done": "^2.0.0", - "chokidar": "^3.5.3" - } - }, - "global-modules": { - "version": "1.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha1-bXcPDrUjrHgWTXK15xqIdyZcw+o=", - "dev": true, - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - } - }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - } - }, "globals": { "version": "13.24.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/globals/-/globals-13.24.0.tgz", @@ -20300,15 +17645,6 @@ } } }, - "glogg": { - "version": "2.2.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/glogg/-/glogg-2.2.0.tgz", - "integrity": "sha1-lWzrhVoFoqofpmjXSPK+jnNhwRw=", - "dev": true, - "requires": { - "sparkles": "^2.1.0" - } - }, "gopd": { "version": "1.2.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/gopd/-/gopd-1.2.0.tgz", @@ -20326,47 +17662,6 @@ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true }, - "gulp": { - "version": "5.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/gulp/-/gulp-5.0.0.tgz", - "integrity": "sha1-ePS4rEigv2GzVNOeW+hE3ixcw/M=", - "dev": true, - "requires": { - "glob-watcher": "^6.0.0", - "gulp-cli": "^3.0.0", - "undertaker": "^2.0.0", - "vinyl-fs": "^4.0.0" - } - }, - "gulp-cli": { - "version": "3.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/gulp-cli/-/gulp-cli-3.0.0.tgz", - "integrity": "sha1-V3AI9TI/rWEGtE2ySAPCfDpkmEE=", - "dev": true, - "requires": { - "@gulpjs/messages": "^1.1.0", - "chalk": "^4.1.2", - "copy-props": "^4.0.0", - "gulplog": "^2.2.0", - "interpret": "^3.1.1", - "liftoff": "^5.0.0", - "mute-stdout": "^2.0.0", - "replace-homedir": "^2.0.0", - "semver-greatest-satisfied-range": "^2.0.0", - "string-width": "^4.2.3", - "v8flags": "^4.0.0", - "yargs": "^16.2.0" - } - }, - "gulplog": { - "version": "2.2.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/gulplog/-/gulplog-2.2.0.tgz", - "integrity": "sha1-ca30PqXNB8I97Q+4r0qES2fGO+g=", - "dev": true, - "requires": { - "glogg": "^2.2.0" - } - }, "has": { "version": "1.0.3", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/has/-/has-1.0.3.tgz", @@ -20433,15 +17728,6 @@ "integrity": "sha1-hK5l+n6vsWX922FWauFLrwVmTw8=", "dev": true }, - "homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha1-dDKYzvTlrz4ZQWH7rcwhUdOgWOg=", - "dev": true, - "requires": { - "parse-passwd": "^1.0.0" - } - }, "hosted-git-info": { "version": "2.8.9", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/hosted-git-info/-/hosted-git-info-2.8.9.tgz", @@ -20584,7 +17870,6 @@ "version": "1.0.6", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -20593,14 +17878,14 @@ "inherits": { "version": "2.0.3", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "ini": { "version": "1.3.7", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ini/-/ini-1.3.7.tgz", "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", - "dev": true + "dev": true, + "optional": true }, "int64-buffer": { "version": "0.1.10", @@ -20618,22 +17903,6 @@ "side-channel": "^1.0.4" } }, - "interpret": { - "version": "3.1.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/interpret/-/interpret-3.1.1.tgz", - "integrity": "sha1-W+DO7WfKecbEvFzw1+6EPc6hEMQ=", - "dev": true - }, - "is-absolute": { - "version": "1.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha1-OV4a6EsR8mrReV5zwXN45IowFXY=", - "dev": true, - "requires": { - "is-relative": "^1.0.0", - "is-windows": "^1.0.1" - } - }, "is-array-buffer": { "version": "3.0.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-array-buffer/-/is-array-buffer-3.0.2.tgz", @@ -20660,15 +17929,6 @@ "has-bigints": "^1.0.1" } }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, "is-boolean-object": { "version": "1.1.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-boolean-object/-/is-boolean-object-1.1.2.tgz", @@ -20753,12 +18013,6 @@ "is-extglob": "^2.1.1" } }, - "is-negated-glob": { - "version": "1.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-negated-glob/-/is-negated-glob-1.0.0.tgz", - "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", - "dev": true - }, "is-negative-zero": { "version": "2.0.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-negative-zero/-/is-negative-zero-2.0.2.tgz", @@ -20790,15 +18044,6 @@ "has-tostringtag": "^1.0.0" } }, - "is-relative": { - "version": "1.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha1-obtpNc6MXboei5dUubLcwCDiJg0=", - "dev": true, - "requires": { - "is-unc-path": "^1.0.0" - } - }, "is-shared-array-buffer": { "version": "1.0.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", @@ -20844,21 +18089,6 @@ "has-tostringtag": "^1.0.0" } }, - "is-unc-path": { - "version": "1.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha1-1zHoiY7QkKEsNSrS6u1Qla0yLJ0=", - "dev": true, - "requires": { - "unc-path-regex": "^0.1.2" - } - }, - "is-valid-glob": { - "version": "1.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-valid-glob/-/is-valid-glob-1.0.0.tgz", - "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=", - "dev": true - }, "is-weakref": { "version": "1.0.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-weakref/-/is-weakref-1.0.2.tgz", @@ -20868,12 +18098,6 @@ "call-bind": "^1.0.2" } }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=", - "dev": true - }, "is-wsl": { "version": "2.2.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-wsl/-/is-wsl-2.2.0.tgz", @@ -20893,12 +18117,6 @@ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/isexe/-/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, - "isobject": { - "version": "3.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, "istanbul-lib-coverage": { "version": "3.2.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", @@ -20946,14 +18164,6 @@ "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0", "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } } }, "istanbul-reports": { @@ -21461,12 +18671,6 @@ } } }, - "source-map": { - "version": "0.6.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, "source-map-support": { "version": "0.5.13", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/source-map-support/-/source-map-support-0.5.13.tgz", @@ -21733,27 +18937,14 @@ "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", "dev": true }, - "last-run": { - "version": "2.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/last-run/-/last-run-2.0.0.tgz", - "integrity": "sha1-+C3Pv85uY9BBvYPWTILjTNumVy4=", - "dev": true - }, "lazystream": { "version": "1.0.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/lazystream/-/lazystream-1.0.0.tgz", "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", - "dev": true, "requires": { "readable-stream": "^2.0.5" } }, - "lead": { - "version": "4.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/lead/-/lead-4.0.0.tgz", - "integrity": "sha1-Uxeknv+w5+w6DI+5wbJPtxaquTk=", - "dev": true - }, "leven": { "version": "3.1.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/leven/-/leven-3.1.0.tgz", @@ -21779,29 +18970,6 @@ "immediate": "~3.0.5" } }, - "liftoff": { - "version": "5.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/liftoff/-/liftoff-5.0.0.tgz", - "integrity": "sha1-Dl7SdbwzTK7A5VHs8IuyK+WD4jY=", - "dev": true, - "requires": { - "extend": "^3.0.2", - "findup-sync": "^5.0.0", - "fined": "^2.0.0", - "flagged-respawn": "^2.0.0", - "is-plain-object": "^5.0.0", - "rechoir": "^0.8.0", - "resolve": "^1.20.0" - }, - "dependencies": { - "is-plain-object": { - "version": "5.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha1-RCf1CrNCnpAl6n1S6QQ6nvQVk0Q=", - "dev": true - } - } - }, "lines-and-columns": { "version": "1.2.4", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/lines-and-columns/-/lines-and-columns-1.2.4.tgz", @@ -21827,28 +18995,25 @@ } }, "lodash": { - "version": "4.17.21", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "version": "4.17.23", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/lodash/-/lodash-4.17.23.tgz", + "integrity": "sha1-8ROwN4OGEDvk9okziMc9C95/LFo=", "dev": true }, "lodash.defaults": { "version": "4.2.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=", - "dev": true + "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=" }, "lodash.difference": { "version": "4.5.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/lodash.difference/-/lodash.difference-4.5.0.tgz", - "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=", - "dev": true + "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=" }, "lodash.flatten": { "version": "4.4.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", - "dev": true + "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=" }, "lodash.includes": { "version": "4.3.0", @@ -21877,8 +19042,7 @@ "lodash.isplainobject": { "version": "4.0.6", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", - "dev": true + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" }, "lodash.isstring": { "version": "4.0.1", @@ -21913,13 +19077,13 @@ "lodash.union": { "version": "4.6.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/lodash.union/-/lodash.union-4.6.0.tgz", - "integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=", - "dev": true + "integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=" }, "lower-case": { "version": "2.0.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/lower-case/-/lower-case-2.0.2.tgz", "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, "requires": { "tslib": "^2.0.3" }, @@ -21927,7 +19091,8 @@ "tslib": { "version": "2.5.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", + "dev": true } } }, @@ -21963,16 +19128,10 @@ "tmpl": "1.0.5" } }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true - }, "markdown-it": { - "version": "14.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/markdown-it/-/markdown-it-14.1.0.tgz", - "integrity": "sha1-PDxZkog8Yz20cUzLTXtZNdmLfUU=", + "version": "14.1.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/markdown-it/-/markdown-it-14.1.1.tgz", + "integrity": "sha1-hW+Qtm/DmucK/9JcGxi1gdfe7h8=", "dev": true, "requires": { "argparse": "^2.0.1", @@ -22184,12 +19343,6 @@ "uid-safe": "2.1.5" } }, - "mute-stdout": { - "version": "2.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/mute-stdout/-/mute-stdout-2.0.0.tgz", - "integrity": "sha1-xqm0thhdO39w0//Lc0y/yLDzh2E=", - "dev": true - }, "mute-stream": { "version": "0.0.8", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/mute-stream/-/mute-stream-0.0.8.tgz", @@ -22213,6 +19366,7 @@ "version": "3.6.79-alpha", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/nerdbank-gitversioning/-/nerdbank-gitversioning-3.6.79-alpha.tgz", "integrity": "sha512-7kfYYxpLJdhaA6oPFFcfhlCvsVyLHPUw9cmR5E7gZdVd8FPO1FaY7zAUDBX0cMbqEEt3zkqUH1o9xrE3Sbqi4g==", + "dev": true, "requires": { "camel-case": "^4.1.2" } @@ -22232,6 +19386,7 @@ "version": "3.0.4", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/no-case/-/no-case-3.0.4.tgz", "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, "requires": { "lower-case": "^2.0.2", "tslib": "^2.0.3" @@ -22240,7 +19395,8 @@ "tslib": { "version": "2.5.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", + "dev": true } } }, @@ -22388,17 +19544,7 @@ "normalize-path": { "version": "3.0.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=", - "dev": true - }, - "now-and-later": { - "version": "3.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/now-and-later/-/now-and-later-3.0.0.tgz", - "integrity": "sha1-zcBF3FuJSzV5PPJ2zDIGB3u3MC0=", - "dev": true, - "requires": { - "once": "^1.4.0" - } + "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=" }, "npm-run-path": { "version": "4.0.1", @@ -22430,99 +19576,33 @@ "integrity": "sha1-g3UmXiG8IND6WCwi4bE0hdbgAhM=", "dev": true }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "object.assign": { - "version": "4.1.4", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - } - }, - "object.defaults": { - "version": "1.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", - "dev": true, - "requires": { - "array-each": "^1.0.1", - "array-slice": "^1.0.0", - "for-own": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "object.values": { - "version": "1.1.6", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/object.values/-/object.values-1.1.6.tgz", - "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "octokit": { - "version": "3.2.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/octokit/-/octokit-3.2.2.tgz", - "integrity": "sha1-KuJqBM/mDaHMFoHyw8xxDm9cRAM=", - "dev": true, - "requires": { - "@octokit/app": "^14.0.2", - "@octokit/core": "^5.0.0", - "@octokit/oauth-app": "^6.0.0", - "@octokit/plugin-paginate-graphql": "^4.0.0", - "@octokit/plugin-paginate-rest": "11.4.4-cjs.2", - "@octokit/plugin-rest-endpoint-methods": "13.3.2-cjs.1", - "@octokit/plugin-retry": "^6.0.0", - "@octokit/plugin-throttling": "^8.0.0", - "@octokit/request-error": "^5.0.0", - "@octokit/types": "^13.0.0", - "@octokit/webhooks": "^12.3.1" - }, - "dependencies": { - "@octokit/openapi-types": { - "version": "24.2.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/openapi-types/-/openapi-types-24.2.0.tgz", - "integrity": "sha1-PVXDLqwNONoacIOpw7DMp3kk99M=", - "dev": true - }, - "@octokit/plugin-paginate-rest": { - "version": "11.4.4-cjs.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.4.4-cjs.2.tgz", - "integrity": "sha1-l5oQ1Xe856OT6OZZU4h+QrCgUAA=", - "dev": true, - "requires": { - "@octokit/types": "^13.7.0" - } - }, - "@octokit/types": { - "version": "13.10.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@octokit/types/-/types-13.10.0.tgz", - "integrity": "sha1-PnxrGcAjbCcGVuTqZmFIwrUf0aM=", - "dev": true, - "requires": { - "@octokit/openapi-types": "^24.2.0" - } - } + "object-keys": { + "version": "1.1.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object.assign": { + "version": "4.1.4", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, + "object.values": { + "version": "1.1.6", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/object.values/-/object.values-1.1.6.tgz", + "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, "on-finished": { @@ -22626,17 +19706,6 @@ "callsites": "^3.0.0" } }, - "parse-filepath": { - "version": "1.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", - "dev": true, - "requires": { - "is-absolute": "^1.0.0", - "map-cache": "^0.2.0", - "path-root": "^0.1.1" - } - }, "parse-json": { "version": "8.3.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/parse-json/-/parse-json-8.3.0.tgz", @@ -22656,12 +19725,6 @@ } } }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", - "dev": true - }, "parse-semver": { "version": "1.1.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/parse-semver/-/parse-semver-1.1.1.tgz", @@ -22704,6 +19767,7 @@ "version": "3.1.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/pascal-case/-/pascal-case-3.1.2.tgz", "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dev": true, "requires": { "no-case": "^3.0.4", "tslib": "^2.0.3" @@ -22712,7 +19776,8 @@ "tslib": { "version": "2.5.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", + "dev": true } } }, @@ -22725,8 +19790,7 @@ "path-is-absolute": { "version": "1.0.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-parse": { "version": "1.0.7", @@ -22734,21 +19798,6 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, - "path-root": { - "version": "0.1.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", - "dev": true, - "requires": { - "path-root-regex": "^0.1.0" - } - }, - "path-root-regex": { - "version": "0.1.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", - "dev": true - }, "path-scurry": { "version": "1.11.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/path-scurry/-/path-scurry-1.11.1.tgz", @@ -22914,14 +19963,12 @@ "printj": { "version": "1.1.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/printj/-/printj-1.1.2.tgz", - "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==", - "dev": true + "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==" }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, "prompts": { "version": "2.4.2", @@ -23026,12 +20073,6 @@ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true }, - "queue-tick": { - "version": "1.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/queue-tick/-/queue-tick-1.0.1.tgz", - "integrity": "sha1-9vB6yCwf1g+C4Ji0F6gOUvH0wUI=", - "dev": true - }, "random-bytes": { "version": "1.0.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/random-bytes/-/random-bytes-1.0.0.tgz", @@ -23218,7 +20259,6 @@ "version": "2.3.7", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -23233,29 +20273,10 @@ "version": "1.1.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/readdir-glob/-/readdir-glob-1.1.1.tgz", "integrity": "sha512-91/k1EzZwDx6HbERR+zucygRFfiPl2zkIYZtv3Jjr6Mn7SkKcVct8aVO+sSRiGMc6fLf72du3d92/uY63YPdEA==", - "dev": true, "requires": { "minimatch": "^3.0.4" } }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "rechoir": { - "version": "0.8.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/rechoir/-/rechoir-0.8.0.tgz", - "integrity": "sha1-Sfhm4NMhRhQto62PDv81KzIV/yI=", - "dev": true, - "requires": { - "resolve": "^1.20.0" - } - }, "regexp-tree": { "version": "0.1.27", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/regexp-tree/-/regexp-tree-0.1.27.tgz", @@ -23296,24 +20317,6 @@ } } }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "replace-ext": { - "version": "2.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/replace-ext/-/replace-ext-2.0.0.tgz", - "integrity": "sha1-lHHCE9IuG8wmcXzW5QiB2I+BKwY=", - "dev": true - }, - "replace-homedir": { - "version": "2.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/replace-homedir/-/replace-homedir-2.0.0.tgz", - "integrity": "sha1-JFvZyQknXgvu516uhbtAeAzWGQM=", - "dev": true - }, "require-directory": { "version": "2.1.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/require-directory/-/require-directory-2.1.1.tgz", @@ -23346,31 +20349,12 @@ "resolve-from": "^5.0.0" } }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - } - }, "resolve-from": { "version": "5.0.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true }, - "resolve-options": { - "version": "2.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/resolve-options/-/resolve-options-2.0.0.tgz", - "integrity": "sha1-oaV6mUnbVJ3Qdd4/VVBnXwLx5MU=", - "dev": true, - "requires": { - "value-or-function": "^4.0.0" - } - }, "resolve.exports": { "version": "2.0.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/resolve.exports/-/resolve.exports-2.0.2.tgz", @@ -23403,8 +20387,7 @@ "safe-buffer": { "version": "5.1.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "safe-regex-test": { "version": "1.0.0", @@ -23452,15 +20435,6 @@ "lru-cache": "^6.0.0" } }, - "semver-greatest-satisfied-range": { - "version": "2.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-2.0.0.tgz", - "integrity": "sha1-S2KUKnocy9slLlMpZ3wAO6xUb+c=", - "dev": true, - "requires": { - "sver": "^1.8.3" - } - }, "set-function-length": { "version": "1.2.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/set-function-length/-/set-function-length-1.2.2.tgz", @@ -23582,30 +20556,22 @@ "is-fullwidth-code-point": "^3.0.0" } }, + "source-map": { + "version": "0.6.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, "source-map-support": { "version": "0.5.21", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "integrity": "sha1-BP58f54e0tZiIzwoyys1ufY/bk8=", "dev": true, "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } } }, - "sparkles": { - "version": "2.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/sparkles/-/sparkles-2.1.0.tgz", - "integrity": "sha1-itTozsun5Wi7pmDDm220ZiXs8a0=", - "dev": true - }, "spdx-correct": { "version": "3.1.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/spdx-correct/-/spdx-correct-3.1.1.tgz", @@ -23673,33 +20639,6 @@ "integrity": "sha1-MtpWjoPqSIsI5NfqLDvMnXUBXVs=", "dev": true }, - "stream-composer": { - "version": "1.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/stream-composer/-/stream-composer-1.0.2.tgz", - "integrity": "sha1-fuYcoVh79fMbLimqIJPL8RRC0VI=", - "dev": true, - "requires": { - "streamx": "^2.13.2" - } - }, - "stream-exhaust": { - "version": "1.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/stream-exhaust/-/stream-exhaust-1.0.2.tgz", - "integrity": "sha1-rNrI2lnvK8HheiwMz2wyDRIOVV0=", - "dev": true - }, - "streamx": { - "version": "2.18.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/streamx/-/streamx-2.18.0.tgz", - "integrity": "sha1-W8GlHrQSpmfr/c1ObPam/GVyGsc=", - "dev": true, - "requires": { - "bare-events": "^2.2.0", - "fast-fifo": "^1.3.2", - "queue-tick": "^1.0.1", - "text-decoder": "^1.1.0" - } - }, "strict-event-emitter-types": { "version": "2.0.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/strict-event-emitter-types/-/strict-event-emitter-types-2.0.0.tgz", @@ -23709,7 +20648,6 @@ "version": "1.1.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, "requires": { "safe-buffer": "~5.1.0" } @@ -23856,24 +20794,6 @@ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true }, - "sver": { - "version": "1.8.4", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/sver/-/sver-1.8.4.tgz", - "integrity": "sha1-m9b2JlJj8BqrFS35Ndx6VUwVZz8=", - "dev": true, - "requires": { - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/semver/-/semver-6.3.1.tgz", - "integrity": "sha1-VW0u+GiRRuRtzqS/3QlfNDTf/LQ=", - "dev": true, - "optional": true - } - } - }, "table": { "version": "6.9.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/table/-/table-6.9.0.tgz", @@ -23924,7 +20844,6 @@ "version": "2.2.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/tar-stream/-/tar-stream-2.2.0.tgz", "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dev": true, "requires": { "bl": "^4.0.3", "end-of-stream": "^1.4.1", @@ -23937,7 +20856,6 @@ "version": "3.6.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -23946,15 +20864,6 @@ } } }, - "teex": { - "version": "1.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/teex/-/teex-1.0.1.tgz", - "integrity": "sha1-uPpyRe+Ojv+oB4KBlGyFq3gKCxI=", - "dev": true, - "requires": { - "streamx": "^2.12.5" - } - }, "terminal-link": { "version": "4.0.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/terminal-link/-/terminal-link-4.0.0.tgz", @@ -23987,15 +20896,6 @@ "minimatch": "^3.0.4" } }, - "text-decoder": { - "version": "1.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/text-decoder/-/text-decoder-1.1.0.tgz", - "integrity": "sha1-M3nnKPz004k+wa6jXowsrCFe8ZA=", - "dev": true, - "requires": { - "b4a": "^1.6.4" - } - }, "text-table": { "version": "0.2.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/text-table/-/text-table-0.2.0.tgz", @@ -24032,15 +20932,6 @@ "is-number": "^7.0.0" } }, - "to-through": { - "version": "3.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/to-through/-/to-through-3.0.0.tgz", - "integrity": "sha1-v0lW6spaBHZHSFClNnK+1pBqzlQ=", - "dev": true, - "requires": { - "streamx": "^2.12.5" - } - }, "toidentifier": { "version": "1.0.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/toidentifier/-/toidentifier-1.0.0.tgz", @@ -24073,7 +20964,7 @@ "ts-node": { "version": "9.1.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ts-node/-/ts-node-9.1.1.tgz", - "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", + "integrity": "sha1-UamkUKPpWUAb2l8ASnLVS5NtN20=", "dev": true, "requires": { "arg": "^4.1.0", @@ -24082,14 +20973,6 @@ "make-error": "^1.1.1", "source-map-support": "^0.5.17", "yn": "3.1.1" - }, - "dependencies": { - "diff": { - "version": "4.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true - } } }, "tsconfig-paths": { @@ -24228,47 +21111,12 @@ "which-boxed-primitive": "^1.0.2" } }, - "unc-path-regex": { - "version": "0.1.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", - "dev": true - }, "underscore": { "version": "1.13.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/underscore/-/underscore-1.13.1.tgz", "integrity": "sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g==", "dev": true }, - "undertaker": { - "version": "2.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/undertaker/-/undertaker-2.0.0.tgz", - "integrity": "sha1-/k1A3HGCPOWoDx7MY+yLiK1AtUo=", - "dev": true, - "requires": { - "bach": "^2.0.1", - "fast-levenshtein": "^3.0.0", - "last-run": "^2.0.0", - "undertaker-registry": "^2.0.0" - }, - "dependencies": { - "fast-levenshtein": { - "version": "3.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fast-levenshtein/-/fast-levenshtein-3.0.0.tgz", - "integrity": "sha1-N7iZrkfhCQ5A4/0jGOTV8BQsqRI=", - "dev": true, - "requires": { - "fastest-levenshtein": "^1.0.7" - } - } - } - }, - "undertaker-registry": { - "version": "2.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/undertaker-registry/-/undertaker-registry-2.0.0.tgz", - "integrity": "sha1-1DQkbjmERHQN1/5MlUPkAq2Z5Mo=", - "dev": true - }, "undici-types": { "version": "7.16.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/undici-types/-/undici-types-7.16.0.tgz", @@ -24281,20 +21129,11 @@ "integrity": "sha1-Tv1FyFpp4N1XbSVTL7+iKqXIoQQ=", "dev": true }, - "universal-github-app-jwt": { - "version": "1.1.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/universal-github-app-jwt/-/universal-github-app-jwt-1.1.2.tgz", - "integrity": "sha1-jBhno5TX2dQs2jTxHRvLAjeX2N8=", - "dev": true, - "requires": { - "@types/jsonwebtoken": "^9.0.0", - "jsonwebtoken": "^9.0.2" - } - }, "universal-user-agent": { "version": "6.0.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/universal-user-agent/-/universal-user-agent-6.0.0.tgz", - "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==" + "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==", + "dev": true }, "universalify": { "version": "2.0.0", @@ -24335,8 +21174,7 @@ "util-deprecate": { "version": "1.0.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "utils-merge": { "version": "1.0.1", @@ -24360,12 +21198,6 @@ "convert-source-map": "^1.6.0" } }, - "v8flags": { - "version": "4.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/v8flags/-/v8flags-4.0.1.tgz", - "integrity": "sha1-mP5sQwgxfF85TYWkNesZJJD34TI=", - "dev": true - }, "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -24376,136 +21208,12 @@ "spdx-expression-parse": "^3.0.0" } }, - "value-or-function": { - "version": "4.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/value-or-function/-/value-or-function-4.0.0.tgz", - "integrity": "sha1-cINraodqAQ3DoriE55AunbBkN40=", - "dev": true - }, "version-range": { "version": "4.15.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/version-range/-/version-range-4.15.0.tgz", "integrity": "sha1-id8ekhsU03UVqrXkLtSsBRXKssE=", "dev": true }, - "vinyl": { - "version": "3.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/vinyl/-/vinyl-3.0.0.tgz", - "integrity": "sha1-EeFHMr9W4vqpj/3lFX/mwTJZ/zA=", - "dev": true, - "requires": { - "clone": "^2.1.2", - "clone-stats": "^1.0.0", - "remove-trailing-separator": "^1.1.0", - "replace-ext": "^2.0.0", - "teex": "^1.0.1" - } - }, - "vinyl-contents": { - "version": "2.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/vinyl-contents/-/vinyl-contents-2.0.0.tgz", - "integrity": "sha1-zCuk2zo2ZY0Gkknp422eK0GTXYk=", - "dev": true, - "requires": { - "bl": "^5.0.0", - "vinyl": "^3.0.0" - }, - "dependencies": { - "bl": { - "version": "5.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/bl/-/bl-5.1.0.tgz", - "integrity": "sha1-GDcV9njHGI7O+f5HXZAglABiQnM=", - "dev": true, - "requires": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "buffer": { - "version": "6.0.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha1-Ks5XhFnMj74qcKqo9S7mO2p0xsY=", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=", - "dev": true - }, - "readable-stream": { - "version": "3.6.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha1-VqmzbqllwAxak+8x6xEaDxEFaWc=", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "vinyl-fs": { - "version": "4.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/vinyl-fs/-/vinyl-fs-4.0.0.tgz", - "integrity": "sha1-Bss278kRxuEoRS8jC5ZYSpEzw6E=", - "dev": true, - "requires": { - "fs-mkdirp-stream": "^2.0.1", - "glob-stream": "^8.0.0", - "graceful-fs": "^4.2.11", - "iconv-lite": "^0.6.3", - "is-valid-glob": "^1.0.0", - "lead": "^4.0.0", - "normalize-path": "3.0.0", - "resolve-options": "^2.0.0", - "stream-composer": "^1.0.2", - "streamx": "^2.14.0", - "to-through": "^3.0.0", - "value-or-function": "^4.0.0", - "vinyl": "^3.0.0", - "vinyl-sourcemap": "^2.0.0" - }, - "dependencies": { - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha1-pS+AvzjaGVLrXGgXkHGYcaGnJQE=", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - } - } - }, - "vinyl-sourcemap": { - "version": "2.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/vinyl-sourcemap/-/vinyl-sourcemap-2.0.0.tgz", - "integrity": "sha1-Qi9BCg6pfLVM69aY1WoG16IuAnc=", - "dev": true, - "requires": { - "convert-source-map": "^2.0.0", - "graceful-fs": "^4.2.10", - "now-and-later": "^3.0.0", - "streamx": "^2.12.5", - "vinyl": "^3.0.0", - "vinyl-contents": "^2.0.0" - }, - "dependencies": { - "convert-source-map": { - "version": "2.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha1-S1YPZJ/E6RjdCrdc9JYei8iC2Co=", - "dev": true - } - } - }, "vscode-html-languageservice": { "version": "5.3.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/vscode-html-languageservice/-/vscode-html-languageservice-5.3.1.tgz", @@ -24573,11 +21281,6 @@ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/vscode-languageserver-types/-/vscode-languageserver-types-3.17.6-next.6.tgz", "integrity": "sha1-ZD7DWlJ+qbMmxnB1UfZtj+qz/q8=" }, - "vscode-nls": { - "version": "5.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/vscode-nls/-/vscode-nls-5.0.1.tgz", - "integrity": "sha512-hHQV6iig+M21lTdItKPkJAaWrxALQb/nqpVffakO4knJOh3DrU2SXOMzUzNgo1eADPzu3qSsJY1weCzvR52q9A==" - }, "vscode-oniguruma": { "version": "1.7.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", @@ -24610,15 +21313,6 @@ "integrity": "sha512-weOVgZ3aAARgdnb220GqYuh7+rZU0Ka9k9yfKtGAzEYMa6GgiCzW9JjQRJyCJakvibQW+dfjJdihjInKuuCAUQ==", "dev": true }, - "which": { - "version": "1.3.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, "which-boxed-primitive": { "version": "1.0.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", @@ -24722,29 +21416,6 @@ "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, - "yargs": { - "version": "16.2.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha1-HIK/D2tqZur85+8w43b0mhJHf2Y=", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "dependencies": { - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha1-LrfcOwKJcY/ClfNidThFxBoMlO4=", - "dev": true - } - } - }, "yargs-parser": { "version": "21.1.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/yargs-parser/-/yargs-parser-21.1.1.tgz", @@ -24772,7 +21443,7 @@ "yn": { "version": "3.1.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "integrity": "sha1-HodAGgnXZ8HV6rJqbkwYUYLS61A=", "dev": true }, "yocto-queue": { @@ -24785,7 +21456,6 @@ "version": "4.1.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/zip-stream/-/zip-stream-4.1.0.tgz", "integrity": "sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==", - "dev": true, "requires": { "archiver-utils": "^2.1.0", "compress-commons": "^4.1.0", @@ -24796,7 +21466,6 @@ "version": "3.6.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", diff --git a/package.json b/package.json index b55ee2ff6a..24ff24fa3c 100644 --- a/package.json +++ b/package.json @@ -63,29 +63,45 @@ } ], "scripts": { - "vscode:prepublish": "npm run package", - "compile": "tsc -p ./ && npx eslint ./ && npm run l10nDevGenerateLocalizationBundle && npm run compile:razorTextMate", - "compileDev": "tsc -p ./ && npm run l10nDevGenerateLocalizationBundle && npm run compile:razorTextMate", - "package": "npm run compile && node esbuild.js --production && gulp signJs", - "packageDev": "npm run compileDev && node esbuild.js", - "l10nDevGenerateLocalizationBundle": "npx @vscode/l10n-dev export --outDir ./l10n ./src", + "compile": "tsc -p tsconfig.json && npm run lint && npm run l10nDevGenerateLocalizationBundle && npm run compile:razorTextMate", + "compileDev": "tsc -p tsconfig.json && npm run lint && npm run l10nDevGenerateLocalizationBundle && npm run compile:razorTextMate", "compile:razorTextMate": "npx js-yaml src/razor/syntaxes/aspnetcorerazor.tmLanguage.yml > src/razor/syntaxes/aspnetcorerazor.tmLanguage.json", - "test:unit": "npm run compileDev && gulp test:unit", - "test:integration:csharp": "npm run packageDev && gulp test:integration:csharp", - "test:integration:razor:cohost": "npm run packageDev && gulp test:integration:razor:cohost", - "test:integration:devkit": "npm run packageDev && gulp test:integration:devkit", - "test:integration:untrusted": "npm run packageDev && gulp test:integration:untrusted", - "profiling": "npm run package && gulp profiling", - "test:artifacts": "npm run compileDev && gulp test:artifacts", - "omnisharptest": "npm run packageDev && gulp omnisharptest", - "omnisharptest:unit": "npm run compileDev && gulp omnisharptest:unit", - "omnisharptest:integration": "npm run packageDev && gulp omnisharptest:integration", - "omnisharptest:integration:singleCsproj": "npm run packageDev && gulp omnisharptest:integration:singleCsproj", - "omnisharptest:integration:slnWithCsproj": "npm run packageDev && gulp omnisharptest:integration:slnWithCsproj", - "omnisharptest:integration:slnFilterWithCsproj": "npm run packageDev && gulp omnisharptest:integration:slnFilterWithCsproj", - "updatePackageDependencies": "gulp updatePackageDependencies", + "createTags": "npx ts-node tasks/tags/createTags.ts", + "fixLocUrls": "npx ts-node tasks/debugger/fixLocUrls.ts", + "generateOptionsSchema": "npx ts-node tasks/debugger/generateOptionsSchema.ts", + "incrementVersion": "npx ts-node tasks/snap/incrementVersion.ts", + "installDependencies": "npx ts-node tasks/packaging/installDependencies.ts", + "installDependenciesClean": "npx ts-node tasks/packaging/installDependenciesClean.ts", + "installSignPlugin": "npx ts-node tasks/signing/installSignPlugin.ts", + "l10nDevGenerateLocalizationBundle": "npx @vscode/l10n-dev export --outDir ./l10n ./src", "l10nDevGenerateXlf": "npx @vscode/l10n-dev generate-xlf ./package.nls.json ./l10n/bundle.l10n.json --outFile ./loc/vscode-csharp.xlf", - "l10nDevImportXlf": "npx @vscode/l10n-dev import-xlf ./loc/vscode-csharp.*.xlf --outDir ./l10n && move l10n\\package.nls.*.json ." + "l10nDevImportXlf": "npx @vscode/l10n-dev import-xlf ./loc/vscode-csharp.*.xlf --outDir ./l10n && move l10n\\package.nls.*.json .", + "lint": "npx eslint ./", + "omnisharptest": "npm run packageDev && npx ts-node tasks/tests/omnisharptest.ts", + "omnisharptest:integration": "npm run packageDev && npx ts-node tasks/tests/omnisharptestIntegration.ts", + "omnisharptest:unit": "npm run compileDev && npx ts-node tasks/tests/omnisharptestUnit.ts", + "package": "npm run compile && npm run signJs && node esbuild.js --production", + "packageDev": "npm run compileDev && node esbuild.js", + "prepare": "npm run installDependencies", + "profiling": "npm run package && npx ts-node tasks/profiling/profiling.ts", + "publishLocalizationContent": "npx ts-node tasks/localization/publishLocalizationContent.ts", + "publishRoslynCopilot": "npx ts-node tasks/components/publishRoslynCopilot.ts", + "signJs": "npx ts-node tasks/signing/signJs.ts", + "signVsix": "npx ts-node tasks/signing/signVsix.ts", + "test:artifacts": "npm run compileDev && npx ts-node tasks/tests/testArtifacts.ts", + "test:integration:csharp": "npm run packageDev && npx ts-node tasks/tests/testIntegrationCsharp.ts", + "test:integration:devkit": "npm run packageDev && npx ts-node tasks/tests/testIntegrationDevkit.ts", + "test:integration:razor:cohost": "npm run packageDev && npx ts-node tasks/tests/testIntegrationRazorCohost.ts", + "test:integration:untrusted": "npm run packageDev && npx ts-node tasks/tests/testIntegrationUntrusted.ts", + "test:unit": "npm run compileDev && npx ts-node tasks/tests/testUnit.ts", + "updateChangelog": "npx ts-node tasks/snap/updateChangelog.ts", + "updatePackageDependencies": "npx ts-node tasks/debugger/updatePackageDependencies.ts", + "updateRazorVersion": "npx ts-node tasks/packaging/updateRazorVersion.ts", + "updateRoslynVersion": "npx ts-node tasks/packaging/updateRoslynVersion.ts", + "updateVersionForStableRelease": "npx ts-node tasks/snap/updateVersionForStableRelease.ts", + "verifyVsix": "npx ts-node tasks/signing/verifyVsix.ts", + "vscode:prepublish": "npm run package", + "vsix:release:package": "npx ts-node tasks/packaging/vsixReleasePackage.ts" }, "extensionDependencies": [ "ms-dotnettools.vscode-dotnet-runtime" @@ -93,17 +109,15 @@ "dependencies": { "@github/copilot-language-server": "1.290.0", "@microsoft/servicehub-framework": "4.2.99-beta", - "@octokit/rest": "^20.0.1", - "@vscode/debugprotocol": "1.56.0", "@vscode/extension-telemetry": "^0.9.0", "@vscode/js-debug-browsers": "^1.1.0", + "archiver": "5.3.0", "execa": "4.0.0", "fs-extra": "11.3.0", "http-proxy-agent": "7.0.0", "https-proxy-agent": "7.0.2", "jsonc-parser": "3.0.0", "microsoft.aspnetcore.razor.vscode": "https://download.visualstudio.microsoft.com/download/pr/aee63398-023f-48db-bba2-30162c68f0c4/0af42abab690d5de903a4a814d6aedc1/microsoft.aspnetcore.razor.vscode-7.0.0-preview.23363.1.tgz", - "nerdbank-gitversioning": "^3.6.79-alpha", "node-machine-id": "1.1.12", "ps-list": "7.2.0", "rxjs": "6.6.7", @@ -114,14 +128,13 @@ "vscode-languageserver-protocol": "3.17.6-next.15", "vscode-languageserver-textdocument": "1.0.12", "vscode-languageserver-types": "3.17.6-next.6", - "vscode-nls": "5.0.1", "yauzl": "2.10.0" }, "devDependencies": { "@jest/globals": "^29.6.2", + "@octokit/rest": "^20.0.1", "@types/archiver": "5.1.0", "@types/fs-extra": "11.0.4", - "@types/gulp": "4.0.5", "@types/minimist": "1.2.1", "@types/node": "24.10.8", "@types/semver": "7.3.13", @@ -134,7 +147,6 @@ "@vscode/l10n-dev": "^0.0.35", "@vscode/test-electron": "2.3.8", "@vscode/vsce": "3.7.0", - "archiver": "5.3.0", "esbuild": "^0.25.0", "eslint": "^8.43.0", "eslint-config-prettier": "^8.8.0", @@ -145,11 +157,10 @@ "eslint-plugin-promise": "^6.1.1", "eslint-plugin-unicorn": "^47.0.0", "get-port": "5.1.1", - "gulp": "5.0.0", "jest": "^29.6.2", "jest-junit": "^16.0.0", "mock-http-server": "1.4.2", - "octokit": "^3.1.0", + "nerdbank-gitversioning": "^3.6.79-alpha", "prettier": "2.8.8", "tmp": "0.2.4", "ts-jest": "^29.1.1", diff --git a/src/tools/README.md b/src/tools/README.md index ad495dedcb..2f80a9893a 100644 --- a/src/tools/README.md +++ b/src/tools/README.md @@ -2,5 +2,5 @@ OptionsSchema.json defines the type for Launch/Attach options. # GenerateOptionsSchema -If there are any modifications to the OptionsSchema.json file. Please run `npm run gulp generateOptionsSchema` at the repo root. +If there are any modifications to the OptionsSchema.json file. Please run `npm run generateOptionsSchema` at the repo root. This will call GenerateOptionsSchema and update the package.json file. diff --git a/tasks/componentUpdateTasks.ts b/tasks/components/publishRoslynCopilot.ts similarity index 94% rename from tasks/componentUpdateTasks.ts rename to tasks/components/publishRoslynCopilot.ts index 94a0dc1c08..04ceb8c656 100644 --- a/tasks/componentUpdateTasks.ts +++ b/tasks/components/publishRoslynCopilot.ts @@ -3,7 +3,6 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import * as gulp from 'gulp'; import * as process from 'node:process'; import * as fs from 'fs'; import * as path from 'path'; @@ -15,26 +14,18 @@ import { createPullRequest, doesBranchExist, findPRByTitle, -} from './gitTasks'; -import { updatePackageDependencies } from '../src/tools/updatePackageDependencies'; +} from '../gitTasks'; +import { updatePackageDependencies } from '../../src/tools/updatePackageDependencies'; +import { runTask } from '../runTask'; type Options = { userName?: string; email?: string; }; -/** - * Extract version from file name using a provided regex pattern - * @param fileName - The file name to extract version from - * @param pattern - The regex pattern to match and extract version (should have a capture group) - * @returns The extracted version string or null if not found - */ -function extractVersion(fileName: string, pattern: RegExp): string | null { - const match = fileName.match(pattern); - return match && match[1] ? match[1] : null; -} +runTask(publishRoslynCopilot); -gulp.task('publish roslyn copilot', async () => { +async function publishRoslynCopilot() { const parsedArgs = minimist(process.argv.slice(2)); if (!parsedArgs.stagingDirectory || !fs.existsSync(parsedArgs.stagingDirectory)) { @@ -109,4 +100,15 @@ gulp.task('publish roslyn copilot', async () => { // Push branch and create PR await pushBranch(branch, pat, owner, repo); await createPullRequest(pat, owner, repo, branch, title, body); -}); +} + +/** + * Extract version from file name using a provided regex pattern + * @param fileName - The file name to extract version from + * @param pattern - The regex pattern to match and extract version (should have a capture group) + * @returns The extracted version string or null if not found + */ +function extractVersion(fileName: string, pattern: RegExp): string | null { + const match = fileName.match(pattern); + return match && match[1] ? match[1] : null; +} diff --git a/tasks/debuggerTasks.ts b/tasks/debugger/fixLocUrls.ts similarity index 70% rename from tasks/debuggerTasks.ts rename to tasks/debugger/fixLocUrls.ts index a4e09a508d..05b93dc23a 100644 --- a/tasks/debuggerTasks.ts +++ b/tasks/debugger/fixLocUrls.ts @@ -3,29 +3,13 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import * as gulp from 'gulp'; import * as fs from 'fs'; import * as os from 'os'; +import { runTask } from '../runTask'; -import * as optionsSchemaGenerator from '../src/tools/generateOptionsSchema'; -import * as packageDependencyUpdater from '../src/tools/updatePackageDependencies'; +runTask(fixLocUrls); -// Disable warning about wanting an async function -// tslint:disable-next-line -gulp.task('generateOptionsSchema', async (): Promise => { - optionsSchemaGenerator.GenerateOptionsSchema(); - return Promise.resolve(); -}); - -// Disable warning about wanting an async function -// tslint:disable-next-line -gulp.task('updatePackageDependencies', async (): Promise => { - return packageDependencyUpdater.updatePackageDependencies(); -}); - -// Disable warning about wanting an async function -// tslint:disable-next-line -gulp.task('fixLocURLs', async (): Promise => { +async function fixLocUrls(): Promise { const langCodes = ['cs', 'de', 'es', 'fr', 'it', 'ja', 'ko', 'pl', 'pt-br', 'ru', 'tr', 'zh-cn', 'zh-tw']; const keysWithURLExamples = [ 'generateOptionsSchema.symbolOptions.searchPaths.description', @@ -57,4 +41,4 @@ gulp.task('fixLocURLs', async (): Promise => { fs.writeFileSync(filename, content); }); -}); +} diff --git a/tasks/debugger/generateOptionsSchema.ts b/tasks/debugger/generateOptionsSchema.ts new file mode 100644 index 0000000000..82452807c5 --- /dev/null +++ b/tasks/debugger/generateOptionsSchema.ts @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import * as optionsSchemaGenerator from '../../src/tools/generateOptionsSchema'; +import { runTask } from '../runTask'; + +runTask(optionsSchemaGenerator.GenerateOptionsSchema); diff --git a/tasks/debugger/updatePackageDependencies.ts b/tasks/debugger/updatePackageDependencies.ts new file mode 100644 index 0000000000..4b68bf66cb --- /dev/null +++ b/tasks/debugger/updatePackageDependencies.ts @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import * as packageDependencyUpdater from '../../src/tools/updatePackageDependencies'; +import { runTask } from '../runTask'; + +runTask(packageDependencyUpdater.updatePackageDependencies); diff --git a/tasks/localizationTasks.ts b/tasks/localization/publishLocalizationContent.ts similarity index 97% rename from tasks/localizationTasks.ts rename to tasks/localization/publishLocalizationContent.ts index bdb3d13c67..7939328368 100644 --- a/tasks/localizationTasks.ts +++ b/tasks/localization/publishLocalizationContent.ts @@ -3,7 +3,6 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import * as gulp from 'gulp'; import * as process from 'node:process'; import minimist from 'minimist'; import { spawnSync } from 'node:child_process'; @@ -11,6 +10,7 @@ import * as path from 'path'; import * as util from 'node:util'; import { EOL } from 'node:os'; import { Octokit } from '@octokit/rest'; +import { runTask } from '../runTask'; type Options = { userName?: string; @@ -22,49 +22,9 @@ type Options = { const localizationLanguages = ['cs', 'de', 'es', 'fr', 'it', 'ja', 'ko', 'pl', 'pt-br', 'ru', 'tr', 'zh-cn', 'zh-tw']; -function getAllPossibleLocalizationFiles(): string[] { - const files = []; - for (const lang of localizationLanguages) { - files.push('l10n' + path.sep + util.format('bundle.l10n.%s.json', lang)); - files.push(util.format('package.nls.%s.json', lang)); - } - // English - files.push(`l10n${path.sep}bundle.l10n.json`); - return files; -} - -async function git_diff(args: string[]): Promise { - const result = await git(['diff'].concat(args)); - // Line ending from the stdout of git is '\n' even on Windows. - return result - .replaceAll('\n', EOL) - .split(EOL) - .map((fileName, _) => fileName.trim()) - .filter((fileName) => fileName.length !== 0); -} - -async function git(args: string[], printCommand = true): Promise { - if (printCommand) { - console.log(`git ${args.join(' ')}`); - } +runTask(publishLocalizationContent); - const git = spawnSync('git', args); - if (git.status != 0) { - const err = git.stderr.toString(); - if (printCommand) { - console.log(`Failed to execute git ${args.join(' ')}.`); - } - throw err; - } - - const stdout = git.stdout.toString(); - if (printCommand) { - console.log(stdout); - } - return stdout; -} - -gulp.task('publish localization content', async () => { +async function publishLocalizationContent() { const parsedArgs = minimist(process.argv.slice(2)); const localizationChanges = getAllPossibleLocalizationFiles(); await git(['add'].concat(localizationChanges)); @@ -142,4 +102,46 @@ gulp.task('publish localization content', async () => { }); console.log(`Created pull request: ${pullRequest.data.html_url}.`); -}); +} + +function getAllPossibleLocalizationFiles(): string[] { + const files = []; + for (const lang of localizationLanguages) { + files.push('l10n' + path.sep + util.format('bundle.l10n.%s.json', lang)); + files.push(util.format('package.nls.%s.json', lang)); + } + // English + files.push(`l10n${path.sep}bundle.l10n.json`); + return files; +} + +async function git_diff(args: string[]): Promise { + const result = await git(['diff'].concat(args)); + // Line ending from the stdout of git is '\n' even on Windows. + return result + .replaceAll('\n', EOL) + .split(EOL) + .map((fileName, _) => fileName.trim()) + .filter((fileName) => fileName.length !== 0); +} + +async function git(args: string[], printCommand = true): Promise { + if (printCommand) { + console.log(`git ${args.join(' ')}`); + } + + const git = spawnSync('git', args); + if (git.status != 0) { + const err = git.stderr.toString(); + if (printCommand) { + console.log(`Failed to execute git ${args.join(' ')}.`); + } + throw err; + } + + const stdout = git.stdout.toString(); + if (printCommand) { + console.log(stdout); + } + return stdout; +} diff --git a/tasks/backcompatTasks.ts b/tasks/packaging/installDependencies.ts similarity index 67% rename from tasks/backcompatTasks.ts rename to tasks/packaging/installDependencies.ts index cc60b69fd8..0f1cf530bb 100644 --- a/tasks/backcompatTasks.ts +++ b/tasks/packaging/installDependencies.ts @@ -3,7 +3,7 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import * as gulp from 'gulp'; +import { installDependencies } from './offlinePackagingTasks'; +import { runTask } from '../runTask'; -gulp.task('package:offline', gulp.series('vsix:release:package')); -gulp.task('vsix:offline:package', gulp.series('vsix:release:package')); +runTask(installDependencies); diff --git a/tasks/packaging/installDependenciesClean.ts b/tasks/packaging/installDependenciesClean.ts new file mode 100644 index 0000000000..cbb8b10d0f --- /dev/null +++ b/tasks/packaging/installDependenciesClean.ts @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import { installDependencies } from './offlinePackagingTasks'; +import { runTask } from '../runTask'; + +runTask(async () => installDependencies(/* clean */ true)); diff --git a/tasks/offlinePackagingTasks.ts b/tasks/packaging/offlinePackagingTasks.ts similarity index 72% rename from tasks/offlinePackagingTasks.ts rename to tasks/packaging/offlinePackagingTasks.ts index 023cba169d..8d23e692b1 100644 --- a/tasks/offlinePackagingTasks.ts +++ b/tasks/packaging/offlinePackagingTasks.ts @@ -6,16 +6,15 @@ import * as cp from 'child_process'; import * as fs from 'fs'; import * as fsextra from 'fs-extra'; -import * as gulp from 'gulp'; import * as nbgv from 'nerdbank-gitversioning'; -import { Logger } from '../src/logger'; -import { PlatformInformation } from '../src/shared/platform'; -import { CsharpLoggerObserver } from '../src/shared/observers/csharpLoggerObserver'; -import { EventStream } from '../src/eventStream'; -import NetworkSettings from '../src/networkSettings'; -import { downloadAndInstallPackages } from '../src/packageManager/downloadAndInstallPackages'; -import { getRuntimeDependenciesPackages } from '../src/tools/runtimeDependencyPackageUtils'; -import { getAbsolutePathPackagesToInstall } from '../src/packageManager/getAbsolutePathPackagesToInstall'; +import { Logger } from '../../src/logger'; +import { PlatformInformation } from '../../src/shared/platform'; +import { CsharpLoggerObserver } from '../../src/shared/observers/csharpLoggerObserver'; +import { EventStream } from '../../src/eventStream'; +import NetworkSettings from '../../src/networkSettings'; +import { downloadAndInstallPackages } from '../../src/packageManager/downloadAndInstallPackages'; +import { getRuntimeDependenciesPackages } from '../../src/tools/runtimeDependencyPackageUtils'; +import { getAbsolutePathPackagesToInstall } from '../../src/packageManager/getAbsolutePathPackagesToInstall'; import { codeExtensionPath, packedVsixOutputRoot, @@ -25,15 +24,12 @@ import { devKitDependenciesDirectory, xamlToolsDirectory, razorExtensionDirectory, -} from '../tasks/projectPaths'; -import { getPackageJSON } from '../tasks/packageJson'; -import { createPackageAsync, generateVsixManifest } from '../tasks/vsceTasks'; -import { isValidDownload } from '../src/packageManager/isValidDownload'; +} from '../projectPaths'; +import { getPackageJSON } from '../packageJson'; +import { createPackageAsync, generateVsixManifest } from './vsceTasks'; +import { isValidDownload } from '../../src/packageManager/isValidDownload'; import path from 'path'; import { CancellationToken } from 'vscode'; -// There are no typings for this library. -// eslint-disable-next-line @typescript-eslint/no-var-requires -const argv = require('yargs').argv; interface VSIXPlatformInfo { vsceTarget: string; @@ -41,6 +37,8 @@ interface VSIXPlatformInfo { platformInfo: PlatformInformation; } +const versionFileName = 'version.nfo'; + // Mapping of vsce vsix packaging target to the RID used to build the server executable export const platformSpecificPackages: VSIXPlatformInfo[] = [ { vsceTarget: 'win32-x64', rid: 'win-x64', platformInfo: new PlatformInformation('win32', 'x86_64') }, @@ -102,7 +100,12 @@ export const allNugetPackages: { [key: string]: NugetPackageInfo } = { }, }; -const vsixTasks: string[] = []; +interface PlatformEntry { + platformName: string; + vsixPlatform: VSIXPlatformInfo; +} + +const platformEntries: PlatformEntry[] = []; for (const p of platformSpecificPackages) { let platformName: string; if (p.platformInfo.isWindows()) { @@ -115,25 +118,36 @@ for (const p of platformSpecificPackages) { throw new Error(`Unexpected platform ${p.platformInfo.platform}`); } - const taskName = `vsix:release:package:${platformName}:${p.vsceTarget}`; - vsixTasks.push(taskName); - gulp.task(taskName, async () => { - await doPackageOffline(p); - }); + platformEntries.push({ platformName, vsixPlatform: p }); } -gulp.task('vsix:release:package:windows', gulp.series(...vsixTasks.filter((t) => t.includes('windows')))); -gulp.task('vsix:release:package:linux', gulp.series(...vsixTasks.filter((t) => t.includes('linux')))); -gulp.task('vsix:release:package:darwin', gulp.series(...vsixTasks.filter((t) => t.includes('darwin')))); +export async function vsixReleasePackageWindowsTask(prerelease: boolean): Promise { + for (const entry of platformEntries.filter((e) => e.platformName === 'windows')) { + await doPackageOffline(entry.vsixPlatform, prerelease); + } +} +export async function vsixReleasePackageLinuxTask(prerelease: boolean): Promise { + for (const entry of platformEntries.filter((e) => e.platformName === 'linux')) { + await doPackageOffline(entry.vsixPlatform, prerelease); + } +} +export async function vsixReleasePackageDarwinTask(prerelease: boolean): Promise { + for (const entry of platformEntries.filter((e) => e.platformName === 'darwin')) { + await doPackageOffline(entry.vsixPlatform, prerelease); + } +} -gulp.task( - 'vsix:release:package', - gulp.series('vsix:release:package:windows', 'vsix:release:package:linux', 'vsix:release:package:darwin') -); +export async function vsixReleasePackageTask(prerelease: boolean): Promise { + for (const entry of platformEntries) { + await doPackageOffline(entry.vsixPlatform, prerelease); + } +} // Downloads dependencies for local development. -gulp.task('installDependencies', async () => { - await cleanAsync(); +export async function installDependencies(clean: boolean = false): Promise { + if (clean) { + await cleanAsync(); + } const packageJSON = getPackageJSON(); @@ -146,39 +160,9 @@ gulp.task('installDependencies', async () => { await acquireAndInstallAllNugetPackages(vsixPlatformInfo, packageJSON, true); } catch (err) { const message = (err instanceof Error ? err.stack : err) ?? ''; - // NOTE: Extra `\n---` at the end is because gulp will print this message following by the - // stack trace of this line. So that seperates the two stack traces. - throw Error(`Failed to install packages for ${platform}. ${message}\n---`); + throw Error(`Failed to install packages for ${platform}. ${message}`); } -}); - -// Defines a special task to acquire all the platform specific Roslyn packages. -// All packages need to be saved to the consumption AzDo artifacts feed, for non-platform -// specific packages this only requires running the installDependencies tasks. However for Roslyn packages -// we need to acquire the nuget packages once for each platform to ensure they get saved to the feed. -gulp.task( - 'updateRoslynVersion', - // Run the fetch of all packages, and then also installDependencies after - gulp.series(async () => { - await updateNugetPackageVersion(allNugetPackages.roslyn); - - // Also pull in the Roslyn DevKit dependencies nuget package. - await acquireNugetPackage(allNugetPackages.roslynDevKit, undefined, getPackageJSON(), true); - }, 'installDependencies') -); - -// Defines a special task to acquire all the platform specific Razor packages. -// All packages need to be saved to the consumption AzDo artifacts feed, for non-platform -// specific packages this only requires running the installDependencies tasks. However for Razor packages -// we need to acquire the nuget packages once for each platform to ensure they get saved to the feed. -gulp.task( - 'updateRazorVersion', - // Run the fetch of all packages, and then also installDependencies after - gulp.series(async () => { - // Pull in the .razorExtension code that gets loaded in the roslyn language server - await acquireNugetPackage(allNugetPackages.razorExtension, undefined, getPackageJSON(), true); - }, 'installDependencies') -); +} async function acquireAndInstallAllNugetPackages( platformInfo: VSIXPlatformInfo | undefined, @@ -187,12 +171,21 @@ async function acquireAndInstallAllNugetPackages( ) { for (const key in allNugetPackages) { const nugetPackage = allNugetPackages[key]; + const packageName = nugetPackage.getPackageName(platformInfo); + const packageVersion = packageJSON.defaults[nugetPackage.packageJsonName]; + + if (hasNugetPackage(nugetPackage, packageName, packageVersion)) { + // Log required package version is already installed. + console.log(`Package ${packageName}@${packageVersion} is already installed, skipping installation.`); + continue; + } + const packagePath = await acquireNugetPackage(nugetPackage, platformInfo, packageJSON, interactive); - await installNuGetPackage(packagePath, nugetPackage, platformInfo); + await installNuGetPackage(packagePath, nugetPackage, platformInfo, packageVersion); } } -async function acquireNugetPackage( +export async function acquireNugetPackage( nugetPackageInfo: NugetPackageInfo, platformInfo: VSIXPlatformInfo | undefined, packageJSON: any, @@ -204,10 +197,31 @@ async function acquireNugetPackage( return packagePath; } +function hasNugetPackage(nugetPackageInfo: NugetPackageInfo, packageName: string, packageVersion: string): boolean { + const outputPath = nugetPackageInfo.vsixOutputPath; + const versionFilePath = path.join(outputPath, versionFileName); + if (!fs.existsSync(versionFilePath)) { + return false; + } + + const installedVersion = fs.readFileSync(versionFilePath, 'utf-8'); + const versionFound = installedVersion === packageVersion; + + if (!versionFound) { + console.log(`Removing outdated package ${packageName}@${installedVersion}`); + // Delete the existing content to prepare for the new package installation. + // This ensures we don't end up with a mix of old and new files. + fs.rmSync(outputPath, { recursive: true, force: true }); + } + + return versionFound; +} + async function installNuGetPackage( pathToPackage: string, nugetPackageInfo: NugetPackageInfo, - platformInfo: VSIXPlatformInfo | undefined + platformInfo: VSIXPlatformInfo | undefined, + packageVersion: string ) { // Get the directory containing the content. const pathToContentInNugetPackage = nugetPackageInfo.getPackageContentPath(platformInfo); @@ -234,6 +248,11 @@ async function installNuGetPackage( if (numFilesToCopy !== numCopiedFiles) { throw new Error('Failed to copy all files from NuGet package'); } + + // Writes the nuget package version to a text file in the output directory, + // this is used to determine if we need to update the package. + const versionFilePath = path.join(outputPath, versionFileName); + fs.writeFileSync(versionFilePath, packageVersion); } async function installRazor(packageJSON: any, platformInfo: PlatformInformation) { @@ -284,7 +303,7 @@ async function restoreNugetPackage(packageName: string, packageVersion: string, const packageOutputPath = path.join(nugetTempPath, packageName, packageVersion); if (fs.existsSync(packageOutputPath)) { // Package is already downloaded, no need to download again. - console.log(`Reusing existing download of ${packageName}.${packageVersion}`); + console.log(`Reusing existing download of ${packageName}@${packageVersion}`); return packageOutputPath; } @@ -304,7 +323,7 @@ async function restoreNugetPackage(packageName: string, packageVersion: string, await new Promise((resolve) => { process.on('exit', (exitCode, _) => { if (exitCode !== 0) { - throw new Error(`Failed to download nuget package ${packageName}.${packageVersion}`); + throw new Error(`Failed to download nuget package ${packageName}@${packageVersion}`); } resolve(undefined); }); @@ -317,20 +336,17 @@ async function restoreNugetPackage(packageName: string, packageVersion: string, return packageOutputPath; } -async function doPackageOffline(vsixPlatform: VSIXPlatformInfo | undefined) { +async function doPackageOffline(vsixPlatform: VSIXPlatformInfo | undefined, prerelease: boolean) { await cleanAsync(); // Set the package.json version based on the value in version.json. const versionInfo = await nbgv.getVersion(); console.log(versionInfo.npmPackageVersion); await nbgv.setPackageVersion(); - let prerelease: boolean; - if (argv.prerelease) { + if (prerelease) { console.log('Packaging prerelease version.'); - prerelease = true; } else { console.log('Packaging release version.'); - prerelease = false; } try { @@ -361,13 +377,22 @@ async function doPackageOffline(vsixPlatform: VSIXPlatformInfo | undefined) { } async function cleanAsync() { - const directoriesToDelete = ['install.*', '.omnisharp*', '.debugger', '.razorExtension']; - for (const key in allNugetPackages) { - directoriesToDelete.push(allNugetPackages[key].vsixOutputPath); + // Read the .gitignore file and remove all directories which are in the form `.{folder}}/` + const gitignorePath = path.join(rootPath, '.gitignore'); + if (!fs.existsSync(gitignorePath)) { + return; } - for (const directory of directoriesToDelete) { - await fsextra.remove(directory); + const gitignoreContent = fs.readFileSync(gitignorePath, 'utf-8'); + const directoryRegex = /^\.([a-zA-Z0-9_-]+)\/$/gm; + let match; + while ((match = directoryRegex.exec(gitignoreContent)) !== null) { + const directory = match[1]; + const directoryPath = path.join(rootPath, `.${directory}`); + if (fs.existsSync(directoryPath)) { + console.log(`Removing directory ${directoryPath}`); + await fsextra.remove(directoryPath); + } } } @@ -395,7 +420,7 @@ function getPackageName(packageJSON: any, vscodePlatformId?: string) { } } -async function updateNugetPackageVersion(packageInfo: NugetPackageInfo) { +export async function updateNugetPackageVersion(packageInfo: NugetPackageInfo) { const packageJSON = getPackageJSON(); // And now fetch each platform specific diff --git a/tasks/packaging/updateRazorVersion.ts b/tasks/packaging/updateRazorVersion.ts new file mode 100644 index 0000000000..63374461ce --- /dev/null +++ b/tasks/packaging/updateRazorVersion.ts @@ -0,0 +1,21 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import { acquireNugetPackage, allNugetPackages, installDependencies } from './offlinePackagingTasks'; +import { getPackageJSON } from '../packageJson'; +import { runTask } from '../runTask'; + +runTask(updateRazorVersion); + +// Defines a special task to acquire all the platform specific Razor packages. +// All packages need to be saved to the consumption AzDo artifacts feed, for non-platform +// specific packages this only requires running the installDependencies tasks. However for Razor packages +// we need to acquire the nuget packages once for each platform to ensure they get saved to the feed. +async function updateRazorVersion(): Promise { + // Pull in the .razorExtension code that gets loaded in the roslyn language server + await acquireNugetPackage(allNugetPackages.razorExtension, undefined, getPackageJSON(), true); + + await installDependencies(/* clean */ true); +} diff --git a/tasks/packaging/updateRoslynVersion.ts b/tasks/packaging/updateRoslynVersion.ts new file mode 100644 index 0000000000..78177d2fc2 --- /dev/null +++ b/tasks/packaging/updateRoslynVersion.ts @@ -0,0 +1,29 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import { + acquireNugetPackage, + allNugetPackages, + installDependencies, + updateNugetPackageVersion, +} from './offlinePackagingTasks'; +import { runTask } from '../runTask'; +import { getPackageJSON } from '../packageJson'; + +runTask(updateRoslynVersion); + +// Defines a special task to acquire all the platform specific Roslyn packages. +// All packages need to be saved to the consumption AzDo artifacts feed, for non-platform +// specific packages this only requires running the installDependencies tasks. However for Roslyn packages +// we need to acquire the nuget packages once for each platform to ensure they get saved to the feed. +async function updateRoslynVersion(): Promise { + // Fetch all platform-specific packages, then also installDependencies after + await updateNugetPackageVersion(allNugetPackages.roslyn); + + // Also pull in the Roslyn DevKit dependencies nuget package. + await acquireNugetPackage(allNugetPackages.roslynDevKit, undefined, getPackageJSON(), true); + + await installDependencies(/* clean */ true); +} diff --git a/tasks/vsceTasks.ts b/tasks/packaging/vsceTasks.ts similarity index 96% rename from tasks/vsceTasks.ts rename to tasks/packaging/vsceTasks.ts index 133fdbb59a..787212fff5 100644 --- a/tasks/vsceTasks.ts +++ b/tasks/packaging/vsceTasks.ts @@ -4,10 +4,10 @@ *--------------------------------------------------------------------------------------------*/ import * as path from 'path'; -import * as util from '../src/common'; +import * as util from '../../src/common'; import * as fs from 'fs'; -import spawnNode from '../tasks/spawnNode'; -import { vscePath } from './projectPaths'; +import spawnNode from '../spawnNode'; +import { vscePath } from '../projectPaths'; /// Packaging (VSIX) Tasks export async function createPackageAsync( diff --git a/tasks/packaging/vsixReleasePackage.ts b/tasks/packaging/vsixReleasePackage.ts new file mode 100644 index 0000000000..17e238f6de --- /dev/null +++ b/tasks/packaging/vsixReleasePackage.ts @@ -0,0 +1,11 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import minimist from 'minimist'; +import { vsixReleasePackageTask } from './offlinePackagingTasks'; +import { runTask } from '../runTask'; + +const argv = minimist(process.argv.slice(2)); +runTask(async () => await vsixReleasePackageTask(!!argv.prerelease)); diff --git a/tasks/profilingTasks.ts b/tasks/profiling/profiling.ts similarity index 67% rename from tasks/profilingTasks.ts rename to tasks/profiling/profiling.ts index ea6fc91334..7e937df4c0 100644 --- a/tasks/profilingTasks.ts +++ b/tasks/profiling/profiling.ts @@ -4,43 +4,40 @@ *--------------------------------------------------------------------------------------------*/ import fs from 'fs'; -import * as gulp from 'gulp'; import * as path from 'path'; -import { basicSlnTestProject, runIntegrationTest } from './testHelpers'; -import { outPath } from './projectPaths'; +import { basicSlnTestProject, runIntegrationTest } from '../tests/testHelpers'; +import { outPath } from '../projectPaths'; import { execSync } from 'child_process'; +import { runTask } from '../runTask'; -createProfilingTasks(); +const profilingOutputFolder = path.join(outPath, 'profiling'); -function createProfilingTasks() { - const profilingOutputFolder = path.join(outPath, 'profiling'); - gulp.task(`profiling:csharp:${basicSlnTestProject}`, async () => { - // Ensure the profiling output folder exists, otherwise the outputs will not get written. - fs.mkdirSync(path.join(outPath, 'profiling'), { recursive: true }); +runTask(profiling); - await runIntegrationTest( - basicSlnTestProject, - path.join('lsptoolshost', 'integrationTests'), - `[C#][${basicSlnTestProject}]`, - undefined, - undefined, - { - ROSLYN_DOTNET_EventPipeOutputPath: path.join(profilingOutputFolder, 'csharp-trace.{pid}.nettrace'), - } - ); +async function profiling(): Promise { + await profileCSharp(); + await mergeTraces(profilingOutputFolder); +} - const files = fs.readdirSync(profilingOutputFolder); - const nettraceFiles = files.filter((f) => f.endsWith('.nettrace')); - if (nettraceFiles.length === 0) { - throw new Error('No .nettrace files found in the profiling output folder.'); - } - }); +async function profileCSharp(): Promise { + fs.mkdirSync(path.join(outPath, 'profiling'), { recursive: true }); - gulp.task('mergeTraces', async () => { - await mergeTraces(profilingOutputFolder); - }); + await runIntegrationTest( + basicSlnTestProject, + path.join('lsptoolshost', 'integrationTests'), + `[C#][${basicSlnTestProject}]`, + undefined, + undefined, + { + ROSLYN_DOTNET_EventPipeOutputPath: path.join(profilingOutputFolder, 'csharp-trace.{pid}.nettrace'), + } + ); - gulp.task('profiling', gulp.series(`profiling:csharp:${basicSlnTestProject}`, 'mergeTraces')); + const files = fs.readdirSync(profilingOutputFolder); + const nettraceFiles = files.filter((f) => f.endsWith('.nettrace')); + if (nettraceFiles.length === 0) { + throw new Error('No .nettrace files found in the profiling output folder.'); + } } async function mergeTraces(profilingOutputFolder: string) { diff --git a/tasks/runTask.ts b/tasks/runTask.ts new file mode 100644 index 0000000000..6f5f8f4492 --- /dev/null +++ b/tasks/runTask.ts @@ -0,0 +1,10 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +export function runTask(task: () => Promise | void): void { + void (async () => { + await task(); + })(); +} diff --git a/tasks/signing/installSignPlugin.ts b/tasks/signing/installSignPlugin.ts new file mode 100644 index 0000000000..3a3ad49344 --- /dev/null +++ b/tasks/signing/installSignPlugin.ts @@ -0,0 +1,24 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import path from 'path'; +import { rootPath } from '../projectPaths'; +import { execDotnet } from './signingTasks'; +import { runTask } from '../runTask'; + +runTask(installSignPlugin); + +async function installSignPlugin(): Promise { + console.log(`Installing MicroBuild.Plugins.Signing`); + await execDotnet([ + 'restore', + path.join(rootPath, 'msbuild', 'server'), + // MicroBuild is expecting the signing plugin to be in the global package folder, so ensure it gets downloaded there. + `/p:DownloadToGlobalNugetFolder=true`, + `/p:PackageName=MicroBuild.Plugins.Signing`, + `/p:PackageVersion=1.1.950`, + `/p:RestoreSources=https://dnceng.pkgs.visualstudio.com/_packaging/MicroBuildToolset/nuget/v3/index.json`, + ]); +} diff --git a/tasks/signing/signJs.ts b/tasks/signing/signJs.ts new file mode 100644 index 0000000000..91bc89969a --- /dev/null +++ b/tasks/signing/signJs.ts @@ -0,0 +1,32 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import path from 'path'; +import { rootPath } from '../projectPaths'; +import { execDotnet, getLogPath } from './signingTasks'; +import { runTask } from '../runTask'; + +runTask(signJs); + +async function signJs(): Promise { + const logPath = getLogPath(); + const signType = process.env.SignType; + if (!signType) { + console.warn('SignType environment variable is not set, skipping JS signing.'); + return; + } + + if (signType === 'test' && process.platform !== 'win32') { + console.log('Test signing is not supported on non-windows platforms. Skipping JS signing.'); + return; + } + console.log(`Signing JS as ${signType}`); + await execDotnet([ + 'build', + path.join(rootPath, 'msbuild', 'signing', 'signJs'), + `-bl:${path.join(logPath, 'signJs.binlog')}`, + `/p:JSOutputPath=${path.join(rootPath, 'dist')}`, + ]); +} diff --git a/tasks/signing/signVsix.ts b/tasks/signing/signVsix.ts new file mode 100644 index 0000000000..e38c05dd10 --- /dev/null +++ b/tasks/signing/signVsix.ts @@ -0,0 +1,31 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import path from 'path'; +import { rootPath } from '../projectPaths'; +import { execDotnet, getLogPath } from './signingTasks'; +import { runTask } from '../runTask'; + +runTask(signVsix); + +async function signVsix(): Promise { + const logPath = getLogPath(); + const signType = process.env.SignType; + if (!signType) { + console.warn('SignType environment variable is not set, skipping VSIX signing.'); + return; + } + + if (signType === 'test' && process.platform !== 'win32') { + console.log('Test signing is not supported on non-windows platforms. Skipping VSIX signing.'); + return; + } + console.log(`Signing VSIX as ${signType}`); + await execDotnet([ + 'build', + path.join(rootPath, 'msbuild', 'signing', 'signVsix'), + `-bl:${path.join(logPath, 'signVsix.binlog')}`, + ]); +} diff --git a/tasks/signing/signingTasks.ts b/tasks/signing/signingTasks.ts new file mode 100644 index 0000000000..19db4aaff3 --- /dev/null +++ b/tasks/signing/signingTasks.ts @@ -0,0 +1,32 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import * as cp from 'child_process'; +import * as fs from 'fs'; +import { rootPath } from '../projectPaths'; +import path from 'path'; + +export function getLogPath(): string { + const logPath = path.join(rootPath, 'out', 'logs'); + if (!fs.existsSync(logPath)) { + fs.mkdirSync(logPath, { recursive: true }); + } + return logPath; +} + +export async function execDotnet(args: string[]): Promise { + const dotnetArgs = args.join(' '); + console.log(`dotnet args: dotnet ${dotnetArgs}`); + const process = cp.spawn('dotnet', args, { stdio: 'inherit' }); + + await new Promise((resolve) => { + process.on('exit', (exitCode, _) => { + if (exitCode !== 0) { + throw new Error(`Failed to run command: dotnet ${dotnetArgs}`); + } + resolve(undefined); + }); + }); +} diff --git a/tasks/signing/verifyVsix.ts b/tasks/signing/verifyVsix.ts new file mode 100644 index 0000000000..d5eab1f3cf --- /dev/null +++ b/tasks/signing/verifyVsix.ts @@ -0,0 +1,30 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import * as fs from 'fs'; +import path from 'path'; +import { verifySignature } from '../packaging/vsceTasks'; +import { runTask } from '../runTask'; + +runTask(verifyVsix); + +async function verifyVsix(): Promise { + const signType = process.env.SignType; + if (!signType) { + console.warn('SignType environment variable is not set, skipping VSIX verification.'); + return; + } + + if (signType.toLowerCase() !== 'real') { + console.log('Signing verification is only supported for real signing. Skipping VSIX verification.'); + return; + } + + const vsixs = fs.readdirSync('.').filter((file) => path.extname(file) === '.vsix'); + for (const vsixFile in vsixs) { + console.log(`Verifying signature of ${vsixFile}`); + await verifySignature(vsixFile); + } +} diff --git a/tasks/signingTasks.ts b/tasks/signingTasks.ts deleted file mode 100644 index 60eb57d80f..0000000000 --- a/tasks/signingTasks.ts +++ /dev/null @@ -1,128 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ - -import * as cp from 'child_process'; -import * as fs from 'fs'; -import * as gulp from 'gulp'; -import { rootPath } from './projectPaths'; -import path from 'path'; -import { verifySignature } from './vsceTasks'; -// There are no typings for this library. -// eslint-disable-next-line @typescript-eslint/no-var-requires -//const argv = require('yargs').argv; - -gulp.task('signJs', async () => { - await signJs(); -}); - -gulp.task('signVsix', async () => { - await signVsix(); -}); - -gulp.task('verifyVsix', async () => { - await verifyVsix(); -}); - -// Development task to install the signing plugin locally. -// Required to run test sigining tasks locally. -gulp.task('installSignPlugin', async () => { - await installSignPlugin(); -}); - -async function installSignPlugin(): Promise { - console.log(`Installing MicroBuild.Plugins.Signing`); - await execDotnet([ - 'restore', - path.join(rootPath, 'msbuild', 'server'), - // MicroBuild is expecting the signing plugin to be in the global package folder, so ensure it gets downloaded there. - `/p:DownloadToGlobalNugetFolder=true`, - `/p:PackageName=MicroBuild.Plugins.Signing`, - `/p:PackageVersion=1.1.950`, - `/p:RestoreSources=https://dnceng.pkgs.visualstudio.com/_packaging/MicroBuildToolset/nuget/v3/index.json`, - ]); -} - -async function signJs(): Promise { - const logPath = getLogPath(); - const signType = process.env.SignType; - if (!signType) { - console.warn('SignType environment variable is not set, skipping JS signing.'); - return; - } - - if (signType === 'test' && process.platform !== 'win32') { - console.log('Test signing is not supported on non-windows platforms. Skipping JS signing.'); - return; - } - console.log(`Signing JS as ${signType}`); - await execDotnet([ - 'build', - path.join(rootPath, 'msbuild', 'signing', 'signJs'), - `-bl:${path.join(logPath, 'signJs.binlog')}`, - `/p:JSOutputPath=${path.join(rootPath, 'dist')}`, - ]); -} - -async function signVsix(): Promise { - const logPath = getLogPath(); - const signType = process.env.SignType; - if (!signType) { - console.warn('SignType environment variable is not set, skipping VSIX signing.'); - return; - } - - if (signType === 'test' && process.platform !== 'win32') { - console.log('Test signing is not supported on non-windows platforms. Skipping VSIX signing.'); - return; - } - console.log(`Signing VSIX as ${signType}`); - await execDotnet([ - 'build', - path.join(rootPath, 'msbuild', 'signing', 'signVsix'), - `-bl:${path.join(logPath, 'signVsix.binlog')}`, - ]); -} - -async function verifyVsix(): Promise { - const signType = process.env.SignType; - if (!signType) { - console.warn('SignType environment variable is not set, skipping VSIX verification.'); - return; - } - - if (signType.toLowerCase() !== 'real') { - console.log('Signing verification is only supported for real signing. Skipping VSIX verification.'); - return; - } - - const vsixs = fs.readdirSync('.').filter((file) => path.extname(file) === '.vsix'); - for (const vsixFile in vsixs) { - console.log(`Verifying signature of ${vsixFile}`); - await verifySignature(vsixFile); - } -} - -function getLogPath(): string { - const logPath = path.join(rootPath, 'out', 'logs'); - if (!fs.existsSync(logPath)) { - fs.mkdirSync(logPath, { recursive: true }); - } - return logPath; -} - -async function execDotnet(args: string[]): Promise { - const dotnetArgs = args.join(' '); - console.log(`dotnet args: dotnet ${dotnetArgs}`); - const process = cp.spawn('dotnet', args, { stdio: 'inherit' }); - - await new Promise((resolve) => { - process.on('exit', (exitCode, _) => { - if (exitCode !== 0) { - throw new Error(`Failed to run command: dotnet ${dotnetArgs}`); - } - resolve(undefined); - }); - }); -} diff --git a/tasks/snap/incrementVersion.ts b/tasks/snap/incrementVersion.ts new file mode 100644 index 0000000000..0489adf690 --- /dev/null +++ b/tasks/snap/incrementVersion.ts @@ -0,0 +1,36 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import minimist from 'minimist'; +import { addChangelogSection, getNextReleaseVersion, readVersionJson, writeVersionJson } from './snapTasks'; +import { runTask } from '../runTask'; + +runTask(incrementVersion); + +async function incrementVersion(): Promise { + const argv = minimist(process.argv.slice(2)); + const isReleaseCandidate = argv['releaseCandidate'] === true || argv['releaseCandidate'] === 'true'; + + // Get the current version from version.json + const versionJson = readVersionJson(); + + // Calculate new version + let version = versionJson.version as string; + if (isReleaseCandidate) { + version = getNextReleaseVersion(version); + console.log(`Release candidate, using base version of ${version}`); + } + + const split = version.split('.'); + const newVersion = `${split[0]}.${parseInt(split[1]) + 1}`; + console.log(`Updating ${versionJson.version} to ${newVersion}`); + + // Write the new version back to version.json + versionJson.version = newVersion; + writeVersionJson(versionJson); + + // Add a new changelog section for the new version. + addChangelogSection(newVersion); +} diff --git a/tasks/snap/snapTasks.ts b/tasks/snap/snapTasks.ts new file mode 100644 index 0000000000..d7c3e3a7f0 --- /dev/null +++ b/tasks/snap/snapTasks.ts @@ -0,0 +1,94 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import * as fs from 'fs'; +import * as path from 'path'; +import * as os from 'os'; +import { rootPath } from '../projectPaths'; + +/** + * Calculate the next release (stable) version from the current version. + * Rounds up the minor version to the next tens version. + * @param currentVersion The current version in "major.minor" format (e.g., "2.74") + * @returns The next stable release version (e.g., "2.80") + */ +export function getNextReleaseVersion(currentVersion: string): string { + const split = currentVersion.split('.'); + const major = parseInt(split[0]); + const minor = parseInt(split[1]); + + // Round up to the next tens version + const nextTensMinor = Math.ceil((minor + 1) / 10) * 10; + + return `${major}.${nextTensMinor}`; +} + +/** + * Read and parse version.json + * @returns The parsed version.json object + */ +export function readVersionJson(): { version: string; [key: string]: unknown } { + const versionFilePath = path.join(rootPath, 'version.json'); + const file = fs.readFileSync(versionFilePath, 'utf8'); + return JSON.parse(file); +} + +/** + * Write version.json with the given version + * @param versionJson The version.json object to write + */ +export function writeVersionJson(versionJson: { version: string; [key: string]: unknown }): void { + const versionFilePath = path.join(rootPath, 'version.json'); + const newJson = JSON.stringify(versionJson, null, 4); + console.log(`New json: ${newJson}`); + fs.writeFileSync(versionFilePath, newJson); +} + +/** + * Add a new version section to the changelog + * @param version The version to add (e.g., "2.75") + * @param additionalLines Optional additional lines to add after the version header + */ +export function addChangelogSection(version: string, additionalLines?: string[]): void { + console.log('Adding new version header to changelog'); + + const changelogPath = path.join(rootPath, 'CHANGELOG.md'); + const changelogContent = fs.readFileSync(changelogPath, 'utf8'); + const changelogLines = changelogContent.split(os.EOL); + + // Find all the headers in the changelog (and their line numbers) + const headerRegex = /^#+\s+.*$/gm; + const matches = []; + for (let i = 0; i < changelogLines.length; i++) { + const line = changelogLines[i]; + const match = headerRegex.exec(line!); + if (match) { + matches.push({ line: i, text: match[0] }); + } + } + + // Find the known issues header, then find the next header after it. + const knownIssuesHeader = matches.find((m) => m.text.includes('Known Issues')); + if (knownIssuesHeader === undefined) { + throw new Error('Could not find the known issues header in the changelog.'); + } + const knownIssuesIndex = matches.indexOf(knownIssuesHeader); + if (knownIssuesIndex === -1) { + throw new Error('Could not find the known issues index in the matches.'); + } + + // Insert a new header for the new version after the known issues header but before the next header. + const lineToInsertAt = matches[knownIssuesIndex + 1].line - 1; + console.log(`Inserting new version header at line ${lineToInsertAt}`); + const linesToInsert = ['', `# ${version}.x`]; + + // Add any additional lines if provided + if (additionalLines && additionalLines.length > 0) { + linesToInsert.push(...additionalLines); + } + + changelogLines.splice(lineToInsertAt, 0, ...linesToInsert); + fs.writeFileSync(changelogPath, changelogLines.join(os.EOL)); +} diff --git a/tasks/snap/updateChangelog.ts b/tasks/snap/updateChangelog.ts new file mode 100644 index 0000000000..bbb5ddd3cb --- /dev/null +++ b/tasks/snap/updateChangelog.ts @@ -0,0 +1,134 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import * as fs from 'fs'; +import * as path from 'path'; +import * as os from 'os'; +import { exec } from 'child_process'; +import { promisify } from 'util'; +import { rootPath } from '../projectPaths'; +import { findTagsByVersion } from '../gitTasks'; +import { runTask } from '../runTask'; + +const execAsync = promisify(exec); + +runTask(updateChangelog); + +async function updateChangelog(): Promise { + // Add a new changelog section for the new version. + console.log('Determining version from CHANGELOG'); + + const changelogPath = path.join(rootPath, 'CHANGELOG.md'); + const changelogContent = fs.readFileSync(changelogPath, 'utf8'); + const changelogLines = changelogContent.split(os.EOL); + + // Find all the headers in the changelog (and their line numbers) + const [currentHeaderLine, currentVersion] = findNextVersionHeaderLine(changelogLines); + if (currentHeaderLine === -1) { + throw new Error('Could not find the current header in the CHANGELOG'); + } + + console.log(`Adding PRs for ${currentVersion} to CHANGELOG`); + + const [previousHeaderLine, previousVersion] = findNextVersionHeaderLine(changelogLines, currentHeaderLine + 1); + if (previousHeaderLine === -1) { + throw new Error('Could not find the previous header in the CHANGELOG'); + } + + const presentPrIds = getPrIdsBetweenHeaders(changelogLines, currentHeaderLine, previousHeaderLine); + console.log(`PRs [#${presentPrIds.join(', #')}] already in the CHANGELOG`); + + const versionTags = await findTagsByVersion(previousVersion!); + if (versionTags.length === 0) { + throw new Error(`Could not find any tags for version ${previousVersion}`); + } + + // The last tag is the most recent one created. + const versionTag = versionTags.pop(); + console.log(`Using tag ${versionTag} for previous version ${previousVersion}`); + + console.log(`Generating PR list from ${versionTag} to HEAD`); + const currentPrs = await generatePRList(versionTag!, 'HEAD'); + + const newPrs = []; + for (const pr of currentPrs) { + const match = prRegex.exec(pr); + if (!match) { + continue; + } + + const prId = match[1]; + if (presentPrIds.includes(prId)) { + console.log(`PR #${prId} is already present in the CHANGELOG`); + continue; + } + + console.log(`Adding new PR to CHANGELOG: ${pr}`); + newPrs.push(pr); + } + + if (newPrs.length === 0) { + console.log('No new PRs to add to the CHANGELOG'); + return; + } + + console.log(`Writing ${newPrs.length} new PRs to the CHANGELOG`); + + changelogLines.splice(currentHeaderLine + 1, 0, ...newPrs); + fs.writeFileSync(changelogPath, changelogLines.join(os.EOL)); +} + +const prRegex = /^\*.+\(PR: \[#(\d+)\]\(/; + +function findNextVersionHeaderLine(changelogLines: string[], startLine: number = 0): [number, string] { + const headerRegex = /^#\s(\d+\.\d+)\.(x|\d+)$/; + for (let i = startLine; i < changelogLines.length; i++) { + const line = changelogLines[i]; + const match = headerRegex.exec(line!); + if (match) { + return [i, match[1]]; + } + } + return [-1, '']; +} + +function getPrIdsBetweenHeaders(changelogLines: string[], startLine: number, endLine: number): string[] { + const prs: string[] = []; + for (let i = startLine; i < endLine; i++) { + const line = changelogLines[i]; + const match = prRegex.exec(line!); + if (match) { + prs.push(match[1]); + } + } + return prs; +} + +async function generatePRList(startSHA: string, endSHA: string): Promise { + try { + console.log(`Executing: roslyn-tools pr-finder -s "${startSHA}" -e "${endSHA}" --format o#`); + let { stdout } = await execAsync( + `roslyn-tools pr-finder -s "${startSHA}" -e "${endSHA}" --format o#`, + { maxBuffer: 10 * 1024 * 1024 } // 10MB buffer + ); + + stdout = stdout.trim(); + if (stdout.length === 0) { + return []; + } + + return stdout.split(os.EOL).filter((pr) => pr.length > 0); + } catch (error) { + logWarning(`PR finder failed: ${error instanceof Error ? error.message : error}`, error); + throw error; + } +} + +function logWarning(message: string, error?: unknown): void { + console.log(`##vso[task.logissue type=warning]${message}`); + if (error instanceof Error && error.stack) { + console.log(`##[debug]${error.stack}`); + } +} diff --git a/tasks/snap/updateVersionForStableRelease.ts b/tasks/snap/updateVersionForStableRelease.ts new file mode 100644 index 0000000000..461d9df58f --- /dev/null +++ b/tasks/snap/updateVersionForStableRelease.ts @@ -0,0 +1,31 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import { readVersionJson, getNextReleaseVersion, writeVersionJson, addChangelogSection } from './snapTasks'; +import { runTask } from '../runTask'; + +runTask(updateVersionForStableRelease); + +/** + * Update version.json to the next stable release version. + * This task is used when snapping from prerelease to release. + * It updates the version to round up to the next tens version (e.g., 2.74 -> 2.80). + */ +async function updateVersionForStableRelease(): Promise { + // Get the current version from version.json + const versionJson = readVersionJson(); + + const currentVersion = versionJson.version as string; + const releaseVersion = getNextReleaseVersion(currentVersion); + + console.log(`Updating version from ${currentVersion} to stable release version ${releaseVersion}`); + + // Write the new version back to version.json + versionJson.version = releaseVersion; + writeVersionJson(versionJson); + + // Add a new changelog section for the release version that references the prerelease + addChangelogSection(releaseVersion, [`* See ${currentVersion}.x for full list of changes.`]); +} diff --git a/tasks/snapTasks.ts b/tasks/snapTasks.ts deleted file mode 100644 index 8516f974af..0000000000 --- a/tasks/snapTasks.ts +++ /dev/null @@ -1,265 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ - -import * as gulp from 'gulp'; -import * as fs from 'fs'; -import * as path from 'path'; -import * as os from 'os'; -import { exec } from 'child_process'; -import { promisify } from 'util'; -import { findTagsByVersion } from './gitTasks'; -import minimist from 'minimist'; - -const execAsync = promisify(exec); - -function logWarning(message: string, error?: unknown): void { - console.log(`##vso[task.logissue type=warning]${message}`); - if (error instanceof Error && error.stack) { - console.log(`##[debug]${error.stack}`); - } -} - -/** - * Calculate the next release (stable) version from the current version. - * Rounds up the minor version to the next tens version. - * @param currentVersion The current version in "major.minor" format (e.g., "2.74") - * @returns The next stable release version (e.g., "2.80") - */ -export function getNextReleaseVersion(currentVersion: string): string { - const split = currentVersion.split('.'); - const major = parseInt(split[0]); - const minor = parseInt(split[1]); - - // Round up to the next tens version - const nextTensMinor = Math.ceil((minor + 1) / 10) * 10; - - return `${major}.${nextTensMinor}`; -} - -/** - * Read and parse version.json - * @returns The parsed version.json object - */ -function readVersionJson(): { version: string; [key: string]: unknown } { - const versionFilePath = path.join(path.resolve(__dirname, '..'), 'version.json'); - const file = fs.readFileSync(versionFilePath, 'utf8'); - return JSON.parse(file); -} - -/** - * Write version.json with the given version - * @param versionJson The version.json object to write - */ -function writeVersionJson(versionJson: { version: string; [key: string]: unknown }): void { - const versionFilePath = path.join(path.resolve(__dirname, '..'), 'version.json'); - const newJson = JSON.stringify(versionJson, null, 4); - console.log(`New json: ${newJson}`); - fs.writeFileSync(versionFilePath, newJson); -} - -/** - * Add a new version section to the changelog - * @param version The version to add (e.g., "2.75") - * @param additionalLines Optional additional lines to add after the version header - */ -function addChangelogSection(version: string, additionalLines?: string[]): void { - console.log('Adding new version header to changelog'); - - const changelogPath = path.join(path.resolve(__dirname, '..'), 'CHANGELOG.md'); - const changelogContent = fs.readFileSync(changelogPath, 'utf8'); - const changelogLines = changelogContent.split(os.EOL); - - // Find all the headers in the changelog (and their line numbers) - const headerRegex = /^#+\s+.*$/gm; - const matches = []; - for (let i = 0; i < changelogLines.length; i++) { - const line = changelogLines[i]; - const match = headerRegex.exec(line!); - if (match) { - matches.push({ line: i, text: match[0] }); - } - } - - // Find the known issues header, then find the next header after it. - const knownIssuesHeader = matches.find((m) => m.text.includes('Known Issues')); - if (knownIssuesHeader === undefined) { - throw new Error('Could not find the known issues header in the changelog.'); - } - const knownIssuesIndex = matches.indexOf(knownIssuesHeader); - if (knownIssuesIndex === -1) { - throw new Error('Could not find the known issues index in the matches.'); - } - - // Insert a new header for the new version after the known issues header but before the next header. - const lineToInsertAt = matches[knownIssuesIndex + 1].line - 1; - console.log(`Inserting new version header at line ${lineToInsertAt}`); - const linesToInsert = ['', `# ${version}.x`]; - - // Add any additional lines if provided - if (additionalLines && additionalLines.length > 0) { - linesToInsert.push(...additionalLines); - } - - changelogLines.splice(lineToInsertAt, 0, ...linesToInsert); - fs.writeFileSync(changelogPath, changelogLines.join(os.EOL)); -} - -gulp.task('incrementVersion', async (): Promise => { - const argv = minimist(process.argv.slice(2)); - const isReleaseCandidate = argv['releaseCandidate'] === true || argv['releaseCandidate'] === 'true'; - - // Get the current version from version.json - const versionJson = readVersionJson(); - - // Calculate new version - let version = versionJson.version as string; - if (isReleaseCandidate) { - version = getNextReleaseVersion(version); - console.log(`Release candidate, using base version of ${version}`); - } - - const split = version.split('.'); - const newVersion = `${split[0]}.${parseInt(split[1]) + 1}`; - console.log(`Updating ${versionJson.version} to ${newVersion}`); - - // Write the new version back to version.json - versionJson.version = newVersion; - writeVersionJson(versionJson); - - // Add a new changelog section for the new version. - addChangelogSection(newVersion); -}); - -gulp.task('updateChangelog', async (): Promise => { - // Add a new changelog section for the new version. - console.log('Determining version from CHANGELOG'); - - const changelogPath = path.join(path.resolve(__dirname, '..'), 'CHANGELOG.md'); - const changelogContent = fs.readFileSync(changelogPath, 'utf8'); - const changelogLines = changelogContent.split(os.EOL); - - // Find all the headers in the changelog (and their line numbers) - const [currentHeaderLine, currentVersion] = findNextVersionHeaderLine(changelogLines); - if (currentHeaderLine === -1) { - throw new Error('Could not find the current header in the CHANGELOG'); - } - - console.log(`Adding PRs for ${currentVersion} to CHANGELOG`); - - const [previousHeaderLine, previousVersion] = findNextVersionHeaderLine(changelogLines, currentHeaderLine + 1); - if (previousHeaderLine === -1) { - throw new Error('Could not find the previous header in the CHANGELOG'); - } - - const presentPrIds = getPrIdsBetweenHeaders(changelogLines, currentHeaderLine, previousHeaderLine); - console.log(`PRs [#${presentPrIds.join(', #')}] already in the CHANGELOG`); - - const versionTags = await findTagsByVersion(previousVersion!); - if (versionTags.length === 0) { - throw new Error(`Could not find any tags for version ${previousVersion}`); - } - - // The last tag is the most recent one created. - const versionTag = versionTags.pop(); - console.log(`Using tag ${versionTag} for previous version ${previousVersion}`); - - console.log(`Generating PR list from ${versionTag} to HEAD`); - const currentPrs = await generatePRList(versionTag!, 'HEAD'); - - const newPrs = []; - for (const pr of currentPrs) { - const match = prRegex.exec(pr); - if (!match) { - continue; - } - - const prId = match[1]; - if (presentPrIds.includes(prId)) { - console.log(`PR #${prId} is already present in the CHANGELOG`); - continue; - } - - console.log(`Adding new PR to CHANGELOG: ${pr}`); - newPrs.push(pr); - } - - if (newPrs.length === 0) { - console.log('No new PRs to add to the CHANGELOG'); - return; - } - - console.log(`Writing ${newPrs.length} new PRs to the CHANGELOG`); - - changelogLines.splice(currentHeaderLine + 1, 0, ...newPrs); - fs.writeFileSync(changelogPath, changelogLines.join(os.EOL)); -}); - -const prRegex = /^\*.+\(PR: \[#(\d+)\]\(/; - -function findNextVersionHeaderLine(changelogLines: string[], startLine: number = 0): [number, string] { - const headerRegex = /^#\s(\d+\.\d+)\.(x|\d+)$/; - for (let i = startLine; i < changelogLines.length; i++) { - const line = changelogLines[i]; - const match = headerRegex.exec(line!); - if (match) { - return [i, match[1]]; - } - } - return [-1, '']; -} - -function getPrIdsBetweenHeaders(changelogLines: string[], startLine: number, endLine: number): string[] { - const prs: string[] = []; - for (let i = startLine; i < endLine; i++) { - const line = changelogLines[i]; - const match = prRegex.exec(line!); - if (match) { - prs.push(match[1]); - } - } - return prs; -} - -async function generatePRList(startSHA: string, endSHA: string): Promise { - try { - console.log(`Executing: roslyn-tools pr-finder -s "${startSHA}" -e "${endSHA}" --format o#`); - let { stdout } = await execAsync( - `roslyn-tools pr-finder -s "${startSHA}" -e "${endSHA}" --format o#`, - { maxBuffer: 10 * 1024 * 1024 } // 10MB buffer - ); - - stdout = stdout.trim(); - if (stdout.length === 0) { - return []; - } - - return stdout.split(os.EOL).filter((pr) => pr.length > 0); - } catch (error) { - logWarning(`PR finder failed: ${error instanceof Error ? error.message : error}`, error); - throw error; - } -} - -/** - * Update version.json to the next stable release version. - * This task is used when snapping from prerelease to release. - * It updates the version to round up to the next tens version (e.g., 2.74 -> 2.80). - */ -gulp.task('updateVersionForStableRelease', async (): Promise => { - // Get the current version from version.json - const versionJson = readVersionJson(); - - const currentVersion = versionJson.version as string; - const releaseVersion = getNextReleaseVersion(currentVersion); - - console.log(`Updating version from ${currentVersion} to stable release version ${releaseVersion}`); - - // Write the new version back to version.json - versionJson.version = releaseVersion; - writeVersionJson(versionJson); - - // Add a new changelog section for the release version that references the prerelease - addChangelogSection(releaseVersion, [`* See ${currentVersion}.x for full list of changes.`]); -}); diff --git a/tasks/createTagsTasks.ts b/tasks/tags/createTags.ts similarity index 95% rename from tasks/createTagsTasks.ts rename to tasks/tags/createTags.ts index 871618717d..8ef1f5c4d4 100644 --- a/tasks/createTagsTasks.ts +++ b/tasks/tags/createTags.ts @@ -3,13 +3,15 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import * as gulp from 'gulp'; import * as fs from 'fs'; import minimist from 'minimist'; import { Octokit } from '@octokit/rest'; -import { allNugetPackages, NugetPackageInfo, platformSpecificPackages } from './offlinePackagingTasks'; -import { PlatformInformation } from '../src/shared/platform'; +import { allNugetPackages, NugetPackageInfo, platformSpecificPackages } from '../packaging/offlinePackagingTasks'; +import { PlatformInformation } from '../../src/shared/platform'; import path from 'path'; +import { runTask } from '../runTask'; + +runTask(createTags); interface CreateTagsOptions { releaseVersion: string; @@ -20,7 +22,13 @@ interface CreateTagsOptions { prerelease: string | null; } -gulp.task('createTags:roslyn', async (): Promise => { +async function createTags(): Promise { + await createTagsRoslyn(); + await createTagsRazor(); + await createTagsVSCodeCSharp(); +} + +async function createTagsRoslyn(): Promise { const options = minimist(process.argv.slice(2)); return createTagsAsync( @@ -37,9 +45,9 @@ gulp.task('createTags:roslyn', async (): Promise => { ]; } ); -}); +} -gulp.task('createTags:razor', async (): Promise => { +async function createTagsRazor(): Promise { const options = minimist(process.argv.slice(2)); return createTagsAsync( @@ -56,9 +64,9 @@ gulp.task('createTags:razor', async (): Promise => { ]; } ); -}); +} -gulp.task('createTags:vscode-csharp', async (): Promise => { +async function createTagsVSCodeCSharp(): Promise { const options = minimist(process.argv.slice(2)); return createTagsAsync( @@ -71,9 +79,7 @@ gulp.task('createTags:vscode-csharp', async (): Promise => { return [`v${releaseVersion}${prereleaseText}`, releaseVersion]; } ); -}); - -gulp.task('createTags', gulp.series('createTags:roslyn', 'createTags:razor', 'createTags:vscode-csharp')); +} async function createTagsAsync( options: CreateTagsOptions, diff --git a/tasks/testTasks.ts b/tasks/testTasks.ts deleted file mode 100644 index 39c1d9941e..0000000000 --- a/tasks/testTasks.ts +++ /dev/null @@ -1,191 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ - -import * as gulp from 'gulp'; -import * as path from 'path'; -import { codeExtensionPath, rootPath } from './projectPaths'; -import * as jest from 'jest'; -import { Config } from '@jest/types'; -import { jestOmniSharpUnitTestProjectName } from '../test/omnisharp/omnisharpUnitTests/jest.config'; -import { jestUnitTestProjectName } from '../test/lsptoolshost/unitTests/jest.config'; -import { razorTestProjectName } from '../test/razor/razorTests/jest.config'; -import { jestArtifactTestsProjectName } from '../test/lsptoolshost/artifactTests/jest.config'; -import { jestTasksTestProjectName } from '../test/tasks/jest.config'; -import { - getJUnitFileName, - integrationTestProjects, - runDevKitIntegrationTests, - runIntegrationTest, - runJestIntegrationTest, -} from './testHelpers'; - -const razorIntegrationTestProjects = ['RazorApp']; - -createUnitTestSubTasks(); -createIntegrationTestSubTasks(); -createOmniSharpTestSubTasks(); - -gulp.task('test:artifacts', async () => { - await runJestTest(jestArtifactTestsProjectName); -}); - -// Overall test command that runs everything except O# tests. -gulp.task('test', gulp.series('test:unit', 'test:integration')); - -// OmniSharp tests are run separately in CI, so we have separate tasks for these. -// TODO: Enable lsp integration tests once tests for unimplemented features are disabled. -gulp.task('omnisharptest', gulp.series('omnisharptest:unit', 'omnisharptest:integration:stdio')); - -function createUnitTestSubTasks() { - gulp.task('test:unit:csharp', async () => { - await runJestTest(jestUnitTestProjectName); - }); - - gulp.task('test:unit:razor', async () => { - await runJestTest(razorTestProjectName); - }); - - gulp.task('test:unit:tasks', async () => { - await runJestTest(jestTasksTestProjectName); - }); - - gulp.task('test:unit', gulp.series('test:unit:csharp', 'test:unit:razor', 'test:unit:tasks')); -} - -function createIntegrationTestSubTasks() { - for (const projectName of integrationTestProjects) { - gulp.task(`test:integration:csharp:${projectName}`, async () => - runIntegrationTest(projectName, path.join('lsptoolshost', 'integrationTests'), `[C#][${projectName}]`) - ); - - gulp.task(`test:integration:devkit:${projectName}`, async () => - runDevKitIntegrationTests( - projectName, - path.join('lsptoolshost', 'integrationTests'), - `[DevKit][${projectName}]` - ) - ); - } - - gulp.task( - 'test:integration:csharp', - gulp.series(integrationTestProjects.map((projectName) => `test:integration:csharp:${projectName}`)) - ); - - gulp.task( - 'test:integration:devkit', - gulp.series(integrationTestProjects.map((projectName) => `test:integration:devkit:${projectName}`)) - ); - - gulp.task('test:integration:untrusted', async () => - runIntegrationTest('empty', path.join('untrustedWorkspace', 'integrationTests'), `[C#][empty]`) - ); - - for (const projectName of razorIntegrationTestProjects) { - gulp.task(`test:integration:razor:cohost:${projectName}`, async () => - // Register each test again, but as a regular test, which will run with cohosting on - runIntegrationTest( - projectName, - path.join('razor', 'razorIntegrationTests'), - `Razor Test Integration ${projectName}` - ) - ); - } - - gulp.task( - 'test:integration:razor:cohost', - gulp.series(razorIntegrationTestProjects.map((projectName) => `test:integration:razor:cohost:${projectName}`)) - ); - - gulp.task( - 'test:integration', - gulp.series( - 'test:integration:csharp', - 'test:integration:devkit', - 'test:integration:razor:cohost', - 'test:integration:untrusted' - ) - ); -} - -function createOmniSharpTestSubTasks() { - gulp.task('omnisharptest:unit', async () => { - await runJestTest(jestOmniSharpUnitTestProjectName); - }); - - const omnisharpIntegrationTestProjects = [ - 'singleCsproj', - 'slnWithCsproj', - 'slnFilterWithCsproj', - 'BasicRazorApp2_1', - ]; - - for (const projectName of omnisharpIntegrationTestProjects) { - gulp.task(`omnisharptest:integration:${projectName}:stdio`, async () => - runOmnisharpJestIntegrationTest(projectName, 'stdio', `[O#][${projectName}][STDIO]`) - ); - gulp.task(`omnisharptest:integration:${projectName}:lsp`, async () => - runOmnisharpJestIntegrationTest(projectName, 'lsp', `[O#][${projectName}][LSP]`) - ); - gulp.task( - `omnisharptest:integration:${projectName}`, - gulp.series( - `omnisharptest:integration:${projectName}:stdio`, - `omnisharptest:integration:${projectName}:lsp` - ) - ); - } - - gulp.task( - 'omnisharptest:integration', - gulp.series(omnisharpIntegrationTestProjects.map((projectName) => `omnisharptest:integration:${projectName}`)) - ); - gulp.task( - 'omnisharptest:integration:stdio', - gulp.series( - omnisharpIntegrationTestProjects.map((projectName) => `omnisharptest:integration:${projectName}:stdio`) - ) - ); - gulp.task( - 'omnisharptest:integration:lsp', - gulp.series( - omnisharpIntegrationTestProjects.map((projectName) => `omnisharptest:integration:${projectName}:lsp`) - ) - ); -} - -async function runOmnisharpJestIntegrationTest(testAssetName: string, engine: 'stdio' | 'lsp', suiteName: string) { - const workspaceFile = `omnisharp${engine === 'lsp' ? '_lsp' : ''}_${testAssetName}.code-workspace`; - const testFolder = path.join('test', 'omnisharp', 'omnisharpIntegrationTests'); - - const env = { - OSVC_SUITE: testAssetName, - CODE_EXTENSIONS_PATH: codeExtensionPath, - CODE_WORKSPACE_ROOT: rootPath, - OMNISHARP_ENGINE: engine, - OMNISHARP_LOCATION: process.env.OMNISHARP_LOCATION, - CODE_DISABLE_EXTENSIONS: 'true', - }; - - await runJestIntegrationTest(testAssetName, testFolder, workspaceFile, suiteName, env); -} - -async function runJestTest(project: string) { - process.env.JEST_JUNIT_OUTPUT_NAME = getJUnitFileName(project); - process.env.JEST_SUITE_NAME = project; - const configPath = path.join(rootPath, 'jest.config.ts'); - const { results } = await jest.runCLI( - { - config: configPath, - selectProjects: [project], - verbose: true, - } as Config.Argv, - [project] - ); - - if (!results.success) { - throw new Error('Tests failed.'); - } -} diff --git a/tasks/tests/omnisharptest.ts b/tasks/tests/omnisharptest.ts new file mode 100644 index 0000000000..f7cfcf0422 --- /dev/null +++ b/tasks/tests/omnisharptest.ts @@ -0,0 +1,16 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import { omnisharpTestIntegration, omnisharpTestUnit } from './omnisharptestTasks'; +import { runTask } from '../runTask'; + +runTask(omnisharpTest); + +// OmniSharp tests are run separately in CI, so we have separate tasks for these. +// TODO: Enable lsp integration tests once tests for unimplemented features are disabled. +async function omnisharpTest(): Promise { + await omnisharpTestUnit(); + await omnisharpTestIntegration(/* skipLsp */ true); +} diff --git a/tasks/tests/omnisharptestIntegration.ts b/tasks/tests/omnisharptestIntegration.ts new file mode 100644 index 0000000000..5a537d7528 --- /dev/null +++ b/tasks/tests/omnisharptestIntegration.ts @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import { omnisharpTestIntegration } from './omnisharptestTasks'; +import { runTask } from '../runTask'; + +runTask(omnisharpTestIntegration); diff --git a/tasks/tests/omnisharptestTasks.ts b/tasks/tests/omnisharptestTasks.ts new file mode 100644 index 0000000000..a74e229d58 --- /dev/null +++ b/tasks/tests/omnisharptestTasks.ts @@ -0,0 +1,42 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import path from 'path'; +import { codeExtensionPath, rootPath } from '../projectPaths'; +import { runJestIntegrationTest, runJestTest } from './testHelpers'; +import { jestOmniSharpUnitTestProjectName } from '../../test/omnisharp/omnisharpUnitTests/jest.config'; + +const omnisharpIntegrationTestProjects = ['singleCsproj', 'slnWithCsproj', 'slnFilterWithCsproj', 'BasicRazorApp2_1']; + +export async function omnisharpTestUnit(): Promise { + await runJestTest(jestOmniSharpUnitTestProjectName); +} + +export async function omnisharpTestIntegration(skipLsp: boolean = false): Promise { + for (const projectName of omnisharpIntegrationTestProjects) { + await runOmnisharpJestIntegrationTest(projectName, 'stdio', `[O#][${projectName}][STDIO]`); + if (skipLsp) { + continue; + } + + await runOmnisharpJestIntegrationTest(projectName, 'lsp', `[O#][${projectName}][LSP]`); + } +} + +async function runOmnisharpJestIntegrationTest(testAssetName: string, engine: 'stdio' | 'lsp', suiteName: string) { + const workspaceFile = `omnisharp${engine === 'lsp' ? '_lsp' : ''}_${testAssetName}.code-workspace`; + const testFolder = path.join('test', 'omnisharp', 'omnisharpIntegrationTests'); + + const env = { + OSVC_SUITE: testAssetName, + CODE_EXTENSIONS_PATH: codeExtensionPath, + CODE_WORKSPACE_ROOT: rootPath, + OMNISHARP_ENGINE: engine, + OMNISHARP_LOCATION: process.env.OMNISHARP_LOCATION, + CODE_DISABLE_EXTENSIONS: 'true', + }; + + await runJestIntegrationTest(testAssetName, testFolder, workspaceFile, suiteName, env); +} diff --git a/tasks/tests/omnisharptestUnit.ts b/tasks/tests/omnisharptestUnit.ts new file mode 100644 index 0000000000..49dc4d9f37 --- /dev/null +++ b/tasks/tests/omnisharptestUnit.ts @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import { omnisharpTestUnit } from './omnisharptestTasks'; +import { runTask } from '../runTask'; + +runTask(omnisharpTestUnit); diff --git a/tasks/tests/test.ts b/tasks/tests/test.ts new file mode 100644 index 0000000000..3491d03160 --- /dev/null +++ b/tasks/tests/test.ts @@ -0,0 +1,26 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import { + testArtifacts, + testIntegrationCSharp, + testIntegrationDevkit, + testIntegrationRazorCohost, + testIntegrationUntrusted, + testUnit, +} from './testTasks'; +import { runTask } from '../runTask'; + +runTask(test); + +// Overall test command that runs everything except O# tests. +export async function test(): Promise { + await testArtifacts(); + await testUnit(); + await testIntegrationCSharp(); + await testIntegrationDevkit(); + await testIntegrationRazorCohost(); + await testIntegrationUntrusted(); +} diff --git a/tasks/tests/testArtifacts.ts b/tasks/tests/testArtifacts.ts new file mode 100644 index 0000000000..0612f2625d --- /dev/null +++ b/tasks/tests/testArtifacts.ts @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import { testArtifacts } from './testTasks'; +import { runTask } from '../runTask'; + +runTask(testArtifacts); diff --git a/tasks/testHelpers.ts b/tasks/tests/testHelpers.ts similarity index 89% rename from tasks/testHelpers.ts rename to tasks/tests/testHelpers.ts index 3b3ef37dd6..ee5158fcfc 100644 --- a/tasks/testHelpers.ts +++ b/tasks/tests/testHelpers.ts @@ -5,8 +5,10 @@ import fs from 'fs'; import * as path from 'path'; -import { rootPath, outPath } from './projectPaths'; -import { prepareVSCodeAndExecuteTests } from '../test/vscodeLauncher'; +import * as jest from 'jest'; +import { Config } from '@jest/types'; +import { rootPath, outPath } from '../projectPaths'; +import { prepareVSCodeAndExecuteTests } from '../../test/vscodeLauncher'; export const basicSlnTestProject = 'slnWithCsproj'; export const integrationTestProjects = [basicSlnTestProject]; @@ -137,3 +139,22 @@ export async function runJestIntegrationTest( export function getJUnitFileName(logName: string) { return `${logName.replaceAll(' ', '_')}_junit.xml`; } + +export async function runJestTest(project: string) { + process.env.JEST_JUNIT_OUTPUT_NAME = getJUnitFileName(project); + process.env.JEST_SUITE_NAME = project; + const configPath = path.join(rootPath, 'jest.config.ts'); + + const { results } = await jest.runCLI( + { + config: configPath, + selectProjects: [project], + verbose: true, + } as Config.Argv, + [project] + ); + + if (!results.success) { + throw new Error('Tests failed.'); + } +} diff --git a/tasks/tests/testIntegrationCsharp.ts b/tasks/tests/testIntegrationCsharp.ts new file mode 100644 index 0000000000..249988b14e --- /dev/null +++ b/tasks/tests/testIntegrationCsharp.ts @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import { testIntegrationCSharp } from './testTasks'; +import { runTask } from '../runTask'; + +runTask(testIntegrationCSharp); diff --git a/tasks/tests/testIntegrationDevkit.ts b/tasks/tests/testIntegrationDevkit.ts new file mode 100644 index 0000000000..c47c15560f --- /dev/null +++ b/tasks/tests/testIntegrationDevkit.ts @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import { testIntegrationDevkit } from './testTasks'; +import { runTask } from '../runTask'; + +runTask(testIntegrationDevkit); diff --git a/tasks/tests/testIntegrationRazorCohost.ts b/tasks/tests/testIntegrationRazorCohost.ts new file mode 100644 index 0000000000..fa3585734b --- /dev/null +++ b/tasks/tests/testIntegrationRazorCohost.ts @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import { testIntegrationRazorCohost } from './testTasks'; +import { runTask } from '../runTask'; + +runTask(testIntegrationRazorCohost); diff --git a/tasks/tests/testIntegrationUntrusted.ts b/tasks/tests/testIntegrationUntrusted.ts new file mode 100644 index 0000000000..d17e7baaa4 --- /dev/null +++ b/tasks/tests/testIntegrationUntrusted.ts @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import { testIntegrationUntrusted } from './testTasks'; +import { runTask } from '../runTask'; + +runTask(testIntegrationUntrusted); diff --git a/tasks/tests/testTasks.ts b/tasks/tests/testTasks.ts new file mode 100644 index 0000000000..6e0334953d --- /dev/null +++ b/tasks/tests/testTasks.ts @@ -0,0 +1,53 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import path from 'path'; +import { integrationTestProjects, runDevKitIntegrationTests, runIntegrationTest, runJestTest } from './testHelpers'; +import { jestArtifactTestsProjectName } from '../../test/lsptoolshost/artifactTests/jest.config'; +import { jestUnitTestProjectName } from '../../test/lsptoolshost/unitTests/jest.config'; +import { razorTestProjectName } from '../../test/razor/razorTests/jest.config'; +import { jestTasksTestProjectName } from '../../test/tasks/jest.config'; + +const razorIntegrationTestProjects = ['RazorApp']; + +export async function testArtifacts(): Promise { + await runJestTest(jestArtifactTestsProjectName); +} + +export async function testIntegrationCSharp(): Promise { + for (const projectName of integrationTestProjects) { + await runIntegrationTest(projectName, path.join('lsptoolshost', 'integrationTests'), `[C#][${projectName}]`); + } +} + +export async function testIntegrationDevkit(): Promise { + for (const projectName of integrationTestProjects) { + await runDevKitIntegrationTests( + projectName, + path.join('lsptoolshost', 'integrationTests'), + `[DevKit][${projectName}]` + ); + } +} + +export async function testIntegrationRazorCohost(): Promise { + for (const projectName of razorIntegrationTestProjects) { + await runIntegrationTest( + projectName, + path.join('razor', 'razorIntegrationTests'), + `Razor Test Integration ${projectName}` + ); + } +} + +export async function testIntegrationUntrusted(): Promise { + await runIntegrationTest('empty', path.join('untrustedWorkspace', 'integrationTests'), `[C#][empty]`); +} + +export async function testUnit(): Promise { + await runJestTest(jestUnitTestProjectName); + await runJestTest(razorTestProjectName); + await runJestTest(jestTasksTestProjectName); +} diff --git a/tasks/tests/testUnit.ts b/tasks/tests/testUnit.ts new file mode 100644 index 0000000000..a1a25d13e2 --- /dev/null +++ b/tasks/tests/testUnit.ts @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import { testUnit } from './testTasks'; +import { runTask } from '../runTask'; + +runTask(testUnit); diff --git a/test/lsptoolshost/unitTests/packageNlsJson.test.ts b/test/lsptoolshost/unitTests/packageNlsJson.test.ts index dc3725ea64..de11758c27 100644 --- a/test/lsptoolshost/unitTests/packageNlsJson.test.ts +++ b/test/lsptoolshost/unitTests/packageNlsJson.test.ts @@ -22,7 +22,7 @@ describe('package.nls.json validation tests', () => { try { expect(packageNLSJson[key]).toContain('\u200b'); } catch (_) { - throw "Missing \\u200b in example urls, please run 'gulp fixLocURLs' and check in those changes."; + throw "Missing \\u200b in example urls, please run 'node run fixLocUrls' and check in those changes."; } } }); diff --git a/test/tasks/versionHelper.test.ts b/test/tasks/versionHelper.test.ts index 3c39ab893a..2ba42ef180 100644 --- a/test/tasks/versionHelper.test.ts +++ b/test/tasks/versionHelper.test.ts @@ -3,7 +3,7 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { getNextReleaseVersion } from '../../tasks/snapTasks'; +import { getNextReleaseVersion } from '../../tasks/snap/snapTasks'; import { describe, test, expect } from '@jest/globals'; describe('getNextReleaseVersion', () => { diff --git a/tsconfig.json b/tsconfig.json index 7f3eaaf4bc..9aaab4ae38 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -36,7 +36,6 @@ "noFallthroughCasesInSwitch": true }, "include": [ - "gulpfile.ts", // tslint gets quite angry if we don't do this "src", "tasks", "test",