From da7ee7b0eed2cbb7db0fe225990a6c36505e7b61 Mon Sep 17 00:00:00 2001 From: Paula Date: Tue, 9 Jul 2024 13:57:53 -0700 Subject: [PATCH 01/20] Bump dev version 2024.9 (#382) --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index d8741d2a..47bca3e9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "debugpy", - "version": "2024.8.0", + "version": "2024.9.0-dev", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "debugpy", - "version": "2024.8.0", + "version": "2024.9.0-dev", "license": "MIT", "dependencies": { "@vscode/extension-telemetry": "^0.8.5", diff --git a/package.json b/package.json index 3d1149d0..b0309026 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "debugpy", "displayName": "Python Debugger", "description": "Python Debugger extension using debugpy.", - "version": "2024.8.0", + "version": "2024.9.0-dev", "publisher": "ms-python", "enabledApiProposals": [ "portsAttributes", From 131b5800a9d683e60908ac7b3e7cc7ef15725c0d Mon Sep 17 00:00:00 2001 From: Paula Date: Mon, 15 Jul 2024 13:00:52 -0700 Subject: [PATCH 02/20] Use [] instead of simple string (#385) --- .../debugger/configuration/providers/fileLaunchWithArgs.ts | 2 +- .../configuration/providers/fileLaunchWithArgs.unit.test.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/extension/debugger/configuration/providers/fileLaunchWithArgs.ts b/src/extension/debugger/configuration/providers/fileLaunchWithArgs.ts index 52b83d3c..591a34e3 100644 --- a/src/extension/debugger/configuration/providers/fileLaunchWithArgs.ts +++ b/src/extension/debugger/configuration/providers/fileLaunchWithArgs.ts @@ -21,7 +21,7 @@ export async function buildFileWithArgsLaunchDebugConfiguration( request: 'launch', program: '${file}', console: 'integratedTerminal', - args: '${command:pickArgs}', + args: ['${command:pickArgs}'], }; sendTelemetryEvent(EventName.DEBUGGER_CONFIGURATION_PROMPTS, undefined, { configurationType: DebugConfigurationType.launchFileWithArgs, diff --git a/src/test/unittest/configuration/providers/fileLaunchWithArgs.unit.test.ts b/src/test/unittest/configuration/providers/fileLaunchWithArgs.unit.test.ts index 30e0b590..c829a490 100644 --- a/src/test/unittest/configuration/providers/fileLaunchWithArgs.unit.test.ts +++ b/src/test/unittest/configuration/providers/fileLaunchWithArgs.unit.test.ts @@ -28,7 +28,7 @@ suite('Debugging - Configuration Provider File with Arguments', () => { request: 'launch', program: '${file}', console: 'integratedTerminal', - args: '${command:pickArgs}', + args: ['${command:pickArgs}'], }; expect(state.config).to.be.deep.equal(config); From 161cd6b6284e526069fc42469708171210333387 Mon Sep 17 00:00:00 2001 From: Paula Date: Wed, 17 Jul 2024 20:58:49 -0700 Subject: [PATCH 03/20] Improve python debug welcome view (#389) * Add contribViewsWelcome api * Add when * Add context for dynamicConfigs * Update welcome view to run command to show dynamic configs for python * fix lint --- package.json | 10 +++++++++- src/extension/extensionInit.ts | 6 ++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index b0309026..147b63a8 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,8 @@ "enabledApiProposals": [ "portsAttributes", "contribIssueReporter", - "debugVisualization" + "debugVisualization", + "contribViewsWelcome" ], "license": "MIT", "homepage": "https://github.com/Microsoft/vscode-python-debugger", @@ -521,6 +522,13 @@ "id": "inlineHexDecoder", "when": "debugConfigurationType == 'debugpy' && (variableType == 'float' || variableType == 'int')" } + ], + "viewsWelcome": [ + { + "view": "debug", + "contents": "\n[Show automatic Python configurations](command:workbench.action.debug.selectandstart?%5B%22debugpy%22%5D)\n", + "when": "dynamicPythonConfigAvailable" + } ] }, "extensionDependencies": [ diff --git a/src/extension/extensionInit.ts b/src/extension/extensionInit.ts index deb662b4..760644cb 100644 --- a/src/extension/extensionInit.ts +++ b/src/extension/extensionInit.ts @@ -206,5 +206,11 @@ export async function registerDebugger(context: IExtensionContext): Promise Date: Thu, 18 Jul 2024 16:51:21 -0700 Subject: [PATCH 04/20] Read launch config from devcontainers (#388) * Use workspace when getting the launch.json * fix local vsix creation --- package-lock.json | 144 ++++++++---------- .../launch.json/launchJsonReader.ts | 2 +- webpack.config.js | 1 + 3 files changed, 65 insertions(+), 82 deletions(-) diff --git a/package-lock.json b/package-lock.json index 47bca3e9..ee7de11f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -279,14 +279,14 @@ "dev": true }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "dev": true, "dependencies": { - "@jridgewell/set-array": "^1.0.1", + "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" @@ -302,9 +302,9 @@ } }, "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true, "engines": { "node": ">=6.0.0" @@ -321,19 +321,19 @@ } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", - "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, "node_modules/@microsoft/1ds-core-js": { @@ -2814,9 +2814,9 @@ "dev": true }, "node_modules/fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -3234,17 +3234,6 @@ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -3294,7 +3283,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, "dependencies": { "function-bind": "^1.1.2" }, @@ -3520,11 +3508,14 @@ } }, "node_modules/is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.14.0.tgz", + "integrity": "sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==", "dependencies": { - "has": "^1.0.3" + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -4554,9 +4545,9 @@ "dev": true }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", "dev": true }, "node_modules/picomatch": { @@ -4862,11 +4853,11 @@ } }, "node_modules/resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dependencies": { - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -6370,14 +6361,14 @@ "dev": true }, "@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "dev": true, "requires": { - "@jridgewell/set-array": "^1.0.1", + "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/trace-mapping": "^0.3.24" } }, "@jridgewell/resolve-uri": { @@ -6387,9 +6378,9 @@ "dev": true }, "@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true }, "@jridgewell/source-map": { @@ -6403,19 +6394,19 @@ } }, "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", "dev": true }, "@jridgewell/trace-mapping": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", - "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, "requires": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, "@microsoft/1ds-core-js": { @@ -8285,9 +8276,9 @@ "dev": true }, "fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", @@ -8614,14 +8605,6 @@ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -8653,7 +8636,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, "requires": { "function-bind": "^1.1.2" } @@ -8813,11 +8795,11 @@ } }, "is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.14.0.tgz", + "integrity": "sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==", "requires": { - "has": "^1.0.3" + "hasown": "^2.0.2" } }, "is-extglob": { @@ -9623,9 +9605,9 @@ "dev": true }, "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", "dev": true }, "picomatch": { @@ -9848,11 +9830,11 @@ } }, "resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "requires": { - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } diff --git a/src/extension/debugger/configuration/launch.json/launchJsonReader.ts b/src/extension/debugger/configuration/launch.json/launchJsonReader.ts index 386cbc7a..ebef8c0a 100644 --- a/src/extension/debugger/configuration/launch.json/launchJsonReader.ts +++ b/src/extension/debugger/configuration/launch.json/launchJsonReader.ts @@ -11,7 +11,7 @@ export async function getConfigurationsForWorkspace(workspace: WorkspaceFolder): const filename = path.join(workspace.uri.fsPath, '.vscode', 'launch.json'); if (!(await fs.pathExists(filename))) { // Check launch config in the workspace file - const codeWorkspaceConfig = getConfiguration('launch'); + const codeWorkspaceConfig = getConfiguration('launch', workspace); if (!codeWorkspaceConfig.configurations || !Array.isArray(codeWorkspaceConfig.configurations)) { return []; } diff --git a/webpack.config.js b/webpack.config.js index 5f815e0f..cac8f20b 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -38,6 +38,7 @@ const extensionConfig = { '@opentelemetry/instrumentation': 'commonjs @opentelemetry/instrumentation', // ignored because we don't ship instrumentation '@azure/opentelemetry-instrumentation-azure-sdk': 'commonjs @azure/opentelemetry-instrumentation-azure-sdk', // ignored because we don't ship instrumentation '@azure/functions-core': '@azure/functions-core', // ignored because we don't ship instrumentation + '@microsoft/dynamicproto-js': '@microsoft/dynamicproto-js', // ignored because we don't ship instrumentation }, resolve: { // support reading TypeScript and JavaScript files, 📖 -> https://github.com/TypeStrong/ts-loader From 695d259ed3540595275072a389a03f06b45a5959 Mon Sep 17 00:00:00 2001 From: Paula Date: Thu, 18 Jul 2024 17:54:03 -0700 Subject: [PATCH 05/20] Show inline values (#384) * Add inline provider * add inlineProvider * Add inlie provider * Add tests * fix import * fix lint * Update inline function to remove strins values * Add unit test for class type * fix merge --- src/extension/common/vscodeapi.ts | 4 + .../inlineValue/pythonInlineValueProvider.ts | 127 +++++++++ src/extension/extensionInit.ts | 6 + src/test/pythonFiles/testClassVarType.py | 10 + src/test/pythonFiles/testVarTypes.py | 6 + .../pythonInlineValueProvider.unit.test.ts | 268 ++++++++++++++++++ 6 files changed, 421 insertions(+) create mode 100644 src/extension/debugger/inlineValue/pythonInlineValueProvider.ts create mode 100644 src/test/pythonFiles/testClassVarType.py create mode 100644 src/test/pythonFiles/testVarTypes.py create mode 100644 src/test/unittest/inlineValue/pythonInlineValueProvider.unit.test.ts diff --git a/src/extension/common/vscodeapi.ts b/src/extension/common/vscodeapi.ts index 3425be77..7ba92c93 100644 --- a/src/extension/common/vscodeapi.ts +++ b/src/extension/common/vscodeapi.ts @@ -128,3 +128,7 @@ export function startDebugging( ) { debug.startDebugging(folder, nameOrConfiguration, parentSession); } + +export function customRequest(command: string, args?: any): any { + return debug.activeDebugSession?.customRequest(command, args); +} diff --git a/src/extension/debugger/inlineValue/pythonInlineValueProvider.ts b/src/extension/debugger/inlineValue/pythonInlineValueProvider.ts new file mode 100644 index 00000000..f71a37d6 --- /dev/null +++ b/src/extension/debugger/inlineValue/pythonInlineValueProvider.ts @@ -0,0 +1,127 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +import { + InlineValue, + InlineValueContext, + InlineValuesProvider, + Range, + TextDocument, + InlineValueVariableLookup, + InlineValueEvaluatableExpression, +} from 'vscode'; +import { customRequest } from '../../common/vscodeapi'; + +export class PythonInlineValueProvider implements InlineValuesProvider { + public async provideInlineValues( + document: TextDocument, + viewPort: Range, + context: InlineValueContext, + ): Promise { + let scopesRequest = await customRequest('scopes', { frameId: context.frameId }); + let variablesRequest = await customRequest('variables', { + variablesReference: scopesRequest.scopes[0].variablesReference, + }); + + //https://docs.python.org/3/reference/lexical_analysis.html#keywords + const pythonKeywords = [ + 'False', + 'await', + 'else', + 'import ', + 'pass', + 'None', + 'break', + 'except', + 'in', + 'raise', + 'True', + 'class', + 'finally', + 'is', + 'return', + 'and', + 'continue', + 'for', + 'lambda', + 'try', + 'as', + 'def', + 'from', + 'nonlocal', + 'while', + 'assert', + 'del', + 'global', + 'not', + 'with', + 'async', + 'elif', + 'if', + 'or', + 'yield', + 'self', + ]; + + const pythonVariables: any[] = variablesRequest.variables + .filter((variable: any) => variable.type) + .map((variable: any) => variable.name); + + let variableRegex = new RegExp( + '(?:self.)?' + //match self. if present + '[a-zA-Z_][a-zA-Z0-9_]*', //math variable name + 'g', + ); + + const allValues: InlineValue[] = []; + for (let l = viewPort.start.line; l <= viewPort.end.line; l++) { + const line = document.lineAt(l); + // Skip comments + if (line.text.trimStart().startsWith('#')) { + continue; + } + + let code = removeCharsOutsideBraces(line.text); + + for (let match = variableRegex.exec(code); match; match = variableRegex.exec(code)) { + let varName = match[0]; + // Skip python keywords + if (pythonKeywords.includes(varName)) { + continue; + } + if (pythonVariables.includes(varName.split('.')[0])) { + if (varName.includes('self')) { + const rng = new Range(l, match.index, l, match.index + varName.length); + allValues.push(new InlineValueEvaluatableExpression(rng, varName)); + } else { + const rng = new Range(l, match.index, l, match.index + varName.length); + allValues.push(new InlineValueVariableLookup(rng, varName, false)); + } + } + } + } + return allValues; + } +} + +function removeCharsOutsideBraces(code: string): string { + // Regular expression to find Python strings + const stringRegex = /(["'])(?:(?=(\\?))\2.)*?\1/g; + + //Regular expression to match values inside {} + const insideBracesRegex = /{[^{}]*}/g; + + return code.replace(stringRegex, (match) => { + const content = match.slice(1, -1); + + let result = ''; + let tempMatch; + + while ((tempMatch = insideBracesRegex.exec(content)) !== null) { + result += tempMatch[0]; + } + const processedContent = result || content; + + return match[0] + processedContent + match[0]; + }); +} diff --git a/src/extension/extensionInit.ts b/src/extension/extensionInit.ts index 760644cb..6f5a75b4 100644 --- a/src/extension/extensionInit.ts +++ b/src/extension/extensionInit.ts @@ -49,6 +49,7 @@ import { openReportIssue } from './common/application/commands/reportIssueComman import { buildApi } from './api'; import { IExtensionApi } from './apiTypes'; import { registerHexDebugVisualizationTreeProvider } from './debugger/visualizers/inlineHexDecoder'; +import { PythonInlineValueProvider } from './debugger/inlineValue/pythonInlineValueProvider'; export async function registerDebugger(context: IExtensionContext): Promise { const childProcessAttachService = new ChildProcessAttachService(); @@ -136,6 +137,7 @@ export async function registerDebugger(context: IExtensionContext): Promise { const shouldTerminalFocusOnStart = getConfiguration('python', debugSession.workspaceFolder?.uri)?.terminal @@ -195,6 +197,10 @@ export async function registerDebugger(context: IExtensionContext): Promise('inlineHexDecoder', registerHexDebugVisualizationTreeProvider()), ); + context.subscriptions.push( + languages.registerInlineValuesProvider({ language: 'python' }, new PythonInlineValueProvider()), + ); + context.subscriptions.push( debug.registerDebugVisualizationProvider('inlineHexDecoder', { provideDebugVisualization(_context, _token) { diff --git a/src/test/pythonFiles/testClassVarType.py b/src/test/pythonFiles/testClassVarType.py new file mode 100644 index 00000000..5b91c3b6 --- /dev/null +++ b/src/test/pythonFiles/testClassVarType.py @@ -0,0 +1,10 @@ +class Person: + def __init__(self, name, age): + self.name = name + self.age = age + + def greet(self): + return f"Hello, my name is {self.name} and I a {self.age} years old." + +person1 = Person("John Doe", 30) +person1.greet() diff --git a/src/test/pythonFiles/testVarTypes.py b/src/test/pythonFiles/testVarTypes.py new file mode 100644 index 00000000..2e660e7b --- /dev/null +++ b/src/test/pythonFiles/testVarTypes.py @@ -0,0 +1,6 @@ +var1 = 5 +var2 = 7 +var3 = "hola" +var4 = {"a": 1, "b": 2} +var5 = [1, 2, 3] +var6 =var1 + var2 diff --git a/src/test/unittest/inlineValue/pythonInlineValueProvider.unit.test.ts b/src/test/unittest/inlineValue/pythonInlineValueProvider.unit.test.ts new file mode 100644 index 00000000..accdf38d --- /dev/null +++ b/src/test/unittest/inlineValue/pythonInlineValueProvider.unit.test.ts @@ -0,0 +1,268 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +'use strict'; + +import * as chaiAsPromised from 'chai-as-promised'; +import * as path from 'path'; +import * as sinon from 'sinon'; +import { use, expect } from 'chai'; +import { EXTENSION_ROOT_DIR_FOR_TESTS } from '../../constants'; +import { PythonInlineValueProvider } from '../../../extension/debugger/inlineValue/pythonInlineValueProvider'; +import { workspace, Range, InlineValueContext } from 'vscode'; +import * as vscodeapi from '../../../extension/common/vscodeapi'; + +use(chaiAsPromised); + +const WS_ROOT = path.join(EXTENSION_ROOT_DIR_FOR_TESTS, 'src', 'test'); + +suite('Debugging - pythonInlineProvider', () => { + let customRequestStub: sinon.SinonStub; + + setup(() => { + customRequestStub = sinon.stub(vscodeapi, 'customRequest'); + customRequestStub.withArgs('scopes', sinon.match.any).resolves({ scopes: [{ variablesReference: 0 }] }); + }); + + teardown(async () => { + sinon.restore(); + }); + + test('ProvideInlineValues function should return all the vars in the python file', async () => { + customRequestStub.withArgs('variables', sinon.match.any).resolves({ + variables: [ + { + name: 'special variables', + value: '', + type: '', + evaluateName: 'special variables', + variablesReference: 10, + }, + { + name: 'var1', + value: '5', + type: 'int', + evaluateName: 'var1', + variablesReference: 0, + }, + { + name: 'var2', + value: '7', + type: 'int', + evaluateName: 'var2', + variablesReference: 0, + }, + { + name: 'var3', + value: "'hola'", + type: 'str', + evaluateName: 'var3', + variablesReference: 0, + presentationHint: { + attributes: ['rawString'], + }, + }, + { + name: 'var4', + value: "{'a': 1, 'b': 2}", + type: 'dict', + evaluateName: 'var4', + variablesReference: 8, + }, + { + name: 'var5', + value: '[1, 2, 3]', + type: 'list', + evaluateName: 'var5', + variablesReference: 9, + }, + ], + }); + const file = path.join(WS_ROOT, 'pythonFiles', 'testVarTypes.py'); + let document = await workspace.openTextDocument(file); + const inlineValueProvider = new PythonInlineValueProvider(); + + const viewPort = new Range(0, 0, 5, 17); + const context = { frameId: 0, stoppedLocation: new Range(5, 1, 5, 1) } as InlineValueContext; + + const result = await inlineValueProvider.provideInlineValues(document, viewPort, context); + const expected = [ + { + range: { + c: { + c: 0, + e: 0, + }, + e: { + c: 0, + e: 4, + }, + }, + variableName: 'var1', + caseSensitiveLookup: false, + }, + { + range: { + c: { + c: 1, + e: 0, + }, + e: { + c: 1, + e: 4, + }, + }, + variableName: 'var2', + caseSensitiveLookup: false, + }, + { + range: { + c: { + c: 2, + e: 0, + }, + e: { + c: 2, + e: 4, + }, + }, + variableName: 'var3', + caseSensitiveLookup: false, + }, + { + range: { + c: { + c: 3, + e: 0, + }, + e: { + c: 3, + e: 4, + }, + }, + variableName: 'var4', + caseSensitiveLookup: false, + }, + { + range: { + c: { + c: 4, + e: 0, + }, + e: { + c: 4, + e: 4, + }, + }, + variableName: 'var5', + caseSensitiveLookup: false, + }, + { + range: { + c: { + c: 5, + e: 6, + }, + e: { + c: 5, + e: 10, + }, + }, + variableName: 'var1', + caseSensitiveLookup: false, + }, + { + range: { + c: { + c: 5, + e: 13, + }, + e: { + c: 5, + e: 17, + }, + }, + variableName: 'var2', + caseSensitiveLookup: false, + }, + ]; + expect(result).to.deep.equal(expected); + }); + + test('ProvideInlineValues function should return all the vars in the python file with class variables', async () => { + customRequestStub.withArgs('variables', sinon.match.any).resolves({ + variables: [ + { + name: 'self', + value: '<__main__.Person object at 0x10b223310>', + type: 'Person', + evaluateName: 'self', + variablesReference: 5, + }, + ], + }); + const file = path.join(WS_ROOT, 'pythonFiles', 'testClassVarType.py'); + let document = await workspace.openTextDocument(file); + const inlineValueProvider = new PythonInlineValueProvider(); + + const viewPort = new Range(0, 0, 10, 0); + const context = { frameId: 0, stoppedLocation: new Range(6, 1, 6, 1) } as InlineValueContext; + + const result = await inlineValueProvider.provideInlineValues(document, viewPort, context); + const expected = [ + { + range: { + c: { + c: 2, + e: 8, + }, + e: { + c: 2, + e: 17, + }, + }, + expression: 'self.name', + }, + { + range: { + c: { + c: 3, + e: 8, + }, + e: { + c: 3, + e: 16, + }, + }, + expression: 'self.age', + }, + { + range: { + c: { + c: 6, + e: 18, + }, + e: { + c: 6, + e: 27, + }, + }, + expression: 'self.name', + }, + { + range: { + c: { + c: 6, + e: 29, + }, + e: { + c: 6, + e: 37, + }, + }, + expression: 'self.age', + }, + ]; + expect(result).to.deep.equal(expected); + }); +}); From 47a5cd84021d32c45c2beab0eed1eb692fabe48f Mon Sep 17 00:00:00 2001 From: Paula Date: Fri, 19 Jul 2024 17:02:53 -0700 Subject: [PATCH 06/20] Add missing telemetry and extra logging (#391) * Add missing telemetry and extra logging * fix lint * Add more log and telemetry * Add more logging * fix lint * add telemery for inline --- .../application/debugSessionTelemetry.ts | 10 +++++-- src/extension/debugger/adapter/factory.ts | 1 + .../dynamicdebugConfigurationService.ts | 4 +++ .../launch.json/launchJsonReader.ts | 5 +++- .../configuration/resolvers/attach.ts | 2 ++ .../debugger/configuration/resolvers/base.ts | 4 +++ .../configuration/resolvers/launch.ts | 2 ++ .../hooks/childProcessAttachService.ts | 2 ++ .../debugger/hooks/debugpySocketsHandler.ts | 2 ++ .../inlineValue/pythonInlineValueProvider.ts | 3 ++ src/extension/extensionInit.ts | 3 ++ src/extension/telemetry/constants.ts | 4 +++ src/extension/telemetry/index.ts | 30 +++++++++++++++++++ 13 files changed, 68 insertions(+), 4 deletions(-) diff --git a/src/extension/common/application/debugSessionTelemetry.ts b/src/extension/common/application/debugSessionTelemetry.ts index f7baa461..756d0be4 100644 --- a/src/extension/common/application/debugSessionTelemetry.ts +++ b/src/extension/common/application/debugSessionTelemetry.ts @@ -41,17 +41,21 @@ class TelemetryTracker implements DebugAdapterTracker { this.sendTelemetry(EventName.DEBUG_SESSION_STOP); } - public onError?(_error: Error): void { - this.sendTelemetry(EventName.DEBUG_SESSION_ERROR); + public onError?(error: Error): void { + this.sendTelemetry(EventName.DEBUG_SESSION_ERROR, error); } - private sendTelemetry(eventName: EventName): void { + private sendTelemetry

( + eventName: EventName, + properties?: P[E], + ): void { if (eventName === EventName.DEBUG_SESSION_START) { this.timer.reset(); } const telemetryProps = { trigger: this.trigger, console: this.console, + ...properties, }; sendTelemetryEvent(eventName as keyof IEventNamePropertyMapping, this.timer.elapsedTime, telemetryProps); } diff --git a/src/extension/debugger/adapter/factory.ts b/src/extension/debugger/adapter/factory.ts index 7910137f..16bb50e0 100644 --- a/src/extension/debugger/adapter/factory.ts +++ b/src/extension/debugger/adapter/factory.ts @@ -149,6 +149,7 @@ export class DebugAdapterDescriptorFactory implements IDebugAdapterDescriptorFac } private async showDeprecatedPythonMessage() { + sendTelemetryEvent(EventName.DEBUGGER_PYTHON_37_DEPRECATED); const notificationPromptEnabled = this.persistentState.createGlobalPersistentState( debugStateKeys.doNotShowAgain, false, diff --git a/src/extension/debugger/configuration/dynamicdebugConfigurationService.ts b/src/extension/debugger/configuration/dynamicdebugConfigurationService.ts index 44f8f2d9..00f590d3 100644 --- a/src/extension/debugger/configuration/dynamicdebugConfigurationService.ts +++ b/src/extension/debugger/configuration/dynamicdebugConfigurationService.ts @@ -10,6 +10,8 @@ import { IDynamicDebugConfigurationService } from '../types'; import { DebuggerTypeName } from '../../constants'; import { replaceAll } from '../../common/stringUtils'; import { getDjangoPaths, getFastApiPaths, getFlaskPaths } from './utils/configuration'; +import { sendTelemetryEvent } from '../../telemetry'; +import { EventName } from '../../telemetry/constants'; const workspaceFolderToken = '${workspaceFolder}'; @@ -74,6 +76,8 @@ export class DynamicPythonDebugConfigurationService implements IDynamicDebugConf }); } + sendTelemetryEvent(EventName.DEBUGGER_DYNAMIC_CONFIGURATION, undefined, { providers: providers }); + return providers; } } diff --git a/src/extension/debugger/configuration/launch.json/launchJsonReader.ts b/src/extension/debugger/configuration/launch.json/launchJsonReader.ts index ebef8c0a..e2cad8b2 100644 --- a/src/extension/debugger/configuration/launch.json/launchJsonReader.ts +++ b/src/extension/debugger/configuration/launch.json/launchJsonReader.ts @@ -6,8 +6,10 @@ import * as fs from 'fs-extra'; import { parse } from 'jsonc-parser'; import { DebugConfiguration, Uri, WorkspaceFolder } from 'vscode'; import { getConfiguration, getWorkspaceFolder } from '../../../common/vscodeapi'; +import { traceLog } from '../../../common/log/logging'; export async function getConfigurationsForWorkspace(workspace: WorkspaceFolder): Promise { + traceLog('Getting configurations for workspace'); const filename = path.join(workspace.uri.fsPath, '.vscode', 'launch.json'); if (!(await fs.pathExists(filename))) { // Check launch config in the workspace file @@ -15,6 +17,7 @@ export async function getConfigurationsForWorkspace(workspace: WorkspaceFolder): if (!codeWorkspaceConfig.configurations || !Array.isArray(codeWorkspaceConfig.configurations)) { return []; } + traceLog('Using configuration in workspace'); return codeWorkspaceConfig.configurations; } @@ -26,7 +29,7 @@ export async function getConfigurationsForWorkspace(workspace: WorkspaceFolder): if (!parsed.version) { throw Error('Missing field in launch.json: version'); } - // We do not bother ensuring each item is a DebugConfiguration... + traceLog('Using configuration in launch.json'); return parsed.configurations; } diff --git a/src/extension/debugger/configuration/resolvers/attach.ts b/src/extension/debugger/configuration/resolvers/attach.ts index 12fffe8f..b2446183 100644 --- a/src/extension/debugger/configuration/resolvers/attach.ts +++ b/src/extension/debugger/configuration/resolvers/attach.ts @@ -8,6 +8,7 @@ import { getOSType, OSType } from '../../../common/platform'; import { AttachRequestArguments, DebugOptions, PathMapping } from '../../../types'; import { BaseConfigurationResolver } from './base'; import { getConfiguration } from '../../../common/vscodeapi'; +import { traceLog } from '../../../common/log/logging'; export class AttachConfigurationResolver extends BaseConfigurationResolver { public async resolveDebugConfigurationWithSubstitutedVariables( @@ -15,6 +16,7 @@ export class AttachConfigurationResolver extends BaseConfigurationResolver { + traceLog('Resolving attach configuration with substituted variables'); const workspaceFolder = AttachConfigurationResolver.getWorkspaceFolder(folder); await this.provideAttachDefaults(workspaceFolder, debugConfiguration as AttachRequestArguments); diff --git a/src/extension/debugger/configuration/resolvers/base.ts b/src/extension/debugger/configuration/resolvers/base.ts index 160c6fc5..bda2a7a3 100644 --- a/src/extension/debugger/configuration/resolvers/base.ts +++ b/src/extension/debugger/configuration/resolvers/base.ts @@ -16,6 +16,7 @@ import { resolveVariables } from '../utils/common'; import { getProgram } from './helper'; import { getSettingsPythonPath, getInterpreterDetails } from '../../../common/python'; import { getOSType, OSType } from '../../../common/platform'; +import { traceLog } from '../../../common/log/logging'; export abstract class BaseConfigurationResolver implements IDebugConfigurationResolver @@ -62,14 +63,17 @@ export abstract class BaseConfigurationResolver const workspaceFolders = getWorkspaceFolders(); if (!Array.isArray(workspaceFolders) || workspaceFolders.length === 0) { + traceLog('No workspace folder found'); return program ? Uri.file(path.dirname(program)) : undefined; } if (workspaceFolders.length === 1) { + traceLog('Using the only workspaceFolder found: ', workspaceFolders[0].uri.fsPath); return workspaceFolders[0].uri; } if (program) { const workspaceFolder = getVSCodeWorkspaceFolder(Uri.file(program)); if (workspaceFolder) { + traceLog('Using workspaceFolder found for the program: ', workspaceFolder.uri.fsPath); return workspaceFolder.uri; } } diff --git a/src/extension/debugger/configuration/resolvers/launch.ts b/src/extension/debugger/configuration/resolvers/launch.ts index 423d5d9d..257c72fd 100644 --- a/src/extension/debugger/configuration/resolvers/launch.ts +++ b/src/extension/debugger/configuration/resolvers/launch.ts @@ -12,6 +12,7 @@ import { resolveVariables } from '../utils/common'; import { BaseConfigurationResolver } from './base'; import { getDebugEnvironmentVariables, getProgram } from './helper'; import { getConfiguration } from '../../../common/vscodeapi'; +import { traceLog } from '../../../common/log/logging'; export class LaunchConfigurationResolver extends BaseConfigurationResolver { public async resolveDebugConfiguration( @@ -51,6 +52,7 @@ export class LaunchConfigurationResolver extends BaseConfigurationResolver { + traceLog('Resolving launch configuration with substituted variables'); const workspaceFolder = LaunchConfigurationResolver.getWorkspaceFolder(folder); await this.provideLaunchDefaults(workspaceFolder, debugConfiguration); diff --git a/src/extension/debugger/hooks/childProcessAttachService.ts b/src/extension/debugger/hooks/childProcessAttachService.ts index 9b175b7e..901ad577 100644 --- a/src/extension/debugger/hooks/childProcessAttachService.ts +++ b/src/extension/debugger/hooks/childProcessAttachService.ts @@ -10,6 +10,7 @@ import { AttachRequestArguments } from '../../types'; import { IChildProcessAttachService } from './types'; import { getWorkspaceFolders, showErrorMessage } from '../../common/vscodeapi'; import { noop } from '../../common/utils/misc'; +import { traceLog } from '../../common/log/logging'; /** * This class is responsible for attaching the debugger to any @@ -27,6 +28,7 @@ export class ChildProcessAttachService implements IChildProcessAttachService { lifecycleManagedByParent: true, }; const folder = this.getRelatedWorkspaceFolder(debugConfig); + traceLog('Start debugger in the attach child proccess'); const launched = await debug.startDebugging(folder, debugConfig, debugSessionOption); if (!launched) { showErrorMessage(l10n.t('Failed to launch debugger for child process {0}', debugConfig.subProcessId!)).then( diff --git a/src/extension/debugger/hooks/debugpySocketsHandler.ts b/src/extension/debugger/hooks/debugpySocketsHandler.ts index 56492e9f..3d5eaee1 100644 --- a/src/extension/debugger/hooks/debugpySocketsHandler.ts +++ b/src/extension/debugger/hooks/debugpySocketsHandler.ts @@ -10,6 +10,7 @@ import { DebuggerEvents } from './constants'; import { DebuggerTypeName } from '../../constants'; import { DebugPortAttributesProvider } from '../debugPort/portAttributesProvider'; import { IDebugSessionEventHandlers } from './types'; +import { traceLog } from '../../common/log/logging'; /** * This class is responsible for register ports using by debugpy in the portProvider. @@ -30,6 +31,7 @@ export class DebugpySocketsHandler implements IDebugSessionEventHandlers { } if (event.event === DebuggerEvents.DebugpySockets) { + traceLog("Received 'debugpySockets' event from debugpy."); let portSocket = event.body.sockets.find((socket: { [x: string]: any }) => { return socket['internal'] === false; }); diff --git a/src/extension/debugger/inlineValue/pythonInlineValueProvider.ts b/src/extension/debugger/inlineValue/pythonInlineValueProvider.ts index f71a37d6..204c9ffd 100644 --- a/src/extension/debugger/inlineValue/pythonInlineValueProvider.ts +++ b/src/extension/debugger/inlineValue/pythonInlineValueProvider.ts @@ -11,6 +11,8 @@ import { InlineValueEvaluatableExpression, } from 'vscode'; import { customRequest } from '../../common/vscodeapi'; +import { sendTelemetryEvent } from '../../telemetry'; +import { EventName } from '../../telemetry/constants'; export class PythonInlineValueProvider implements InlineValuesProvider { public async provideInlineValues( @@ -100,6 +102,7 @@ export class PythonInlineValueProvider implements InlineValuesProvider { } } } + sendTelemetryEvent(EventName.DEBUGGER_SHOW_PYTHON_INLINE_VALUES); return allValues; } } diff --git a/src/extension/extensionInit.ts b/src/extension/extensionInit.ts index 6f5a75b4..84ce22e0 100644 --- a/src/extension/extensionInit.ts +++ b/src/extension/extensionInit.ts @@ -50,6 +50,7 @@ import { buildApi } from './api'; import { IExtensionApi } from './apiTypes'; import { registerHexDebugVisualizationTreeProvider } from './debugger/visualizers/inlineHexDecoder'; import { PythonInlineValueProvider } from './debugger/inlineValue/pythonInlineValueProvider'; +import { traceLog } from './common/log/logging'; export async function registerDebugger(context: IExtensionContext): Promise { const childProcessAttachService = new ChildProcessAttachService(); @@ -83,6 +84,7 @@ export async function registerDebugger(context: IExtensionContext): Promise { + traceLog("Debugging using the editor button 'Debug in terminal'"); sendTelemetryEvent(EventName.DEBUG_IN_TERMINAL_BUTTON); const interpreter = await getInterpreterDetails(file); if (!interpreter.path) { @@ -96,6 +98,7 @@ export async function registerDebugger(context: IExtensionContext): Promise { + traceLog("Debugging using the editor button 'Debug using the launch.json'"); sendTelemetryEvent(EventName.DEBUG_USING_LAUNCH_CONFIG_BUTTON); const interpreter = await getInterpreterDetails(file); diff --git a/src/extension/telemetry/constants.ts b/src/extension/telemetry/constants.ts index 861d0217..94ff6643 100644 --- a/src/extension/telemetry/constants.ts +++ b/src/extension/telemetry/constants.ts @@ -13,11 +13,15 @@ export enum EventName { DEBUG_SESSION_START = 'DEBUG_SESSION.START', DEBUG_SESSION_STOP = 'DEBUG_SESSION.STOP', DEBUG_SESSION_USER_CODE_RUNNING = 'DEBUG_SESSION.USER_CODE_RUNNING', + DEBUG_SHOW_INLINE_HEX_VALUE = 'DEBUG.SHOW_INLINE_HEX_VALUE', DEBUGGER = 'DEBUGGER', DEBUGGER_ATTACH_TO_CHILD_PROCESS = 'DEBUGGER.ATTACH_TO_CHILD_PROCESS', DEBUGGER_ATTACH_TO_LOCAL_PROCESS = 'DEBUGGER.ATTACH_TO_LOCAL_PROCESS', DEBUGGER_CONFIGURATION_PROMPTS = 'DEBUGGER.CONFIGURATION.PROMPTS', DEBUGGER_CONFIGURATION_PROMPTS_IN_LAUNCH_JSON = 'DEBUGGER.CONFIGURATION.PROMPTS.IN.LAUNCH.JSON', + DEBUGGER_DYNAMIC_CONFIGURATION = 'DEBUGGER.DYNAMIC_CONFIGURATION', ENVFILE_VARIABLE_SUBSTITUTION = 'ENVFILE_VARIABLE_SUBSTITUTION', USE_REPORT_ISSUE_COMMAND = 'USE_REPORT_ISSUE_COMMAND', + DEBUGGER_PYTHON_37_DEPRECATED = 'DEBUGGER_PYTHON_37_DEPRECATED', + DEBUGGER_SHOW_PYTHON_INLINE_VALUES = 'DEBUGGER_SHOW_PYTHON_INLINE_VALUES', } diff --git a/src/extension/telemetry/index.ts b/src/extension/telemetry/index.ts index ed8da5c1..569230c2 100644 --- a/src/extension/telemetry/index.ts +++ b/src/extension/telemetry/index.ts @@ -11,6 +11,7 @@ import { DebugConfigurationType } from '../debugger/types'; import { EventName } from './constants'; import { isPromise } from '../common/utils/async'; import { getTelemetryReporter } from './reporter'; +import { DebugConfiguration } from 'vscode'; /** * Checks whether telemetry is supported. @@ -346,6 +347,7 @@ export interface IEventNamePropertyMapping { * @type {ConsoleType} */ console?: ConsoleType; + error?: Error; }; /** * Telemetry captured after stopping debug session. @@ -660,4 +662,32 @@ export interface IEventNamePropertyMapping { "use_report_issue_command" : { "owner": "paulacamargo25" } */ [EventName.USE_REPORT_ISSUE_COMMAND]: unknown; + /** + * Telemetry event sent when providing dynamic configuration for debugger + */ + /* __GDPR__ + "debugger_dynamic_config" : { "owner": "paulacamargo25" } + */ + [EventName.DEBUGGER_DYNAMIC_CONFIGURATION]: { + /** + * Providers of dynamic configurations + * + * @type {DebugConfiguration[]} + */ + providers: DebugConfiguration[]; + }; + /** + * Telemetry event sent when the debugger is running with a non supports python versions minor than 3.7. + */ + /* __GDPR__ + "DEBUGGER_PYTHON_37_DEPRECATED" : { "owner": "paulacamargo25" } + */ + [EventName.DEBUGGER_PYTHON_37_DEPRECATED]: never | undefined; + /** + * Telemetry event sent when displaying inline values in the debugger. + */ + /* __GDPR__ + "DEBUGGER_SHOW_PYTHON_INLINE_VALUES" : { "owner": "paulacamargo25" } + */ + [EventName.DEBUGGER_SHOW_PYTHON_INLINE_VALUES]: never | undefined; } From 7b57e15a147e99c02afb2b016856f31470d7a386 Mon Sep 17 00:00:00 2001 From: Paula Date: Mon, 22 Jul 2024 08:12:10 -0700 Subject: [PATCH 07/20] Update inline tests for all cases (#394) * Update python files for testing * update tests * fix format --- .../inlineValue/pythonInlineValueProvider.ts | 4 +- src/test/pythonFiles/testAssignmentExp.py | 6 + src/test/pythonFiles/testClassVarType.py | 2 + src/test/pythonFiles/testVarTypes.py | 5 +- .../pythonInlineValueProvider.unit.test.ts | 309 ++++++++++++++++-- 5 files changed, 285 insertions(+), 41 deletions(-) create mode 100644 src/test/pythonFiles/testAssignmentExp.py diff --git a/src/extension/debugger/inlineValue/pythonInlineValueProvider.ts b/src/extension/debugger/inlineValue/pythonInlineValueProvider.ts index 204c9ffd..21399fe9 100644 --- a/src/extension/debugger/inlineValue/pythonInlineValueProvider.ts +++ b/src/extension/debugger/inlineValue/pythonInlineValueProvider.ts @@ -70,7 +70,7 @@ export class PythonInlineValueProvider implements InlineValuesProvider { .map((variable: any) => variable.name); let variableRegex = new RegExp( - '(?:self.)?' + //match self. if present + '(?:[a-zA-Z_][a-zA-Z0-9_]*\\.)*' + //match any number of variable names separated by '.' '[a-zA-Z_][a-zA-Z0-9_]*', //math variable name 'g', ); @@ -92,7 +92,7 @@ export class PythonInlineValueProvider implements InlineValuesProvider { continue; } if (pythonVariables.includes(varName.split('.')[0])) { - if (varName.includes('self')) { + if (varName.includes('.')) { const rng = new Range(l, match.index, l, match.index + varName.length); allValues.push(new InlineValueEvaluatableExpression(rng, varName)); } else { diff --git a/src/test/pythonFiles/testAssignmentExp.py b/src/test/pythonFiles/testAssignmentExp.py new file mode 100644 index 00000000..df327a02 --- /dev/null +++ b/src/test/pythonFiles/testAssignmentExp.py @@ -0,0 +1,6 @@ +some_list = [1, 2, 3, 7] +x = 3 +if (n := len(some_list)) > x: + print(f"The length of some_list is {n}, which is greater than {x}.") +else: + print(f"The length of some_list is {n}, which is not greater than {x}.") diff --git a/src/test/pythonFiles/testClassVarType.py b/src/test/pythonFiles/testClassVarType.py index 5b91c3b6..3d3d9231 100644 --- a/src/test/pythonFiles/testClassVarType.py +++ b/src/test/pythonFiles/testClassVarType.py @@ -1,4 +1,5 @@ class Person: + id = 1 def __init__(self, name, age): self.name = name self.age = age @@ -8,3 +9,4 @@ def greet(self): person1 = Person("John Doe", 30) person1.greet() +person1.id = 3 diff --git a/src/test/pythonFiles/testVarTypes.py b/src/test/pythonFiles/testVarTypes.py index 2e660e7b..6544ebed 100644 --- a/src/test/pythonFiles/testVarTypes.py +++ b/src/test/pythonFiles/testVarTypes.py @@ -1,6 +1,5 @@ -var1 = 5 -var2 = 7 +var1, var2 = 7, 6 var3 = "hola" var4 = {"a": 1, "b": 2} var5 = [1, 2, 3] -var6 =var1 + var2 +var6 = var1 + var2 diff --git a/src/test/unittest/inlineValue/pythonInlineValueProvider.unit.test.ts b/src/test/unittest/inlineValue/pythonInlineValueProvider.unit.test.ts index accdf38d..4b3e0c11 100644 --- a/src/test/unittest/inlineValue/pythonInlineValueProvider.unit.test.ts +++ b/src/test/unittest/inlineValue/pythonInlineValueProvider.unit.test.ts @@ -36,18 +36,18 @@ suite('Debugging - pythonInlineProvider', () => { value: '', type: '', evaluateName: 'special variables', - variablesReference: 10, + variablesReference: 5, }, { name: 'var1', - value: '5', + value: '7', type: 'int', evaluateName: 'var1', variablesReference: 0, }, { name: 'var2', - value: '7', + value: '6', type: 'int', evaluateName: 'var2', variablesReference: 0, @@ -67,14 +67,14 @@ suite('Debugging - pythonInlineProvider', () => { value: "{'a': 1, 'b': 2}", type: 'dict', evaluateName: 'var4', - variablesReference: 8, + variablesReference: 6, }, { name: 'var5', value: '[1, 2, 3]', type: 'list', evaluateName: 'var5', - variablesReference: 9, + variablesReference: 7, }, ], }); @@ -82,8 +82,8 @@ suite('Debugging - pythonInlineProvider', () => { let document = await workspace.openTextDocument(file); const inlineValueProvider = new PythonInlineValueProvider(); - const viewPort = new Range(0, 0, 5, 17); - const context = { frameId: 0, stoppedLocation: new Range(5, 1, 5, 1) } as InlineValueContext; + const viewPort = new Range(0, 0, 5, 0); + const context = { frameId: 0, stoppedLocation: new Range(4, 1, 4, 1) } as InlineValueContext; const result = await inlineValueProvider.provideInlineValues(document, viewPort, context); const expected = [ @@ -104,12 +104,12 @@ suite('Debugging - pythonInlineProvider', () => { { range: { c: { - c: 1, - e: 0, + c: 0, + e: 6, }, e: { - c: 1, - e: 4, + c: 0, + e: 10, }, }, variableName: 'var2', @@ -118,11 +118,11 @@ suite('Debugging - pythonInlineProvider', () => { { range: { c: { - c: 2, + c: 1, e: 0, }, e: { - c: 2, + c: 1, e: 4, }, }, @@ -132,11 +132,11 @@ suite('Debugging - pythonInlineProvider', () => { { range: { c: { - c: 3, + c: 2, e: 0, }, e: { - c: 3, + c: 2, e: 4, }, }, @@ -146,11 +146,11 @@ suite('Debugging - pythonInlineProvider', () => { { range: { c: { - c: 4, + c: 3, e: 0, }, e: { - c: 4, + c: 3, e: 4, }, }, @@ -160,12 +160,12 @@ suite('Debugging - pythonInlineProvider', () => { { range: { c: { - c: 5, - e: 6, + c: 4, + e: 7, }, e: { - c: 5, - e: 10, + c: 4, + e: 11, }, }, variableName: 'var1', @@ -174,12 +174,12 @@ suite('Debugging - pythonInlineProvider', () => { { range: { c: { - c: 5, - e: 13, + c: 4, + e: 14, }, e: { - c: 5, - e: 17, + c: 4, + e: 18, }, }, variableName: 'var2', @@ -189,7 +189,7 @@ suite('Debugging - pythonInlineProvider', () => { expect(result).to.deep.equal(expected); }); - test('ProvideInlineValues function should return all the vars in the python file with class variables', async () => { + test('ProvideInlineValues function should return all the vars in the python file with self in class', async () => { customRequestStub.withArgs('variables', sinon.match.any).resolves({ variables: [ { @@ -205,19 +205,19 @@ suite('Debugging - pythonInlineProvider', () => { let document = await workspace.openTextDocument(file); const inlineValueProvider = new PythonInlineValueProvider(); - const viewPort = new Range(0, 0, 10, 0); - const context = { frameId: 0, stoppedLocation: new Range(6, 1, 6, 1) } as InlineValueContext; + const viewPort = new Range(0, 0, 12, 0); + const context = { frameId: 0, stoppedLocation: new Range(7, 1, 7, 1) } as InlineValueContext; const result = await inlineValueProvider.provideInlineValues(document, viewPort, context); const expected = [ { range: { c: { - c: 2, + c: 3, e: 8, }, e: { - c: 2, + c: 3, e: 17, }, }, @@ -226,11 +226,11 @@ suite('Debugging - pythonInlineProvider', () => { { range: { c: { - c: 3, + c: 4, e: 8, }, e: { - c: 3, + c: 4, e: 16, }, }, @@ -239,11 +239,11 @@ suite('Debugging - pythonInlineProvider', () => { { range: { c: { - c: 6, + c: 7, e: 18, }, e: { - c: 6, + c: 7, e: 27, }, }, @@ -252,11 +252,11 @@ suite('Debugging - pythonInlineProvider', () => { { range: { c: { - c: 6, + c: 7, e: 29, }, e: { - c: 6, + c: 7, e: 37, }, }, @@ -265,4 +265,241 @@ suite('Debugging - pythonInlineProvider', () => { ]; expect(result).to.deep.equal(expected); }); + + test('ProvideInlineValues function should return all the vars in the python file with class variables', async () => { + customRequestStub.withArgs('variables', sinon.match.any).resolves({ + variables: [ + { + name: 'person1', + value: '<__main__.Person object at 0x1085c92b0>', + type: 'Person', + evaluateName: 'person1', + variablesReference: 7, + }, + ], + }); + const file = path.join(WS_ROOT, 'pythonFiles', 'testClassVarType.py'); + let document = await workspace.openTextDocument(file); + const inlineValueProvider = new PythonInlineValueProvider(); + + const viewPort = new Range(0, 0, 12, 0); + const context = { frameId: 0, stoppedLocation: new Range(11, 1, 11, 1) } as InlineValueContext; + + const result = await inlineValueProvider.provideInlineValues(document, viewPort, context); + const expected = [ + { + range: { + c: { + c: 9, + e: 0, + }, + e: { + c: 9, + e: 7, + }, + }, + variableName: 'person1', + caseSensitiveLookup: false, + }, + { + range: { + c: { + c: 10, + e: 0, + }, + e: { + c: 10, + e: 13, + }, + }, + expression: 'person1.greet', + }, + { + range: { + c: { + c: 11, + e: 0, + }, + e: { + c: 11, + e: 10, + }, + }, + expression: 'person1.id', + }, + ]; + expect(result).to.deep.equal(expected); + }); + + test.only('ProvideInlineValues function should return all the vars in the python file using Assignment Expressions', async () => { + customRequestStub.withArgs('variables', sinon.match.any).resolves({ + variables: [ + { + name: 'special variables', + value: '', + type: '', + evaluateName: 'special variables', + variablesReference: 5, + }, + { + name: 'n', + value: '4', + type: 'int', + evaluateName: 'n', + variablesReference: 0, + }, + { + name: 'some_list', + value: '[1, 2, 3, 7]', + type: 'list', + evaluateName: 'some_list', + variablesReference: 6, + }, + { + name: 'x', + value: '3', + type: 'int', + evaluateName: 'x', + variablesReference: 0, + }, + ], + }); + const file = path.join(WS_ROOT, 'pythonFiles', 'testAssignmentExp.py'); + let document = await workspace.openTextDocument(file); + const inlineValueProvider = new PythonInlineValueProvider(); + + const viewPort = new Range(0, 0, 6, 0); + const context = { frameId: 0, stoppedLocation: new Range(3, 1, 3, 1) } as InlineValueContext; + + const result = await inlineValueProvider.provideInlineValues(document, viewPort, context); + const expected = [ + { + range: { + c: { + c: 0, + e: 0, + }, + e: { + c: 0, + e: 9, + }, + }, + variableName: 'some_list', + caseSensitiveLookup: false, + }, + { + range: { + c: { + c: 1, + e: 0, + }, + e: { + c: 1, + e: 1, + }, + }, + variableName: 'x', + caseSensitiveLookup: false, + }, + { + range: { + c: { + c: 2, + e: 4, + }, + e: { + c: 2, + e: 5, + }, + }, + variableName: 'n', + caseSensitiveLookup: false, + }, + { + range: { + c: { + c: 2, + e: 13, + }, + e: { + c: 2, + e: 22, + }, + }, + variableName: 'some_list', + caseSensitiveLookup: false, + }, + { + range: { + c: { + c: 2, + e: 27, + }, + e: { + c: 2, + e: 28, + }, + }, + variableName: 'x', + caseSensitiveLookup: false, + }, + { + range: { + c: { + c: 3, + e: 13, + }, + e: { + c: 3, + e: 14, + }, + }, + variableName: 'n', + caseSensitiveLookup: false, + }, + { + range: { + c: { + c: 3, + e: 16, + }, + e: { + c: 3, + e: 17, + }, + }, + variableName: 'x', + caseSensitiveLookup: false, + }, + { + range: { + c: { + c: 5, + e: 13, + }, + e: { + c: 5, + e: 14, + }, + }, + variableName: 'n', + caseSensitiveLookup: false, + }, + { + range: { + c: { + c: 5, + e: 16, + }, + e: { + c: 5, + e: 17, + }, + }, + variableName: 'x', + caseSensitiveLookup: false, + }, + ]; + expect(result).to.deep.equal(expected); + }); }); From e11670f27b6f5d0d1ac23b339f8cee14cf6b7f4a Mon Sep 17 00:00:00 2001 From: Paula Date: Mon, 22 Jul 2024 16:29:30 -0700 Subject: [PATCH 08/20] Update vscode packages (#397) * update package * update imports * update package * fix dependencies * update package-lock * Update vscode version --- package-lock.json | 1117 ++++++----------- package.json | 7 +- .../application/debugSessionTelemetry.ts | 2 +- src/extension/debugger/adapter/logging.ts | 2 +- .../adapter/outdatedDebuggerPrompt.ts | 2 +- .../debugger/helpers/protocolParser.ts | 2 +- src/extension/types.ts | 2 +- .../unittest/adapter/logging.unit.test.ts | 2 +- .../outdatedDebuggerPrompt.unit.test.ts | 2 +- src/test/unittest/utils.ts | 2 +- 10 files changed, 366 insertions(+), 774 deletions(-) diff --git a/package-lock.json b/package-lock.json index ee7de11f..eb526554 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,8 @@ "version": "2024.9.0-dev", "license": "MIT", "dependencies": { + "@vscode/debugadapter": "^1.65.0", + "@vscode/debugprotocol": "^1.65.0", "@vscode/extension-telemetry": "^0.8.5", "@vscode/python-extension": "^1.0.5", "fs-extra": "^11.2.0", @@ -17,8 +19,6 @@ "jsonc-parser": "^3.2.0", "lodash": "^4.17.21", "reflect-metadata": "^0.1.13", - "vscode-debugadapter": "^1.51.0", - "vscode-debugprotocol": "^1.51.0", "vscode-languageclient": "^8.0.2" }, "devDependencies": { @@ -48,12 +48,11 @@ "ts-mockito": "^2.6.1", "typemoq": "^2.1.0", "typescript": "^5.2.2", - "vscode-test": "^1.6.1", "webpack": "^5.87.0", "webpack-cli": "^5.1.4" }, "engines": { - "vscode": "^1.87.0" + "vscode": "^1.92.0" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -66,27 +65,27 @@ } }, "node_modules/@azure/abort-controller": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-1.1.0.tgz", - "integrity": "sha512-TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz", + "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==", "dependencies": { - "tslib": "^2.2.0" + "tslib": "^2.6.2" }, "engines": { - "node": ">=12.0.0" + "node": ">=18.0.0" } }, "node_modules/@azure/core-auth": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.5.0.tgz", - "integrity": "sha512-udzoBuYG1VBoHVohDTrvKjyzel34zt77Bhp7dQntVGGD0ehVq48owENbBG8fIgkHRNUBQH5k1r0hpoMu5L8+kw==", + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.7.2.tgz", + "integrity": "sha512-Igm/S3fDYmnMq1uKS38Ae1/m37B3zigdlZw+kocwEhh5GjyKjPrXKO2J6rzpC1wAxrNil/jX9BJRqBshyjnF3g==", "dependencies": { - "@azure/abort-controller": "^1.0.0", + "@azure/abort-controller": "^2.0.0", "@azure/core-util": "^1.1.0", - "tslib": "^2.2.0" + "tslib": "^2.6.2" }, "engines": { - "node": ">=14.0.0" + "node": ">=18.0.0" } }, "node_modules/@azure/core-rest-pipeline": { @@ -109,6 +108,17 @@ "node": ">=14.0.0" } }, + "node_modules/@azure/core-rest-pipeline/node_modules/@azure/abort-controller": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-1.1.0.tgz", + "integrity": "sha512-TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw==", + "dependencies": { + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/@azure/core-rest-pipeline/node_modules/@tootallnate/once": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", @@ -131,14 +141,14 @@ } }, "node_modules/@azure/core-tracing": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.0.1.tgz", - "integrity": "sha512-I5CGMoLtX+pI17ZdiFJZgxMJApsK6jjfm85hpgp3oazCdq5Wxgh4wMr7ge/TTWW1B5WBuvIOI1fMU/FrOAMKrw==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.1.2.tgz", + "integrity": "sha512-dawW9ifvWAWmUm9/h+/UQ2jrdvjCJ7VJEuCJ6XVNudzcOwm53BFZH4Q845vjfgoUAM8ZxokvVNxNxAITc502YA==", "dependencies": { - "tslib": "^2.2.0" + "tslib": "^2.6.2" }, "engines": { - "node": ">=12.0.0" + "node": ">=18.0.0" } }, "node_modules/@azure/core-util": { @@ -153,15 +163,26 @@ "node": ">=14.0.0" } }, - "node_modules/@azure/logger": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.0.4.tgz", - "integrity": "sha512-ustrPY8MryhloQj7OWGe+HrYx+aoiOxzbXTtgblbV3xwCqpzUK36phH3XNHQKj3EPonyFUuDTfR3qFhTEAuZEg==", + "node_modules/@azure/core-util/node_modules/@azure/abort-controller": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-1.1.0.tgz", + "integrity": "sha512-TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw==", "dependencies": { "tslib": "^2.2.0" }, "engines": { - "node": ">=14.0.0" + "node": ">=12.0.0" + } + }, + "node_modules/@azure/logger": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.1.3.tgz", + "integrity": "sha512-J8/cIKNQB1Fc9fuYqBVnrppiUtW+5WWJPCj/tAokC5LdSTwkWWttN+jsRgw9BLYD7JDBx7PceiqOBxJJ1tQz3Q==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" } }, "node_modules/@azure/opentelemetry-instrumentation-azure-sdk": { @@ -336,43 +357,7 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@microsoft/1ds-core-js": { - "version": "3.2.14", - "resolved": "https://registry.npmjs.org/@microsoft/1ds-core-js/-/1ds-core-js-3.2.14.tgz", - "integrity": "sha512-UW1YrUTPuvXmAarzqVSeYU1vwTzxCCZdd+ANcf/SDkxm53mCCgxSodVP9yrxtGOQdKhE9Y3rZdETRSvBBdKdXg==", - "dependencies": { - "@microsoft/applicationinsights-core-js": "2.8.16", - "@microsoft/applicationinsights-shims": "^2.0.2", - "@microsoft/dynamicproto-js": "^1.1.7" - } - }, - "node_modules/@microsoft/1ds-post-js": { - "version": "3.2.14", - "resolved": "https://registry.npmjs.org/@microsoft/1ds-post-js/-/1ds-post-js-3.2.14.tgz", - "integrity": "sha512-pXTfyW8SI6LS2r92W2Zaxl/YjJCHTEX9ej/GdabtlMAikGGgAlEsMlk5a4SJ3BI3K8sDUSGi+oTmJ1FtVes+bQ==", - "dependencies": { - "@microsoft/1ds-core-js": "3.2.14", - "@microsoft/applicationinsights-shims": "^2.0.2", - "@microsoft/dynamicproto-js": "^1.1.7" - } - }, - "node_modules/@microsoft/applicationinsights-channel-js": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-channel-js/-/applicationinsights-channel-js-3.0.3.tgz", - "integrity": "sha512-CWcJQCMKU3CxWLFIE8iPa3G5KB3v2RFkAvPICfY8/fwWZq4tWY7zosgvRPDZ+dIkz8Z/+CMy0+KblYzIKDdG4A==", - "dependencies": { - "@microsoft/applicationinsights-common": "3.0.3", - "@microsoft/applicationinsights-core-js": "3.0.3", - "@microsoft/applicationinsights-shims": "3.0.1", - "@microsoft/dynamicproto-js": "^2.0.2", - "@nevware21/ts-async": ">= 0.3.0 < 2.x", - "@nevware21/ts-utils": ">= 0.10.1 < 2.x" - }, - "peerDependencies": { - "tslib": "*" - } - }, - "node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-core-js": { + "node_modules/@microsoft/applicationinsights-core-js": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-core-js/-/applicationinsights-core-js-3.0.3.tgz", "integrity": "sha512-ymtdPHgUhCwIwQZx2ZN3Xw3cq+Z5KHzGmFV8QvURSdUzfaHbjYcHXIQkEZbgCCGOTMLtx9lZqP7J1gbBy0O8GQ==", @@ -386,7 +371,7 @@ "tslib": "*" } }, - "node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/applicationinsights-shims": { + "node_modules/@microsoft/applicationinsights-shims": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-shims/-/applicationinsights-shims-3.0.1.tgz", "integrity": "sha512-DKwboF47H1nb33rSUfjqI6ryX29v+2QWcTrRvcQDA32AZr5Ilkr7whOOSsD1aBzwqX0RJEIP1Z81jfE3NBm/Lg==", @@ -394,33 +379,14 @@ "@nevware21/ts-utils": ">= 0.9.4 < 2.x" } }, - "node_modules/@microsoft/applicationinsights-channel-js/node_modules/@microsoft/dynamicproto-js": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@microsoft/dynamicproto-js/-/dynamicproto-js-2.0.2.tgz", - "integrity": "sha512-MB8trWaFREpmb037k/d0bB7T2BP7Ai24w1e1tbz3ASLB0/lwphsq3Nq8S9I5AsI5vs4zAQT+SB5nC5/dLYTiOg==", - "dependencies": { - "@nevware21/ts-utils": ">= 0.9.4 < 2.x" - } - }, - "node_modules/@microsoft/applicationinsights-common": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-common/-/applicationinsights-common-3.0.3.tgz", - "integrity": "sha512-GwnerHHPexry2CMTr6gP2Rjm0e3rgVXZzFCbrxcoOQk8MqrEFDWur6Xs66FwXpGFnY3KV3Zsujkfcl0oePs4Cg==", + "node_modules/@microsoft/applicationinsights-web-basic": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-web-basic/-/applicationinsights-web-basic-3.1.1.tgz", + "integrity": "sha512-/3D0ggfrFEMzI8dw+qEHlAhDH9vT5Mdv655ztNgvX3aSn/TsRpYJmN23zvP7azCioBfhD8T9zWcotkDN2lvtDQ==", "dependencies": { + "@microsoft/applicationinsights-channel-js": "3.0.3", + "@microsoft/applicationinsights-common": "3.0.3", "@microsoft/applicationinsights-core-js": "3.0.3", - "@microsoft/applicationinsights-shims": "3.0.1", - "@microsoft/dynamicproto-js": "^2.0.2", - "@nevware21/ts-utils": ">= 0.10.1 < 2.x" - }, - "peerDependencies": { - "tslib": "*" - } - }, - "node_modules/@microsoft/applicationinsights-common/node_modules/@microsoft/applicationinsights-core-js": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-core-js/-/applicationinsights-core-js-3.0.3.tgz", - "integrity": "sha512-ymtdPHgUhCwIwQZx2ZN3Xw3cq+Z5KHzGmFV8QvURSdUzfaHbjYcHXIQkEZbgCCGOTMLtx9lZqP7J1gbBy0O8GQ==", - "dependencies": { "@microsoft/applicationinsights-shims": "3.0.1", "@microsoft/dynamicproto-js": "^2.0.2", "@nevware21/ts-async": ">= 0.3.0 < 2.x", @@ -430,45 +396,11 @@ "tslib": "*" } }, - "node_modules/@microsoft/applicationinsights-common/node_modules/@microsoft/applicationinsights-shims": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-shims/-/applicationinsights-shims-3.0.1.tgz", - "integrity": "sha512-DKwboF47H1nb33rSUfjqI6ryX29v+2QWcTrRvcQDA32AZr5Ilkr7whOOSsD1aBzwqX0RJEIP1Z81jfE3NBm/Lg==", - "dependencies": { - "@nevware21/ts-utils": ">= 0.9.4 < 2.x" - } - }, - "node_modules/@microsoft/applicationinsights-common/node_modules/@microsoft/dynamicproto-js": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@microsoft/dynamicproto-js/-/dynamicproto-js-2.0.2.tgz", - "integrity": "sha512-MB8trWaFREpmb037k/d0bB7T2BP7Ai24w1e1tbz3ASLB0/lwphsq3Nq8S9I5AsI5vs4zAQT+SB5nC5/dLYTiOg==", - "dependencies": { - "@nevware21/ts-utils": ">= 0.9.4 < 2.x" - } - }, - "node_modules/@microsoft/applicationinsights-core-js": { - "version": "2.8.16", - "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-core-js/-/applicationinsights-core-js-2.8.16.tgz", - "integrity": "sha512-pO5rR6UuiPymiHFj8XxNXhQgBSTvyHWygf+gdEVDh0xpUXYFO99bZe0Ux0D0HqYqVkJrRfXzL1Ocru6+S0x53Q==", - "dependencies": { - "@microsoft/applicationinsights-shims": "2.0.2", - "@microsoft/dynamicproto-js": "^1.1.9" - }, - "peerDependencies": { - "tslib": "*" - } - }, - "node_modules/@microsoft/applicationinsights-shims": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-shims/-/applicationinsights-shims-2.0.2.tgz", - "integrity": "sha512-PoHEgsnmcqruLNHZ/amACqdJ6YYQpED0KSRe6J7gIJTtpZC1FfFU9b1fmDKDKtFoUSrPzEh1qzO3kmRZP0betg==" - }, - "node_modules/@microsoft/applicationinsights-web-basic": { + "node_modules/@microsoft/applicationinsights-web-basic/node_modules/@microsoft/applicationinsights-channel-js": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-web-basic/-/applicationinsights-web-basic-3.0.3.tgz", - "integrity": "sha512-PCKfbCTJUbcyZnRzasxlYgV3L1ORVxpggRB1Uohx0rNyEyKPwk7lcCcFos11NEA+pn/XqZrZY5FYSdaLT45wNA==", + "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-channel-js/-/applicationinsights-channel-js-3.0.3.tgz", + "integrity": "sha512-CWcJQCMKU3CxWLFIE8iPa3G5KB3v2RFkAvPICfY8/fwWZq4tWY7zosgvRPDZ+dIkz8Z/+CMy0+KblYzIKDdG4A==", "dependencies": { - "@microsoft/applicationinsights-channel-js": "3.0.3", "@microsoft/applicationinsights-common": "3.0.3", "@microsoft/applicationinsights-core-js": "3.0.3", "@microsoft/applicationinsights-shims": "3.0.1", @@ -480,58 +412,45 @@ "tslib": "*" } }, - "node_modules/@microsoft/applicationinsights-web-basic/node_modules/@microsoft/applicationinsights-core-js": { + "node_modules/@microsoft/applicationinsights-web-basic/node_modules/@microsoft/applicationinsights-common": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-core-js/-/applicationinsights-core-js-3.0.3.tgz", - "integrity": "sha512-ymtdPHgUhCwIwQZx2ZN3Xw3cq+Z5KHzGmFV8QvURSdUzfaHbjYcHXIQkEZbgCCGOTMLtx9lZqP7J1gbBy0O8GQ==", + "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-common/-/applicationinsights-common-3.0.3.tgz", + "integrity": "sha512-GwnerHHPexry2CMTr6gP2Rjm0e3rgVXZzFCbrxcoOQk8MqrEFDWur6Xs66FwXpGFnY3KV3Zsujkfcl0oePs4Cg==", "dependencies": { + "@microsoft/applicationinsights-core-js": "3.0.3", "@microsoft/applicationinsights-shims": "3.0.1", "@microsoft/dynamicproto-js": "^2.0.2", - "@nevware21/ts-async": ">= 0.3.0 < 2.x", "@nevware21/ts-utils": ">= 0.10.1 < 2.x" }, "peerDependencies": { "tslib": "*" } }, - "node_modules/@microsoft/applicationinsights-web-basic/node_modules/@microsoft/applicationinsights-shims": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-shims/-/applicationinsights-shims-3.0.1.tgz", - "integrity": "sha512-DKwboF47H1nb33rSUfjqI6ryX29v+2QWcTrRvcQDA32AZr5Ilkr7whOOSsD1aBzwqX0RJEIP1Z81jfE3NBm/Lg==", - "dependencies": { - "@nevware21/ts-utils": ">= 0.9.4 < 2.x" - } - }, - "node_modules/@microsoft/applicationinsights-web-basic/node_modules/@microsoft/dynamicproto-js": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@microsoft/dynamicproto-js/-/dynamicproto-js-2.0.2.tgz", - "integrity": "sha512-MB8trWaFREpmb037k/d0bB7T2BP7Ai24w1e1tbz3ASLB0/lwphsq3Nq8S9I5AsI5vs4zAQT+SB5nC5/dLYTiOg==", - "dependencies": { - "@nevware21/ts-utils": ">= 0.9.4 < 2.x" - } - }, "node_modules/@microsoft/applicationinsights-web-snippet": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-web-snippet/-/applicationinsights-web-snippet-1.0.1.tgz", "integrity": "sha512-2IHAOaLauc8qaAitvWS+U931T+ze+7MNWrDHY47IENP5y2UA0vqJDu67kWZDdpCN1fFC77sfgfB+HV7SrKshnQ==" }, "node_modules/@microsoft/dynamicproto-js": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/@microsoft/dynamicproto-js/-/dynamicproto-js-1.1.9.tgz", - "integrity": "sha512-n1VPsljTSkthsAFYdiWfC+DKzK2WwcRp83Y1YAqdX552BstvsDjft9YXppjUzp11BPsapDoO1LDgrDB0XVsfNQ==" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@microsoft/dynamicproto-js/-/dynamicproto-js-2.0.3.tgz", + "integrity": "sha512-JTWTU80rMy3mdxOjjpaiDQsTLZ6YSGGqsjURsY6AUQtIj0udlF/jYmhdLZu8693ZIC0T1IwYnFa0+QeiMnziBA==", + "dependencies": { + "@nevware21/ts-utils": ">= 0.10.4 < 2.x" + } }, "node_modules/@nevware21/ts-async": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@nevware21/ts-async/-/ts-async-0.3.0.tgz", - "integrity": "sha512-ZUcgUH12LN/F6nzN0cYd0F/rJaMLmXr0EHVTyYfaYmK55bdwE4338uue4UiVoRqHVqNW4KDUrJc49iGogHKeWA==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@nevware21/ts-async/-/ts-async-0.4.0.tgz", + "integrity": "sha512-dbV826TTehQIBIJjh8GDSbwn1Z6+cnkyNbRlpcpdBPH8mROD2zabIUKqWcw9WRdTjjUIm21K+OR4DXWlAyOVTQ==", "dependencies": { "@nevware21/ts-utils": ">= 0.10.0 < 2.x" } }, "node_modules/@nevware21/ts-utils": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/@nevware21/ts-utils/-/ts-utils-0.10.1.tgz", - "integrity": "sha512-pMny25NnF2/MJwdqC3Iyjm2pGIXNxni4AROpcqDeWa+td9JMUY4bUS9uU9XW+BoBRqTLUL+WURF9SOd/6OQzRg==" + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/@nevware21/ts-utils/-/ts-utils-0.10.5.tgz", + "integrity": "sha512-+TEvP0+l/VBR5bJZoYFV+o6aQQ1O6y80uys5AVyyCKeWvrgWu/yNydqSBQNsk4BuEfkayg7R9+HCJRRRIvptTA==" }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", @@ -569,25 +488,25 @@ } }, "node_modules/@opentelemetry/api": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.6.0.tgz", - "integrity": "sha512-OWlrQAnWn9577PhVgqjUvMr1pg57Bc4jv0iL4w0PRuOSRvq67rvHW9Ie/dZVMvCzhSCB+UxhcY/PmCmFj33Q+g==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz", + "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==", "engines": { "node": ">=8.0.0" } }, "node_modules/@opentelemetry/core": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.17.0.tgz", - "integrity": "sha512-tfnl3h+UefCgx1aeN2xtrmr6BmdWGKXypk0pflQR0urFS40aE88trnkOMc2HTJZbMrqEEl4HsaBeFhwLVXsrJg==", + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", "dependencies": { - "@opentelemetry/semantic-conventions": "1.17.0" + "@opentelemetry/semantic-conventions": "1.25.1" }, "engines": { "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.7.0" + "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, "node_modules/@opentelemetry/instrumentation": { @@ -609,40 +528,40 @@ } }, "node_modules/@opentelemetry/resources": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.17.0.tgz", - "integrity": "sha512-+u0ciVnj8lhuL/qGRBPeVYvk7fL+H/vOddfvmOeJaA1KC+5/3UED1c9KoZQlRsNT5Kw1FaK8LkY2NVLYfOVZQw==", + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.25.1.tgz", + "integrity": "sha512-pkZT+iFYIZsVn6+GzM0kSX+u3MSLCY9md+lIJOoKl/P+gJFfxJte/60Usdp8Ce4rOs8GduUpSPNe1ddGyDT1sQ==", "dependencies": { - "@opentelemetry/core": "1.17.0", - "@opentelemetry/semantic-conventions": "1.17.0" + "@opentelemetry/core": "1.25.1", + "@opentelemetry/semantic-conventions": "1.25.1" }, "engines": { "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.7.0" + "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, "node_modules/@opentelemetry/sdk-trace-base": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.17.0.tgz", - "integrity": "sha512-2T5HA1/1iE36Q9eg6D4zYlC4Y4GcycI1J6NsHPKZY9oWfAxWsoYnRlkPfUqyY5XVtocCo/xHpnJvGNHwzT70oQ==", + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.25.1.tgz", + "integrity": "sha512-C8k4hnEbc5FamuZQ92nTOp8X/diCY56XUTnMiv9UTuJitCzaNNHAVsdm5+HLCdI8SLQsLWIrG38tddMxLVoftw==", "dependencies": { - "@opentelemetry/core": "1.17.0", - "@opentelemetry/resources": "1.17.0", - "@opentelemetry/semantic-conventions": "1.17.0" + "@opentelemetry/core": "1.25.1", + "@opentelemetry/resources": "1.25.1", + "@opentelemetry/semantic-conventions": "1.25.1" }, "engines": { "node": ">=14" }, "peerDependencies": { - "@opentelemetry/api": ">=1.0.0 <1.7.0" + "@opentelemetry/api": ">=1.0.0 <1.10.0" } }, "node_modules/@opentelemetry/semantic-conventions": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.17.0.tgz", - "integrity": "sha512-+fguCd2d8d2qruk0H0DsCEy2CTK3t0Tugg7MhZ/UQMvmewbZLNnJ6heSYyzIZWG5IPfAXzoj4f4F/qpM7l4VBA==", + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.25.1.tgz", + "integrity": "sha512-ZDjMJJQRlyk8A1KZFCc+bCbsyrn1wTwdNt56F7twdfUfnHUZUq77/WfONCj8p72NZOyP7pNTdUWSTYC3GTbuuQ==", "engines": { "node": ">=14" } @@ -807,9 +726,9 @@ "dev": true }, "node_modules/@types/shimmer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@types/shimmer/-/shimmer-1.0.3.tgz", - "integrity": "sha512-F/IjUGnV6pIN7R4ZV4npHJVoNtaLZWvb+2/9gctxjb99wkpI7Ozg8VPogwDiTRyjLwZXAYxjvdg1KS8LTHKdDA==" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/shimmer/-/shimmer-1.2.0.tgz", + "integrity": "sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==" }, "node_modules/@types/sinon": { "version": "10.0.15", @@ -1094,6 +1013,22 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@vscode/debugadapter": { + "version": "1.65.0", + "resolved": "https://registry.npmjs.org/@vscode/debugadapter/-/debugadapter-1.65.0.tgz", + "integrity": "sha512-l9jdX0GFoFVAc7O4O8iVnCjO0pgxbx+wJJXCaYSuglGtYwMNcJdc7xm96cuVx4LWzSqneIjvjzbuzZtoVZhZzQ==", + "dependencies": { + "@vscode/debugprotocol": "1.65.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@vscode/debugprotocol": { + "version": "1.65.0", + "resolved": "https://registry.npmjs.org/@vscode/debugprotocol/-/debugprotocol-1.65.0.tgz", + "integrity": "sha512-ejerrPMBXzYms6Ks+Gb7cdXtdncmT0xwIKNsc0c/SxhEa0HVY5jdvLUegYE91p7CQJpCnXOD/r2CvViN8txLLA==" + }, "node_modules/@vscode/extension-telemetry": { "version": "0.8.5", "resolved": "https://registry.npmjs.org/@vscode/extension-telemetry/-/extension-telemetry-0.8.5.tgz", @@ -1108,6 +1043,48 @@ "vscode": "^1.75.0" } }, + "node_modules/@vscode/extension-telemetry/node_modules/@microsoft/1ds-core-js": { + "version": "3.2.18", + "resolved": "https://registry.npmjs.org/@microsoft/1ds-core-js/-/1ds-core-js-3.2.18.tgz", + "integrity": "sha512-ytlFv3dfb8OGqvbZP8tSIlNvn3QNYxdsF0k6ikRMWSr6CmBxBi1sliaxc2Q5KuYOuaeWkd8WRm25Rx/UtHcyMg==", + "dependencies": { + "@microsoft/applicationinsights-core-js": "2.8.18", + "@microsoft/applicationinsights-shims": "^2.0.2", + "@microsoft/dynamicproto-js": "^1.1.11" + } + }, + "node_modules/@vscode/extension-telemetry/node_modules/@microsoft/1ds-post-js": { + "version": "3.2.18", + "resolved": "https://registry.npmjs.org/@microsoft/1ds-post-js/-/1ds-post-js-3.2.18.tgz", + "integrity": "sha512-Tzjcja4SMyws3UP58kD2edFPNb7BJtx5uCgwf/PWXwDyfbUY1/crsTQdEyR98wy/vorvLDZdQlcL++VMChfYnQ==", + "dependencies": { + "@microsoft/1ds-core-js": "3.2.18", + "@microsoft/applicationinsights-shims": "^2.0.2", + "@microsoft/dynamicproto-js": "^1.1.11" + } + }, + "node_modules/@vscode/extension-telemetry/node_modules/@microsoft/applicationinsights-core-js": { + "version": "2.8.18", + "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-core-js/-/applicationinsights-core-js-2.8.18.tgz", + "integrity": "sha512-yPHRZFLpnEO0uSgFPM1BLMRRwjoten9YBbn4pJRbCT4PigLnj748knmWsMwXIdcehtkRTYz78kPYa/LWP7nvmA==", + "dependencies": { + "@microsoft/applicationinsights-shims": "2.0.2", + "@microsoft/dynamicproto-js": "^1.1.11" + }, + "peerDependencies": { + "tslib": "*" + } + }, + "node_modules/@vscode/extension-telemetry/node_modules/@microsoft/applicationinsights-shims": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-shims/-/applicationinsights-shims-2.0.2.tgz", + "integrity": "sha512-PoHEgsnmcqruLNHZ/amACqdJ6YYQpED0KSRe6J7gIJTtpZC1FfFU9b1fmDKDKtFoUSrPzEh1qzO3kmRZP0betg==" + }, + "node_modules/@vscode/extension-telemetry/node_modules/@microsoft/dynamicproto-js": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/@microsoft/dynamicproto-js/-/dynamicproto-js-1.1.11.tgz", + "integrity": "sha512-gNw9z9LbqLV+WadZ6/MMrWwO3e0LuoUH1wve/1iPsBNbgqeVCiB0EZFNNj2lysxS2gkqoF9hmyVaG3MoM1BkxA==" + }, "node_modules/@vscode/python-extension": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@vscode/python-extension/-/python-extension-1.0.5.tgz", @@ -1499,23 +1476,23 @@ } }, "node_modules/applicationinsights": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/applicationinsights/-/applicationinsights-2.8.0.tgz", - "integrity": "sha512-pxVOdCPwXTal1A904yGmzOOUJrIeQ89xQir0ifr7fLl+e0BlGrZ1P4StcIDuEXk93gV9CGxGm5Mol8ksPk2mcg==", + "version": "2.9.5", + "resolved": "https://registry.npmjs.org/applicationinsights/-/applicationinsights-2.9.5.tgz", + "integrity": "sha512-APQ8IWyYDHFvKbitFKpsmZXxkzQh0yYTFacQqoVW7HwlPo3eeLprwnq5RFNmmG6iqLmvQ+xRJSDLEQCgqPh+bw==", "dependencies": { "@azure/core-auth": "^1.5.0", "@azure/core-rest-pipeline": "1.10.1", "@azure/core-util": "1.2.0", "@azure/opentelemetry-instrumentation-azure-sdk": "^1.0.0-beta.5", - "@microsoft/applicationinsights-web-snippet": "^1.0.1", - "@opentelemetry/api": "^1.4.1", - "@opentelemetry/core": "^1.15.2", - "@opentelemetry/sdk-trace-base": "^1.15.2", - "@opentelemetry/semantic-conventions": "^1.15.2", + "@microsoft/applicationinsights-web-snippet": "1.0.1", + "@opentelemetry/api": "^1.7.0", + "@opentelemetry/core": "^1.19.0", + "@opentelemetry/sdk-trace-base": "^1.19.0", + "@opentelemetry/semantic-conventions": "^1.19.0", "cls-hooked": "^4.2.2", "continuation-local-storage": "^3.2.1", "diagnostic-channel": "1.1.1", - "diagnostic-channel-publishers": "1.0.7" + "diagnostic-channel-publishers": "1.0.8" }, "engines": { "node": ">=8.0.0" @@ -1550,7 +1527,7 @@ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true, "engines": { - "node": "*" + "node": "<=0.11.8 || >0.11.10" } }, "node_modules/async-hook-jl": { @@ -1625,28 +1602,6 @@ ], "optional": true }, - "node_modules/big-integer": { - "version": "1.6.51", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", - "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/binary": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", - "integrity": "sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==", - "dev": true, - "dependencies": { - "buffers": "~0.1.1", - "chainsaw": "~0.1.0" - }, - "engines": { - "node": "*" - } - }, "node_modules/binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -1708,12 +1663,6 @@ "node": ">= 6" } }, - "node_modules/bluebird": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", - "integrity": "sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==", - "dev": true - }, "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", @@ -1731,12 +1680,12 @@ } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" @@ -1795,24 +1744,6 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, - "node_modules/buffer-indexof-polyfill": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz", - "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/buffers": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", - "integrity": "sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==", - "dev": true, - "engines": { - "node": ">=0.2.0" - } - }, "node_modules/call-bind": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", @@ -1903,18 +1834,6 @@ "chai": ">= 2.1.2 < 5" } }, - "node_modules/chainsaw": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", - "integrity": "sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==", - "dev": true, - "dependencies": { - "traverse": ">=0.3.0 <0.4" - }, - "engines": { - "node": "*" - } - }, "node_modules/chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -2309,9 +2228,9 @@ } }, "node_modules/diagnostic-channel-publishers": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/diagnostic-channel-publishers/-/diagnostic-channel-publishers-1.0.7.tgz", - "integrity": "sha512-SEECbY5AiVt6DfLkhkaHNeshg1CogdLLANA8xlG/TKvS+XUgvIKl7VspJGYiEdL5OUyzMVnr7o0AwB7f+/Mjtg==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/diagnostic-channel-publishers/-/diagnostic-channel-publishers-1.0.8.tgz", + "integrity": "sha512-HmSm9hXxSPxA9BaLGY98QU1zsdjeCk113KjAYGPCen1ZP6mhVaTPzHd6UYv5r21DnWANi+f+NyPOHruGT9jpqQ==", "peerDependencies": { "diagnostic-channel": "*" } @@ -2404,15 +2323,6 @@ "url": "https://github.com/fb55/domutils?sponsor=1" } }, - "node_modules/duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.2" - } - }, "node_modules/electron-to-chromium": { "version": "1.4.428", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.428.tgz", @@ -2893,9 +2803,9 @@ } }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "dependencies": { "to-regex-range": "^5.0.1" @@ -3001,65 +2911,6 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/fstream": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", - "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - }, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/fstream/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/fstream/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/fstream/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", @@ -3786,12 +3637,6 @@ "uc.micro": "^1.0.1" } }, - "node_modules/listenercount": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz", - "integrity": "sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ==", - "dev": true - }, "node_modules/loader-runner": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", @@ -4059,21 +3904,11 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, + "optional": true, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/mkdirp-classic": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", @@ -4840,9 +4675,9 @@ } }, "node_modules/require-in-the-middle": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-7.2.0.tgz", - "integrity": "sha512-3TLx5TGyAY6AOqLBoXmHkNql0HIf2RGbuMgCDT2WO/uGVAPJs6h7Kl+bN6TIZGd9bWhWPwnDnTHGtW8Iu77sdw==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-7.3.0.tgz", + "integrity": "sha512-nQFEv9gRw6SJAwWD2LrL0NmQvAcO7FBwJbwmr2ttPAacfy0xuiOjE5zt+zM4xDyuyvUaxBi/9gb2SoCyNEVJcw==", "dependencies": { "debug": "^4.1.1", "module-details-from-path": "^1.0.3", @@ -5448,15 +5283,6 @@ "node": ">=8.0" } }, - "node_modules/traverse": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", - "integrity": "sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/ts-loader": { "version": "9.4.3", "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.4.3.tgz", @@ -5695,24 +5521,6 @@ "node": ">= 10.0.0" } }, - "node_modules/unzipper": { - "version": "0.10.14", - "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.14.tgz", - "integrity": "sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g==", - "dev": true, - "dependencies": { - "big-integer": "^1.6.17", - "binary": "~0.3.0", - "bluebird": "~3.4.1", - "buffer-indexof-polyfill": "~1.0.0", - "duplexer2": "~0.1.4", - "fstream": "^1.0.12", - "graceful-fs": "^4.2.2", - "listenercount": "~1.0.1", - "readable-stream": "~2.3.6", - "setimmediate": "~1.0.4" - } - }, "node_modules/update-browserslist-db": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", @@ -5781,22 +5589,6 @@ "uuid": "dist/bin/uuid" } }, - "node_modules/vscode-debugadapter": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/vscode-debugadapter/-/vscode-debugadapter-1.51.0.tgz", - "integrity": "sha512-mObaXD5/FH/z6aL2GDuyCLbnwLsYRCAJWgFid01vKW9Y5Si8OvINK+Tn+Yl/lRUbetjNuZW3j1euMEz6z8Yzqg==", - "deprecated": "This package has been renamed to @vscode/debugadapter, please update to the new name", - "dependencies": { - "mkdirp": "^1.0.4", - "vscode-debugprotocol": "1.51.0" - } - }, - "node_modules/vscode-debugprotocol": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/vscode-debugprotocol/-/vscode-debugprotocol-1.51.0.tgz", - "integrity": "sha512-dzKWTMMyebIMPF1VYMuuQj7gGFq7guR8AFya0mKacu+ayptJfaRuM0mdHCqiOth4FnRP8mPhEroFPx6Ift8wHA==", - "deprecated": "This package has been renamed to @vscode/debugprotocol, please update to the new name" - }, "node_modules/vscode-jsonrpc": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.1.0.tgz", @@ -5851,22 +5643,6 @@ "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.3.tgz", "integrity": "sha512-SYU4z1dL0PyIMd4Vj8YOqFvHu7Hz/enbWtpfnVbJHU4Nd1YNYx8u0ennumc6h48GQNeOLxmwySmnADouT/AuZA==" }, - "node_modules/vscode-test": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/vscode-test/-/vscode-test-1.6.1.tgz", - "integrity": "sha512-086q88T2ca1k95mUzffvbzb7esqQNvJgiwY4h29ukPhFo8u+vXOOmelUoU5EQUHs3Of8+JuQ3oGdbVCqaxuTXA==", - "deprecated": "This package has been renamed to @vscode/test-electron, please update to the new name", - "dev": true, - "dependencies": { - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "rimraf": "^3.0.2", - "unzipper": "^0.10.11" - }, - "engines": { - "node": ">=8.9.3" - } - }, "node_modules/watchpack": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", @@ -6204,21 +5980,21 @@ "dev": true }, "@azure/abort-controller": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-1.1.0.tgz", - "integrity": "sha512-TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz", + "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==", "requires": { - "tslib": "^2.2.0" + "tslib": "^2.6.2" } }, "@azure/core-auth": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.5.0.tgz", - "integrity": "sha512-udzoBuYG1VBoHVohDTrvKjyzel34zt77Bhp7dQntVGGD0ehVq48owENbBG8fIgkHRNUBQH5k1r0hpoMu5L8+kw==", + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.7.2.tgz", + "integrity": "sha512-Igm/S3fDYmnMq1uKS38Ae1/m37B3zigdlZw+kocwEhh5GjyKjPrXKO2J6rzpC1wAxrNil/jX9BJRqBshyjnF3g==", "requires": { - "@azure/abort-controller": "^1.0.0", + "@azure/abort-controller": "^2.0.0", "@azure/core-util": "^1.1.0", - "tslib": "^2.2.0" + "tslib": "^2.6.2" } }, "@azure/core-rest-pipeline": { @@ -6238,6 +6014,14 @@ "uuid": "^8.3.0" }, "dependencies": { + "@azure/abort-controller": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-1.1.0.tgz", + "integrity": "sha512-TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw==", + "requires": { + "tslib": "^2.2.0" + } + }, "@tootallnate/once": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", @@ -6256,11 +6040,11 @@ } }, "@azure/core-tracing": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.0.1.tgz", - "integrity": "sha512-I5CGMoLtX+pI17ZdiFJZgxMJApsK6jjfm85hpgp3oazCdq5Wxgh4wMr7ge/TTWW1B5WBuvIOI1fMU/FrOAMKrw==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.1.2.tgz", + "integrity": "sha512-dawW9ifvWAWmUm9/h+/UQ2jrdvjCJ7VJEuCJ6XVNudzcOwm53BFZH4Q845vjfgoUAM8ZxokvVNxNxAITc502YA==", "requires": { - "tslib": "^2.2.0" + "tslib": "^2.6.2" } }, "@azure/core-util": { @@ -6270,14 +6054,24 @@ "requires": { "@azure/abort-controller": "^1.0.0", "tslib": "^2.2.0" + }, + "dependencies": { + "@azure/abort-controller": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-1.1.0.tgz", + "integrity": "sha512-TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw==", + "requires": { + "tslib": "^2.2.0" + } + } } }, "@azure/logger": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.0.4.tgz", - "integrity": "sha512-ustrPY8MryhloQj7OWGe+HrYx+aoiOxzbXTtgblbV3xwCqpzUK36phH3XNHQKj3EPonyFUuDTfR3qFhTEAuZEg==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.1.3.tgz", + "integrity": "sha512-J8/cIKNQB1Fc9fuYqBVnrppiUtW+5WWJPCj/tAokC5LdSTwkWWttN+jsRgw9BLYD7JDBx7PceiqOBxJJ1tQz3Q==", "requires": { - "tslib": "^2.2.0" + "tslib": "^2.6.2" } }, "@azure/opentelemetry-instrumentation-azure-sdk": { @@ -6409,126 +6203,29 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "@microsoft/1ds-core-js": { - "version": "3.2.14", - "resolved": "https://registry.npmjs.org/@microsoft/1ds-core-js/-/1ds-core-js-3.2.14.tgz", - "integrity": "sha512-UW1YrUTPuvXmAarzqVSeYU1vwTzxCCZdd+ANcf/SDkxm53mCCgxSodVP9yrxtGOQdKhE9Y3rZdETRSvBBdKdXg==", - "requires": { - "@microsoft/applicationinsights-core-js": "2.8.16", - "@microsoft/applicationinsights-shims": "^2.0.2", - "@microsoft/dynamicproto-js": "^1.1.7" - } - }, - "@microsoft/1ds-post-js": { - "version": "3.2.14", - "resolved": "https://registry.npmjs.org/@microsoft/1ds-post-js/-/1ds-post-js-3.2.14.tgz", - "integrity": "sha512-pXTfyW8SI6LS2r92W2Zaxl/YjJCHTEX9ej/GdabtlMAikGGgAlEsMlk5a4SJ3BI3K8sDUSGi+oTmJ1FtVes+bQ==", - "requires": { - "@microsoft/1ds-core-js": "3.2.14", - "@microsoft/applicationinsights-shims": "^2.0.2", - "@microsoft/dynamicproto-js": "^1.1.7" - } - }, - "@microsoft/applicationinsights-channel-js": { + "@microsoft/applicationinsights-core-js": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-channel-js/-/applicationinsights-channel-js-3.0.3.tgz", - "integrity": "sha512-CWcJQCMKU3CxWLFIE8iPa3G5KB3v2RFkAvPICfY8/fwWZq4tWY7zosgvRPDZ+dIkz8Z/+CMy0+KblYzIKDdG4A==", + "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-core-js/-/applicationinsights-core-js-3.0.3.tgz", + "integrity": "sha512-ymtdPHgUhCwIwQZx2ZN3Xw3cq+Z5KHzGmFV8QvURSdUzfaHbjYcHXIQkEZbgCCGOTMLtx9lZqP7J1gbBy0O8GQ==", "requires": { - "@microsoft/applicationinsights-common": "3.0.3", - "@microsoft/applicationinsights-core-js": "3.0.3", "@microsoft/applicationinsights-shims": "3.0.1", "@microsoft/dynamicproto-js": "^2.0.2", "@nevware21/ts-async": ">= 0.3.0 < 2.x", "@nevware21/ts-utils": ">= 0.10.1 < 2.x" - }, - "dependencies": { - "@microsoft/applicationinsights-core-js": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-core-js/-/applicationinsights-core-js-3.0.3.tgz", - "integrity": "sha512-ymtdPHgUhCwIwQZx2ZN3Xw3cq+Z5KHzGmFV8QvURSdUzfaHbjYcHXIQkEZbgCCGOTMLtx9lZqP7J1gbBy0O8GQ==", - "requires": { - "@microsoft/applicationinsights-shims": "3.0.1", - "@microsoft/dynamicproto-js": "^2.0.2", - "@nevware21/ts-async": ">= 0.3.0 < 2.x", - "@nevware21/ts-utils": ">= 0.10.1 < 2.x" - } - }, - "@microsoft/applicationinsights-shims": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-shims/-/applicationinsights-shims-3.0.1.tgz", - "integrity": "sha512-DKwboF47H1nb33rSUfjqI6ryX29v+2QWcTrRvcQDA32AZr5Ilkr7whOOSsD1aBzwqX0RJEIP1Z81jfE3NBm/Lg==", - "requires": { - "@nevware21/ts-utils": ">= 0.9.4 < 2.x" - } - }, - "@microsoft/dynamicproto-js": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@microsoft/dynamicproto-js/-/dynamicproto-js-2.0.2.tgz", - "integrity": "sha512-MB8trWaFREpmb037k/d0bB7T2BP7Ai24w1e1tbz3ASLB0/lwphsq3Nq8S9I5AsI5vs4zAQT+SB5nC5/dLYTiOg==", - "requires": { - "@nevware21/ts-utils": ">= 0.9.4 < 2.x" - } - } - } - }, - "@microsoft/applicationinsights-common": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-common/-/applicationinsights-common-3.0.3.tgz", - "integrity": "sha512-GwnerHHPexry2CMTr6gP2Rjm0e3rgVXZzFCbrxcoOQk8MqrEFDWur6Xs66FwXpGFnY3KV3Zsujkfcl0oePs4Cg==", - "requires": { - "@microsoft/applicationinsights-core-js": "3.0.3", - "@microsoft/applicationinsights-shims": "3.0.1", - "@microsoft/dynamicproto-js": "^2.0.2", - "@nevware21/ts-utils": ">= 0.10.1 < 2.x" - }, - "dependencies": { - "@microsoft/applicationinsights-core-js": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-core-js/-/applicationinsights-core-js-3.0.3.tgz", - "integrity": "sha512-ymtdPHgUhCwIwQZx2ZN3Xw3cq+Z5KHzGmFV8QvURSdUzfaHbjYcHXIQkEZbgCCGOTMLtx9lZqP7J1gbBy0O8GQ==", - "requires": { - "@microsoft/applicationinsights-shims": "3.0.1", - "@microsoft/dynamicproto-js": "^2.0.2", - "@nevware21/ts-async": ">= 0.3.0 < 2.x", - "@nevware21/ts-utils": ">= 0.10.1 < 2.x" - } - }, - "@microsoft/applicationinsights-shims": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-shims/-/applicationinsights-shims-3.0.1.tgz", - "integrity": "sha512-DKwboF47H1nb33rSUfjqI6ryX29v+2QWcTrRvcQDA32AZr5Ilkr7whOOSsD1aBzwqX0RJEIP1Z81jfE3NBm/Lg==", - "requires": { - "@nevware21/ts-utils": ">= 0.9.4 < 2.x" - } - }, - "@microsoft/dynamicproto-js": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@microsoft/dynamicproto-js/-/dynamicproto-js-2.0.2.tgz", - "integrity": "sha512-MB8trWaFREpmb037k/d0bB7T2BP7Ai24w1e1tbz3ASLB0/lwphsq3Nq8S9I5AsI5vs4zAQT+SB5nC5/dLYTiOg==", - "requires": { - "@nevware21/ts-utils": ">= 0.9.4 < 2.x" - } - } } }, - "@microsoft/applicationinsights-core-js": { - "version": "2.8.16", - "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-core-js/-/applicationinsights-core-js-2.8.16.tgz", - "integrity": "sha512-pO5rR6UuiPymiHFj8XxNXhQgBSTvyHWygf+gdEVDh0xpUXYFO99bZe0Ux0D0HqYqVkJrRfXzL1Ocru6+S0x53Q==", + "@microsoft/applicationinsights-shims": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-shims/-/applicationinsights-shims-3.0.1.tgz", + "integrity": "sha512-DKwboF47H1nb33rSUfjqI6ryX29v+2QWcTrRvcQDA32AZr5Ilkr7whOOSsD1aBzwqX0RJEIP1Z81jfE3NBm/Lg==", "requires": { - "@microsoft/applicationinsights-shims": "2.0.2", - "@microsoft/dynamicproto-js": "^1.1.9" + "@nevware21/ts-utils": ">= 0.9.4 < 2.x" } }, - "@microsoft/applicationinsights-shims": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-shims/-/applicationinsights-shims-2.0.2.tgz", - "integrity": "sha512-PoHEgsnmcqruLNHZ/amACqdJ6YYQpED0KSRe6J7gIJTtpZC1FfFU9b1fmDKDKtFoUSrPzEh1qzO3kmRZP0betg==" - }, "@microsoft/applicationinsights-web-basic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-web-basic/-/applicationinsights-web-basic-3.0.3.tgz", - "integrity": "sha512-PCKfbCTJUbcyZnRzasxlYgV3L1ORVxpggRB1Uohx0rNyEyKPwk7lcCcFos11NEA+pn/XqZrZY5FYSdaLT45wNA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-web-basic/-/applicationinsights-web-basic-3.1.1.tgz", + "integrity": "sha512-/3D0ggfrFEMzI8dw+qEHlAhDH9vT5Mdv655ztNgvX3aSn/TsRpYJmN23zvP7azCioBfhD8T9zWcotkDN2lvtDQ==", "requires": { "@microsoft/applicationinsights-channel-js": "3.0.3", "@microsoft/applicationinsights-common": "3.0.3", @@ -6539,31 +6236,28 @@ "@nevware21/ts-utils": ">= 0.10.1 < 2.x" }, "dependencies": { - "@microsoft/applicationinsights-core-js": { + "@microsoft/applicationinsights-channel-js": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-core-js/-/applicationinsights-core-js-3.0.3.tgz", - "integrity": "sha512-ymtdPHgUhCwIwQZx2ZN3Xw3cq+Z5KHzGmFV8QvURSdUzfaHbjYcHXIQkEZbgCCGOTMLtx9lZqP7J1gbBy0O8GQ==", + "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-channel-js/-/applicationinsights-channel-js-3.0.3.tgz", + "integrity": "sha512-CWcJQCMKU3CxWLFIE8iPa3G5KB3v2RFkAvPICfY8/fwWZq4tWY7zosgvRPDZ+dIkz8Z/+CMy0+KblYzIKDdG4A==", "requires": { + "@microsoft/applicationinsights-common": "3.0.3", + "@microsoft/applicationinsights-core-js": "3.0.3", "@microsoft/applicationinsights-shims": "3.0.1", "@microsoft/dynamicproto-js": "^2.0.2", "@nevware21/ts-async": ">= 0.3.0 < 2.x", "@nevware21/ts-utils": ">= 0.10.1 < 2.x" } }, - "@microsoft/applicationinsights-shims": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-shims/-/applicationinsights-shims-3.0.1.tgz", - "integrity": "sha512-DKwboF47H1nb33rSUfjqI6ryX29v+2QWcTrRvcQDA32AZr5Ilkr7whOOSsD1aBzwqX0RJEIP1Z81jfE3NBm/Lg==", - "requires": { - "@nevware21/ts-utils": ">= 0.9.4 < 2.x" - } - }, - "@microsoft/dynamicproto-js": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@microsoft/dynamicproto-js/-/dynamicproto-js-2.0.2.tgz", - "integrity": "sha512-MB8trWaFREpmb037k/d0bB7T2BP7Ai24w1e1tbz3ASLB0/lwphsq3Nq8S9I5AsI5vs4zAQT+SB5nC5/dLYTiOg==", + "@microsoft/applicationinsights-common": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-common/-/applicationinsights-common-3.0.3.tgz", + "integrity": "sha512-GwnerHHPexry2CMTr6gP2Rjm0e3rgVXZzFCbrxcoOQk8MqrEFDWur6Xs66FwXpGFnY3KV3Zsujkfcl0oePs4Cg==", "requires": { - "@nevware21/ts-utils": ">= 0.9.4 < 2.x" + "@microsoft/applicationinsights-core-js": "3.0.3", + "@microsoft/applicationinsights-shims": "3.0.1", + "@microsoft/dynamicproto-js": "^2.0.2", + "@nevware21/ts-utils": ">= 0.10.1 < 2.x" } } } @@ -6574,22 +6268,25 @@ "integrity": "sha512-2IHAOaLauc8qaAitvWS+U931T+ze+7MNWrDHY47IENP5y2UA0vqJDu67kWZDdpCN1fFC77sfgfB+HV7SrKshnQ==" }, "@microsoft/dynamicproto-js": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/@microsoft/dynamicproto-js/-/dynamicproto-js-1.1.9.tgz", - "integrity": "sha512-n1VPsljTSkthsAFYdiWfC+DKzK2WwcRp83Y1YAqdX552BstvsDjft9YXppjUzp11BPsapDoO1LDgrDB0XVsfNQ==" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@microsoft/dynamicproto-js/-/dynamicproto-js-2.0.3.tgz", + "integrity": "sha512-JTWTU80rMy3mdxOjjpaiDQsTLZ6YSGGqsjURsY6AUQtIj0udlF/jYmhdLZu8693ZIC0T1IwYnFa0+QeiMnziBA==", + "requires": { + "@nevware21/ts-utils": ">= 0.10.4 < 2.x" + } }, "@nevware21/ts-async": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@nevware21/ts-async/-/ts-async-0.3.0.tgz", - "integrity": "sha512-ZUcgUH12LN/F6nzN0cYd0F/rJaMLmXr0EHVTyYfaYmK55bdwE4338uue4UiVoRqHVqNW4KDUrJc49iGogHKeWA==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@nevware21/ts-async/-/ts-async-0.4.0.tgz", + "integrity": "sha512-dbV826TTehQIBIJjh8GDSbwn1Z6+cnkyNbRlpcpdBPH8mROD2zabIUKqWcw9WRdTjjUIm21K+OR4DXWlAyOVTQ==", "requires": { "@nevware21/ts-utils": ">= 0.10.0 < 2.x" } }, "@nevware21/ts-utils": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/@nevware21/ts-utils/-/ts-utils-0.10.1.tgz", - "integrity": "sha512-pMny25NnF2/MJwdqC3Iyjm2pGIXNxni4AROpcqDeWa+td9JMUY4bUS9uU9XW+BoBRqTLUL+WURF9SOd/6OQzRg==" + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/@nevware21/ts-utils/-/ts-utils-0.10.5.tgz", + "integrity": "sha512-+TEvP0+l/VBR5bJZoYFV+o6aQQ1O6y80uys5AVyyCKeWvrgWu/yNydqSBQNsk4BuEfkayg7R9+HCJRRRIvptTA==" }, "@nodelib/fs.scandir": { "version": "2.1.5", @@ -6618,16 +6315,16 @@ } }, "@opentelemetry/api": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.6.0.tgz", - "integrity": "sha512-OWlrQAnWn9577PhVgqjUvMr1pg57Bc4jv0iL4w0PRuOSRvq67rvHW9Ie/dZVMvCzhSCB+UxhcY/PmCmFj33Q+g==" + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz", + "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==" }, "@opentelemetry/core": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.17.0.tgz", - "integrity": "sha512-tfnl3h+UefCgx1aeN2xtrmr6BmdWGKXypk0pflQR0urFS40aE88trnkOMc2HTJZbMrqEEl4HsaBeFhwLVXsrJg==", + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", + "integrity": "sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==", "requires": { - "@opentelemetry/semantic-conventions": "1.17.0" + "@opentelemetry/semantic-conventions": "1.25.1" } }, "@opentelemetry/instrumentation": { @@ -6643,28 +6340,28 @@ } }, "@opentelemetry/resources": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.17.0.tgz", - "integrity": "sha512-+u0ciVnj8lhuL/qGRBPeVYvk7fL+H/vOddfvmOeJaA1KC+5/3UED1c9KoZQlRsNT5Kw1FaK8LkY2NVLYfOVZQw==", + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.25.1.tgz", + "integrity": "sha512-pkZT+iFYIZsVn6+GzM0kSX+u3MSLCY9md+lIJOoKl/P+gJFfxJte/60Usdp8Ce4rOs8GduUpSPNe1ddGyDT1sQ==", "requires": { - "@opentelemetry/core": "1.17.0", - "@opentelemetry/semantic-conventions": "1.17.0" + "@opentelemetry/core": "1.25.1", + "@opentelemetry/semantic-conventions": "1.25.1" } }, "@opentelemetry/sdk-trace-base": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.17.0.tgz", - "integrity": "sha512-2T5HA1/1iE36Q9eg6D4zYlC4Y4GcycI1J6NsHPKZY9oWfAxWsoYnRlkPfUqyY5XVtocCo/xHpnJvGNHwzT70oQ==", + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.25.1.tgz", + "integrity": "sha512-C8k4hnEbc5FamuZQ92nTOp8X/diCY56XUTnMiv9UTuJitCzaNNHAVsdm5+HLCdI8SLQsLWIrG38tddMxLVoftw==", "requires": { - "@opentelemetry/core": "1.17.0", - "@opentelemetry/resources": "1.17.0", - "@opentelemetry/semantic-conventions": "1.17.0" + "@opentelemetry/core": "1.25.1", + "@opentelemetry/resources": "1.25.1", + "@opentelemetry/semantic-conventions": "1.25.1" } }, "@opentelemetry/semantic-conventions": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.17.0.tgz", - "integrity": "sha512-+fguCd2d8d2qruk0H0DsCEy2CTK3t0Tugg7MhZ/UQMvmewbZLNnJ6heSYyzIZWG5IPfAXzoj4f4F/qpM7l4VBA==" + "version": "1.25.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.25.1.tgz", + "integrity": "sha512-ZDjMJJQRlyk8A1KZFCc+bCbsyrn1wTwdNt56F7twdfUfnHUZUq77/WfONCj8p72NZOyP7pNTdUWSTYC3GTbuuQ==" }, "@sinonjs/commons": { "version": "3.0.0", @@ -6825,9 +6522,9 @@ "dev": true }, "@types/shimmer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@types/shimmer/-/shimmer-1.0.3.tgz", - "integrity": "sha512-F/IjUGnV6pIN7R4ZV4npHJVoNtaLZWvb+2/9gctxjb99wkpI7Ozg8VPogwDiTRyjLwZXAYxjvdg1KS8LTHKdDA==" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/shimmer/-/shimmer-1.2.0.tgz", + "integrity": "sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==" }, "@types/sinon": { "version": "10.0.15", @@ -6992,6 +6689,19 @@ "eslint-visitor-keys": "^3.3.0" } }, + "@vscode/debugadapter": { + "version": "1.65.0", + "resolved": "https://registry.npmjs.org/@vscode/debugadapter/-/debugadapter-1.65.0.tgz", + "integrity": "sha512-l9jdX0GFoFVAc7O4O8iVnCjO0pgxbx+wJJXCaYSuglGtYwMNcJdc7xm96cuVx4LWzSqneIjvjzbuzZtoVZhZzQ==", + "requires": { + "@vscode/debugprotocol": "1.65.0" + } + }, + "@vscode/debugprotocol": { + "version": "1.65.0", + "resolved": "https://registry.npmjs.org/@vscode/debugprotocol/-/debugprotocol-1.65.0.tgz", + "integrity": "sha512-ejerrPMBXzYms6Ks+Gb7cdXtdncmT0xwIKNsc0c/SxhEa0HVY5jdvLUegYE91p7CQJpCnXOD/r2CvViN8txLLA==" + }, "@vscode/extension-telemetry": { "version": "0.8.5", "resolved": "https://registry.npmjs.org/@vscode/extension-telemetry/-/extension-telemetry-0.8.5.tgz", @@ -7001,6 +6711,47 @@ "@microsoft/1ds-post-js": "^3.2.13", "@microsoft/applicationinsights-web-basic": "^3.0.2", "applicationinsights": "^2.7.1" + }, + "dependencies": { + "@microsoft/1ds-core-js": { + "version": "3.2.18", + "resolved": "https://registry.npmjs.org/@microsoft/1ds-core-js/-/1ds-core-js-3.2.18.tgz", + "integrity": "sha512-ytlFv3dfb8OGqvbZP8tSIlNvn3QNYxdsF0k6ikRMWSr6CmBxBi1sliaxc2Q5KuYOuaeWkd8WRm25Rx/UtHcyMg==", + "requires": { + "@microsoft/applicationinsights-core-js": "2.8.18", + "@microsoft/applicationinsights-shims": "^2.0.2", + "@microsoft/dynamicproto-js": "^1.1.11" + } + }, + "@microsoft/1ds-post-js": { + "version": "3.2.18", + "resolved": "https://registry.npmjs.org/@microsoft/1ds-post-js/-/1ds-post-js-3.2.18.tgz", + "integrity": "sha512-Tzjcja4SMyws3UP58kD2edFPNb7BJtx5uCgwf/PWXwDyfbUY1/crsTQdEyR98wy/vorvLDZdQlcL++VMChfYnQ==", + "requires": { + "@microsoft/1ds-core-js": "3.2.18", + "@microsoft/applicationinsights-shims": "^2.0.2", + "@microsoft/dynamicproto-js": "^1.1.11" + } + }, + "@microsoft/applicationinsights-core-js": { + "version": "2.8.18", + "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-core-js/-/applicationinsights-core-js-2.8.18.tgz", + "integrity": "sha512-yPHRZFLpnEO0uSgFPM1BLMRRwjoten9YBbn4pJRbCT4PigLnj748knmWsMwXIdcehtkRTYz78kPYa/LWP7nvmA==", + "requires": { + "@microsoft/applicationinsights-shims": "2.0.2", + "@microsoft/dynamicproto-js": "^1.1.11" + } + }, + "@microsoft/applicationinsights-shims": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-shims/-/applicationinsights-shims-2.0.2.tgz", + "integrity": "sha512-PoHEgsnmcqruLNHZ/amACqdJ6YYQpED0KSRe6J7gIJTtpZC1FfFU9b1fmDKDKtFoUSrPzEh1qzO3kmRZP0betg==" + }, + "@microsoft/dynamicproto-js": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/@microsoft/dynamicproto-js/-/dynamicproto-js-1.1.11.tgz", + "integrity": "sha512-gNw9z9LbqLV+WadZ6/MMrWwO3e0LuoUH1wve/1iPsBNbgqeVCiB0EZFNNj2lysxS2gkqoF9hmyVaG3MoM1BkxA==" + } } }, "@vscode/python-extension": { @@ -7321,23 +7072,23 @@ } }, "applicationinsights": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/applicationinsights/-/applicationinsights-2.8.0.tgz", - "integrity": "sha512-pxVOdCPwXTal1A904yGmzOOUJrIeQ89xQir0ifr7fLl+e0BlGrZ1P4StcIDuEXk93gV9CGxGm5Mol8ksPk2mcg==", + "version": "2.9.5", + "resolved": "https://registry.npmjs.org/applicationinsights/-/applicationinsights-2.9.5.tgz", + "integrity": "sha512-APQ8IWyYDHFvKbitFKpsmZXxkzQh0yYTFacQqoVW7HwlPo3eeLprwnq5RFNmmG6iqLmvQ+xRJSDLEQCgqPh+bw==", "requires": { "@azure/core-auth": "^1.5.0", "@azure/core-rest-pipeline": "1.10.1", "@azure/core-util": "1.2.0", "@azure/opentelemetry-instrumentation-azure-sdk": "^1.0.0-beta.5", - "@microsoft/applicationinsights-web-snippet": "^1.0.1", - "@opentelemetry/api": "^1.4.1", - "@opentelemetry/core": "^1.15.2", - "@opentelemetry/sdk-trace-base": "^1.15.2", - "@opentelemetry/semantic-conventions": "^1.15.2", + "@microsoft/applicationinsights-web-snippet": "1.0.1", + "@opentelemetry/api": "^1.7.0", + "@opentelemetry/core": "^1.19.0", + "@opentelemetry/sdk-trace-base": "^1.19.0", + "@opentelemetry/semantic-conventions": "^1.19.0", "cls-hooked": "^4.2.2", "continuation-local-storage": "^3.2.1", "diagnostic-channel": "1.1.1", - "diagnostic-channel-publishers": "1.0.7" + "diagnostic-channel-publishers": "1.0.8" } }, "argparse": { @@ -7409,22 +7160,6 @@ "dev": true, "optional": true }, - "big-integer": { - "version": "1.6.51", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", - "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", - "dev": true - }, - "binary": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", - "integrity": "sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==", - "dev": true, - "requires": { - "buffers": "~0.1.1", - "chainsaw": "~0.1.0" - } - }, "binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -7468,12 +7203,6 @@ } } }, - "bluebird": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", - "integrity": "sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==", - "dev": true - }, "boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", @@ -7491,12 +7220,12 @@ } }, "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, "requires": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" } }, "browser-stdout": { @@ -7529,18 +7258,6 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, - "buffer-indexof-polyfill": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz", - "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==", - "dev": true - }, - "buffers": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", - "integrity": "sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==", - "dev": true - }, "call-bind": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", @@ -7596,15 +7313,6 @@ "check-error": "^1.0.2" } }, - "chainsaw": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", - "integrity": "sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==", - "dev": true, - "requires": { - "traverse": ">=0.3.0 <0.4" - } - }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -7905,9 +7613,9 @@ } }, "diagnostic-channel-publishers": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/diagnostic-channel-publishers/-/diagnostic-channel-publishers-1.0.7.tgz", - "integrity": "sha512-SEECbY5AiVt6DfLkhkaHNeshg1CogdLLANA8xlG/TKvS+XUgvIKl7VspJGYiEdL5OUyzMVnr7o0AwB7f+/Mjtg==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/diagnostic-channel-publishers/-/diagnostic-channel-publishers-1.0.8.tgz", + "integrity": "sha512-HmSm9hXxSPxA9BaLGY98QU1zsdjeCk113KjAYGPCen1ZP6mhVaTPzHd6UYv5r21DnWANi+f+NyPOHruGT9jpqQ==", "requires": {} }, "diff": { @@ -7971,15 +7679,6 @@ "domhandler": "^5.0.3" } }, - "duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", - "dev": true, - "requires": { - "readable-stream": "^2.0.2" - } - }, "electron-to-chromium": { "version": "1.4.428", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.428.tgz", @@ -8345,9 +8044,9 @@ } }, "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "requires": { "to-regex-range": "^5.0.1" @@ -8425,52 +8124,6 @@ "dev": true, "optional": true }, - "fstream": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", - "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - }, - "dependencies": { - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "requires": { - "minimist": "^1.2.6" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, "function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", @@ -9012,12 +8665,6 @@ "uc.micro": "^1.0.1" } }, - "listenercount": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz", - "integrity": "sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ==", - "dev": true - }, "loader-runner": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", @@ -9216,12 +8863,8 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + "dev": true, + "optional": true }, "mkdirp-classic": { "version": "0.5.3", @@ -9820,9 +9463,9 @@ "dev": true }, "require-in-the-middle": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-7.2.0.tgz", - "integrity": "sha512-3TLx5TGyAY6AOqLBoXmHkNql0HIf2RGbuMgCDT2WO/uGVAPJs6h7Kl+bN6TIZGd9bWhWPwnDnTHGtW8Iu77sdw==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-7.3.0.tgz", + "integrity": "sha512-nQFEv9gRw6SJAwWD2LrL0NmQvAcO7FBwJbwmr2ttPAacfy0xuiOjE5zt+zM4xDyuyvUaxBi/9gb2SoCyNEVJcw==", "requires": { "debug": "^4.1.1", "module-details-from-path": "^1.0.3", @@ -10254,12 +9897,6 @@ "is-number": "^7.0.0" } }, - "traverse": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", - "integrity": "sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==", - "dev": true - }, "ts-loader": { "version": "9.4.3", "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.4.3.tgz", @@ -10436,24 +10073,6 @@ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" }, - "unzipper": { - "version": "0.10.14", - "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.14.tgz", - "integrity": "sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g==", - "dev": true, - "requires": { - "big-integer": "^1.6.17", - "binary": "~0.3.0", - "bluebird": "~3.4.1", - "buffer-indexof-polyfill": "~1.0.0", - "duplexer2": "~0.1.4", - "fstream": "^1.0.12", - "graceful-fs": "^4.2.2", - "listenercount": "~1.0.1", - "readable-stream": "~2.3.6", - "setimmediate": "~1.0.4" - } - }, "update-browserslist-db": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", @@ -10498,20 +10117,6 @@ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" }, - "vscode-debugadapter": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/vscode-debugadapter/-/vscode-debugadapter-1.51.0.tgz", - "integrity": "sha512-mObaXD5/FH/z6aL2GDuyCLbnwLsYRCAJWgFid01vKW9Y5Si8OvINK+Tn+Yl/lRUbetjNuZW3j1euMEz6z8Yzqg==", - "requires": { - "mkdirp": "^1.0.4", - "vscode-debugprotocol": "1.51.0" - } - }, - "vscode-debugprotocol": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/vscode-debugprotocol/-/vscode-debugprotocol-1.51.0.tgz", - "integrity": "sha512-dzKWTMMyebIMPF1VYMuuQj7gGFq7guR8AFya0mKacu+ayptJfaRuM0mdHCqiOth4FnRP8mPhEroFPx6Ift8wHA==" - }, "vscode-jsonrpc": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.1.0.tgz", @@ -10559,18 +10164,6 @@ "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.3.tgz", "integrity": "sha512-SYU4z1dL0PyIMd4Vj8YOqFvHu7Hz/enbWtpfnVbJHU4Nd1YNYx8u0ennumc6h48GQNeOLxmwySmnADouT/AuZA==" }, - "vscode-test": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/vscode-test/-/vscode-test-1.6.1.tgz", - "integrity": "sha512-086q88T2ca1k95mUzffvbzb7esqQNvJgiwY4h29ukPhFo8u+vXOOmelUoU5EQUHs3Of8+JuQ3oGdbVCqaxuTXA==", - "dev": true, - "requires": { - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "rimraf": "^3.0.2", - "unzipper": "^0.10.11" - } - }, "watchpack": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", diff --git a/package.json b/package.json index 147b63a8..3e3955b9 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "debugpy" ], "engines": { - "vscode": "^1.87.0" + "vscode": "^1.92.0" }, "categories": [ "Debuggers" @@ -575,11 +575,12 @@ "ts-mockito": "^2.6.1", "typemoq": "^2.1.0", "typescript": "^5.2.2", - "vscode-test": "^1.6.1", "webpack": "^5.87.0", "webpack-cli": "^5.1.4" }, "dependencies": { + "@vscode/debugadapter": "^1.65.0", + "@vscode/debugprotocol": "^1.65.0", "@vscode/extension-telemetry": "^0.8.5", "@vscode/python-extension": "^1.0.5", "fs-extra": "^11.2.0", @@ -588,8 +589,6 @@ "jsonc-parser": "^3.2.0", "lodash": "^4.17.21", "reflect-metadata": "^0.1.13", - "vscode-debugadapter": "^1.51.0", - "vscode-debugprotocol": "^1.51.0", "vscode-languageclient": "^8.0.2" } } diff --git a/src/extension/common/application/debugSessionTelemetry.ts b/src/extension/common/application/debugSessionTelemetry.ts index 756d0be4..bda50aaa 100644 --- a/src/extension/common/application/debugSessionTelemetry.ts +++ b/src/extension/common/application/debugSessionTelemetry.ts @@ -4,7 +4,7 @@ 'use strict'; import { DebugAdapterTracker, DebugAdapterTrackerFactory, DebugSession, ProviderResult } from 'vscode'; -import { DebugProtocol } from 'vscode-debugprotocol'; +import { DebugProtocol } from '@vscode/debugprotocol'; import { IEventNamePropertyMapping, sendTelemetryEvent } from '../../telemetry'; import { EventName } from '../../telemetry/constants'; import { TriggerType, AttachRequestArguments, ConsoleType, LaunchRequestArguments } from '../../types'; diff --git a/src/extension/debugger/adapter/logging.ts b/src/extension/debugger/adapter/logging.ts index 2c243d13..1e180644 100644 --- a/src/extension/debugger/adapter/logging.ts +++ b/src/extension/debugger/adapter/logging.ts @@ -11,7 +11,7 @@ import { DebugSession, ProviderResult, } from 'vscode'; -import { DebugProtocol } from 'vscode-debugprotocol'; +import { DebugProtocol } from '@vscode/debugprotocol'; import { EXTENSION_ROOT_DIR } from '../../common/constants'; import { StopWatch } from '../../common/utils/stopWatch'; diff --git a/src/extension/debugger/adapter/outdatedDebuggerPrompt.ts b/src/extension/debugger/adapter/outdatedDebuggerPrompt.ts index 29aac508..c731a20f 100644 --- a/src/extension/debugger/adapter/outdatedDebuggerPrompt.ts +++ b/src/extension/debugger/adapter/outdatedDebuggerPrompt.ts @@ -3,7 +3,7 @@ 'use strict'; import { DebugAdapterTracker, DebugAdapterTrackerFactory, DebugSession, ProviderResult } from 'vscode'; -import { DebugProtocol } from 'vscode-debugprotocol'; +import { DebugProtocol } from '@vscode/debugprotocol'; import { Common, OutdatedDebugger } from '../../common/utils/localize'; import { launch, showInformationMessage } from '../../common/vscodeapi'; import { IPromptShowState } from './types'; diff --git a/src/extension/debugger/helpers/protocolParser.ts b/src/extension/debugger/helpers/protocolParser.ts index d946a606..3a3f6cf9 100644 --- a/src/extension/debugger/helpers/protocolParser.ts +++ b/src/extension/debugger/helpers/protocolParser.ts @@ -3,7 +3,7 @@ import { EventEmitter } from 'events'; import { Readable } from 'stream'; -import { DebugProtocol } from 'vscode-debugprotocol'; +import { DebugProtocol } from '@vscode/debugprotocol'; import { IProtocolParser } from '../types'; const PROTOCOL_START_INDENTIFIER = '\r\n\r\n'; diff --git a/src/extension/types.ts b/src/extension/types.ts index d7a89edb..10e89edf 100644 --- a/src/extension/types.ts +++ b/src/extension/types.ts @@ -5,7 +5,7 @@ 'use strict'; import { DebugConfiguration } from 'vscode'; -import { DebugProtocol } from 'vscode-debugprotocol/lib/debugProtocol'; +import { DebugProtocol } from '@vscode/debugprotocol'; import { IDisposableRegistry, IExtensionContext } from './common/types'; import { DebuggerTypeName } from './constants'; diff --git a/src/test/unittest/adapter/logging.unit.test.ts b/src/test/unittest/adapter/logging.unit.test.ts index 5cc22547..00df6b36 100644 --- a/src/test/unittest/adapter/logging.unit.test.ts +++ b/src/test/unittest/adapter/logging.unit.test.ts @@ -10,7 +10,7 @@ import * as fs from 'fs-extra'; import * as path from 'path'; import { anything, instance, mock, verify, when } from 'ts-mockito'; import { DebugSession, WorkspaceFolder } from 'vscode'; -import { DebugProtocol } from 'vscode-debugprotocol'; +import { DebugProtocol } from '@vscode/debugprotocol'; import { EXTENSION_ROOT_DIR } from '../../../extension/common/constants'; import { DebugSessionLoggingFactory } from '../../../extension/debugger/adapter/logging'; diff --git a/src/test/unittest/adapter/outdatedDebuggerPrompt.unit.test.ts b/src/test/unittest/adapter/outdatedDebuggerPrompt.unit.test.ts index 0e24f8d5..64091382 100644 --- a/src/test/unittest/adapter/outdatedDebuggerPrompt.unit.test.ts +++ b/src/test/unittest/adapter/outdatedDebuggerPrompt.unit.test.ts @@ -7,7 +7,7 @@ import * as assert from 'assert'; import * as sinon from 'sinon'; import { anyString } from 'ts-mockito'; import { DebugSession, WorkspaceFolder } from 'vscode'; -import { DebugProtocol } from 'vscode-debugprotocol'; +import { DebugProtocol } from '@vscode/debugprotocol'; import { createDeferred } from '../../../extension/common/utils/async'; import { Common } from '../../../extension/common/utils/localize'; import { OutdatedDebuggerPromptFactory } from '../../../extension/debugger/adapter/outdatedDebuggerPrompt'; diff --git a/src/test/unittest/utils.ts b/src/test/unittest/utils.ts index 66b3fd77..f7b2c731 100644 --- a/src/test/unittest/utils.ts +++ b/src/test/unittest/utils.ts @@ -7,7 +7,7 @@ import { expect } from 'chai'; import * as fs from 'fs-extra'; import * as path from 'path'; import * as vscode from 'vscode'; -import { DebugProtocol } from 'vscode-debugprotocol'; +import { DebugProtocol } from '@vscode/debugprotocol'; import { EXTENSION_ROOT_DIR } from '../../extension/common/constants'; import { getDebugpyLauncherArgs } from '../../extension/debugger/adapter/remoteLaunchers'; import { sleep } from '../core'; From e3bac06108607c3338e5e1e03500f65b05be9a22 Mon Sep 17 00:00:00 2001 From: Paula Date: Mon, 22 Jul 2024 16:43:07 -0700 Subject: [PATCH 09/20] Update pre-release pipeline (#398) * Dont use update_ext_version in pre-release * Add flag for standardizedVersioning --- build/azure-pipeline.pre-release.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/build/azure-pipeline.pre-release.yml b/build/azure-pipeline.pre-release.yml index d7d2e1ba..4200f526 100644 --- a/build/azure-pipeline.pre-release.yml +++ b/build/azure-pipeline.pre-release.yml @@ -28,6 +28,7 @@ extends: template: azure-pipelines/extension/pre-release.yml@templates parameters: l10nSourcePaths: ./src + standardizedVersioning: true buildPlatforms: - name: Linux vsceTarget: '' @@ -81,9 +82,6 @@ extends: env: VSCETARGET: ${{ variables.VSCETARGET }} - - script: python ./build/update_ext_version.py --for-publishing - displayName: Update build number - - script: npm run package displayName: Build extension From 3cd031b2947e2db4b59e9870ca4b792942fcfc38 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jul 2024 16:46:39 -0700 Subject: [PATCH 10/20] Bump actions/checkout from 3 to 4 (#103) Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/codeql-analysis.yml | 2 +- .github/workflows/pr-check.yml | 6 +++--- .github/workflows/push-check.yml | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 5b733004..eb8cfb36 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -38,7 +38,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL diff --git a/.github/workflows/pr-check.yml b/.github/workflows/pr-check.yml index 9cb05321..8762bd21 100644 --- a/.github/workflows/pr-check.yml +++ b/.github/workflows/pr-check.yml @@ -16,7 +16,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Build VSIX uses: ./.github/actions/build-vsix @@ -28,7 +28,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Lint uses: ./.github/actions/lint @@ -49,7 +49,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: path: ${{ env.special-working-directory-relative }} diff --git a/.github/workflows/push-check.yml b/.github/workflows/push-check.yml index 4a1a60f8..95016359 100644 --- a/.github/workflows/push-check.yml +++ b/.github/workflows/push-check.yml @@ -21,7 +21,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Build VSIX uses: ./.github/actions/build-vsix @@ -33,7 +33,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Lint uses: ./.github/actions/lint @@ -54,7 +54,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: path: ${{ env.special-working-directory-relative }} From bd0df15d447f7c08b7a698e037e5135860ac5483 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jul 2024 16:48:19 -0700 Subject: [PATCH 11/20] Bump actions/cache from 3 to 4 in /.github/actions/build-vsix (#246) Bumps [actions/cache](https://github.com/actions/cache) from 3 to 4. - [Release notes](https://github.com/actions/cache/releases) - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md) - [Commits](https://github.com/actions/cache/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/cache dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/actions/build-vsix/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/build-vsix/action.yml b/.github/actions/build-vsix/action.yml index ba28a2b6..34894de1 100644 --- a/.github/actions/build-vsix/action.yml +++ b/.github/actions/build-vsix/action.yml @@ -22,7 +22,7 @@ runs: python-version: 3.8 - name: Pip cache - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ~/.cache/pip key: ${{ runner.os }}-pip-build-vsix-${{ hashFiles('**/requirements.txt') }} From 608343c8a34390c4b7bab20ee96c2fbf70b6dbbe Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jul 2024 16:50:15 -0700 Subject: [PATCH 12/20] Bump @typescript-eslint/eslint-plugin from 5.59.11 to 5.62.0 (#250) Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.59.11 to 5.62.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.62.0/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 263 ++++++++++++---------------------------------- package.json | 2 +- 2 files changed, 68 insertions(+), 197 deletions(-) diff --git a/package-lock.json b/package-lock.json index eb526554..1cf0ee21 100644 --- a/package-lock.json +++ b/package-lock.json @@ -32,7 +32,7 @@ "@types/semver": "^7.3.13", "@types/sinon": "^10.0.13", "@types/vscode": "^1.87.0", - "@typescript-eslint/eslint-plugin": "^5.31.0", + "@typescript-eslint/eslint-plugin": "^5.62.0", "@typescript-eslint/parser": "^5.62.0", "@vscode/test-electron": "^2.3.9", "@vscode/vsce": "^2.24.0", @@ -752,17 +752,17 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.59.11", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.11.tgz", - "integrity": "sha512-XxuOfTkCUiOSyBWIvHlUraLw/JT/6Io1365RO6ZuI88STKMavJZPNMU0lFcUTeQXEhHiv64CbxYxBNoDVSmghg==", + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", + "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.59.11", - "@typescript-eslint/type-utils": "5.59.11", - "@typescript-eslint/utils": "5.59.11", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/type-utils": "5.62.0", + "@typescript-eslint/utils": "5.62.0", "debug": "^4.3.4", - "grapheme-splitter": "^1.0.4", + "graphemer": "^1.4.0", "ignore": "^5.2.0", "natural-compare-lite": "^1.4.0", "semver": "^7.3.7", @@ -812,7 +812,7 @@ } } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { + "node_modules/@typescript-eslint/scope-manager": { "version": "5.62.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", @@ -829,88 +829,14 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.59.11", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.11.tgz", - "integrity": "sha512-dHFOsxoLFtrIcSj5h0QoBT/89hxQONwmn3FOQ0GOQcLOOXm+MIrS8zEAhs4tWl5MraxCY3ZJpaXQQdFMc2Tu+Q==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.59.11", - "@typescript-eslint/visitor-keys": "5.59.11" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.59.11", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.11.tgz", - "integrity": "sha512-LZqVY8hMiVRF2a7/swmkStMYSoXMFlzL6sXV6U/2gL5cwnLWQgLEG8tjWPpaE4rMIdZ6VKWwcffPlo1jPfk43g==", + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", + "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "5.59.11", - "@typescript-eslint/utils": "5.59.11", + "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/utils": "5.62.0", "debug": "^4.3.4", "tsutils": "^3.21.0" }, @@ -931,9 +857,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.59.11", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.11.tgz", - "integrity": "sha512-epoN6R6tkvBYSc+cllrz+c2sOFWkbisJZWkOE+y3xHtvYaOE6Wk6B8e114McRJwFRjGvYdJwLXQH5c9osME/AA==", + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -944,13 +870,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.59.11", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.11.tgz", - "integrity": "sha512-YupOpot5hJO0maupJXixi6l5ETdrITxeo5eBOeuV7RSKgYdU3G5cxO49/9WRnJq9EMrB7AuTSLH/bqOsXi7wPA==", + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.59.11", - "@typescript-eslint/visitor-keys": "5.59.11", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -971,17 +897,17 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "5.59.11", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.11.tgz", - "integrity": "sha512-didu2rHSOMUdJThLk4aZ1Or8IcO3HzCw/ZvEjTTIfjIrcdd5cvSIwwDy2AOlE7htSNp7QIZ10fLMyRCveesMLg==", + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.59.11", - "@typescript-eslint/types": "5.59.11", - "@typescript-eslint/typescript-estree": "5.59.11", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", "eslint-scope": "^5.1.1", "semver": "^7.3.7" }, @@ -997,12 +923,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.59.11", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.11.tgz", - "integrity": "sha512-KGYniTGG3AMTuKF9QBD7EIrvufkB6O6uX3knP73xbKLMpH+QRPcgnCxjWXSHjMRuOxFLovljqQgQpR0c7GvjoA==", + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.59.11", + "@typescript-eslint/types": "5.62.0", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -3073,12 +2999,6 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true - }, "node_modules/graphemer": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", @@ -6548,17 +6468,17 @@ "dev": true }, "@typescript-eslint/eslint-plugin": { - "version": "5.59.11", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.11.tgz", - "integrity": "sha512-XxuOfTkCUiOSyBWIvHlUraLw/JT/6Io1365RO6ZuI88STKMavJZPNMU0lFcUTeQXEhHiv64CbxYxBNoDVSmghg==", + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", + "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", "dev": true, "requires": { "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.59.11", - "@typescript-eslint/type-utils": "5.59.11", - "@typescript-eslint/utils": "5.59.11", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/type-utils": "5.62.0", + "@typescript-eslint/utils": "5.62.0", "debug": "^4.3.4", - "grapheme-splitter": "^1.0.4", + "graphemer": "^1.4.0", "ignore": "^5.2.0", "natural-compare-lite": "^1.4.0", "semver": "^7.3.7", @@ -6575,87 +6495,44 @@ "@typescript-eslint/types": "5.62.0", "@typescript-eslint/typescript-estree": "5.62.0", "debug": "^4.3.4" - }, - "dependencies": { - "@typescript-eslint/scope-manager": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" - } - }, - "@typescript-eslint/types": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" - } - } } }, "@typescript-eslint/scope-manager": { - "version": "5.59.11", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.11.tgz", - "integrity": "sha512-dHFOsxoLFtrIcSj5h0QoBT/89hxQONwmn3FOQ0GOQcLOOXm+MIrS8zEAhs4tWl5MraxCY3ZJpaXQQdFMc2Tu+Q==", + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", "dev": true, "requires": { - "@typescript-eslint/types": "5.59.11", - "@typescript-eslint/visitor-keys": "5.59.11" + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" } }, "@typescript-eslint/type-utils": { - "version": "5.59.11", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.11.tgz", - "integrity": "sha512-LZqVY8hMiVRF2a7/swmkStMYSoXMFlzL6sXV6U/2gL5cwnLWQgLEG8tjWPpaE4rMIdZ6VKWwcffPlo1jPfk43g==", + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", + "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", "dev": true, "requires": { - "@typescript-eslint/typescript-estree": "5.59.11", - "@typescript-eslint/utils": "5.59.11", + "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/utils": "5.62.0", "debug": "^4.3.4", "tsutils": "^3.21.0" } }, "@typescript-eslint/types": { - "version": "5.59.11", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.11.tgz", - "integrity": "sha512-epoN6R6tkvBYSc+cllrz+c2sOFWkbisJZWkOE+y3xHtvYaOE6Wk6B8e114McRJwFRjGvYdJwLXQH5c9osME/AA==", + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.59.11", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.11.tgz", - "integrity": "sha512-YupOpot5hJO0maupJXixi6l5ETdrITxeo5eBOeuV7RSKgYdU3G5cxO49/9WRnJq9EMrB7AuTSLH/bqOsXi7wPA==", + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", "dev": true, "requires": { - "@typescript-eslint/types": "5.59.11", - "@typescript-eslint/visitor-keys": "5.59.11", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -6664,28 +6541,28 @@ } }, "@typescript-eslint/utils": { - "version": "5.59.11", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.11.tgz", - "integrity": "sha512-didu2rHSOMUdJThLk4aZ1Or8IcO3HzCw/ZvEjTTIfjIrcdd5cvSIwwDy2AOlE7htSNp7QIZ10fLMyRCveesMLg==", + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.59.11", - "@typescript-eslint/types": "5.59.11", - "@typescript-eslint/typescript-estree": "5.59.11", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", "eslint-scope": "^5.1.1", "semver": "^7.3.7" } }, "@typescript-eslint/visitor-keys": { - "version": "5.59.11", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.11.tgz", - "integrity": "sha512-KGYniTGG3AMTuKF9QBD7EIrvufkB6O6uX3knP73xbKLMpH+QRPcgnCxjWXSHjMRuOxFLovljqQgQpR0c7GvjoA==", + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", "dev": true, "requires": { - "@typescript-eslint/types": "5.59.11", + "@typescript-eslint/types": "5.62.0", "eslint-visitor-keys": "^3.3.0" } }, @@ -8246,12 +8123,6 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" }, - "grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true - }, "graphemer": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", diff --git a/package.json b/package.json index 3e3955b9..879e0d25 100644 --- a/package.json +++ b/package.json @@ -559,7 +559,7 @@ "@types/semver": "^7.3.13", "@types/sinon": "^10.0.13", "@types/vscode": "^1.87.0", - "@typescript-eslint/eslint-plugin": "^5.31.0", + "@typescript-eslint/eslint-plugin": "^5.62.0", "@typescript-eslint/parser": "^5.62.0", "@vscode/test-electron": "^2.3.9", "@vscode/vsce": "^2.24.0", From 4fcbaf0caf78c1c88a36f156ca99f689a15f16b6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jul 2024 16:54:35 -0700 Subject: [PATCH 13/20] Bump actions/setup-node from 3 to 4 (#130) Bumps [actions/setup-node](https://github.com/actions/setup-node) from 3 to 4. - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](https://github.com/actions/setup-node/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/setup-node dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/pr-check.yml | 2 +- .github/workflows/push-check.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pr-check.yml b/.github/workflows/pr-check.yml index 8762bd21..effcffc5 100644 --- a/.github/workflows/pr-check.yml +++ b/.github/workflows/pr-check.yml @@ -69,7 +69,7 @@ jobs: shell: bash - name: Install Node - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: ${{ env.NODE_VERSION }} cache: 'npm' diff --git a/.github/workflows/push-check.yml b/.github/workflows/push-check.yml index 95016359..a200ebb4 100644 --- a/.github/workflows/push-check.yml +++ b/.github/workflows/push-check.yml @@ -74,7 +74,7 @@ jobs: shell: bash - name: Install Node - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: ${{ env.NODE_VERSION }} cache: 'npm' From 83c5cb5376eba0753543c9c2e20f2266198f104e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jul 2024 17:00:17 -0700 Subject: [PATCH 14/20] Bump actions/setup-python from 4 to 5 in /.github/actions/lint (#168) Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/setup-python dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/actions/lint/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/lint/action.yml b/.github/actions/lint/action.yml index 58ce0923..500cdb5f 100644 --- a/.github/actions/lint/action.yml +++ b/.github/actions/lint/action.yml @@ -28,7 +28,7 @@ runs: shell: bash - name: Install Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.8' From d259e1dde9b65b71f00dcfe56dfff767d4f72034 Mon Sep 17 00:00:00 2001 From: Paula Date: Wed, 24 Jul 2024 12:59:05 -0700 Subject: [PATCH 15/20] Fix some minor bugs (#405) * Update test for the error * fix @microsoft/dynamicproto-js error --- src/extension/debugger/inlineValue/pythonInlineValueProvider.ts | 2 +- src/test/pythonFiles/testVarTypes.py | 2 +- webpack.config.js | 1 - 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/extension/debugger/inlineValue/pythonInlineValueProvider.ts b/src/extension/debugger/inlineValue/pythonInlineValueProvider.ts index 21399fe9..aac0d2e9 100644 --- a/src/extension/debugger/inlineValue/pythonInlineValueProvider.ts +++ b/src/extension/debugger/inlineValue/pythonInlineValueProvider.ts @@ -123,7 +123,7 @@ function removeCharsOutsideBraces(code: string): string { while ((tempMatch = insideBracesRegex.exec(content)) !== null) { result += tempMatch[0]; } - const processedContent = result || content; + const processedContent = result; return match[0] + processedContent + match[0]; }); diff --git a/src/test/pythonFiles/testVarTypes.py b/src/test/pythonFiles/testVarTypes.py index 6544ebed..bef79c8a 100644 --- a/src/test/pythonFiles/testVarTypes.py +++ b/src/test/pythonFiles/testVarTypes.py @@ -1,5 +1,5 @@ var1, var2 = 7, 6 -var3 = "hola" +var3 = "var1" var4 = {"a": 1, "b": 2} var5 = [1, 2, 3] var6 = var1 + var2 diff --git a/webpack.config.js b/webpack.config.js index cac8f20b..5f815e0f 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -38,7 +38,6 @@ const extensionConfig = { '@opentelemetry/instrumentation': 'commonjs @opentelemetry/instrumentation', // ignored because we don't ship instrumentation '@azure/opentelemetry-instrumentation-azure-sdk': 'commonjs @azure/opentelemetry-instrumentation-azure-sdk', // ignored because we don't ship instrumentation '@azure/functions-core': '@azure/functions-core', // ignored because we don't ship instrumentation - '@microsoft/dynamicproto-js': '@microsoft/dynamicproto-js', // ignored because we don't ship instrumentation }, resolve: { // support reading TypeScript and JavaScript files, 📖 -> https://github.com/TypeStrong/ts-loader From 36ec5560af85235fe62b57e49cbc4630f93862d4 Mon Sep 17 00:00:00 2001 From: Paula Date: Thu, 25 Jul 2024 15:07:43 -0700 Subject: [PATCH 16/20] Add setting showPythonInlineValues (#407) * Add setting showPythonInlineValues * Fix lint * fix tests * fix package.json * Add experimental tag * fix text * update translations * dont register provider if value is false * fix lint --- package.json | 11 ++++++- package.nls.json | 3 +- src/extension/extensionInit.ts | 30 +++++++++++++++++-- .../pythonInlineValueProvider.unit.test.ts | 16 ++++++++-- 4 files changed, 54 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 879e0d25..aac65214 100644 --- a/package.json +++ b/package.json @@ -128,9 +128,18 @@ "properties": { "debugpy.debugJustMyCode": { "default": true, - "description": "%debugpy.debugJustMyCode%", + "description": "%debugpy.debugJustMyCode.description%", "scope": "resource", "type": "boolean" + }, + "debugpy.showPythonInlineValues": { + "default": false, + "description": "%debugpy.showPythonInlineValues.description%", + "scope": "resource", + "type": "boolean", + "tags": [ + "experimental" + ] } }, "title": "Python Debugger", diff --git a/package.nls.json b/package.nls.json index 2be4c634..13317eed 100644 --- a/package.nls.json +++ b/package.nls.json @@ -4,5 +4,6 @@ "debugpy.command.debugUsingLaunchConfig.title": "Python Debugger: Debug using launch.json", "debugpy.command.reportIssue.title": "Report Issue...", "debugpy.command.viewOutput.title": "Show Output", - "debugpy.debugJustMyCode": "When debugging only step through user-written code. Disable this to allow stepping into library code." + "debugpy.debugJustMyCode..description": "When debugging only step through user-written code. Disable this to allow stepping into library code.", + "debugpy.showPythonInlineValues.description": "Whether to display inline values in the editor while debugging." } diff --git a/src/extension/extensionInit.ts b/src/extension/extensionInit.ts index 84ce22e0..08db7f16 100644 --- a/src/extension/extensionInit.ts +++ b/src/extension/extensionInit.ts @@ -4,11 +4,13 @@ 'use strict'; import { + ConfigurationChangeEvent, debug, DebugConfigurationProviderTriggerKind, DebugTreeItem, DebugVisualization, DebugVisualizationContext, + Disposable, languages, ThemeIcon, Uri, @@ -200,8 +202,32 @@ export async function registerDebugger(context: IExtensionContext): Promise('inlineHexDecoder', registerHexDebugVisualizationTreeProvider()), ); - context.subscriptions.push( - languages.registerInlineValuesProvider({ language: 'python' }, new PythonInlineValueProvider()), + let registerInlineValuesProviderDisposable: Disposable; + + const showInlineValues = getConfiguration('debugpy').get('showPythonInlineValues', false); + if (showInlineValues) { + registerInlineValuesProviderDisposable = languages.registerInlineValuesProvider( + { language: 'python' }, + new PythonInlineValueProvider(), + ); + context.subscriptions.push(registerInlineValuesProviderDisposable); + } + + context.subscriptions.push( + workspace.onDidChangeConfiguration((event: ConfigurationChangeEvent) => { + if (event.affectsConfiguration('debugpy')) { + const showInlineValues = getConfiguration('debugpy').get('showPythonInlineValues', false); + if (!showInlineValues) { + registerInlineValuesProviderDisposable.dispose(); + } else { + registerInlineValuesProviderDisposable = languages.registerInlineValuesProvider( + { language: 'python' }, + new PythonInlineValueProvider(), + ); + context.subscriptions.push(registerInlineValuesProviderDisposable); + } + } + }), ); context.subscriptions.push( diff --git a/src/test/unittest/inlineValue/pythonInlineValueProvider.unit.test.ts b/src/test/unittest/inlineValue/pythonInlineValueProvider.unit.test.ts index 4b3e0c11..9cbdf287 100644 --- a/src/test/unittest/inlineValue/pythonInlineValueProvider.unit.test.ts +++ b/src/test/unittest/inlineValue/pythonInlineValueProvider.unit.test.ts @@ -5,11 +5,12 @@ import * as chaiAsPromised from 'chai-as-promised'; import * as path from 'path'; +import * as TypeMoq from 'typemoq'; import * as sinon from 'sinon'; import { use, expect } from 'chai'; import { EXTENSION_ROOT_DIR_FOR_TESTS } from '../../constants'; import { PythonInlineValueProvider } from '../../../extension/debugger/inlineValue/pythonInlineValueProvider'; -import { workspace, Range, InlineValueContext } from 'vscode'; +import { workspace, Range, InlineValueContext, WorkspaceConfiguration } from 'vscode'; import * as vscodeapi from '../../../extension/common/vscodeapi'; use(chaiAsPromised); @@ -18,16 +19,27 @@ const WS_ROOT = path.join(EXTENSION_ROOT_DIR_FOR_TESTS, 'src', 'test'); suite('Debugging - pythonInlineProvider', () => { let customRequestStub: sinon.SinonStub; + let getConfigurationStub: sinon.SinonStub; setup(() => { customRequestStub = sinon.stub(vscodeapi, 'customRequest'); customRequestStub.withArgs('scopes', sinon.match.any).resolves({ scopes: [{ variablesReference: 0 }] }); + getConfigurationStub = sinon.stub(vscodeapi, 'getConfiguration'); + getConfigurationStub.withArgs('debugpy').returns(createMoqConfiguration(true)); }); teardown(async () => { sinon.restore(); }); + function createMoqConfiguration(showPythonInlineValues: boolean) { + const debugpySettings = TypeMoq.Mock.ofType(); + debugpySettings + .setup((p) => p.get('showPythonInlineValues', TypeMoq.It.isAny())) + .returns(() => showPythonInlineValues); + return debugpySettings.object; + } + test('ProvideInlineValues function should return all the vars in the python file', async () => { customRequestStub.withArgs('variables', sinon.match.any).resolves({ variables: [ @@ -331,7 +343,7 @@ suite('Debugging - pythonInlineProvider', () => { expect(result).to.deep.equal(expected); }); - test.only('ProvideInlineValues function should return all the vars in the python file using Assignment Expressions', async () => { + test('ProvideInlineValues function should return all the vars in the python file using Assignment Expressions', async () => { customRequestStub.withArgs('variables', sinon.match.any).resolves({ variables: [ { From 49d0ce040dc8a4ba88b56557275f2abc55f87371 Mon Sep 17 00:00:00 2001 From: Paula Date: Thu, 25 Jul 2024 17:12:08 -0700 Subject: [PATCH 17/20] Only show readable variable types (#409) * Get variable info of children * Fix tests * Fix error in settings * fix lint --- .../inlineValue/pythonInlineValueProvider.ts | 35 ++++-- src/extension/extensionInit.ts | 2 +- .../pythonInlineValueProvider.unit.test.ts | 101 +++++++++++------- 3 files changed, 92 insertions(+), 46 deletions(-) diff --git a/src/extension/debugger/inlineValue/pythonInlineValueProvider.ts b/src/extension/debugger/inlineValue/pythonInlineValueProvider.ts index aac0d2e9..ae836d2b 100644 --- a/src/extension/debugger/inlineValue/pythonInlineValueProvider.ts +++ b/src/extension/debugger/inlineValue/pythonInlineValueProvider.ts @@ -65,9 +65,17 @@ export class PythonInlineValueProvider implements InlineValuesProvider { 'self', ]; - const pythonVariables: any[] = variablesRequest.variables + let includeTypes = ['int', 'float', 'str', 'list', 'dict', 'tuple', 'set', 'bool']; + + const pythonVariables = variablesRequest.variables .filter((variable: any) => variable.type) - .map((variable: any) => variable.name); + .reduce((acc: { [key: string]: any }, variable: any) => { + acc[variable.name] = { + type: variable.type, + variablesReference: variable.variablesReference, + }; + return acc; + }, {}); let variableRegex = new RegExp( '(?:[a-zA-Z_][a-zA-Z0-9_]*\\.)*' + //match any number of variable names separated by '.' @@ -91,13 +99,26 @@ export class PythonInlineValueProvider implements InlineValuesProvider { if (pythonKeywords.includes(varName)) { continue; } - if (pythonVariables.includes(varName.split('.')[0])) { + let baseVarName = varName.split('.')[0]; + if (pythonVariables.hasOwnProperty(baseVarName)) { if (varName.includes('.')) { - const rng = new Range(l, match.index, l, match.index + varName.length); - allValues.push(new InlineValueEvaluatableExpression(rng, varName)); + //Find variable name in the variable children + let foundVariable = ( + await customRequest('variables', { + variablesReference: pythonVariables[baseVarName].variablesReference, + }) + ).variables.find((variable: any) => variable.evaluateName === varName); + //Check the type of the variable before adding to the inline values + if (foundVariable && includeTypes.includes(foundVariable.type)) { + const rng = new Range(l, match.index, l, match.index + varName.length); + allValues.push(new InlineValueEvaluatableExpression(rng, varName)); + } } else { - const rng = new Range(l, match.index, l, match.index + varName.length); - allValues.push(new InlineValueVariableLookup(rng, varName, false)); + //Check the type of the variable before adding to the inline values + if (includeTypes.includes(pythonVariables[baseVarName].type)) { + const rng = new Range(l, match.index, l, match.index + varName.length); + allValues.push(new InlineValueVariableLookup(rng, varName, false)); + } } } } diff --git a/src/extension/extensionInit.ts b/src/extension/extensionInit.ts index 08db7f16..976e3405 100644 --- a/src/extension/extensionInit.ts +++ b/src/extension/extensionInit.ts @@ -215,7 +215,7 @@ export async function registerDebugger(context: IExtensionContext): Promise { - if (event.affectsConfiguration('debugpy')) { + if (event.affectsConfiguration('debugpy.showPythonInlineValues')) { const showInlineValues = getConfiguration('debugpy').get('showPythonInlineValues', false); if (!showInlineValues) { registerInlineValuesProviderDisposable.dispose(); diff --git a/src/test/unittest/inlineValue/pythonInlineValueProvider.unit.test.ts b/src/test/unittest/inlineValue/pythonInlineValueProvider.unit.test.ts index 9cbdf287..53ca560c 100644 --- a/src/test/unittest/inlineValue/pythonInlineValueProvider.unit.test.ts +++ b/src/test/unittest/inlineValue/pythonInlineValueProvider.unit.test.ts @@ -202,14 +202,35 @@ suite('Debugging - pythonInlineProvider', () => { }); test('ProvideInlineValues function should return all the vars in the python file with self in class', async () => { + customRequestStub + .withArgs('variables', sinon.match.any) + .onFirstCall() + .resolves({ + variables: [ + { + name: 'self', + value: '<__main__.Person object at 0x10b223310>', + type: 'Person', + evaluateName: 'self', + variablesReference: 5, + }, + ], + }); customRequestStub.withArgs('variables', sinon.match.any).resolves({ variables: [ { - name: 'self', - value: '<__main__.Person object at 0x10b223310>', - type: 'Person', - evaluateName: 'self', - variablesReference: 5, + name: 'name', + value: "'John'", + type: 'str', + evaluateName: 'self.name', + variablesReference: 0, + }, + { + name: 'age', + value: '25', + type: 'int', + evaluateName: 'self.age', + variablesReference: 0, }, ], }); @@ -278,15 +299,46 @@ suite('Debugging - pythonInlineProvider', () => { expect(result).to.deep.equal(expected); }); - test('ProvideInlineValues function should return all the vars in the python file with class variables', async () => { + test('ProvideInlineValues function should return the vars in the python file with readable class variables', async () => { + customRequestStub + .withArgs('variables', sinon.match.any) + .onFirstCall() + .resolves({ + variables: [ + { + name: 'person1', + value: '<__main__.Person object at 0x1085c92b0>', + type: 'Person', + evaluateName: 'person1', + variablesReference: 7, + }, + ], + }); customRequestStub.withArgs('variables', sinon.match.any).resolves({ variables: [ { - name: 'person1', - value: '<__main__.Person object at 0x1085c92b0>', - type: 'Person', - evaluateName: 'person1', - variablesReference: 7, + name: 'age', + value: '30', + type: 'int', + evaluateName: 'person1.age', + variablesReference: 0, + }, + { + name: 'id', + value: '1', + type: 'int', + evaluateName: 'person1.id', + variablesReference: 0, + }, + { + name: 'name', + value: "'John Doe'", + type: 'str', + evaluateName: 'person1.name', + variablesReference: 0, + presentationHint: { + attributes: ['rawString'], + }, }, ], }); @@ -299,33 +351,6 @@ suite('Debugging - pythonInlineProvider', () => { const result = await inlineValueProvider.provideInlineValues(document, viewPort, context); const expected = [ - { - range: { - c: { - c: 9, - e: 0, - }, - e: { - c: 9, - e: 7, - }, - }, - variableName: 'person1', - caseSensitiveLookup: false, - }, - { - range: { - c: { - c: 10, - e: 0, - }, - e: { - c: 10, - e: 13, - }, - }, - expression: 'person1.greet', - }, { range: { c: { From de9f2c7194393468d3a0c2a616c8af405e80a3d2 Mon Sep 17 00:00:00 2001 From: Paula Date: Thu, 25 Jul 2024 17:41:37 -0700 Subject: [PATCH 18/20] Fix translation error (#411) --- package.nls.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.nls.json b/package.nls.json index 13317eed..5a53eb61 100644 --- a/package.nls.json +++ b/package.nls.json @@ -4,6 +4,6 @@ "debugpy.command.debugUsingLaunchConfig.title": "Python Debugger: Debug using launch.json", "debugpy.command.reportIssue.title": "Report Issue...", "debugpy.command.viewOutput.title": "Show Output", - "debugpy.debugJustMyCode..description": "When debugging only step through user-written code. Disable this to allow stepping into library code.", + "debugpy.debugJustMyCode.description": "When debugging only step through user-written code. Disable this to allow stepping into library code.", "debugpy.showPythonInlineValues.description": "Whether to display inline values in the editor while debugging." } From 82b0c886b760f75934d6c0be2e80ab35c270f142 Mon Sep 17 00:00:00 2001 From: Paula Date: Tue, 30 Jul 2024 17:09:21 -0700 Subject: [PATCH 19/20] bump release (#416) --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1cf0ee21..100fa5e2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "debugpy", - "version": "2024.9.0-dev", + "version": "2024.10.0-rc", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "debugpy", - "version": "2024.9.0-dev", + "version": "2024.10.0-rc", "license": "MIT", "dependencies": { "@vscode/debugadapter": "^1.65.0", diff --git a/package.json b/package.json index aac65214..1afb7313 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "debugpy", "displayName": "Python Debugger", "description": "Python Debugger extension using debugpy.", - "version": "2024.9.0-dev", + "version": "2024.10.0-rc", "publisher": "ms-python", "enabledApiProposals": [ "portsAttributes", From 086d09062d3dd7cc25d64d8dbd93486d124ce9fd Mon Sep 17 00:00:00 2001 From: Paula Date: Wed, 31 Jul 2024 09:39:08 -0700 Subject: [PATCH 20/20] bump-dev-version-2024.11 (#417) --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 100fa5e2..42aa0e1d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "debugpy", - "version": "2024.10.0-rc", + "version": "2024.11.0-dev", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "debugpy", - "version": "2024.10.0-rc", + "version": "2024.11.0-dev", "license": "MIT", "dependencies": { "@vscode/debugadapter": "^1.65.0", diff --git a/package.json b/package.json index 1afb7313..c57ad12f 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "debugpy", "displayName": "Python Debugger", "description": "Python Debugger extension using debugpy.", - "version": "2024.10.0-rc", + "version": "2024.11.0-dev", "publisher": "ms-python", "enabledApiProposals": [ "portsAttributes",