@codingame/monaco-vscode-api 1.82.6 → 1.83.1

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 (199) hide show
  1. package/api.js +5 -5
  2. package/assets/index-no-csp.html +2 -1
  3. package/assets/index.html +3 -2
  4. package/extensions.js +17 -14
  5. package/external/xterm/typings/xterm.d.ts +171 -109
  6. package/missing-services.js +33 -22
  7. package/monaco-editor-treemending.patch +1371 -1254
  8. package/monaco-treemending.js +2 -2
  9. package/monaco.js +2 -2
  10. package/package.json +2 -2
  11. package/service-override/extensions.js +10 -11
  12. package/services.d.ts +1 -1
  13. package/vscode/src/vs/base/browser/ui/menu/menubar.js +1 -1
  14. package/vscode/src/vs/base/common/event.d.ts +13 -17
  15. package/vscode/src/vs/base/common/keyCodes.d.ts +18 -18
  16. package/vscode/src/vs/base/common/lifecycle.d.ts +9 -0
  17. package/vscode/src/vs/base/common/observableInternal/base.d.ts +2 -0
  18. package/vscode/src/vs/base/common/product.d.ts +1 -0
  19. package/vscode/src/vs/base/parts/ipc/common/ipc.js +6 -2
  20. package/vscode/src/vs/base/parts/storage/common/storage.d.ts +1 -0
  21. package/vscode/src/vs/editor/common/config/editorOptions.d.ts +12 -3
  22. package/vscode/src/vs/editor/common/core/lineRange.d.ts +0 -5
  23. package/vscode/src/vs/editor/common/core/offsetRange.d.ts +9 -2
  24. package/vscode/src/vs/editor/common/diff/documentDiffProvider.d.ts +6 -20
  25. package/vscode/src/vs/editor/common/diff/legacyLinesDiffComputer.d.ts +2 -2
  26. package/vscode/src/vs/editor/common/diff/linesDiffComputer.d.ts +5 -55
  27. package/vscode/src/vs/editor/common/diff/rangeMapping.d.ts +55 -0
  28. package/vscode/src/vs/editor/common/languages.d.ts +7 -10
  29. package/vscode/src/vs/editor/common/model.d.ts +1 -1
  30. package/vscode/src/vs/platform/actions/common/actions.d.ts +1 -0
  31. package/vscode/src/vs/platform/extensionManagement/common/extensionNls.js +5 -5
  32. package/vscode/src/vs/platform/files/common/fileService.js +46 -40
  33. package/vscode/src/vs/platform/files/common/files.d.ts +46 -1
  34. package/vscode/src/vs/platform/files/common/inMemoryFilesystemProvider.js +45 -0
  35. package/vscode/src/vs/platform/storage/common/storage.d.ts +5 -0
  36. package/vscode/src/vs/platform/storage/common/storage.js +4 -0
  37. package/vscode/src/vs/platform/telemetry/common/telemetryUtils.js +4 -1
  38. package/vscode/src/vs/platform/terminal/common/terminal.js +1 -3
  39. package/vscode/src/vs/platform/tunnel/common/tunnel.d.ts +1 -1
  40. package/vscode/src/vs/platform/userDataProfile/common/userDataProfile.d.ts +1 -0
  41. package/vscode/src/vs/workbench/api/browser/mainThreadChat.js +11 -0
  42. package/vscode/src/vs/workbench/api/browser/mainThreadChatAgents.js +50 -0
  43. package/vscode/src/vs/workbench/api/browser/mainThreadChatSlashCommands.js +3 -2
  44. package/vscode/src/vs/workbench/api/browser/mainThreadComments.js +16 -11
  45. package/vscode/src/vs/workbench/api/browser/mainThreadDebugService.js +20 -6
  46. package/vscode/src/vs/workbench/api/browser/mainThreadEditor.js +2 -2
  47. package/vscode/src/vs/workbench/api/browser/mainThreadEditorTabs.js +1 -1
  48. package/vscode/src/vs/workbench/api/browser/mainThreadEditors.js +8 -8
  49. package/vscode/src/vs/workbench/api/browser/mainThreadExtensionService.js +3 -2
  50. package/vscode/src/vs/workbench/api/browser/mainThreadSCM.js +93 -0
  51. package/vscode/src/vs/workbench/api/browser/mainThreadSecretState.js +3 -166
  52. package/vscode/src/vs/workbench/api/browser/mainThreadTask.js +3 -0
  53. package/vscode/src/vs/workbench/api/browser/mainThreadTreeViews.js +18 -11
  54. package/vscode/src/vs/workbench/api/common/extHost.api.impl.js +14 -9
  55. package/vscode/src/vs/workbench/api/common/extHost.protocol.js +2 -1
  56. package/vscode/src/vs/workbench/api/common/extHostApiCommands.js +11 -2
  57. package/vscode/src/vs/workbench/api/common/extHostChat.js +10 -1
  58. package/vscode/src/vs/workbench/api/common/extHostChatAgents.js +62 -0
  59. package/vscode/src/vs/workbench/api/common/extHostChatSlashCommand.js +13 -4
  60. package/vscode/src/vs/workbench/api/common/extHostCommands.js +4 -4
  61. package/vscode/src/vs/workbench/api/common/extHostComments.js +1 -1
  62. package/vscode/src/vs/workbench/api/common/extHostExtensionService.js +36 -4
  63. package/vscode/src/vs/workbench/api/common/extHostInlineChat.js +6 -29
  64. package/vscode/src/vs/workbench/api/common/extHostLanguageFeatures.js +24 -12
  65. package/vscode/src/vs/workbench/api/common/extHostNotebookKernels.js +0 -2
  66. package/vscode/src/vs/workbench/api/common/extHostRequireInterceptor.js +0 -63
  67. package/vscode/src/vs/workbench/api/common/extHostSCM.js +80 -0
  68. package/vscode/src/vs/workbench/api/common/extHostTerminalService.js +24 -0
  69. package/vscode/src/vs/workbench/api/common/extHostTesting.js +14 -10
  70. package/vscode/src/vs/workbench/api/common/extHostTextEditor.js +4 -4
  71. package/vscode/src/vs/workbench/api/common/extHostTreeViews.js +11 -7
  72. package/vscode/src/vs/workbench/api/common/extHostTypeConverters.js +34 -16
  73. package/vscode/src/vs/workbench/api/common/extHostTypes.js +31 -13
  74. package/vscode/src/vs/workbench/api/common/extHostWebview.js +14 -2
  75. package/vscode/src/vs/workbench/api/common/extHostWebviewPanels.js +11 -5
  76. package/vscode/src/vs/workbench/api/common/extensionHostMain.js +1 -1
  77. package/vscode/src/vs/workbench/browser/actions/layoutActions.js +32 -9
  78. package/vscode/src/vs/workbench/browser/actions/quickAccessActions.js +3 -1
  79. package/vscode/src/vs/workbench/browser/codeeditor.js +1 -1
  80. package/vscode/src/vs/workbench/browser/dnd.js +7 -6
  81. package/vscode/src/vs/workbench/browser/media/part.css.js +1 -1
  82. package/vscode/src/vs/workbench/browser/parts/editor/editor.contribution.js +7 -10
  83. package/vscode/src/vs/workbench/browser/parts/editor/editor.js +7 -1
  84. package/vscode/src/vs/workbench/browser/parts/editor/editorActions.js +9 -3
  85. package/vscode/src/vs/workbench/browser/parts/editor/editorAutoSave.js +1 -1
  86. package/vscode/src/vs/workbench/browser/parts/editor/editorCommands.js +9 -2
  87. package/vscode/src/vs/workbench/browser/parts/editor/editorStatus.js +44 -14
  88. package/vscode/src/vs/workbench/browser/parts/editor/media/editorplaceholder.css.js +1 -1
  89. package/vscode/src/vs/workbench/browser/parts/editor/textDiffEditor.js +3 -19
  90. package/vscode/src/vs/workbench/browser/parts/editor/textResourceEditor.js +1 -1
  91. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsCommands.js +9 -3
  92. package/vscode/src/vs/workbench/browser/parts/statusbar/statusbarPart.d.ts +1 -1
  93. package/vscode/src/vs/workbench/browser/parts/titlebar/menubarControl.js +10 -9
  94. package/vscode/src/vs/workbench/browser/parts/views/viewFilter.js +2 -0
  95. package/vscode/src/vs/workbench/browser/parts/views/viewPane.js +2 -2
  96. package/vscode/src/vs/workbench/browser/parts/views/viewPaneContainer.js +6 -5
  97. package/vscode/src/vs/workbench/browser/web.api.d.ts +0 -6
  98. package/vscode/src/vs/workbench/browser/workbench.contribution.js +34 -3
  99. package/vscode/src/vs/workbench/common/contextkeys.js +2 -1
  100. package/vscode/src/vs/workbench/common/editor/editorGroupModel.js +4 -4
  101. package/vscode/src/vs/workbench/common/editor/editorInput.d.ts +0 -1
  102. package/vscode/src/vs/workbench/common/editor/editorInput.js +2 -4
  103. package/vscode/src/vs/workbench/common/editor/editorModel.d.ts +0 -1
  104. package/vscode/src/vs/workbench/common/editor/editorModel.js +1 -3
  105. package/vscode/src/vs/workbench/common/editor.d.ts +2 -0
  106. package/vscode/src/vs/workbench/common/theme.js +21 -1
  107. package/vscode/src/vs/workbench/common/views.d.ts +1 -1
  108. package/vscode/src/vs/workbench/common/views.js +1 -2
  109. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibilityConfiguration.js +12 -4
  110. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibilityContributions.js +335 -0
  111. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibleView.js +81 -27
  112. package/vscode/src/vs/workbench/contrib/bulkEdit/browser/bulkEditService.js +1 -1
  113. package/vscode/src/vs/workbench/contrib/bulkEdit/browser/bulkTextEdits.js +22 -14
  114. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatActions.js +2 -0
  115. package/vscode/src/vs/workbench/contrib/chat/common/chatAgents.js +136 -0
  116. package/vscode/src/vs/workbench/contrib/chat/common/chatModel.js +14 -3
  117. package/vscode/src/vs/workbench/contrib/chat/common/chatSlashCommands.js +78 -1
  118. package/vscode/src/vs/workbench/contrib/codeActions/browser/codeActionsContribution.js +43 -17
  119. package/vscode/src/vs/workbench/contrib/codeEditor/browser/diffEditorHelper.js +30 -26
  120. package/vscode/src/vs/workbench/contrib/codeEditor/browser/largeFileOptimizations.js +1 -1
  121. package/vscode/src/vs/workbench/contrib/codeEditor/browser/saveParticipants.js +23 -18
  122. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleWordWrap.js +8 -8
  123. package/vscode/src/vs/workbench/contrib/comments/browser/commentNode.js +55 -20
  124. package/vscode/src/vs/workbench/contrib/comments/browser/commentReply.js +26 -10
  125. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadBody.js +7 -6
  126. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadWidget.js +58 -9
  127. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadZoneWidget.js +9 -6
  128. package/vscode/src/vs/workbench/contrib/comments/browser/comments.contribution.js +171 -0
  129. package/vscode/src/vs/workbench/contrib/comments/browser/commentsController.js +204 -33
  130. package/vscode/src/vs/workbench/contrib/comments/browser/commentsTreeViewer.js +3 -7
  131. package/vscode/src/vs/workbench/contrib/comments/browser/commentsView.js +2 -2
  132. package/vscode/src/vs/workbench/contrib/comments/browser/media/review.css.js +1 -1
  133. package/vscode/src/vs/workbench/contrib/comments/browser/simpleCommentEditor.js +21 -4
  134. package/vscode/src/vs/workbench/contrib/comments/common/commentContextKeys.js +22 -0
  135. package/vscode/src/vs/workbench/contrib/debug/common/debug.d.ts +5 -2
  136. package/vscode/src/vs/workbench/contrib/debug/common/debugUtils.js +2 -1
  137. package/vscode/src/vs/workbench/contrib/files/browser/explorerViewlet.js +1 -1
  138. package/vscode/src/vs/workbench/contrib/files/browser/fileImportExport.js +2 -2
  139. package/vscode/src/vs/workbench/contrib/files/browser/files.contribution.js +4 -4
  140. package/vscode/src/vs/workbench/contrib/files/browser/views/emptyView.js +1 -1
  141. package/vscode/src/vs/workbench/contrib/files/browser/views/explorerViewer.js +7 -4
  142. package/vscode/src/vs/workbench/contrib/files/browser/views/openEditorsView.js +2 -1
  143. package/vscode/src/vs/workbench/contrib/files/common/files.js +7 -5
  144. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditorInputModel.js +2 -2
  145. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/diffComputer.js +2 -2
  146. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/mapping.js +2 -1
  147. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/mergeEditorModel.js +17 -17
  148. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/textModelDiffs.js +2 -2
  149. package/vscode/src/vs/workbench/contrib/notebook/common/notebookCommon.js +4 -1
  150. package/vscode/src/vs/workbench/contrib/output/browser/output.contribution.js +22 -19
  151. package/vscode/src/vs/workbench/contrib/output/browser/outputServices.js +2 -38
  152. package/vscode/src/vs/workbench/contrib/preferences/common/preferences.js +14 -1
  153. package/vscode/src/vs/workbench/contrib/quickaccess/browser/commandsQuickAccess.js +3 -8
  154. package/vscode/src/vs/workbench/contrib/scm/browser/dirtydiffDecorator.js +10 -12
  155. package/vscode/src/vs/workbench/contrib/snippets/browser/tabCompletion.js +2 -2
  156. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.d.ts +2 -2
  157. package/vscode/src/vs/workbench/contrib/terminal/common/terminalContextKey.js +0 -16
  158. package/vscode/src/vs/workbench/contrib/testing/common/observableValue.js +2 -1
  159. package/vscode/src/vs/workbench/contrib/testing/common/testResult.js +8 -6
  160. package/vscode/src/vs/workbench/services/actions/common/menusExtensionPoint.js +2 -4
  161. package/vscode/src/vs/workbench/services/authentication/browser/authenticationService.js +2 -4
  162. package/vscode/src/vs/workbench/services/decorations/browser/decorationsService.js +7 -3
  163. package/vscode/src/vs/workbench/services/editor/common/editorGroupsService.d.ts +2 -6
  164. package/vscode/src/vs/workbench/services/extensions/browser/extensionService.js +18 -20
  165. package/vscode/src/vs/workbench/services/extensions/browser/webWorkerExtensionHost.js +9 -13
  166. package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.d.ts +2 -1
  167. package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.js +47 -15
  168. package/vscode/src/vs/workbench/services/extensions/common/extensionDescriptionRegistry.d.ts +14 -4
  169. package/vscode/src/vs/workbench/services/extensions/common/extensionDescriptionRegistry.js +22 -3
  170. package/vscode/src/vs/workbench/services/extensions/common/extensionHostManager.d.ts +1 -1
  171. package/vscode/src/vs/workbench/services/extensions/common/extensionHostManager.js +15 -14
  172. package/vscode/src/vs/workbench/services/extensions/common/extensionHostProtocol.d.ts +12 -7
  173. package/vscode/src/vs/workbench/services/extensions/common/extensions.d.ts +10 -6
  174. package/vscode/src/vs/workbench/services/extensions/common/extensions.js +27 -11
  175. package/vscode/src/vs/workbench/services/extensions/common/extensionsApiProposals.js +2 -5
  176. package/vscode/src/vs/workbench/services/extensions/common/remoteExtensionHost.js +7 -11
  177. package/vscode/src/vs/workbench/services/extensions/common/rpcProtocol.js +20 -4
  178. package/vscode/src/vs/workbench/services/keybinding/browser/keybindingService.js +24 -16
  179. package/vscode/src/vs/workbench/services/output/common/output.js +1 -2
  180. package/vscode/src/vs/workbench/services/preferences/common/preferences.d.ts +6 -6
  181. package/vscode/src/vs/workbench/services/preferences/common/preferences.js +4 -3
  182. package/vscode/src/vs/workbench/services/preferences/common/preferencesModels.d.ts +0 -1
  183. package/vscode/src/vs/workbench/services/search/common/fileSearchManager.js +3 -1
  184. package/vscode/src/vs/workbench/services/search/common/search.js +2 -1
  185. package/vscode/src/vs/workbench/services/search/common/textSearchManager.js +1 -2
  186. package/vscode/src/vs/workbench/services/textfile/common/textFileEditorModel.js +2 -2
  187. package/vscode/src/vs/workbench/services/userDataProfile/common/userDataProfileService.js +3 -8
  188. package/vscode/src/vs/workbench/services/workingCopy/common/resourceWorkingCopy.js +3 -4
  189. package/vscode/src/vs/workbench/services/workingCopy/common/storedFileWorkingCopySaveParticipant.js +1 -0
  190. package/vscode/src/vs/workbench/services/workingCopy/common/workingCopyBackupService.js +2 -1
  191. package/vscode/src/vs/workbench/services/workingCopy/common/workingCopyService.js +4 -2
  192. package/vscode/src/vs/editor/browser/widget/diffEditorWidget2/diffEditorWidget2.contribution.js +0 -180
  193. package/vscode/src/vs/platform/credentials/common/credentials.d.ts +0 -13
  194. package/vscode/src/vs/platform/credentials/common/credentials.js +0 -3
  195. package/vscode/src/vs/workbench/api/browser/mainThreadKeytar.js +0 -31
  196. package/vscode/src/vs/workbench/browser/iframe.js +0 -16
  197. package/vscode/src/vs/workbench/browser/parts/editor/accessibilityStatus.js +0 -90
  198. package/vscode/src/vs/workbench/browser/parts/editor/tabFocus.js +0 -77
  199. package/vscode/src/vs/workbench/contrib/output/browser/logViewer.js +0 -67
