diff --git a/package-lock.json b/package-lock.json index dc0f9a06f..ab08324d3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,7 +18,7 @@ "@azure/storage-blob": "^12.4.1", "@microsoft/vscode-azext-azureutils": "^2.0.0", "@microsoft/vscode-azext-github": "^1.0.0", - "@microsoft/vscode-azext-utils": "^2.1.3", + "@microsoft/vscode-azext-utils": "^2.1.5", "@microsoft/vscode-azureresources-api": "^2.0.2", "buffer": "^6.0.3", "dayjs": "^1.11.3", @@ -712,46 +712,105 @@ } }, "node_modules/@microsoft/1ds-core-js": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/@microsoft/1ds-core-js/-/1ds-core-js-3.2.3.tgz", - "integrity": "sha512-796A8fd90oUKDRO7UXUT9BwZ3G+a9XzJj5v012FcCN/2qRhEsIV3x/0wkx2S08T4FiQEUPkB2uoYHpEjEneM7g==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@microsoft/1ds-core-js/-/1ds-core-js-4.0.5.tgz", + "integrity": "sha512-uTOSUoXt/KgnLlGWED+vLLnYCFq1kDFbej+pGAbR+6tMGajCgw3Xz3Xcal0nYhk9RM2hvWWAt5gs6Bu2Si/46g==", "dependencies": { - "@microsoft/applicationinsights-core-js": "2.8.4", - "@microsoft/applicationinsights-shims": "^2.0.1", - "@microsoft/dynamicproto-js": "^1.1.6" + "@microsoft/applicationinsights-core-js": "3.0.7", + "@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" } }, "node_modules/@microsoft/1ds-post-js": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/@microsoft/1ds-post-js/-/1ds-post-js-3.2.3.tgz", - "integrity": "sha512-tcGJQXXr2LYoBbIXPoUVe1KCF3OtBsuKDFL7BXfmNtuSGtWF0yejm6H83DrR8/cUIGMRMUP9lqNlqFGwDYiwAQ==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@microsoft/1ds-post-js/-/1ds-post-js-4.0.5.tgz", + "integrity": "sha512-jziJe/nXxgDhnW0sWkXbj9ZfwHXRH6UCn6eGgyWlog3iWP8FgXzna8Rugvct2r43XEqGs6c/NKxuFXAVtyGXjg==", + "dependencies": { + "@microsoft/1ds-core-js": "4.0.5", + "@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" + } + }, + "node_modules/@microsoft/applicationinsights-channel-js": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-channel-js/-/applicationinsights-channel-js-3.0.7.tgz", + "integrity": "sha512-3y8ct8V2bGo7QaYVrfQcWZeOci2tUZhXkme3k7nKa2P7upSX/1d+dPF12EelxrtWVLxtfCQJkk+2W4M1AyejGQ==", + "dependencies": { + "@microsoft/applicationinsights-common": "3.0.7", + "@microsoft/applicationinsights-core-js": "3.0.7", + "@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-common": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-common/-/applicationinsights-common-3.0.7.tgz", + "integrity": "sha512-boumvLA7LZu0NmwT9ThpTAI64BNYUlOkFNcjUbYeKNEaE6CBPGX/z25XXlYu+j4hHldDaCn9zC1LuN7AuoMJSA==", "dependencies": { - "@microsoft/1ds-core-js": "3.2.3", - "@microsoft/applicationinsights-shims": "^2.0.1", - "@microsoft/dynamicproto-js": "^1.1.6" + "@microsoft/applicationinsights-core-js": "3.0.7", + "@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-core-js": { - "version": "2.8.4", - "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-core-js/-/applicationinsights-core-js-2.8.4.tgz", - "integrity": "sha512-FoA0FNOsFbJnLyTyQlYs6+HR7HMEa6nAOE6WOm9WVejBHMHQ/Bdb+hfVFi6slxwCimr/ner90jchi4/sIYdnyQ==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-core-js/-/applicationinsights-core-js-3.0.7.tgz", + "integrity": "sha512-sVnnVW4fWXzZdtUTVjuwH3xGa1cj+tW7r72voMZzyuNOZ41fBOCK9AqoV0nKP5VCgNjySwn6Rpbw82I4TKKosQ==", "dependencies": { - "@microsoft/applicationinsights-shims": "2.0.1", - "@microsoft/dynamicproto-js": "^1.1.6" + "@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-shims": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-shims/-/applicationinsights-shims-2.0.1.tgz", - "integrity": "sha512-G0MXf6R6HndRbDy9BbEj0zrLeuhwt2nsXk2zKtF0TnYo39KgYqhYC2ayIzKPTm2KAE+xzD7rgyLdZnrcRvt9WQ==" + "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": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-web-basic/-/applicationinsights-web-basic-3.0.7.tgz", + "integrity": "sha512-D1Zuv/UMwm37bosZi7aZgjLt4xXTAe98ttAoSel/JThglZ2grYBixBHUjgAGzyno8u9JZElPviRHIAWWYAk3TQ==", + "dependencies": { + "@microsoft/applicationinsights-channel-js": "3.0.7", + "@microsoft/applicationinsights-common": "3.0.7", + "@microsoft/applicationinsights-core-js": "3.0.7", + "@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/dynamicproto-js": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/@microsoft/dynamicproto-js/-/dynamicproto-js-1.1.6.tgz", - "integrity": "sha512-D1Oivw1A4bIXhzBIy3/BBPn3p2On+kpO2NiYt9shICDK7L/w+cR6FFBUsBZ05l6iqzTeL+Jm8lAYn0g6G7DmDg==" + "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/eslint-config-azuretools": { "version": "0.2.2", @@ -890,12 +949,12 @@ } }, "node_modules/@microsoft/vscode-azext-utils": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@microsoft/vscode-azext-utils/-/vscode-azext-utils-2.1.3.tgz", - "integrity": "sha512-Qz5MHTupG4vDFmhXDNzjpoISVRtDhELECzuZKcRG90nVlZgdmCZ1uHh/AS4fPEf15UiA+woJ7RRvUpsZRjO/Xw==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@microsoft/vscode-azext-utils/-/vscode-azext-utils-2.1.5.tgz", + "integrity": "sha512-QmSEWeWh19MIj65Xl+lOb4Sa9CnNBA1nAeclWpHXPH9okm8Tp75a0YJmhWF67vFL86PYe83hikiObumYvJzhzg==", "dependencies": { "@microsoft/vscode-azureresources-api": "^2.0.4", - "@vscode/extension-telemetry": "^0.6.2", + "@vscode/extension-telemetry": "^0.9.0", "dayjs": "^1.11.2", "escape-string-regexp": "^2.0.0", "html-to-text": "^8.2.0", @@ -932,6 +991,19 @@ "@azure/ms-rest-azure-env": "^2.0.0" } }, + "node_modules/@nevware21/ts-async": { + "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==" + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -1552,15 +1624,16 @@ } }, "node_modules/@vscode/extension-telemetry": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/@vscode/extension-telemetry/-/extension-telemetry-0.6.2.tgz", - "integrity": "sha512-yb/wxLuaaCRcBAZtDCjNYSisAXz3FWsSqAha5nhHcYxx2ZPdQdWuZqVXGKq0ZpHVndBWWtK6XqtpCN2/HB4S1w==", + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/@vscode/extension-telemetry/-/extension-telemetry-0.9.2.tgz", + "integrity": "sha512-O6VMCDkzypjULhgy2l6fih3c3fExPmSj7aewtW5jBJYgXcIIjtkJOttIfnKOCP4S8sNfc6xc1Do4MbUDmhduEw==", "dependencies": { - "@microsoft/1ds-core-js": "^3.2.3", - "@microsoft/1ds-post-js": "^3.2.3" + "@microsoft/1ds-core-js": "^4.0.3", + "@microsoft/1ds-post-js": "^4.0.3", + "@microsoft/applicationinsights-web-basic": "^3.0.6" }, "engines": { - "vscode": "^1.60.0" + "vscode": "^1.75.0" } }, "node_modules/@vscode/test-electron": { @@ -12290,43 +12363,93 @@ } }, "@microsoft/1ds-core-js": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/@microsoft/1ds-core-js/-/1ds-core-js-3.2.3.tgz", - "integrity": "sha512-796A8fd90oUKDRO7UXUT9BwZ3G+a9XzJj5v012FcCN/2qRhEsIV3x/0wkx2S08T4FiQEUPkB2uoYHpEjEneM7g==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@microsoft/1ds-core-js/-/1ds-core-js-4.0.5.tgz", + "integrity": "sha512-uTOSUoXt/KgnLlGWED+vLLnYCFq1kDFbej+pGAbR+6tMGajCgw3Xz3Xcal0nYhk9RM2hvWWAt5gs6Bu2Si/46g==", "requires": { - "@microsoft/applicationinsights-core-js": "2.8.4", - "@microsoft/applicationinsights-shims": "^2.0.1", - "@microsoft/dynamicproto-js": "^1.1.6" + "@microsoft/applicationinsights-core-js": "3.0.7", + "@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/1ds-post-js": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/@microsoft/1ds-post-js/-/1ds-post-js-3.2.3.tgz", - "integrity": "sha512-tcGJQXXr2LYoBbIXPoUVe1KCF3OtBsuKDFL7BXfmNtuSGtWF0yejm6H83DrR8/cUIGMRMUP9lqNlqFGwDYiwAQ==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@microsoft/1ds-post-js/-/1ds-post-js-4.0.5.tgz", + "integrity": "sha512-jziJe/nXxgDhnW0sWkXbj9ZfwHXRH6UCn6eGgyWlog3iWP8FgXzna8Rugvct2r43XEqGs6c/NKxuFXAVtyGXjg==", + "requires": { + "@microsoft/1ds-core-js": "4.0.5", + "@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-channel-js": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-channel-js/-/applicationinsights-channel-js-3.0.7.tgz", + "integrity": "sha512-3y8ct8V2bGo7QaYVrfQcWZeOci2tUZhXkme3k7nKa2P7upSX/1d+dPF12EelxrtWVLxtfCQJkk+2W4M1AyejGQ==", + "requires": { + "@microsoft/applicationinsights-common": "3.0.7", + "@microsoft/applicationinsights-core-js": "3.0.7", + "@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-common": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-common/-/applicationinsights-common-3.0.7.tgz", + "integrity": "sha512-boumvLA7LZu0NmwT9ThpTAI64BNYUlOkFNcjUbYeKNEaE6CBPGX/z25XXlYu+j4hHldDaCn9zC1LuN7AuoMJSA==", "requires": { - "@microsoft/1ds-core-js": "3.2.3", - "@microsoft/applicationinsights-shims": "^2.0.1", - "@microsoft/dynamicproto-js": "^1.1.6" + "@microsoft/applicationinsights-core-js": "3.0.7", + "@microsoft/applicationinsights-shims": "3.0.1", + "@microsoft/dynamicproto-js": "^2.0.2", + "@nevware21/ts-utils": ">= 0.10.1 < 2.x" } }, "@microsoft/applicationinsights-core-js": { - "version": "2.8.4", - "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-core-js/-/applicationinsights-core-js-2.8.4.tgz", - "integrity": "sha512-FoA0FNOsFbJnLyTyQlYs6+HR7HMEa6nAOE6WOm9WVejBHMHQ/Bdb+hfVFi6slxwCimr/ner90jchi4/sIYdnyQ==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-core-js/-/applicationinsights-core-js-3.0.7.tgz", + "integrity": "sha512-sVnnVW4fWXzZdtUTVjuwH3xGa1cj+tW7r72voMZzyuNOZ41fBOCK9AqoV0nKP5VCgNjySwn6Rpbw82I4TKKosQ==", "requires": { - "@microsoft/applicationinsights-shims": "2.0.1", - "@microsoft/dynamicproto-js": "^1.1.6" + "@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": "2.0.1", - "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-shims/-/applicationinsights-shims-2.0.1.tgz", - "integrity": "sha512-G0MXf6R6HndRbDy9BbEj0zrLeuhwt2nsXk2zKtF0TnYo39KgYqhYC2ayIzKPTm2KAE+xzD7rgyLdZnrcRvt9WQ==" + "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/applicationinsights-web-basic": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@microsoft/applicationinsights-web-basic/-/applicationinsights-web-basic-3.0.7.tgz", + "integrity": "sha512-D1Zuv/UMwm37bosZi7aZgjLt4xXTAe98ttAoSel/JThglZ2grYBixBHUjgAGzyno8u9JZElPviRHIAWWYAk3TQ==", + "requires": { + "@microsoft/applicationinsights-channel-js": "3.0.7", + "@microsoft/applicationinsights-common": "3.0.7", + "@microsoft/applicationinsights-core-js": "3.0.7", + "@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/dynamicproto-js": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/@microsoft/dynamicproto-js/-/dynamicproto-js-1.1.6.tgz", - "integrity": "sha512-D1Oivw1A4bIXhzBIy3/BBPn3p2On+kpO2NiYt9shICDK7L/w+cR6FFBUsBZ05l6iqzTeL+Jm8lAYn0g6G7DmDg==" + "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/eslint-config-azuretools": { "version": "0.2.2", @@ -12446,12 +12569,12 @@ } }, "@microsoft/vscode-azext-utils": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@microsoft/vscode-azext-utils/-/vscode-azext-utils-2.1.3.tgz", - "integrity": "sha512-Qz5MHTupG4vDFmhXDNzjpoISVRtDhELECzuZKcRG90nVlZgdmCZ1uHh/AS4fPEf15UiA+woJ7RRvUpsZRjO/Xw==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@microsoft/vscode-azext-utils/-/vscode-azext-utils-2.1.5.tgz", + "integrity": "sha512-QmSEWeWh19MIj65Xl+lOb4Sa9CnNBA1nAeclWpHXPH9okm8Tp75a0YJmhWF67vFL86PYe83hikiObumYvJzhzg==", "requires": { "@microsoft/vscode-azureresources-api": "^2.0.4", - "@vscode/extension-telemetry": "^0.6.2", + "@vscode/extension-telemetry": "^0.9.0", "dayjs": "^1.11.2", "escape-string-regexp": "^2.0.0", "html-to-text": "^8.2.0", @@ -12479,6 +12602,19 @@ "integrity": "sha512-dqjLyHl0OJgnjEtMtZEDvA9YovszWnE2k3ktEcHiTHWZ62luYrhOQhMzJjGArSFH3ANRCWgS6A1q4OTjZoBrKQ==", "requires": {} }, + "@nevware21/ts-async": { + "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==" + }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -12975,12 +13111,13 @@ } }, "@vscode/extension-telemetry": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/@vscode/extension-telemetry/-/extension-telemetry-0.6.2.tgz", - "integrity": "sha512-yb/wxLuaaCRcBAZtDCjNYSisAXz3FWsSqAha5nhHcYxx2ZPdQdWuZqVXGKq0ZpHVndBWWtK6XqtpCN2/HB4S1w==", + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/@vscode/extension-telemetry/-/extension-telemetry-0.9.2.tgz", + "integrity": "sha512-O6VMCDkzypjULhgy2l6fih3c3fExPmSj7aewtW5jBJYgXcIIjtkJOttIfnKOCP4S8sNfc6xc1Do4MbUDmhduEw==", "requires": { - "@microsoft/1ds-core-js": "^3.2.3", - "@microsoft/1ds-post-js": "^3.2.3" + "@microsoft/1ds-core-js": "^4.0.3", + "@microsoft/1ds-post-js": "^4.0.3", + "@microsoft/applicationinsights-web-basic": "^3.0.6" } }, "@vscode/test-electron": { diff --git a/package.json b/package.json index d9260245a..fe445090b 100644 --- a/package.json +++ b/package.json @@ -242,6 +242,11 @@ "command": "containerApps.createAcr", "title": "%containerApps.createAcr%", "category": "Azure Container Apps" + }, + { + "command": "containerApps.openAcrBuildLogs", + "title": "%containerApps.openAcrBuildLogs%", + "category": "Azure Container Apps" } ], "submenus": [ @@ -501,6 +506,10 @@ { "command": "containerApps.deployImageApi", "when": "never" + }, + { + "command": "containerApps.openAcrBuildLogs", + "when": "never" } ] }, @@ -608,7 +617,7 @@ "@azure/storage-blob": "^12.4.1", "@microsoft/vscode-azext-azureutils": "^2.0.0", "@microsoft/vscode-azext-github": "^1.0.0", - "@microsoft/vscode-azext-utils": "^2.1.3", + "@microsoft/vscode-azext-utils": "^2.1.5", "@microsoft/vscode-azureresources-api": "^2.0.2", "buffer": "^6.0.3", "dayjs": "^1.11.3", diff --git a/package.nls.json b/package.nls.json index 7f145a6b1..9d76c9f9c 100644 --- a/package.nls.json +++ b/package.nls.json @@ -46,6 +46,7 @@ "containerApps.startStreamingLogs": "Start Streaming Logs...", "containerApps.stopStreamingLogs": "Stop Streaming Logs...", "containerApps.createAcr": "Create Azure Container Registry...", + "containerApps.openAcrBuildLogs": "Open Azure Container Registry Build Logs", "containerApps.deployWorkspaceProject.containerAppName": "When deploying from a local workspace project, the name of the target container app to deploy to.", "containerApps.deployWorkspaceProject.containerAppResourceGroupName": "When deploying from a local workspace project, the name of the target container app's resource group.", "containerApps.deployWorkspaceProject.containerRegistryName": "When deploying from a local workspace project, the name of the Azure Container Registry to use for storing and building images." diff --git a/src/commands/createContainerApp/ContainerAppCreateStep.ts b/src/commands/createContainerApp/ContainerAppCreateStep.ts index 5fddbd170..c1cd1be85 100644 --- a/src/commands/createContainerApp/ContainerAppCreateStep.ts +++ b/src/commands/createContainerApp/ContainerAppCreateStep.ts @@ -5,9 +5,9 @@ import { KnownActiveRevisionsMode, type ContainerAppsAPIClient, type Ingress } from "@azure/arm-appcontainers"; import { LocationListStep } from "@microsoft/vscode-azext-azureutils"; -import { GenericTreeItem, nonNullProp, nonNullValueAndProp } from "@microsoft/vscode-azext-utils"; +import { GenericTreeItem, activityFailContext, activityFailIcon, activitySuccessContext, activitySuccessIcon, nonNullProp, nonNullValueAndProp } from "@microsoft/vscode-azext-utils"; import { type Progress } from "vscode"; -import { activityFailContext, activityFailIcon, activitySuccessContext, activitySuccessIcon, containerAppsWebProvider } from "../../constants"; +import { containerAppsWebProvider } from "../../constants"; import { ContainerAppItem } from "../../tree/ContainerAppItem"; import { ExecuteActivityOutputStepBase, type ExecuteActivityOutput } from "../../utils/activity/ExecuteActivityOutputStepBase"; import { createActivityChildContext } from "../../utils/activity/activityUtils"; diff --git a/src/commands/createManagedEnvironment/LogAnalyticsCreateStep.ts b/src/commands/createManagedEnvironment/LogAnalyticsCreateStep.ts index 96abff9cf..1b49073ec 100644 --- a/src/commands/createManagedEnvironment/LogAnalyticsCreateStep.ts +++ b/src/commands/createManagedEnvironment/LogAnalyticsCreateStep.ts @@ -4,9 +4,8 @@ *--------------------------------------------------------------------------------------------*/ import { LocationListStep } from "@microsoft/vscode-azext-azureutils"; -import { GenericTreeItem } from "@microsoft/vscode-azext-utils"; +import { GenericTreeItem, activityFailContext, activityFailIcon, activitySuccessContext, activitySuccessIcon } from "@microsoft/vscode-azext-utils"; import { type Progress } from "vscode"; -import { activityFailContext, activityFailIcon, activitySuccessContext, activitySuccessIcon } from "../../constants"; import { ExecuteActivityOutputStepBase, type ExecuteActivityOutput } from "../../utils/activity/ExecuteActivityOutputStepBase"; import { createActivityChildContext } from "../../utils/activity/activityUtils"; import { createOperationalInsightsManagementClient } from "../../utils/azureClients"; diff --git a/src/commands/createManagedEnvironment/ManagedEnvironmentCreateStep.ts b/src/commands/createManagedEnvironment/ManagedEnvironmentCreateStep.ts index 964a45ead..e2b2a6157 100644 --- a/src/commands/createManagedEnvironment/ManagedEnvironmentCreateStep.ts +++ b/src/commands/createManagedEnvironment/ManagedEnvironmentCreateStep.ts @@ -5,9 +5,9 @@ import { type ContainerAppsAPIClient } from "@azure/arm-appcontainers"; import { getResourceGroupFromId, LocationListStep } from "@microsoft/vscode-azext-azureutils"; -import { GenericTreeItem } from "@microsoft/vscode-azext-utils"; +import { activityFailContext, activityFailIcon, activitySuccessContext, activitySuccessIcon, GenericTreeItem } from "@microsoft/vscode-azext-utils"; import { type Progress } from "vscode"; -import { activityFailContext, activityFailIcon, activitySuccessContext, activitySuccessIcon, managedEnvironmentsAppProvider } from "../../constants"; +import { managedEnvironmentsAppProvider } from "../../constants"; import { createActivityChildContext } from "../../utils/activity/activityUtils"; import { ExecuteActivityOutputStepBase, type ExecuteActivityOutput } from "../../utils/activity/ExecuteActivityOutputStepBase"; import { createContainerAppsAPIClient, createOperationalInsightsManagementClient } from '../../utils/azureClients'; diff --git a/src/commands/deployWorkspaceProject/DeployWorkspaceProjectSaveSettingsStep.ts b/src/commands/deployWorkspaceProject/DeployWorkspaceProjectSaveSettingsStep.ts index 997bfc9e0..0cfe5fc6f 100644 --- a/src/commands/deployWorkspaceProject/DeployWorkspaceProjectSaveSettingsStep.ts +++ b/src/commands/deployWorkspaceProject/DeployWorkspaceProjectSaveSettingsStep.ts @@ -3,9 +3,9 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { GenericTreeItem, nonNullProp, nonNullValueAndProp } from "@microsoft/vscode-azext-utils"; +import { GenericTreeItem, activityFailContext, activityFailIcon, activitySuccessContext, activitySuccessIcon, nonNullProp, nonNullValueAndProp } from "@microsoft/vscode-azext-utils"; import { type Progress } from "vscode"; -import { activityFailContext, activityFailIcon, activitySuccessContext, activitySuccessIcon, relativeSettingsFilePath } from "../../constants"; +import { relativeSettingsFilePath } from "../../constants"; import { ExecuteActivityOutputStepBase, type ExecuteActivityOutput } from "../../utils/activity/ExecuteActivityOutputStepBase"; import { createActivityChildContext } from "../../utils/activity/activityUtils"; import { localize } from "../../utils/localize"; diff --git a/src/commands/deployWorkspaceProject/deployWorkspaceProject.ts b/src/commands/deployWorkspaceProject/deployWorkspaceProject.ts index 8950944e4..f961f31af 100644 --- a/src/commands/deployWorkspaceProject/deployWorkspaceProject.ts +++ b/src/commands/deployWorkspaceProject/deployWorkspaceProject.ts @@ -4,10 +4,10 @@ *--------------------------------------------------------------------------------------------*/ import { LocationListStep, ResourceGroupCreateStep } from "@microsoft/vscode-azext-azureutils"; -import { AzureWizard, GenericTreeItem, callWithTelemetryAndErrorHandling, createSubscriptionContext, nonNullProp, nonNullValueAndProp, subscriptionExperience, type AzureWizardExecuteStep, type AzureWizardPromptStep, type IActionContext, type ISubscriptionContext } from "@microsoft/vscode-azext-utils"; +import { AzureWizard, GenericTreeItem, activityInfoIcon, activitySuccessContext, callWithTelemetryAndErrorHandling, createSubscriptionContext, nonNullProp, nonNullValueAndProp, subscriptionExperience, type AzureWizardExecuteStep, type AzureWizardPromptStep, type IActionContext, type ISubscriptionContext } from "@microsoft/vscode-azext-utils"; import { type AzureSubscription } from "@microsoft/vscode-azureresources-api"; import { ProgressLocation, window } from "vscode"; -import { activityInfoIcon, activitySuccessContext, appProvider, managedEnvironmentsId } from "../../constants"; +import { appProvider, managedEnvironmentsId } from "../../constants"; import { ext } from "../../extensionVariables"; import { type SetTelemetryProps } from "../../telemetry/SetTelemetryProps"; import { type DeployWorkspaceProjectNotificationTelemetryProps as NotificationTelemetryProps } from "../../telemetry/commandTelemetryProps"; diff --git a/src/commands/image/imageSource/ContainerAppUpdateStep.ts b/src/commands/image/imageSource/ContainerAppUpdateStep.ts index 97e2d575c..78a89c901 100644 --- a/src/commands/image/imageSource/ContainerAppUpdateStep.ts +++ b/src/commands/image/imageSource/ContainerAppUpdateStep.ts @@ -3,9 +3,8 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { GenericTreeItem, nonNullProp } from "@microsoft/vscode-azext-utils"; +import { GenericTreeItem, activityFailContext, activityFailIcon, activitySuccessContext, activitySuccessIcon, nonNullProp } from "@microsoft/vscode-azext-utils"; import { type Progress } from "vscode"; -import { activityFailContext, activityFailIcon, activitySuccessContext, activitySuccessIcon } from "../../../constants"; import { ext } from "../../../extensionVariables"; import { getContainerEnvelopeWithSecrets, type ContainerAppModel } from "../../../tree/ContainerAppItem"; import { ExecuteActivityOutputStepBase, type ExecuteActivityOutput } from "../../../utils/activity/ExecuteActivityOutputStepBase"; diff --git a/src/commands/image/imageSource/EnvironmentVariablesListStep.ts b/src/commands/image/imageSource/EnvironmentVariablesListStep.ts index 35e449d87..151c339d8 100644 --- a/src/commands/image/imageSource/EnvironmentVariablesListStep.ts +++ b/src/commands/image/imageSource/EnvironmentVariablesListStep.ts @@ -3,10 +3,10 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { AzExtFsExtra, AzureWizardPromptStep, GenericTreeItem } from "@microsoft/vscode-azext-utils"; +import { AzExtFsExtra, AzureWizardPromptStep, GenericTreeItem, activitySuccessContext, activitySuccessIcon } from "@microsoft/vscode-azext-utils"; import { parse, type DotenvParseOutput } from "dotenv"; import { workspace, type Uri } from "vscode"; -import { ImageSource, SetEnvironmentVariableOption, activitySuccessContext, activitySuccessIcon, envFileGlobPattern } from "../../../constants"; +import { ImageSource, SetEnvironmentVariableOption, envFileGlobPattern } from "../../../constants"; import { ext } from "../../../extensionVariables"; import { type EnvironmentVariableTelemetryProps as TelemetryProps } from "../../../telemetry/ImageSourceTelemetryProps"; import { type SetTelemetryProps } from "../../../telemetry/SetTelemetryProps"; diff --git a/src/commands/image/imageSource/buildImageInAzure/BuildImageStep.ts b/src/commands/image/imageSource/buildImageInAzure/BuildImageStep.ts index b01ccefc9..cd6fc5ad2 100644 --- a/src/commands/image/imageSource/buildImageInAzure/BuildImageStep.ts +++ b/src/commands/image/imageSource/buildImageInAzure/BuildImageStep.ts @@ -3,18 +3,20 @@ * Licensed under the MIT License. See License.md in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { sendRequestWithTimeout } from "@microsoft/vscode-azext-azureutils"; -import { GenericTreeItem, nonNullProp, nonNullValue, openReadOnlyContent } from "@microsoft/vscode-azext-utils"; -import { window, type MessageItem } from "vscode"; -import { acrDomain, activityFailContext, activityFailIcon, activitySuccessContext, activitySuccessIcon } from "../../../../constants"; +import { sendRequestWithTimeout, type AzExtPipelineResponse } from "@microsoft/vscode-azext-azureutils"; +import { GenericParentTreeItem, GenericTreeItem, activityFailContext, activityFailIcon, activitySuccessContext, activitySuccessIcon, nonNullProp, nonNullValue, nonNullValueAndProp, type AzExtTreeItem } from "@microsoft/vscode-azext-utils"; +import { ThemeColor, ThemeIcon, window, type MessageItem } from "vscode"; +import { acrDomain } from "../../../../constants"; import { ExecuteActivityOutputStepBase, type ExecuteActivityOutput } from "../../../../utils/activity/ExecuteActivityOutputStepBase"; import { createActivityChildContext } from "../../../../utils/activity/activityUtils"; import { localize } from "../../../../utils/localize"; +import { openAcrBuildLogs, type AcrBuildResults } from "../../openAcrBuildLogs"; import { type BuildImageInAzureImageSourceContext } from "./BuildImageInAzureImageSourceContext"; import { buildImageInAzure } from "./buildImageInAzure"; export class BuildImageStep extends ExecuteActivityOutputStepBase { public priority: number = 450; + protected acrBuildError: AcrBuildResults; protected async executeCore(context: BuildImageInAzureImageSourceContext): Promise { context.registryDomain = acrDomain; @@ -28,14 +30,21 @@ export class BuildImageStep extends ExecuteActivityOutputStepBase { if (result === viewLogsButton) { - const content = nonNullProp((await contentTask), 'bodyAsText') - await openReadOnlyContent({ label: nonNullValue(context.run.name), fullId: nonNullValue(context.run.id) }, content, '.log'); + await openAcrBuildLogs(context, this.acrBuildError); } }); @@ -51,7 +60,7 @@ export class BuildImageStep extends ExecuteActivityOutputStepBase Promise) = () => Promise.resolve([]); + if (this.acrBuildError) { + loadMoreChildrenImpl = () => { + const buildImageLogsItem = new GenericTreeItem(undefined, { + contextValue: createActivityChildContext(['logsLinkItem']), + label: localize('buildImageLogs', 'Click to view build image logs'), + iconPath: new ThemeIcon('link-external', new ThemeColor('terminal.ansiWhite')), + commandId: 'containerApps.openAcrBuildLogs', + }); + buildImageLogsItem.commandArgs = [this.acrBuildError]; + return Promise.resolve([buildImageLogsItem]); + }; + } + return { - item: new GenericTreeItem(undefined, { - contextValue: createActivityChildContext(['buildImageStep', activityFailContext]), + item: new GenericParentTreeItem(undefined, { + contextValue: createActivityChildContext(['buildImageStepFailItem', activityFailContext]), label: localize('buildImageLabel', 'Build image "{0}" in registry "{1}"', context.imageName, context.registryName), - iconPath: activityFailIcon + iconPath: activityFailIcon, + loadMoreChildrenImpl }), message: localize('buildImageFail', 'Failed to build image "{0}" in registry "{1}".', context.imageName, context.registryName) }; diff --git a/src/commands/image/imageSource/buildImageInAzure/RunStep.ts b/src/commands/image/imageSource/buildImageInAzure/RunStep.ts index 8d94ee965..647da31ea 100644 --- a/src/commands/image/imageSource/buildImageInAzure/RunStep.ts +++ b/src/commands/image/imageSource/buildImageInAzure/RunStep.ts @@ -4,10 +4,9 @@ *--------------------------------------------------------------------------------------------*/ import { type DockerBuildRequest as AcrDockerBuildRequest } from "@azure/arm-containerregistry"; -import { AzExtFsExtra, GenericTreeItem } from "@microsoft/vscode-azext-utils"; +import { AzExtFsExtra, GenericTreeItem, activityFailContext, activityFailIcon } from "@microsoft/vscode-azext-utils"; import * as path from 'path'; import { type Progress } from "vscode"; -import { activityFailContext, activityFailIcon } from "../../../../constants"; import { ExecuteActivityOutputStepBase, type ExecuteActivityOutput } from "../../../../utils/activity/ExecuteActivityOutputStepBase"; import { createActivityChildContext } from "../../../../utils/activity/activityUtils"; import { localize } from "../../../../utils/localize"; diff --git a/src/commands/image/imageSource/buildImageInAzure/UploadSourceCodeStep.ts b/src/commands/image/imageSource/buildImageInAzure/UploadSourceCodeStep.ts index faf5a12ef..799b782c2 100644 --- a/src/commands/image/imageSource/buildImageInAzure/UploadSourceCodeStep.ts +++ b/src/commands/image/imageSource/buildImageInAzure/UploadSourceCodeStep.ts @@ -4,10 +4,9 @@ *--------------------------------------------------------------------------------------------*/ import { getResourceGroupFromId } from '@microsoft/vscode-azext-azureutils'; -import { AzExtFsExtra, GenericTreeItem, nonNullValue } from '@microsoft/vscode-azext-utils'; +import { AzExtFsExtra, GenericTreeItem, activityFailContext, activityFailIcon, activitySuccessContext, activitySuccessIcon, nonNullValue } from '@microsoft/vscode-azext-utils'; import * as path from 'path'; import { type Progress } from 'vscode'; -import { activityFailContext, activityFailIcon, activitySuccessContext, activitySuccessIcon } from '../../../../constants'; import { fse } from '../../../../node/fs-extra'; import { tar } from '../../../../node/tar'; import { ExecuteActivityOutputStepBase, type ExecuteActivityOutput } from '../../../../utils/activity/ExecuteActivityOutputStepBase'; diff --git a/src/commands/image/imageSource/containerRegistry/acr/createAcr/RegistryCreateStep.ts b/src/commands/image/imageSource/containerRegistry/acr/createAcr/RegistryCreateStep.ts index 75df331fc..8ce993096 100644 --- a/src/commands/image/imageSource/containerRegistry/acr/createAcr/RegistryCreateStep.ts +++ b/src/commands/image/imageSource/containerRegistry/acr/createAcr/RegistryCreateStep.ts @@ -5,9 +5,8 @@ import { type ContainerRegistryManagementClient } from "@azure/arm-containerregistry"; import { LocationListStep } from "@microsoft/vscode-azext-azureutils"; -import { GenericTreeItem, nonNullProp, nonNullValueAndProp } from "@microsoft/vscode-azext-utils"; +import { GenericTreeItem, activityFailContext, activityFailIcon, activitySuccessContext, activitySuccessIcon, nonNullProp, nonNullValueAndProp } from "@microsoft/vscode-azext-utils"; import { type Progress } from "vscode"; -import { activityFailContext, activityFailIcon, activitySuccessContext, activitySuccessIcon } from "../../../../../../constants"; import { ExecuteActivityOutputStepBase, type ExecuteActivityOutput } from "../../../../../../utils/activity/ExecuteActivityOutputStepBase"; import { createActivityChildContext } from "../../../../../../utils/activity/activityUtils"; import { createContainerRegistryManagementClient } from "../../../../../../utils/azureClients"; diff --git a/src/commands/image/openAcrBuildLogs.ts b/src/commands/image/openAcrBuildLogs.ts new file mode 100644 index 000000000..7cfd90308 --- /dev/null +++ b/src/commands/image/openAcrBuildLogs.ts @@ -0,0 +1,22 @@ +/*--------------------------------------------------------------------------------------------- +* Copyright (c) Microsoft Corporation. All rights reserved. +* Licensed under the MIT License. See License.md in the project root for license information. +*--------------------------------------------------------------------------------------------*/ + +import { type Run as AcrRun } from '@azure/arm-containerregistry'; +import { nonNullProp, openReadOnlyContent, type IActionContext } from "@microsoft/vscode-azext-utils"; +import { localize } from '../../utils/localize'; + +export interface AcrBuildResults { + name: AcrRun['name']; + runId: AcrRun['runId']; + content: string; +} + +export async function openAcrBuildLogs(_context: IActionContext, acrBuildResults: AcrBuildResults): Promise { + if (!acrBuildResults) { + throw new Error(localize('noAcrBuildResults', 'No Azure Container Registry build results to display.')); + } + + await openReadOnlyContent({ label: nonNullProp(acrBuildResults, 'name'), fullId: nonNullProp(acrBuildResults, 'runId') }, nonNullProp(acrBuildResults, 'content'), '.log'); +} diff --git a/src/commands/ingress/IngressPromptStep.ts b/src/commands/ingress/IngressPromptStep.ts index 69770e462..480af4911 100644 --- a/src/commands/ingress/IngressPromptStep.ts +++ b/src/commands/ingress/IngressPromptStep.ts @@ -3,8 +3,7 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { AzureWizardPromptStep, GenericTreeItem, type AzureWizardExecuteStep, type IWizardOptions } from "@microsoft/vscode-azext-utils"; -import { activitySuccessContext, activitySuccessIcon } from "../../constants"; +import { AzureWizardPromptStep, GenericTreeItem, activitySuccessContext, activitySuccessIcon, type AzureWizardExecuteStep, type IWizardOptions } from "@microsoft/vscode-azext-utils"; import { ext } from "../../extensionVariables"; import { createActivityChildContext } from "../../utils/activity/activityUtils"; import { localize } from "../../utils/localize"; diff --git a/src/commands/ingress/enableIngress/EnableIngressStep.ts b/src/commands/ingress/enableIngress/EnableIngressStep.ts index adadbe4f8..0c89a24d3 100644 --- a/src/commands/ingress/enableIngress/EnableIngressStep.ts +++ b/src/commands/ingress/enableIngress/EnableIngressStep.ts @@ -4,9 +4,8 @@ *--------------------------------------------------------------------------------------------*/ import { type Ingress } from "@azure/arm-appcontainers"; -import { GenericTreeItem, nonNullProp } from "@microsoft/vscode-azext-utils"; +import { GenericTreeItem, activityFailContext, activityFailIcon, activitySuccessContext, activitySuccessIcon, nonNullProp } from "@microsoft/vscode-azext-utils"; import { type Progress } from "vscode"; -import { activityFailContext, activityFailIcon, activitySuccessContext, activitySuccessIcon } from "../../../constants"; import { ExecuteActivityOutputStepBase, type ExecuteActivityOutput } from "../../../utils/activity/ExecuteActivityOutputStepBase"; import { createActivityChildContext } from "../../../utils/activity/activityUtils"; import { localize } from "../../../utils/localize"; @@ -36,7 +35,6 @@ export class EnableIngressStep extends ExecuteActivityOutputStepBase