@codingame/monaco-vscode-extensions-service-override 19.1.4 → 20.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/index.js +3 -0
  2. package/package.json +27 -27
  3. package/vscode/src/vs/platform/extensionManagement/common/extensionManagementCLI.js +28 -28
  4. package/vscode/src/vs/workbench/api/browser/mainThreadAuthentication.d.ts +10 -3
  5. package/vscode/src/vs/workbench/api/browser/mainThreadAuthentication.js +85 -22
  6. package/vscode/src/vs/workbench/api/browser/mainThreadBulkEdits.js +1 -1
  7. package/vscode/src/vs/workbench/api/browser/mainThreadCLICommands.js +1 -1
  8. package/vscode/src/vs/workbench/api/browser/mainThreadChatAgents2.js +9 -6
  9. package/vscode/src/vs/workbench/api/browser/mainThreadChatOutputRenderer.d.ts +18 -0
  10. package/vscode/src/vs/workbench/api/browser/mainThreadChatOutputRenderer.js +44 -0
  11. package/vscode/src/vs/workbench/api/browser/mainThreadChatSessions.d.ts +42 -0
  12. package/vscode/src/vs/workbench/api/browser/mainThreadChatSessions.js +247 -0
  13. package/vscode/src/vs/workbench/api/browser/mainThreadClipboard.d.ts +3 -1
  14. package/vscode/src/vs/workbench/api/browser/mainThreadClipboard.js +9 -3
  15. package/vscode/src/vs/workbench/api/browser/mainThreadComments.d.ts +1 -1
  16. package/vscode/src/vs/workbench/api/browser/mainThreadComments.js +1 -1
  17. package/vscode/src/vs/workbench/api/browser/mainThreadCustomEditors.js +6 -6
  18. package/vscode/src/vs/workbench/api/browser/mainThreadDataChannels.d.ts +9 -0
  19. package/vscode/src/vs/workbench/api/browser/mainThreadDataChannels.js +23 -0
  20. package/vscode/src/vs/workbench/api/browser/mainThreadDocumentsAndEditors.js +1 -1
  21. package/vscode/src/vs/workbench/api/browser/mainThreadEditSessionIdentityParticipant.js +1 -1
  22. package/vscode/src/vs/workbench/api/browser/mainThreadEditorTabs.d.ts +1 -1
  23. package/vscode/src/vs/workbench/api/browser/mainThreadEditorTabs.js +10 -10
  24. package/vscode/src/vs/workbench/api/browser/mainThreadEditors.d.ts +1 -1
  25. package/vscode/src/vs/workbench/api/browser/mainThreadEditors.js +1 -1
  26. package/vscode/src/vs/workbench/api/browser/mainThreadExtensionService.js +11 -11
  27. package/vscode/src/vs/workbench/api/browser/mainThreadFileSystemEventService.js +20 -20
  28. package/vscode/src/vs/workbench/api/browser/mainThreadLanguageFeatures.d.ts +3 -3
  29. package/vscode/src/vs/workbench/api/browser/mainThreadLanguageFeatures.js +12 -6
  30. package/vscode/src/vs/workbench/api/browser/mainThreadLanguageModelTools.js +1 -0
  31. package/vscode/src/vs/workbench/api/browser/mainThreadLanguageModels.d.ts +8 -9
  32. package/vscode/src/vs/workbench/api/browser/mainThreadLanguageModels.js +38 -37
  33. package/vscode/src/vs/workbench/api/browser/mainThreadMcp.js +11 -8
  34. package/vscode/src/vs/workbench/api/browser/mainThreadMessageService.js +4 -4
  35. package/vscode/src/vs/workbench/api/browser/mainThreadNotebook.js +1 -1
  36. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDocumentsAndEditors.js +2 -2
  37. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookEditors.d.ts +2 -2
  38. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookEditors.js +2 -2
  39. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookSaveParticipant.js +1 -1
  40. package/vscode/src/vs/workbench/api/browser/mainThreadOutputService.js +3 -3
  41. package/vscode/src/vs/workbench/api/browser/mainThreadProgress.js +1 -1
  42. package/vscode/src/vs/workbench/api/browser/mainThreadSCM.d.ts +5 -1
  43. package/vscode/src/vs/workbench/api/browser/mainThreadSCM.js +21 -8
  44. package/vscode/src/vs/workbench/api/browser/mainThreadSaveParticipant.js +1 -1
  45. package/vscode/src/vs/workbench/api/browser/mainThreadSecretState.d.ts +2 -0
  46. package/vscode/src/vs/workbench/api/browser/mainThreadSecretState.js +25 -8
  47. package/vscode/src/vs/workbench/api/browser/mainThreadTask.js +1 -1
  48. package/vscode/src/vs/workbench/api/browser/mainThreadTerminalService.d.ts +1 -1
  49. package/vscode/src/vs/workbench/api/browser/mainThreadTerminalService.js +5 -2
  50. package/vscode/src/vs/workbench/api/browser/mainThreadTerminalShellIntegration.d.ts +3 -1
  51. package/vscode/src/vs/workbench/api/browser/mainThreadTerminalShellIntegration.js +9 -2
  52. package/vscode/src/vs/workbench/api/browser/mainThreadTunnelService.js +2 -2
  53. package/vscode/src/vs/workbench/api/browser/mainThreadUriOpeners.js +2 -2
  54. package/vscode/src/vs/workbench/api/browser/mainThreadWebviewManager.js +3 -0
  55. package/vscode/src/vs/workbench/api/browser/mainThreadWebviewPanels.d.ts +1 -1
  56. package/vscode/src/vs/workbench/api/browser/mainThreadWebviewPanels.js +4 -4
  57. package/vscode/src/vs/workbench/api/browser/mainThreadWebviews.d.ts +3 -3
  58. package/vscode/src/vs/workbench/api/browser/mainThreadWebviews.js +2 -2
  59. package/vscode/src/vs/workbench/api/browser/mainThreadWorkspace.js +5 -5
  60. package/vscode/src/vs/workbench/contrib/customEditor/common/customTextEditorModel.js +1 -1
  61. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/forwardingTelemetryService.d.ts +30 -0
  62. package/vscode/src/vs/workbench/contrib/editTelemetry/browser/telemetry/forwardingTelemetryService.js +67 -0
  63. package/vscode/src/vs/workbench/services/extensionManagement/browser/extensionBisect.js +23 -23
  64. package/vscode/src/vs/workbench/services/extensions/browser/webWorkerExtensionHost.js +1 -1
  65. package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.d.ts +3 -5
  66. package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.js +32 -22
  67. package/vscode/src/vs/workbench/services/extensions/common/extensionHostManager.d.ts +2 -5
  68. package/vscode/src/vs/workbench/services/extensions/common/extensionHostManager.js +1 -1
  69. package/vscode/src/vs/workbench/services/extensions/common/extensionHostManagers.d.ts +2 -5
  70. package/vscode/src/vs/workbench/services/extensions/common/extensionsProposedApi.js +1 -1
  71. package/vscode/src/vs/workbench/services/extensions/common/extensionsUtil.js +4 -4
  72. package/vscode/src/vs/workbench/services/extensions/common/lazyCreateExtensionHostManager.d.ts +4 -7
  73. package/vscode/src/vs/workbench/services/extensions/common/lazyCreateExtensionHostManager.js +9 -11