@@ -2,14 +2,13 @@ import { __decorate, __param } from '../../../../../../external/tslib/tslib.es6.
2
2
  import { Emitter } from 'monaco-editor/esm/vs/base/common/event.js';
3
3
  import { Disposable, DisposableStore } from 'monaco-editor/esm/vs/base/common/lifecycle.js';
4
4
  import { URI } from 'monaco-editor/esm/vs/base/common/uri.js';
5
- import { generateUuid } from 'monaco-editor/esm/vs/base/common/uuid.js';
6
5
  import { Range } from 'monaco-editor/esm/vs/editor/common/core/range.js';
7
6
  import { Registry } from 'monaco-editor/esm/vs/platform/registry/common/platform.js';
8
7
  import { extHostNamedCustomer } from '../../services/extensions/common/extHostCustomers.js';
9
8
  import { ICommentService } from '../../contrib/comments/browser/commentService.js';
10
9
  import { CommentsPanel } from '../../contrib/comments/browser/commentsView.js';
11
10
  import { ExtHostContext, MainContext } from '../common/extHost.protocol.js';
12
- import { COMMENTS_VIEW_ID, COMMENTS_VIEW_TITLE, COMMENTS_VIEW_STORAGE_ID } from '../../contrib/comments/browser/commentsTreeViewer.js';
11
+ import { COMMENTS_VIEW_ID, COMMENTS_VIEW_TITLE, COMMENTS_VIEW_ORIGINAL_TITLE, COMMENTS_VIEW_STORAGE_ID } from '../../contrib/comments/browser/commentsTreeViewer.js';
13
12
  import { Extensions, IViewsService, IViewDescriptorService } from '../../common/views.js';