package/index.js CHANGED
@@ -130,6 +130,9 @@ import './vscode/src/vs/workbench/api/browser/mainThreadAiEmbeddingVector.js';
130
130
  import './vscode/src/vs/workbench/api/browser/mainThreadAiSettingsSearch.js';
131
131
  import './vscode/src/vs/workbench/api/browser/mainThreadMcp.js';
132
132
  import './vscode/src/vs/workbench/api/browser/mainThreadChatStatus.js';
133
+ import './vscode/src/vs/workbench/api/browser/mainThreadChatOutputRenderer.js';
134
+ import './vscode/src/vs/workbench/api/browser/mainThreadChatSessions.js';
135
+ import './vscode/src/vs/workbench/api/browser/mainThreadDataChannels.js';
133
136
 
134
137
  let localExtensionHost;
135
138
  function setLocalExtensionHost(_localExtensionHost) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codingame/monaco-vscode-extensions-service-override",
3
- "version": "19.1.4",
3
+ "version": "20.0.0",
4
4
  "private": false,
5
5
  "description": "VSCode public API plugged on the monaco editor - extensions service-override",
6
6
  "keywords": [],
@@ -15,32 +15,32 @@
15
15
  },
16
16
  "type": "module",
17
17
  "dependencies": {
18
- "@codingame/monaco-vscode-1cc4ea0a-c5b6-54ed-bb60-078a99119b55-common": "19.1.4",
19
- "@codingame/monaco-vscode-256d5b78-0649-50e9-8354-2807f95f68f4-common": "19.1.4",
20
- "@codingame/monaco-vscode-271a23cd-c7d7-5761-ae35-a923a42987b8-common": "19.1.4",
21
- "@codingame/monaco-vscode-2726569c-a06b-5f25-b851-14311bef12fa-common": "19.1.4",
22
- "@codingame/monaco-vscode-2a94c04a-b85b-5669-b06b-89c1bfa11cb9-common": "19.1.4",
23
- "@codingame/monaco-vscode-34a0ffd3-b9f5-5699-b43b-38af5732f38a-common": "19.1.4",
24
- "@codingame/monaco-vscode-4a3ac544-9a61-534c-88df-756262793ef7-common": "19.1.4",
25
- "@codingame/monaco-vscode-571c8352-7953-5038-9f09-e03bb6219a0e-common": "19.1.4",
26
- "@codingame/monaco-vscode-60014c9d-b815-501d-83a9-4b08725c2ec2-common": "19.1.4",
27
- "@codingame/monaco-vscode-6845754f-e617-5ed9-8aaa-6ca3653a9532-common": "19.1.4",
28
- "@codingame/monaco-vscode-6f931a91-88ea-5232-897f-a17ec3929ba5-common": "19.1.4",
29
- "@codingame/monaco-vscode-7f39b6f1-3542-5430-8760-0f404d7a7cee-common": "19.1.4",
30
- "@codingame/monaco-vscode-86d65fc6-30f9-5dca-9501-e249de688591-common": "19.1.4",
31
- "@codingame/monaco-vscode-8ccb7637-50ea-5359-97bf-00015d7fe567-common": "19.1.4",
32
- "@codingame/monaco-vscode-9c72783f-914c-50be-b9ef-da16356d81a8-common": "19.1.4",
33
- "@codingame/monaco-vscode-9ebd6daf-8734-5a28-ad24-b238f5e5819d-common": "19.1.4",
34
- "@codingame/monaco-vscode-a8d3bd74-e63e-5327-96e8-4f931661e329-common": "19.1.4",
35
- "@codingame/monaco-vscode-a9da9abe-278d-5ce6-9418-99c7c07c5c37-common": "19.1.4",
36
- "@codingame/monaco-vscode-api": "19.1.4",
37
- "@codingame/monaco-vscode-bf94ddb5-e436-506a-9763-5ab86b642508-common": "19.1.4",
38
- "@codingame/monaco-vscode-ca445022-b812-53ca-a041-e46c7e0b13de-common": "19.1.4",
39
- "@codingame/monaco-vscode-caf773dd-ab1d-5936-941d-a2fe9e896ffc-common": "19.1.4",
40
- "@codingame/monaco-vscode-eb7d5efd-2e60-59f8-9ba4-9a8ae8cb2957-common": "19.1.4",
41
- "@codingame/monaco-vscode-eba0b9b3-174c-5dae-9867-a37810ca1808-common": "19.1.4",
42
- "@codingame/monaco-vscode-f22e7e55-aee8-5b52-a6bc-950efd9f5890-common": "19.1.4",
43
- "@codingame/monaco-vscode-files-service-override": "19.1.4"
18
+ "@codingame/monaco-vscode-0af61f78-dfc5-57ba-8d32-66268c8de38d-common": "20.0.0",
19
+ "@codingame/monaco-vscode-256d5b78-0649-50e9-8354-2807f95f68f4-common": "20.0.0",
20
+ "@codingame/monaco-vscode-2a94c04a-b85b-5669-b06b-89c1bfa11cb9-common": "20.0.0",
21
+ "@codingame/monaco-vscode-34a0ffd3-b9f5-5699-b43b-38af5732f38a-common": "20.0.0",
22
+ "@codingame/monaco-vscode-4a3ac544-9a61-534c-88df-756262793ef7-common": "20.0.0",
23
+ "@codingame/monaco-vscode-571c8352-7953-5038-9f09-e03bb6219a0e-common": "20.0.0",
24
+ "@codingame/monaco-vscode-60014c9d-b815-501d-83a9-4b08725c2ec2-common": "20.0.0",
25
+ "@codingame/monaco-vscode-622c0cca-d5fa-59b6-b730-0715afcf93ee-common": "20.0.0",
26
+ "@codingame/monaco-vscode-670aae94-7f88-54d7-90ea-6fcbef423557-common": "20.0.0",
27
+ "@codingame/monaco-vscode-6845754f-e617-5ed9-8aaa-6ca3653a9532-common": "20.0.0",
28
+ "@codingame/monaco-vscode-6f931a91-88ea-5232-897f-a17ec3929ba5-common": "20.0.0",
29
+ "@codingame/monaco-vscode-7f39b6f1-3542-5430-8760-0f404d7a7cee-common": "20.0.0",
30
+ "@codingame/monaco-vscode-8ccb7637-50ea-5359-97bf-00015d7fe567-common": "20.0.0",
31
+ "@codingame/monaco-vscode-a17e9d37-b6c1-5556-8402-5db73960fae3-common": "20.0.0",
32
+ "@codingame/monaco-vscode-a654b07e-8806-5425-b124-18f03ba8e11a-common": "20.0.0",
33
+ "@codingame/monaco-vscode-a8d3bd74-e63e-5327-96e8-4f931661e329-common": "20.0.0",
34
+ "@codingame/monaco-vscode-a9da9abe-278d-5ce6-9418-99c7c07c5c37-common": "20.0.0",
35
+ "@codingame/monaco-vscode-api": "20.0.0",
36
+ "@codingame/monaco-vscode-b994942c-360d-5b68-8a33-77d4bde6b714-common": "20.0.0",
37
+ "@codingame/monaco-vscode-bf94ddb5-e436-506a-9763-5ab86b642508-common": "20.0.0",
38
+ "@codingame/monaco-vscode-caeb744c-8e3f-5c11-80fb-0f057d24d544-common": "20.0.0",
39
+ "@codingame/monaco-vscode-d0569cfb-4706-5ad6-b0b0-5115ad8685db-common": "20.0.0",
40
+ "@codingame/monaco-vscode-eb7d5efd-2e60-59f8-9ba4-9a8ae8cb2957-common": "20.0.0",
41
+ "@codingame/monaco-vscode-eba0b9b3-174c-5dae-9867-a37810ca1808-common": "20.0.0",
42
+ "@codingame/monaco-vscode-f22e7e55-aee8-5b52-a6bc-950efd9f5890-common": "20.0.0",
43
+ "@codingame/monaco-vscode-files-service-override": "20.0.0"
44
44
  },