14
13
  import { SyncDescriptor } from 'monaco-editor/esm/vs/platform/instantiation/common/descriptors.js';
15
14
  import { ViewPaneContainer } from '../../browser/parts/views/viewPaneContainer.js';
@@ -214,14 +213,16 @@ class MainThreadCommentController {
214
213
  this._commentService.updateComments(this._uniqueId, {
215
214
  added: [thread],
216
215
  removed: [],
217
- changed: []
216
+ changed: [],
217
+ pending: []
218
218
  });
219
219
  }
220
220
  else {
221
221
  this._commentService.updateNotebookComments(this._uniqueId, {
222
222
  added: [thread],
223
223
  removed: [],
224
- changed: []
224
+ changed: [],
225
+ pending: []
225
226
  });
226
227
  }
227
228
  return thread;
@@ -233,14 +234,16 @@ class MainThreadCommentController {
233
234
  this._commentService.updateComments(this._uniqueId, {
234
235
  added: [],
235
236
  removed: [],
236
- changed: [thread]
237
+ changed: [thread],
238
+ pending: []
237
239
  });
238
240
  }
239
241
  else {
240
242
  this._commentService.updateNotebookComments(this._uniqueId, {
241
243
  added: [],
242
244
  removed: [],
243
- changed: [thread]
245
+ changed: [thread],
246
+ pending: []
244
247
  });
245
248
  }