45
45
  "main": "index.js",
46
46
  "module": "index.js",
@@ -12,9 +12,9 @@ import { IExtensionManagementService, IExtensionGalleryService } from '@codingam
12
12
  import { getIdAndVersion, areSameExtensions, getGalleryExtensionId, getExtensionId } from '@codingame/monaco-vscode-api/vscode/vs/platform/extensionManagement/common/extensionManagementUtil';
13
13
  import { ExtensionType, EXTENSION_CATEGORIES } from '@codingame/monaco-vscode-api/vscode/vs/platform/extensions/common/extensions';
14
14
 
15
- const notFound = (id) => ( localize(1804, "Extension '{0}' not found.", id));
15
+ const notFound = (id) => ( localize(1816, "Extension '{0}' not found.", id));
16
16
  const useId = ( localize(
17
- 1805,
17
+ 1817,
18
18
  "Make sure you use the full extension ID, including the publisher, e.g.: {0}",
19
19
  'ms-dotnettools.csharp'
20
20
  ));
@@ -51,7 +51,7 @@ let ExtensionManagementCLI = class ExtensionManagementCLI {
51
51
  return;
52
52
  }
53
53
  if (this.location) {
54
- this.logger.info(( localize(1806, "Extensions installed on {0}:", this.location)));
54
+ this.logger.info(( localize(1818, "Extensions installed on {0}:", this.location)));
55
55
  }
56
56
  extensions = extensions.sort((e1, e2) => e1.identifier.id.localeCompare(e2.identifier.id));
57
57
  let lastId = undefined;
@@ -66,7 +66,7 @@ let ExtensionManagementCLI = class ExtensionManagementCLI {
66
66
  const failed = [];
67
67
  try {
68
68
  if (extensions.length) {
69
- this.logger.info(this.location ? ( localize(1807, "Installing extensions on {0}...", this.location)) : ( localize(1808, "Installing extensions...")));
69
+ this.logger.info(this.location ? ( localize(1819, "Installing extensions on {0}...", this.location)) : ( localize(1820, "Installing extensions...")));
70
70
  }
71
71
  const installVSIXInfos = [];
72
72
  const installExtensionInfos = [];
@@ -109,11 +109,11 @@ let ExtensionManagementCLI = class ExtensionManagementCLI {
109
109
  }
110
110
  }
111
111
  catch (error) {
112
- this.logger.error(( localize(1809, "Error while installing extensions: {0}", getErrorMessage(error))));
112
+ this.logger.error(( localize(1821, "Error while installing extensions: {0}", getErrorMessage(error))));
113
113
  throw error;
114
114
  }
115
115
  if (failed.length) {
116
- throw ( new Error(( localize(1810, "Failed Installing Extensions: {0}", failed.join(', ')))));
116
+ throw ( new Error(( localize(1822, "Failed Installing Extensions: {0}", failed.join(', ')))));
117
117
  }
118
118
  }