246
249
  }
@@ -252,14 +255,16 @@ class MainThreadCommentController {
252
255
  this._commentService.updateComments(this._uniqueId, {
253
256
  added: [],
254
257
  removed: [thread],
255
- changed: []
258
+ changed: [],
259
+ pending: []
256
260
  });
257
261
  }
258
262
  else {
259
263
  this._commentService.updateNotebookComments(this._uniqueId, {
260
264
  added: [],
261
265
  removed: [thread],
262
- changed: []
266
+ changed: [],
267
+ pending: []
263
268
  });
264
269
  }
265
270
  }
@@ -388,8 +393,8 @@ let MainThreadComments = class MainThreadComments extends Disposable {
388
393
  controller.activeCommentThread = this._activeCommentThread;
389
394
  }));
390
395
  }
391
- $registerCommentController(handle, id, label) {
392
- const providerId = generateUuid();
396
+ $registerCommentController(handle, id, label, extensionId) {
397
+ const providerId = `${label}-${extensionId}`;
393
398
  this._handlers.set(handle, providerId);
394
399
  const provider = ( new MainThreadCommentController(this._proxy, this._commentService, handle, providerId, id, label, {}));
395
400
  this._commentService.registerCommentController(providerId, provider);
@@ -451,7 +456,7 @@ let MainThreadComments = class MainThreadComments extends Disposable {
451
456
  if (!commentsViewAlreadyRegistered) {
452
457
  const VIEW_CONTAINER = ( Registry.as(Extensions.ViewContainersRegistry)).registerViewContainer({
453
458
  id: COMMENTS_VIEW_ID,
454
- title: COMMENTS_VIEW_TITLE,
459
+ title: { value: COMMENTS_VIEW_TITLE, original: COMMENTS_VIEW_ORIGINAL_TITLE },
455
460
  ctorDescriptor: ( new SyncDescriptor(
456
461
  ViewPaneContainer,
457
462
  [COMMENTS_VIEW_ID, { mergeViewWithContainerWhenSingleView: true }]
@@ -1,5 +1,5 @@
1
1
  import { __decorate, __param } from '../../../../../../external/tslib/tslib.es6.js';
2
- import { DisposableStore, toDisposable } from 'monaco-editor/esm/vs/base/common/lifecycle.js';
2
+ import { DisposableStore, toDisposable, DisposableMap } from 'monaco-editor/esm/vs/base/common/lifecycle.js';
3
3
  import { URI } from 'monaco-editor/esm/vs/base/common/uri.js';
4
4
  import { IDebugService } from '../../contrib/debug/common/debug.js';
5
5
  import { ExtHostContext, MainContext } from '../common/extHost.protocol.js';
@@ -14,18 +14,32 @@ let MainThreadDebugService = class MainThreadDebugService {
14
14
  this._toDispose = ( new DisposableStore());
15
15
  this._debugAdaptersHandleCounter = 1;
16
16
  this._proxy = ( extHostContext.getProxy(ExtHostContext.ExtHostDebugService));
17
+ const sessionListeners = ( new DisposableMap());
18
+ this._toDispose.add(sessionListeners);
17
19
  this._toDispose.add(debugService.onDidNewSession(session => {
18
20
  this._proxy.$acceptDebugSessionStarted(this.getSessionDto(session));
19
- this._toDispose.add(session.onDidChangeName(name => {
21
+ const store = sessionListeners.get(session);
22
+ store.add(session.onDidChangeName(name => {
20
23
  this._proxy.$acceptDebugSessionNameChanged(this.getSessionDto(session), name);
21
24
  }));
22
25
  }));
23
26
  this._toDispose.add(debugService.onWillNewSession(session => {
24
- this._toDispose.add(session.onDidCustomEvent(event => this._proxy.$acceptDebugSessionCustomEvent(this.getSessionDto(session), event)));
27
+ let store = sessionListeners.get(session);
28
+ if (!store) {
29
+ store = ( new DisposableStore());
30
+ sessionListeners.set(session, store);
31
+ }
32
+ store.add(session.onDidCustomEvent(event => this._proxy.$acceptDebugSessionCustomEvent(this.getSessionDto(session), event)));
25
33
  }));
26
34
  this._toDispose.add(debugService.onDidEndSession(session => {
27
35
  this._proxy.$acceptDebugSessionTerminated(this.getSessionDto(session));
28
36
  this._sessions.delete(session.getId());
37
+ for (const [handle, value] of this._debugAdapters) {
38
+ if (value.session === session) {
39
+ this._debugAdapters.delete(handle);
40
+ }
41
+ }
42
+ sessionListeners.deleteAndDispose(session);
29
43
  }));
30
44
  this._toDispose.add(debugService.getViewModel().onDidFocusSession(session => {
31
45
  this._proxy.$acceptDebugSessionActiveChanged(this.getSessionDto(session));
@@ -344,12 +358,12 @@ MainThreadDebugService = __decorate([
344
358
  ( __param(1, IDebugService))
345
359
  ], MainThreadDebugService);
346
360
  class ExtensionHostDebugAdapter extends AbstractDebugAdapter {
347
- constructor(_ds, _handle, _proxy, _session) {
361
+ constructor(_ds, _handle, _proxy, session) {
348
362
  super();
349
363
  this._ds = _ds;
350
364
  this._handle = _handle;
351
365
  this._proxy = _proxy;
352
- this._session = _session;
366
+ this.session = session;
353
367
  }
354
368
  fireError(handle, err) {
355
369
  this._onError.fire(err);
@@ -358,7 +372,7 @@ class ExtensionHostDebugAdapter extends AbstractDebugAdapter {
358
372
  this._onExit.fire(code);
359
373
  }
360
374
  startSession() {
361
- return Promise.resolve(this._proxy.$startDASession(this._handle, this._ds.getSessionDto(this._session)));
375
+ return Promise.resolve(this._proxy.$startDASession(this._handle, this._ds.getSessionDto(this.session)));
362
376
  }
363
377
  sendMessage(message) {
364
378
  this._proxy.$sendDAMessage(this._handle, convertToDAPaths(message, true));
@@ -41,8 +41,8 @@ class MainThreadTextEditorProperties {
41
41
  let lineNumbers;
42
42
  if (codeEditor) {
43
43
  const options = codeEditor.getOptions();
44
- const lineNumbersOpts = options.get(66 );
45
- cursorStyle = options.get(27 );
44
+ const lineNumbersOpts = options.get(67 );
45
+ cursorStyle = options.get(28 );
46
46
  lineNumbers = lineNumbersOpts.renderType;
47
47
  }
48
48
  else if (previousProperties) {
@@ -407,7 +407,7 @@ let MainThreadEditorTabs = class MainThreadEditorTabs {
407
407
  if (viewColumn === SIDE_GROUP) {
408
408
  direction = preferredSideBySideGroupDirection(this._configurationService);
409
409
  }
410
- targetGroup = this._editorGroupsService.addGroup(this._editorGroupsService.groups[this._editorGroupsService.groups.length - 1], direction, undefined);
410
+ targetGroup = this._editorGroupsService.addGroup(this._editorGroupsService.groups[this._editorGroupsService.groups.length - 1], direction);
411
411
  }
412
412
  else {
413
413
  targetGroup = this._editorGroupsService.getGroup(groupId);
@@ -1,5 +1,5 @@
1
1
  import { __decorate, __param } from '../../../../../../external/tslib/tslib.es6.js';
2
- import { disposed } from 'monaco-editor/esm/vs/base/common/errors.js';
2
+ import { illegalArgument } from 'monaco-editor/esm/vs/base/common/errors.js';
3
3
  import { DisposableStore, dispose } from 'monaco-editor/esm/vs/base/common/lifecycle.js';
4
4
  import { equals } from 'monaco-editor/esm/vs/base/common/objects.js';
5
5
  import { URI } from 'monaco-editor/esm/vs/base/common/uri.js';
@@ -121,7 +121,7 @@ let MainThreadTextEditors = class MainThreadTextEditors {
121
121
  $trySetSelections(id, selections) {
122
122
  const editor = this._editorLocator.getEditor(id);
123
123
  if (!editor) {
124
- return Promise.reject(disposed(`TextEditor(${id})`));
124
+ return Promise.reject(illegalArgument(`TextEditor(${id})`));
125
125
  }
126
126
  editor.setSelections(selections);
127
127
  return Promise.resolve(undefined);
@@ -130,7 +130,7 @@ let MainThreadTextEditors = class MainThreadTextEditors {
130
130
  key = `${this._instanceId}-${key}`;
131
131
  const editor = this._editorLocator.getEditor(id);
132
132
  if (!editor) {
133
- return Promise.reject(disposed(`TextEditor(${id})`));
133
+ return Promise.reject(illegalArgument(`TextEditor(${id})`));
134
134
  }
135
135
  editor.setDecorations(key, ranges);
136
136
  return Promise.resolve(undefined);
@@ -139,7 +139,7 @@ let MainThreadTextEditors = class MainThreadTextEditors {
139
139
  key = `${this._instanceId}-${key}`;
140
140
  const editor = this._editorLocator.getEditor(id);
141
141
  if (!editor) {
142
- return Promise.reject(disposed(`TextEditor(${id})`));
142
+ return Promise.reject(illegalArgument(`TextEditor(${id})`));
143
143
  }
144
144
  editor.setDecorationsFast(key, ranges);
145
145
  return Promise.resolve(undefined);
@@ -147,7 +147,7 @@ let MainThreadTextEditors = class MainThreadTextEditors {
147
147
  $tryRevealRange(id, range, revealType) {
148
148
  const editor = this._editorLocator.getEditor(id);
149
149
  if (!editor) {
150
- return Promise.reject(disposed(`TextEditor(${id})`));
150
+ return Promise.reject(illegalArgument(`TextEditor(${id})`));
151
151
  }
152
152
  editor.revealRange(range, revealType);
153
153
  return Promise.resolve();
@@ -155,7 +155,7 @@ let MainThreadTextEditors = class MainThreadTextEditors {
155
155
  $trySetOptions(id, options) {
156
156
  const editor = this._editorLocator.getEditor(id);
157
157
  if (!editor) {
158
- return Promise.reject(disposed(`TextEditor(${id})`));
158
+ return Promise.reject(illegalArgument(`TextEditor(${id})`));
159
159
  }
160
160
  editor.setConfiguration(options);
161
161
  return Promise.resolve(undefined);
@@ -163,14 +163,14 @@ let MainThreadTextEditors = class MainThreadTextEditors {
163
163
  $tryApplyEdits(id, modelVersionId, edits, opts) {
164
164
  const editor = this._editorLocator.getEditor(id);
165
165
  if (!editor) {
166
- return Promise.reject(disposed(`TextEditor(${id})`));
166
+ return Promise.reject(illegalArgument(`TextEditor(${id})`));
167
167
  }
168
168
  return Promise.resolve(editor.applyEdits(modelVersionId, edits, opts));
169
169
  }
170
170
  $tryInsertSnippet(id, modelVersionId, template, ranges, opts) {
171
171
  const editor = this._editorLocator.getEditor(id);
172
172
  if (!editor) {
173
- return Promise.reject(disposed(`TextEditor(${id})`));
173
+ return Promise.reject(illegalArgument(`TextEditor(${id})`));
174
174
  }
175
175
  return Promise.resolve(editor.insertSnippet(modelVersionId, template, ranges, opts));
176
176
  }
@@ -168,9 +168,10 @@ let MainThreadExtensionService = class MainThreadExtensionService {
168
168
  severity: Severity.Error,
169
169
  message: ( localize(
170
170
  'uninstalledDep',
171
- "Cannot activate the '{0}' extension because it depends on the '{1}' extension, which is not installed. Would you like to install the extension and reload the window?",
171
+ "Cannot activate the '{0}' extension because it depends on the '{1}' extension from '{2}', which is not installed. Would you like to install the extension and reload the window?",
172
172
  extName,
173
- dependencyExtension.displayName
173
+ dependencyExtension.displayName,
174
+ dependencyExtension.publisherDisplayName
174
175
  )),
175
176
  actions: {
176
177
  primary: [( new Action('install', ( localize('install missing dep', "Install and Reload")), '', true, () => this._extensionsWorkbenchService.install(dependencyExtension)
@@ -9,6 +9,21 @@ import { Sequence } from 'monaco-editor/esm/vs/base/common/sequence.js';
9
9
  import { CancellationToken } from 'monaco-editor/esm/vs/base/common/cancellation.js';
10
10
  import { ThemeIcon } from 'monaco-editor/esm/vs/base/common/themables.js';
11
11
  import { IQuickDiffService } from '../../contrib/scm/common/quickDiff.js';
12
+ function getSCMHistoryItemIcon(historyItem) {
13
+ if (!historyItem.icon) {
14
+ return undefined;
15
+ }
16
+ else if (URI.isUri(historyItem.icon)) {
17
+ return URI.revive(historyItem.icon);
18
+ }
19
+ else if (ThemeIcon.isThemeIcon(historyItem.icon)) {
20
+ return historyItem.icon;
21
+ }
22
+ else {
23
+ const icon = historyItem.icon;
24
+ return { light: URI.revive(icon.light), dark: URI.revive(icon.dark) };
25
+ }
26
+ }
12
27
  class MainThreadSCMResourceGroup {
13
28
  get hideWhenEmpty() { return !!this.features.hideWhenEmpty; }
14
29
  constructor(sourceControlHandle, handle, provider, features, label, id) {
@@ -68,6 +83,45 @@ class MainThreadSCMResource {
68
83
  };
69
84
  }
70
85
  }
86
+ class MainThreadSCMHistoryProvider {
87
+ get actionButton() { return this._actionButton; }
88
+ set actionButton(actionButton) {
89
+ this._actionButton = actionButton;
90
+ this._onDidChangeActionButton.fire();
91
+ }
92
+ get currentHistoryItemGroup() { return this._currentHistoryItemGroup; }
93
+ set currentHistoryItemGroup(historyItemGroup) {
94
+ this._currentHistoryItemGroup = historyItemGroup;
95
+ this._onDidChangeCurrentHistoryItemGroup.fire();
96
+ }
97
+ constructor(proxy, handle) {
98
+ this.proxy = proxy;
99
+ this.handle = handle;
100
+ this._onDidChangeActionButton = ( new Emitter());
101
+ this.onDidChangeActionButton = this._onDidChangeActionButton.event;
102
+ this._onDidChangeCurrentHistoryItemGroup = ( new Emitter());
103
+ this.onDidChangeCurrentHistoryItemGroup = this._onDidChangeCurrentHistoryItemGroup.event;
104
+ }
105
+ async resolveHistoryItemGroupBase(historyItemGroupId) {
106
+ return this.proxy.$resolveHistoryItemGroupBase(this.handle, historyItemGroupId, CancellationToken.None);
107
+ }
108
+ async resolveHistoryItemGroupCommonAncestor(historyItemGroupId1, historyItemGroupId2) {
109
+ return this.proxy.$resolveHistoryItemGroupCommonAncestor(this.handle, historyItemGroupId1, historyItemGroupId2, CancellationToken.None);
110
+ }
111
+ async provideHistoryItems(historyItemGroupId, options) {
112
+ const historyItems = await this.proxy.$provideHistoryItems(this.handle, historyItemGroupId, options, CancellationToken.None);
113
+ return historyItems?.map(historyItem => ({ ...historyItem, icon: getSCMHistoryItemIcon(historyItem), }));
114
+ }
115
+ async provideHistoryItemChanges(historyItemId) {
116
+ const changes = await this.proxy.$provideHistoryItemChanges(this.handle, historyItemId, CancellationToken.None);
117
+ return changes?.map(change => ({
118
+ uri: URI.revive(change.uri),
119
+ originalUri: change.originalUri && URI.revive(change.originalUri),
120
+ modifiedUri: change.modifiedUri && URI.revive(change.modifiedUri),
121
+ renameUri: change.renameUri && URI.revive(change.renameUri)
122
+ }));
123
+ }
124
+ }
71
125
  class MainThreadSCMProvider {
72
126
  static { this.ID_HANDLE = 0; }
73
127
  get id() { return this._id; }
@@ -77,6 +131,7 @@ class MainThreadSCMProvider {
77
131
  get inputBoxDocumentUri() { return this._inputBoxDocumentUri; }
78
132
  get contextValue() { return this._contextValue; }
79
133
  get commitTemplate() { return this.features.commitTemplate || ''; }
134
+ get historyProvider() { return this._historyProvider; }
80
135
  get acceptInputCommand() { return this.features.acceptInputCommand; }
81
136
  get actionButton() { return this.features.actionButton ?? undefined; }
82
137
  get statusBarCommands() { return this.features.statusBarCommands; }
@@ -99,6 +154,8 @@ class MainThreadSCMProvider {
99
154
  this._onDidChangeCommitTemplate = ( new Emitter());
100
155
  this.onDidChangeCommitTemplate = this._onDidChangeCommitTemplate.event;
101
156
  this._onDidChangeStatusBarCommands = ( new Emitter());
157
+ this._onDidChangeHistoryProvider = ( new Emitter());
158
+ this.onDidChangeHistoryProvider = this._onDidChangeHistoryProvider.event;
102
159
  this._onDidChange = ( new Emitter());
103
160
  this.onDidChange = this._onDidChange.event;
104
161
  this.isSCM = true;
@@ -124,6 +181,14 @@ class MainThreadSCMProvider {
124
181
  this._quickDiff.dispose();
125
182
  this._quickDiff = undefined;
126
183
  }
184
+ if (features.hasHistoryProvider && !this._historyProvider) {
185
+ this._historyProvider = ( new MainThreadSCMHistoryProvider(this.proxy, this.handle));
186
+ this._onDidChangeHistoryProvider.fire();
187
+ }
188
+ else if (features.hasHistoryProvider === false && this._historyProvider) {
189
+ this._historyProvider = undefined;
190
+ this._onDidChangeHistoryProvider.fire();
191
+ }
127
192
  }
128
193
  $registerGroups(_groups) {
129
194
  const groups = ( _groups.map(([handle, id, label, features]) => {
@@ -201,6 +266,18 @@ class MainThreadSCMProvider {
201
266
  const result = await this.proxy.$provideOriginalResource(this.handle, uri, CancellationToken.None);
202
267
  return result && URI.revive(result);
203
268
  }
269
+ $onDidChangeHistoryProviderActionButton(actionButton) {
270
+ if (!this._historyProvider) {
271
+ return;
272
+ }
273
+ this._historyProvider.actionButton = actionButton ?? undefined;
274
+ }
275
+ $onDidChangeHistoryProviderCurrentHistoryItemGroup(currentHistoryItemGroup) {
276
+ if (!this._historyProvider) {
277
+ return;
278
+ }
279
+ this._historyProvider.currentHistoryItemGroup = currentHistoryItemGroup ?? undefined;
280
+ }
204
281
  toJSON() {
205
282
  return {
206
283
  $mid: 5 ,
@@ -358,6 +435,22 @@ let MainThreadSCM = class MainThreadSCM {
358
435
  repository.input.validateInput = async () => undefined;
359
436
  }
360
437
  }
438
+ $onDidChangeHistoryProviderActionButton(sourceControlHandle, actionButton) {
439
+ const repository = this._repositories.get(sourceControlHandle);
440
+ if (!repository) {
441
+ return;
442
+ }
443
+ const provider = repository.provider;
444
+ provider.$onDidChangeHistoryProviderActionButton(actionButton);
445
+ }
446
+ $onDidChangeHistoryProviderCurrentHistoryItemGroup(sourceControlHandle, historyItemGroup) {
447
+ const repository = this._repositories.get(sourceControlHandle);
448
+ if (!repository) {
449
+ return;
450
+ }
451
+ const provider = repository.provider;
452
+ provider.$onDidChangeHistoryProviderCurrentHistoryItemGroup(historyItemGroup);
453
+ }
361
454
  };
362
455
  MainThreadSCM = __decorate([
363
456
  extHostNamedCustomer(MainContext.MainThreadSCM),
@@ -1,103 +1,18 @@
1
1
  import { __decorate, __param } from '../../../../../../external/tslib/tslib.es6.js';
2
2
  import { Disposable } from 'monaco-editor/esm/vs/base/common/lifecycle.js';
3
3
  import { extHostNamedCustomer } from '../../services/extensions/common/extHostCustomers.js';
4
- import { ICredentialsService } from '../../../platform/credentials/common/credentials.js';
5
4
  import { ExtHostContext, MainContext } from '../common/extHost.protocol.js';
6
5
  import { ILogService } from 'monaco-editor/esm/vs/platform/log/common/log.js';
7
6
  import { SequencerByKey } from 'monaco-editor/esm/vs/base/common/async.js';
8
7
  import { ISecretStorageService } from '../../../platform/secrets/common/secrets.js';
9
8
  import { IBrowserWorkbenchEnvironmentService } from '../../services/environment/browser/environmentService.js';
10
- import { IEncryptionService } from '../../../platform/encryption/common/encryptionService.js';
11
- class OldMainThreadSecretState extends Disposable {
12
- constructor(_proxy, credentialsService, encryptionService, logService) {
13
- super();
14
- this._proxy = _proxy;
15
- this.credentialsService = credentialsService;
16
- this.encryptionService = encryptionService;
17
- this.logService = logService;
18
- this.secretStoragePrefix = this.credentialsService.getSecretStoragePrefix();
19
- this._register(this.credentialsService.onDidChangePassword(async (e) => {
20
- const extensionId = e.service?.substring((await this.secretStoragePrefix).length);
21
- if (extensionId) {
22
- this._proxy.$onDidChangePassword({ extensionId, key: e.account });
23
- }
24
- }));
25
- }
26
- async getFullKey(extensionId) {
27
- return `${await this.secretStoragePrefix}${extensionId}`;
28
- }
29
- async $getPassword(extensionId, key) {
30
- this.logService.trace(`MainThreadSecretState#getPassword: Getting password for ${extensionId} extension: `, key);
31
- const fullKey = await this.getFullKey(extensionId);
32
- const password = await this.credentialsService.getPassword(fullKey, key);
33
- if (!password) {
34
- this.logService.trace('MainThreadSecretState#getPassword: No password found for: ', key);
35
- return undefined;
36
- }
37
- let decrypted;
38
- try {
39
- this.logService.trace('MainThreadSecretState#getPassword: Decrypting password for: ', key);
40
- decrypted = await this.encryptionService.decrypt(password);
41
- }
42
- catch (e) {
43
- this.logService.error(e);
44
- this.logService.trace('MainThreadSecretState#getPassword: Trying migration for: ', key);
45
- const encryptedForSet = await this.encryptionService.encrypt(password);
46
- await this.credentialsService.setPassword(fullKey, key, encryptedForSet);
47
- const passwordEncrypted = await this.credentialsService.getPassword(fullKey, key);
48
- decrypted = passwordEncrypted && (await this.encryptionService.decrypt(passwordEncrypted));
49
- }
50
- if (decrypted) {
51
- try {
52
- const value = JSON.parse(decrypted);
53
- if (value.extensionId === extensionId) {
54
- this.logService.trace('MainThreadSecretState#getPassword: Password found for: ', key);
55
- return value.content;
56
- }
57
- }
58
- catch (parseError) {
59
- this.logService.error(parseError);
60
- throw new Error('Unable to parse decrypted password');
61
- }
62
- }
63
- this.logService.trace('MainThreadSecretState#getPassword: No password found for: ', key);
64
- return undefined;
65
- }
66
- async $setPassword(extensionId, key, value) {
67
- this.logService.trace(`MainThreadSecretState#setPassword: Setting password for ${extensionId} extension: `, key);
68
- const fullKey = await this.getFullKey(extensionId);
69
- const toEncrypt = JSON.stringify({
70
- extensionId,
71
- content: value
72
- });
73
- this.logService.trace('MainThreadSecretState#setPassword: Encrypting password for: ', key);
74
- const encrypted = await this.encryptionService.encrypt(toEncrypt);
75
- this.logService.trace('MainThreadSecretState#setPassword: Storing password for: ', key);
76
- return await this.credentialsService.setPassword(fullKey, key, encrypted);
77
- }
78
- async $deletePassword(extensionId, key) {
79
- try {
80
- const fullKey = await this.getFullKey(extensionId);
81
- await this.credentialsService.deletePassword(fullKey, key);
82
- }
83
- catch (_) {
84
- throw new Error('Cannot delete password');
85
- }
86
- }
87
- }
88
9
  let MainThreadSecretState = class MainThreadSecretState extends Disposable {
89
- constructor(extHostContext, secretStorageService, logService, credentialsService, encryptionService, environmentService) {
10
+ constructor(extHostContext, secretStorageService, logService, environmentService) {
90
11
  super();
91
12
  this.secretStorageService = secretStorageService;
92
13
  this.logService = logService;
93
- this.credentialsService = credentialsService;
94
- this.encryptionService = encryptionService;
95
14
  this._sequencer = ( new SequencerByKey());
96
- this.secretStoragePrefix = this.credentialsService.getSecretStoragePrefix();
97
15
  this._proxy = ( extHostContext.getProxy(ExtHostContext.ExtHostSecretState));
98
- if (environmentService.options?.credentialsProvider && !environmentService.options?.secretStorageProvider) {
99
- this._oldMainThreadSecretState = this._register(( new OldMainThreadSecretState(this._proxy, credentialsService, encryptionService, logService)));
100
- }
101
16
  this._register(this.secretStorageService.onDidChangeSecret((e) => {
102
17
  try {
103
18
  const { extensionId, key } = this.parseKey(e);
@@ -114,17 +29,9 @@ let MainThreadSecretState = class MainThreadSecretState extends Disposable {
114
29
  return this._sequencer.queue(extensionId, () => this.doGetPassword(extensionId, key));
115
30
  }
116
31
  async doGetPassword(extensionId, key) {
117
- if (this._oldMainThreadSecretState) {
118
- return await this._oldMainThreadSecretState.$getPassword(extensionId, key);
119
- }
120
32
  const fullKey = this.getKey(extensionId, key);
121
33
  const password = await this.secretStorageService.get(fullKey);
122
- if (!password) {
123
- this.logService.trace('[mainThreadSecretState] No password found for: ', extensionId, key);
124
- const password = await this.getAndDeleteOldPassword(extensionId, key);
125
- return password;
126
- }
127
- this.logService.trace('[mainThreadSecretState] Password found for: ', extensionId, key);
34
+ this.logService.trace(`[mainThreadSecretState] ${password ? 'P' : 'No p'}assword found for: `, extensionId, key);
128
35
  return password;
129
36
  }
130
37
  $setPassword(extensionId, key, value) {
@@ -132,9 +39,6 @@ let MainThreadSecretState = class MainThreadSecretState extends Disposable {
132
39
  return this._sequencer.queue(extensionId, () => this.doSetPassword(extensionId, key, value));
133
40
  }
134
41
  async doSetPassword(extensionId, key, value) {
135
- if (this._oldMainThreadSecretState) {
136
- return await this._oldMainThreadSecretState.$setPassword(extensionId, key, value);
137
- }
138
42
  const fullKey = this.getKey(extensionId, key);
139
43
  await this.secretStorageService.set(fullKey, value);
140
44
  this.logService.trace('[mainThreadSecretState] Password set for: ', extensionId, key);
@@ -144,9 +48,6 @@ let MainThreadSecretState = class MainThreadSecretState extends Disposable {
144
48
  return this._sequencer.queue(extensionId, () => this.doDeletePassword(extensionId, key));
145
49
  }
146
50
  async doDeletePassword(extensionId, key) {
147
- if (this._oldMainThreadSecretState) {
148
- return await this._oldMainThreadSecretState.$deletePassword(extensionId, key);
149
- }
150
51
  const fullKey = this.getKey(extensionId, key);
151
52
  await this.secretStorageService.delete(fullKey);
152
53
  this.logService.trace('[mainThreadSecretState] Password deleted for: ', extensionId, key);
@@ -157,75 +58,11 @@ let MainThreadSecretState = class MainThreadSecretState extends Disposable {
157
58
  parseKey(key) {
158
59
  return JSON.parse(key);
159
60
  }
160
- async getAndDeleteOldPassword(extensionId, key) {
161
- const password = await this.getOldPassword(extensionId, key);
162
- if (password) {
163
- const fullKey = this.getKey(extensionId, key);
164
- this.logService.trace('[mainThreadSecretState] Setting old password to new location for: ', extensionId, key);
165
- await this.secretStorageService.set(fullKey, password);
166
- this.logService.trace('[mainThreadSecretState] Old Password set to new location for: ', extensionId, key);
167
- if (this.secretStorageService.type === 'persisted') {
168
- this.logService.trace('[mainThreadSecretState] Deleting old password for since it was persisted in the new location: ', extensionId, key);
169
- await this.deleteOldPassword(extensionId, key);
170
- }
171
- }
172
- return password;
173
- }
174
- async getOldPassword(extensionId, key) {
175
- this.logService.trace(`[mainThreadSecretState] Getting old password for ${extensionId} extension: `, key);
176
- const fullKey = `${await this.secretStoragePrefix}${extensionId}`;
177
- const password = await this.credentialsService.getPassword(fullKey, key);
178
- if (!password) {
179
- this.logService.trace('[mainThreadSecretState] No old password found for: ', extensionId, key);
180
- return undefined;
181
- }
182
- let decrypted;
183
- try {
184
- this.logService.trace('[mainThreadSecretState] Decrypting old password for: ', extensionId, key);
185
- decrypted = await this.encryptionService.decrypt(password);
186
- }
187
- catch (e) {
188
- this.logService.error(e);
189
- this.logService.trace('[mainThreadSecretState] Trying old migration for: ', extensionId, key);
190
- const encryptedForSet = await this.encryptionService.encrypt(password);
191
- await this.credentialsService.setPassword(fullKey, key, encryptedForSet);
192
- const passwordEncrypted = await this.credentialsService.getPassword(fullKey, key);
193
- decrypted = passwordEncrypted && (await this.encryptionService.decrypt(passwordEncrypted));
194
- }
195
- if (decrypted) {
196
- try {
197
- const value = JSON.parse(decrypted);
198
- if (value.extensionId === extensionId) {
199
- this.logService.trace('[mainThreadSecretState] Old password found for: ', extensionId, key);
200
- return value.content;
201
- }
202
- }
203
- catch (parseError) {
204
- this.logService.error(parseError);
205
- return undefined;
206
- }
207
- }
208
- this.logService.trace('[mainThreadSecretState] No old password found for: ', extensionId, key);
209
- return undefined;
210
- }
211
- async deleteOldPassword(extensionId, key) {
212
- try {
213
- const fullKey = `${await this.secretStoragePrefix}${extensionId}`;
214
- this.logService.trace(`[mainThreadSecretState] Deleting old password for ${extensionId} extension: `, key);
215
- await this.credentialsService.deletePassword(fullKey, key);
216
- this.logService.trace('[mainThreadSecretState] Old password deleted for: ', extensionId, key);
217
- }
218
- catch (_) {
219
- throw new Error('Cannot delete password');
220
- }
221
- }
222
61
  };
223
62
  MainThreadSecretState = __decorate([
224
63
  extHostNamedCustomer(MainContext.MainThreadSecretState),
225
64
  ( __param(1, ISecretStorageService)),
226
65
  ( __param(2, ILogService)),
227
- ( __param(3, ICredentialsService)),
228
- ( __param(4, IEncryptionService)),
229
- ( __param(5, IBrowserWorkbenchEnvironmentService))
66
+ ( __param(3, IBrowserWorkbenchEnvironmentService))
230
67
  ], MainThreadSecretState);
231
68
  export { MainThreadSecretState };
@@ -425,6 +425,9 @@ let MainThreadTask = class MainThreadTask {
425
425
  this._proxy = ( extHostContext.getProxy(ExtHostContext.ExtHostTask));
426
426
  this._providers = ( new Map());
427
427
  this._taskService.onDidStateChange(async (event) => {
428
+ if (event.kind === "changed" ) {
429
+ return;
430
+ }
428
431
  const task = event.__task;
429
432
  if (event.kind === "start" ) {
430
433
  const execution = TaskExecutionDTO.from(task.getTaskExecution());