119
119
  async updateExtensions(profileLocation) {
@@ -125,7 +125,7 @@ let ExtensionManagementCLI = class ExtensionManagementCLI {
125
125
  }
126
126
  }
127
127
  this.logger.trace(( localize(
128
- 1811,
128
+ 1823,
129
129
  "Fetching latest versions for {0} extensions",
130
130
  installedExtensionsQuery.length
131
131
  )));
@@ -142,11 +142,11 @@ let ExtensionManagementCLI = class ExtensionManagementCLI {
142
142
  }
143
143
  }
144
144
  if (!extensionsToUpdate.length) {
145
- this.logger.info(( localize(1812, "No extension to update")));
145
+ this.logger.info(( localize(1824, "No extension to update")));
146
146
  return;
147
147
  }
148
148
  this.logger.info(( localize(
149
- 1813,
149
+ 1825,
150
150
  "Updating extensions: {0}",
151
151
  ( extensionsToUpdate.map(ext => ext.extension.identifier.id)).join(', ')
152
152
  )));
@@ -154,7 +154,7 @@ let ExtensionManagementCLI = class ExtensionManagementCLI {
154
154
  for (const extensionResult of installationResult) {
155
155
  if (extensionResult.error) {
156
156
  this.logger.error(( localize(
157
- 1814,
157
+ 1826,
158
158
  "Error while updating extension {0}: {1}",
159
159
  extensionResult.identifier.id,
160
160
  getErrorMessage(extensionResult.error)
@@ -162,7 +162,7 @@ let ExtensionManagementCLI = class ExtensionManagementCLI {
162
162
  }
163
163
  else {
164
164
  this.logger.info(( localize(
165
- 1815,
165
+ 1827,
166
166
  "Extension '{0}' v{1} was successfully updated.",
167
167
  extensionResult.identifier.id,
168
168
  extensionResult.local?.manifest.version
@@ -177,7 +177,7 @@ let ExtensionManagementCLI = class ExtensionManagementCLI {
177
177
  if (installedExtension) {
178
178
  if (!force && (!version || (version === 'prerelease' && installedExtension.preRelease))) {
179
179
  this.logger.info(( localize(
180
- 1816,
180
+ 1828,
181
181
  "Extension '{0}' v{1} is already installed. Use '--force' option to update to latest version or provide '@<version>' to install a specific version, for example: '{2}@1.2.3'.",
182
182
  id,
183
183
  installedExtension.manifest.version,
@@ -186,7 +186,7 @@ let ExtensionManagementCLI = class ExtensionManagementCLI {
186
186
  return false;
187
187
  }
188
188
  if (version && installedExtension.manifest.version === version) {
189
- this.logger.info(( localize(1817, "Extension '{0}' is already installed.", `${id}@${version}`)));
189
+ this.logger.info(( localize(1829, "Extension '{0}' is already installed.", `${id}@${version}`)));
190
190
  return false;
191
191
  }
192
192
  if (installedExtension.preRelease && version !== 'prerelease') {
@@ -223,24 +223,24 @@ let ExtensionManagementCLI = class ExtensionManagementCLI {
223
223
  if (installedExtension) {
224
224
  if (gallery.version === installedExtension.manifest.version) {
225
225
  this.logger.info(( localize(
226
- 1817,
226
+ 1829,
227
227
  "Extension '{0}' is already installed.",
228
228
  version ? `${id}@${version}` : id
229
229
  )));
230
230
  return;
231
231
  }
232
232
  this.logger.info(( localize(
233
- 1818,
233
+ 1830,
234
234
  "Updating the extension '{0}' to the version {1}",
235
235
  id,
236
236
  gallery.version
237
237
  )));
238
238
  }
239
239
  if (installOptions.isBuiltin) {
240
- this.logger.info(version ? ( localize(1819, "Installing builtin extension '{0}' v{1}...", id, version)) : ( localize(1820, "Installing builtin extension '{0}'...", id)));
240
+ this.logger.info(version ? ( localize(1831, "Installing builtin extension '{0}' v{1}...", id, version)) : ( localize(1832, "Installing builtin extension '{0}'...", id)));
241
241
  }
242
242
  else {
243
- this.logger.info(version ? ( localize(1821, "Installing extension '{0}' v{1}...", id, version)) : ( localize(1822, "Installing extension '{0}'...", id)));
243
+ this.logger.info(version ? ( localize(1833, "Installing extension '{0}' v{1}...", id, version)) : ( localize(1834, "Installing extension '{0}'...", id)));
244
244
  }
245
245
  extensionsToInstall.push({
246
246
  extension: gallery,
@@ -252,7 +252,7 @@ let ExtensionManagementCLI = class ExtensionManagementCLI {
252
252
  for (const extensionResult of installationResult) {
253
253
  if (extensionResult.error) {
254
254
  this.logger.error(( localize(
255
- 1823,
255
+ 1835,
256
256
  "Error while installing extension {0}: {1}",
257
257
  extensionResult.identifier.id,
258
258
  getErrorMessage(extensionResult.error)
@@ -261,7 +261,7 @@ let ExtensionManagementCLI = class ExtensionManagementCLI {
261
261
  }
262
262
  else {
263
263
  this.logger.info(( localize(
264
- 1824,
264
+ 1836,
265
265
  "Extension '{0}' v{1} was successfully installed.",
266
266
  extensionResult.identifier.id,
267
267
  extensionResult.local?.manifest.version
@@ -280,11 +280,11 @@ let ExtensionManagementCLI = class ExtensionManagementCLI {
280
280
  if (valid) {
281
281
  try {
282
282
  await this.extensionManagementService.install(vsix, { ...installOptions, installGivenVersion: true });
283
- this.logger.info(( localize(1825, "Extension '{0}' was successfully installed.", basename(vsix))));
283
+ this.logger.info(( localize(1837, "Extension '{0}' was successfully installed.", basename(vsix))));
284
284
  }
285
285
  catch (error) {
286
286
  if (isCancellationError(error)) {
287
- this.logger.info(( localize(1826, "Cancelled installing extension '{0}'.", basename(vsix))));
287
+ this.logger.info(( localize(1838, "Cancelled installing extension '{0}'.", basename(vsix))));
288
288
  }
289
289
  else {
290
290
  throw error;
@@ -319,7 +319,7 @@ let ExtensionManagementCLI = class ExtensionManagementCLI {
319
319
  const newer = installedExtensions.find(local => areSameExtensions(extensionIdentifier, local.identifier) && semverExports.gt(local.manifest.version, manifest.version));
320
320
  if (newer) {
321
321
  this.logger.info(( localize(
322
- 1827,
322
+ 1839,
323
323
  "A newer version of extension '{0}' v{1} is already installed. Use '--force' option to downgrade to older version.",
324
324
  newer.identifier.id,
325
325
  newer.manifest.version,
@@ -347,7 +347,7 @@ let ExtensionManagementCLI = class ExtensionManagementCLI {
347
347
  }
348
348
  if (( extensionsToUninstall.some(e => e.type === ExtensionType.System))) {
349
349
  this.logger.info(( localize(
350
- 1828,
350
+ 1840,
351
351
  "Extension '{0}' is a Built-in extension and cannot be uninstalled",
352
352
  id
353
353
  )));
@@ -355,26 +355,26 @@ let ExtensionManagementCLI = class ExtensionManagementCLI {
355
355
  }
356
356
  if (!force && ( extensionsToUninstall.some(e => e.isBuiltin))) {
357
357
  this.logger.info(( localize(
358
- 1829,
358
+ 1841,
359
359
  "Extension '{0}' is marked as a Built-in extension by user. Please use '--force' option to uninstall it.",
360
360
  id
361
361
  )));
362
362
  return;
363
363
  }
364
- this.logger.info(( localize(1830, "Uninstalling {0}...", id)));
364
+ this.logger.info(( localize(1842, "Uninstalling {0}...", id)));
365
365
  for (const extensionToUninstall of extensionsToUninstall) {
366
366
  await this.extensionManagementService.uninstall(extensionToUninstall, { profileLocation });
367
367
  }
368
368
  if (this.location) {
369
369
  this.logger.info(( localize(
370
- 1831,
370
+ 1843,
371
371
  "Extension '{0}' was successfully uninstalled from {1}!",
372
372
  id,
373
373
  this.location
374
374
  )));
375
375
  }
376
376
  else {
377
- this.logger.info(( localize(1832, "Extension '{0}' was successfully uninstalled!", id)));
377
+ this.logger.info(( localize(1844, "Extension '{0}' was successfully uninstalled!", id)));
378
378
  }
379
379
  }
380
380
  }
@@ -392,7 +392,7 @@ let ExtensionManagementCLI = class ExtensionManagementCLI {
392
392
  });
393
393
  }
394
394
  notInstalled(id) {
395
- return this.location ? ( localize(1833, "Extension '{0}' is not installed on {1}.", id, this.location)) : ( localize(1834, "Extension '{0}' is not installed.", id));
395
+ return this.location ? ( localize(1845, "Extension '{0}' is not installed on {1}.", id, this.location)) : ( localize(1846, "Extension '{0}' is not installed.", id));
396
396
  }
397
397
  };
398
398
  ExtensionManagementCLI = ( __decorate([
@@ -18,6 +18,7 @@ import { IURLService } from "@codingame/monaco-vscode-api/vscode/vs/platform/url
18
18
  import { IAuthorizationTokenResponse } from "@codingame/monaco-vscode-api/vscode/vs/base/common/oauth";
19
19
  import { IDynamicAuthenticationProviderStorageService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/authentication/common/dynamicAuthenticationProviderStorage.service";
20
20
  import { IClipboardService } from "@codingame/monaco-vscode-api/vscode/vs/platform/clipboard/common/clipboardService.service";
21
+ import { IQuickInputService } from "@codingame/monaco-vscode-api/vscode/vs/platform/quickinput/common/quickInput.service";
21
22
  export interface AuthenticationInteractiveOptions {
22
23
  detail?: string;
23
24
  learnMore?: UriComponents;
@@ -57,11 +58,12 @@ export declare class MainThreadAuthentication extends Disposable implements Main
57
58
  private readonly urlService;
58
59
  private readonly dynamicAuthProviderStorageService;
59
60
  private readonly clipboardService;
61
+ private readonly quickInputService;
60
62
  private readonly _proxy;
61
63
  private readonly _registrations;
62
64
  private _sentProviderUsageEvents;
63
65
  private _suppressUnregisterEvent;
64
- constructor(extHostContext: IExtHostContext, authenticationService: IAuthenticationService, authenticationExtensionsService: IAuthenticationExtensionsService, authenticationAccessService: IAuthenticationAccessService, authenticationUsageService: IAuthenticationUsageService, dialogService: IDialogService, notificationService: INotificationService, extensionService: IExtensionService, telemetryService: ITelemetryService, openerService: IOpenerService, logService: ILogService, urlService: IURLService, dynamicAuthProviderStorageService: IDynamicAuthenticationProviderStorageService, clipboardService: IClipboardService);
66
+ constructor(extHostContext: IExtHostContext, authenticationService: IAuthenticationService, authenticationExtensionsService: IAuthenticationExtensionsService, authenticationAccessService: IAuthenticationAccessService, authenticationUsageService: IAuthenticationUsageService, dialogService: IDialogService, notificationService: INotificationService, extensionService: IExtensionService, telemetryService: ITelemetryService, openerService: IOpenerService, logService: ILogService, urlService: IURLService, dynamicAuthProviderStorageService: IDynamicAuthenticationProviderStorageService, clipboardService: IClipboardService, quickInputService: IQuickInputService);
65
67
  $registerAuthenticationProvider(id: string, label: string, supportsMultipleAccounts: boolean, supportedAuthorizationServer?: UriComponents[]): Promise<void>;
66
68
  $unregisterAuthenticationProvider(id: string): Promise<void>;
67
69
  $ensureProvider(id: string): Promise<void>;
@@ -69,15 +71,16 @@ export declare class MainThreadAuthentication extends Disposable implements Main
69
71
  $removeSession(providerId: string, sessionId: string): Promise<void>;
70
72
  $waitForUriHandler(expectedUri: UriComponents): Promise<UriComponents>;
71
73
  $showContinueNotification(message: string): Promise<boolean>;
72
- $registerDynamicAuthenticationProvider(id: string, label: string, authorizationServer: UriComponents, clientId: string): Promise<void>;
74
+ $registerDynamicAuthenticationProvider(id: string, label: string, authorizationServer: UriComponents, clientId: string, clientSecret?: string): Promise<void>;
73
75
  $setSessionsForDynamicAuthProvider(authProviderId: string, clientId: string, sessions: (IAuthorizationTokenResponse & {
74
76
  created_at: number;
75
77
  })[]): Promise<void>;
76
- $sendDidChangeDynamicProviderInfo({ providerId, clientId, authorizationServer, label }: Partial<{
78
+ $sendDidChangeDynamicProviderInfo({ providerId, clientId, authorizationServer, label, clientSecret }: Partial<{
77
79
  providerId: string;
78
80
  clientId: string;
79
81
  authorizationServer: UriComponents;
80
82
  label: string;
83
+ clientSecret: string;
81
84
  }>): Promise<void>;
82
85
  private loginPrompt;
83
86
  private continueWithIncorrectAccountPrompt;
@@ -91,4 +94,8 @@ export declare class MainThreadAuthentication extends Disposable implements Main
91
94
  private _updateAccountPreference;
92
95
  private _removeAccountPreference;
93
96
  $showDeviceCodeModal(userCode: string, verificationUri: string): Promise<boolean>;
97
+ $promptForClientRegistration(authorizationServerUrl: string): Promise<{
98
+ clientId: string;
99
+ clientSecret?: string;
100
+ } | undefined>;
94
101
  }
@@ -24,6 +24,7 @@ import { IURLService } from '@codingame/monaco-vscode-api/vscode/vs/platform/url
24
24
  import { DeferredPromise, raceTimeout } from '@codingame/monaco-vscode-api/vscode/vs/base/common/async';
25
25
  import { IDynamicAuthenticationProviderStorageService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/authentication/common/dynamicAuthenticationProviderStorage.service';
26
26
  import { IClipboardService } from '@codingame/monaco-vscode-api/vscode/vs/platform/clipboard/common/clipboardService.service';
27
+ import { IQuickInputService } from '@codingame/monaco-vscode-api/vscode/vs/platform/quickinput/common/quickInput.service';
27
28
 
28
29
  class MainThreadAuthenticationProvider extends Disposable {
29
30
  constructor(_proxy, id, label, supportsMultipleAccounts, authorizationServers, onDidChangeSessionsEmitter) {
@@ -46,7 +47,7 @@ class MainThreadAuthenticationProvider extends Disposable {
46
47
  }
47
48
  }
48
49
  let MainThreadAuthentication = class MainThreadAuthentication extends Disposable {
49
- constructor(extHostContext, authenticationService, authenticationExtensionsService, authenticationAccessService, authenticationUsageService, dialogService, notificationService, extensionService, telemetryService, openerService, logService, urlService, dynamicAuthProviderStorageService, clipboardService) {
50
+ constructor(extHostContext, authenticationService, authenticationExtensionsService, authenticationAccessService, authenticationUsageService, dialogService, notificationService, extensionService, telemetryService, openerService, logService, urlService, dynamicAuthProviderStorageService, clipboardService, quickInputService) {
50
51
  super();
51
52
  this.authenticationService = authenticationService;
52
53
  this.authenticationExtensionsService = authenticationExtensionsService;
@@ -61,6 +62,7 @@ let MainThreadAuthentication = class MainThreadAuthentication extends Disposable
61
62
  this.urlService = urlService;
62
63
  this.dynamicAuthProviderStorageService = dynamicAuthProviderStorageService;
63
64
  this.clipboardService = clipboardService;
65
+ this.quickInputService = quickInputService;
64
66
  this._registrations = this._register(( new DisposableMap()));
65
67
  this._sentProviderUsageEvents = ( new Set());
66
68
  this._suppressUnregisterEvent = false;
@@ -83,12 +85,14 @@ let MainThreadAuthentication = class MainThreadAuthentication extends Disposable
83
85
  priority: extHostContext.extensionHostKind === ExtensionHostKind.LocalWebWorker ? 0 : 1,
84
86
  create: async (authorizationServer, serverMetadata, resource) => {
85
87
  const authProviderId = resource ? `${( authorizationServer.toString(true))} ${resource.resource}` : ( authorizationServer.toString(true));
86
- const clientId = this.dynamicAuthProviderStorageService.getClientId(authProviderId);
88
+ const clientDetails = await this.dynamicAuthProviderStorageService.getClientRegistration(authProviderId);
89
+ const clientId = clientDetails?.clientId;
90
+ const clientSecret = clientDetails?.clientSecret;
87
91
  let initialTokens = undefined;
88
92
  if (clientId) {
89
93
  initialTokens = await this.dynamicAuthProviderStorageService.getSessionsForDynamicAuthProvider(authProviderId, clientId);
90
94
  }
91
- return await this._proxy.$registerDynamicAuthProvider(authorizationServer, serverMetadata, resource, clientId, initialTokens);
95
+ return await this._proxy.$registerDynamicAuthProvider(authorizationServer, serverMetadata, resource, clientId, clientSecret, initialTokens);
92
96
  }
93
97
  }));
94
98
  }
@@ -153,8 +157,8 @@ let MainThreadAuthentication = class MainThreadAuthentication extends Disposable
153
157
  return await deferredPromise.p;
154
158
  }
155
159
  $showContinueNotification(message) {
156
- const yes = ( localize(2404, "Yes"));
157
- const no = ( localize(2405, "No"));
160
+ const yes = ( localize(2420, "Yes"));
161
+ const no = ( localize(2421, "No"));
158
162
  const deferredPromise = ( new DeferredPromise());
159
163
  let result = false;
160
164
  const handle = this.notificationService.prompt(Severity.Warning, message, [{
@@ -170,14 +174,14 @@ let MainThreadAuthentication = class MainThreadAuthentication extends Disposable
170
174
  });
171
175
  return deferredPromise.p;
172
176
  }
173
- async $registerDynamicAuthenticationProvider(id, label, authorizationServer, clientId) {
177
+ async $registerDynamicAuthenticationProvider(id, label, authorizationServer, clientId, clientSecret) {
174
178
  await this.$registerAuthenticationProvider(id, label, true, [authorizationServer]);
175
- this.dynamicAuthProviderStorageService.storeClientId(id, ( URI.revive(authorizationServer).toString(true)), clientId, label);
179
+ await this.dynamicAuthProviderStorageService.storeClientRegistration(id, ( URI.revive(authorizationServer).toString(true)), clientId, clientSecret, label);
176
180
  }
177
181
  async $setSessionsForDynamicAuthProvider(authProviderId, clientId, sessions) {
178
182
  await this.dynamicAuthProviderStorageService.setSessionsForDynamicAuthProvider(authProviderId, clientId, sessions);
179
183
  }
180
- async $sendDidChangeDynamicProviderInfo({ providerId, clientId, authorizationServer, label }) {
184
+ async $sendDidChangeDynamicProviderInfo({ providerId, clientId, authorizationServer, label, clientSecret }) {
181
185
  this.logService.info(`Client ID for authentication provider ${providerId} changed to ${clientId}`);
182
186
  const existing = this.dynamicAuthProviderStorageService.getInteractedProviders().find(p => p.providerId === providerId);
183
187
  if (!existing) {
@@ -185,7 +189,7 @@ let MainThreadAuthentication = class MainThreadAuthentication extends Disposable
185
189
  `Dynamic authentication provider ${providerId} not found. Has it been registered?`
186
190
  ));
187
191
  }
188
- this.dynamicAuthProviderStorageService.storeClientId(providerId || existing.providerId, authorizationServer ? ( URI.revive(authorizationServer).toString(true)) : existing.authorizationServer, clientId || existing.clientId, label || existing.label);
192
+ await this.dynamicAuthProviderStorageService.storeClientRegistration(providerId || existing.providerId, authorizationServer ? ( URI.revive(authorizationServer).toString(true)) : existing.authorizationServer, clientId || existing.clientId, clientSecret, label || existing.label);
189
193
  }
190
194
  async loginPrompt(provider, extensionName, recreatingSession, options) {
191
195
  let message;
@@ -196,13 +200,13 @@ let MainThreadAuthentication = class MainThreadAuthentication extends Disposable
196
200
  else {
197
201
  message = recreatingSession
198
202
  ? ( localize(
199
- 2406,
203
+ 2422,
200
204
  "The extension '{0}' wants you to sign in again using {1}.",
201
205
  extensionName,
202
206
  provider.label
203
207
  ))
204
208
  : ( localize(
205
- 2407,
209
+ 2423,
206
210
  "The extension '{0}' wants to sign in using {1}.",
207
211
  extensionName,
208
212
  provider.label
@@ -210,7 +214,7 @@ let MainThreadAuthentication = class MainThreadAuthentication extends Disposable
210
214
  }
211
215
  const buttons = [
212
216
  {
213
- label: ( localize(2408, "&&Allow")),
217
+ label: ( localize(2424, "&&Allow")),
214
218
  run() {
215
219
  return true;
216
220
  },
@@ -218,7 +222,7 @@ let MainThreadAuthentication = class MainThreadAuthentication extends Disposable
218
222
  ];
219
223
  if (options?.learnMore) {
220
224
  buttons.push({
221
- label: ( localize(2409, "Learn more")),
225
+ label: ( localize(2425, "Learn more")),
222
226
  run: async () => {
223
227
  const result = this.loginPrompt(provider, extensionName, recreatingSession, options);
224
228
  await this.openerService.open(URI.revive(options.learnMore), { allowCommands: true });
@@ -237,9 +241,9 @@ let MainThreadAuthentication = class MainThreadAuthentication extends Disposable
237
241
  }
238
242
  async continueWithIncorrectAccountPrompt(chosenAccountLabel, requestedAccountLabel) {
239
243
  const result = await this.dialogService.prompt({
240
- message: ( localize(2410, "Incorrect account detected")),
244
+ message: ( localize(2426, "Incorrect account detected")),
241
245
  detail: ( localize(
242
- 2411,
246
+ 2427,
243
247
  "The chosen account, {0}, does not match the requested account, {1}.",
244
248
  chosenAccountLabel,
245
249
  requestedAccountLabel
@@ -248,11 +252,11 @@ let MainThreadAuthentication = class MainThreadAuthentication extends Disposable
248
252
  cancelButton: true,
249
253
  buttons: [
250
254
  {
251
- label: ( localize(2412, 'Keep {0}', chosenAccountLabel)),
255
+ label: ( localize(2428, 'Keep {0}', chosenAccountLabel)),
252
256
  run: () => chosenAccountLabel
253
257
  },
254
258
  {
255
- label: ( localize(2413, 'Login with {0}', requestedAccountLabel)),
259
+ label: ( localize(2429, 'Login with {0}', requestedAccountLabel)),
256
260
  run: () => requestedAccountLabel
257
261
  }
258
262
  ],
@@ -406,16 +410,16 @@ let MainThreadAuthentication = class MainThreadAuthentication extends Disposable
406
410
  async $showDeviceCodeModal(userCode, verificationUri) {
407
411
  const { result } = await this.dialogService.prompt({
408
412
  type: Severity.Info,
409
- message: ( localize(2414, "Device Code Authentication")),
413
+ message: ( localize(2430, "Device Code Authentication")),
410
414
  detail: ( localize(
411
- 2415,
415
+ 2431,
412
416
  "Your code: {0}\n\nTo complete authentication, navigate to {1} and enter the code above.",
413
417
  userCode,
414
418
  verificationUri
415
419
  )),
416
420
  buttons: [
417
421
  {
418
- label: ( localize(2416, "Copy & Continue")),
422
+ label: ( localize(2432, "Copy & Continue")),
419
423
  run: () => true
420
424
  }
421
425
  ],
@@ -427,11 +431,69 @@ let MainThreadAuthentication = class MainThreadAuthentication extends Disposable
427
431
  return await this.openerService.open(( URI.parse(verificationUri)));
428
432
  }
429
433
  catch (error) {
430
- this.notificationService.error(( localize(2417, "Failed to open {0}", verificationUri)));
434
+ this.notificationService.error(( localize(2433, "Failed to open {0}", verificationUri)));
431
435
  }
432
436
  }
433
437
  return false;
434
438
  }
439
+ async $promptForClientRegistration(authorizationServerUrl) {
440
+ const result = await this.dialogService.prompt({
441
+ type: Severity.Info,
442
+ message: ( localize(2434, "Dynamic Client Registration not supported")),
443
+ detail: ( localize(
444
+ 2435,
445
+ "The authorization server '{0}' does not support automatic client registration. Do you want to proceed by manually providing a client registration (client ID)?\n\nNote: When registering your OAuth application, make sure to include these redirect URIs:\nhttp://127.0.0.1:33418\nhttps://vscode.dev/redirect",
446
+ authorizationServerUrl
447
+ )),
448
+ buttons: [
449
+ {
450
+ label: ( localize(2436, "Proceed")),
451
+ run: () => true
452
+ }
453
+ ],
454
+ cancelButton: {
455
+ label: ( localize(2437, "Cancel")),
456
+ run: () => false
457
+ }
458
+ });
459
+ if (!result) {
460
+ return undefined;
461
+ }
462
+ const sharedTitle = ( localize(2438, "Add Client Registration Details"));
463
+ const clientId = await this.quickInputService.input({
464
+ title: sharedTitle,
465
+ prompt: ( localize(
466
+ 2439,
467
+ "Enter an existing client ID that has been registered with the following redirect URIs: http://127.0.0.1:33418, https://vscode.dev/redirect"
468
+ )),
469
+ placeHolder: ( localize(2440, "OAuth client ID (azye39d...)")),
470
+ ignoreFocusLost: true,
471
+ validateInput: async (value) => {
472
+ if (!value || value.trim().length === 0) {
473
+ return localize(2441, "Client ID is required");
474
+ }
475
+ return undefined;
476
+ }
477
+ });
478
+ if (!clientId || clientId.trim().length === 0) {
479
+ return undefined;
480
+ }
481
+ const clientSecret = await this.quickInputService.input({
482
+ title: sharedTitle,
483
+ prompt: ( localize(
484
+ 2442,
485
+ "(optional) Enter an existing client secret associated with the client id '{0}' or leave this field blank",
486
+ clientId
487
+ )),
488
+ placeHolder: ( localize(2443, "OAuth client secret (wer32o50f...) or leave it blank")),
489
+ password: true,
490
+ ignoreFocusLost: true
491
+ });
492
+ return {
493
+ clientId: clientId.trim(),
494
+ clientSecret: clientSecret?.trim() || undefined
495
+ };
496
+ }
435
497
  };
436
498
  MainThreadAuthentication = __decorate([
437
499
  extHostNamedCustomer(MainContext.MainThreadAuthentication),
@@ -447,7 +509,8 @@ MainThreadAuthentication = __decorate([
447
509
  ( __param(10, ILogService)),
448
510
  ( __param(11, IURLService)),
449
511
  ( __param(12, IDynamicAuthenticationProviderStorageService)),
450
- ( __param(13, IClipboardService))
512
+ ( __param(13, IClipboardService)),
513
+ ( __param(14, IQuickInputService))
451
514
  ], MainThreadAuthentication);
452
515
 
453
516
  export { MainThreadAuthentication, MainThreadAuthenticationProvider };
@@ -7,7 +7,7 @@ import { IBulkEditService } from '@codingame/monaco-vscode-api/vscode/vs/editor/
7
7
  import { ILogService } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/common/log.service';
8
8
  import { IUriIdentityService } from '@codingame/monaco-vscode-api/vscode/vs/platform/uriIdentity/common/uriIdentity.service';
9
9
  import { MainContext } from '@codingame/monaco-vscode-api/vscode/vs/workbench/api/common/extHost.protocol';
10
- import { ResourceNotebookCellEdit } from '@codingame/monaco-vscode-271a23cd-c7d7-5761-ae35-a923a42987b8-common/vscode/vs/workbench/contrib/bulkEdit/browser/bulkCellEdits';
10
+ import { ResourceNotebookCellEdit } from '@codingame/monaco-vscode-670aae94-7f88-54d7-90ea-6fcbef423557-common/vscode/vs/workbench/contrib/bulkEdit/browser/bulkCellEdits';
11
11
  import { CellEditType } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/notebook/common/notebookCommon';
12
12
  import { extHostNamedCustomer } from '../../services/extensions/common/extHostCustomers.js';
13
13
 
@@ -92,7 +92,7 @@ let RemoteExtensionManagementCLI = class RemoteExtensionManagementCLI extends Ex
92
92
  if (!this._extensionManifestPropertiesService.canExecuteOnWorkspace(manifest)
93
93
  && !(isWeb && this._extensionManifestPropertiesService.canExecuteOnWeb(manifest))) {
94
94
  this.logger.info(( localize(
95
- 2418,
95
+ 2444,
96
96
  "Cannot install the '{0}' extension because it is declared to not run in this setup.",
97
97
  getExtensionId(manifest.publisher, manifest.name)
98
98
  )));