monaco-editor-core 0.54.0 → 0.55.0-dev-20251008

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 (264) hide show
  1. package/esm/nls.messages.de.js +1 -1
  2. package/esm/nls.messages.es.js +1 -1
  3. package/esm/nls.messages.fr.js +1 -1
  4. package/esm/nls.messages.it.js +1 -1
  5. package/esm/nls.messages.ja.js +1 -1
  6. package/esm/nls.messages.ko.js +1 -1
  7. package/esm/nls.messages.ru.js +1 -1
  8. package/esm/nls.messages.zh-cn.js +1 -1
  9. package/esm/nls.messages.zh-tw.js +1 -1
  10. package/esm/vs/base/browser/canIUse.js +1 -0
  11. package/esm/vs/base/browser/canIUse.js.map +1 -1
  12. package/esm/vs/base/browser/dom.js +9 -0
  13. package/esm/vs/base/browser/dom.js.map +1 -1
  14. package/esm/vs/base/browser/fastDomNode.js.map +1 -1
  15. package/esm/vs/base/browser/mouseEvent.js +3 -0
  16. package/esm/vs/base/browser/mouseEvent.js.map +1 -1
  17. package/esm/vs/base/browser/trustedTypes.js +2 -0
  18. package/esm/vs/base/browser/trustedTypes.js.map +1 -1
  19. package/esm/vs/base/browser/ui/list/listWidget.js +5 -5
  20. package/esm/vs/base/browser/ui/list/listWidget.js.map +1 -1
  21. package/esm/vs/base/browser/ui/sash/sash.css +1 -1
  22. package/esm/vs/base/browser/ui/sash/sash.js +4 -0
  23. package/esm/vs/base/browser/ui/sash/sash.js.map +1 -1
  24. package/esm/vs/base/browser/ui/scrollbar/scrollableElement.js +1 -1
  25. package/esm/vs/base/browser/ui/scrollbar/scrollableElement.js.map +1 -1
  26. package/esm/vs/base/browser/ui/table/table.css +2 -2
  27. package/esm/vs/base/browser/ui/tree/abstractTree.js +5 -4
  28. package/esm/vs/base/browser/ui/tree/abstractTree.js.map +1 -1
  29. package/esm/vs/base/browser/ui/tree/asyncDataTree.js +6 -4
  30. package/esm/vs/base/browser/ui/tree/asyncDataTree.js.map +1 -1
  31. package/esm/vs/base/browser/ui/tree/dataTree.js.map +1 -1
  32. package/esm/vs/base/browser/ui/tree/indexTreeModel.js +1 -1
  33. package/esm/vs/base/browser/ui/tree/indexTreeModel.js.map +1 -1
  34. package/esm/vs/base/browser/ui/tree/media/tree.css +2 -2
  35. package/esm/vs/base/browser/ui/tree/objectTree.js.map +1 -1
  36. package/esm/vs/base/browser/webWorkerFactory.js +3 -0
  37. package/esm/vs/base/browser/webWorkerFactory.js.map +1 -1
  38. package/esm/vs/base/common/buffer.js.map +1 -1
  39. package/esm/vs/base/common/decorators.js +1 -0
  40. package/esm/vs/base/common/decorators.js.map +1 -1
  41. package/esm/vs/base/common/errors.js +1 -0
  42. package/esm/vs/base/common/errors.js.map +1 -1
  43. package/esm/vs/base/common/glob.js +1 -1
  44. package/esm/vs/base/common/glob.js.map +1 -1
  45. package/esm/vs/base/common/hash.js.map +1 -1
  46. package/esm/vs/base/common/hotReload.js +2 -0
  47. package/esm/vs/base/common/hotReload.js.map +1 -1
  48. package/esm/vs/base/common/hotReloadHelpers.js +1 -0
  49. package/esm/vs/base/common/hotReloadHelpers.js.map +1 -1
  50. package/esm/vs/base/common/lifecycle.js +19 -0
  51. package/esm/vs/base/common/lifecycle.js.map +1 -1
  52. package/esm/vs/base/common/map.js.map +1 -1
  53. package/esm/vs/base/common/marshalling.js +4 -0
  54. package/esm/vs/base/common/marshalling.js.map +1 -1
  55. package/esm/vs/base/common/network.js +1 -0
  56. package/esm/vs/base/common/network.js.map +1 -1
  57. package/esm/vs/base/common/normalization.js +39 -0
  58. package/esm/vs/base/common/normalization.js.map +1 -0
  59. package/esm/vs/base/common/objects.js +1 -0
  60. package/esm/vs/base/common/objects.js.map +1 -1
  61. package/esm/vs/base/common/observableInternal/changeTracker.js +4 -0
  62. package/esm/vs/base/common/observableInternal/changeTracker.js.map +1 -1
  63. package/esm/vs/base/common/observableInternal/debugLocation.js +1 -0
  64. package/esm/vs/base/common/observableInternal/debugLocation.js.map +1 -1
  65. package/esm/vs/base/common/observableInternal/debugName.js +1 -0
  66. package/esm/vs/base/common/observableInternal/debugName.js.map +1 -1
  67. package/esm/vs/base/common/observableInternal/logging/consoleObservableLogger.js +1 -0
  68. package/esm/vs/base/common/observableInternal/logging/consoleObservableLogger.js.map +1 -1
  69. package/esm/vs/base/common/observableInternal/logging/debugger/debuggerRpc.js +1 -0
  70. package/esm/vs/base/common/observableInternal/logging/debugger/debuggerRpc.js.map +1 -1
  71. package/esm/vs/base/common/observableInternal/logging/debugger/rpc.js +1 -0
  72. package/esm/vs/base/common/observableInternal/logging/debugger/rpc.js.map +1 -1
  73. package/esm/vs/base/common/observableInternal/observables/derived.js +7 -1
  74. package/esm/vs/base/common/observableInternal/observables/derived.js.map +1 -1
  75. package/esm/vs/base/common/observableInternal/observables/derivedImpl.js +2 -0
  76. package/esm/vs/base/common/observableInternal/observables/derivedImpl.js.map +1 -1
  77. package/esm/vs/base/common/observableInternal/observables/observableFromEvent.js +1 -0
  78. package/esm/vs/base/common/observableInternal/observables/observableFromEvent.js.map +1 -1
  79. package/esm/vs/base/common/observableInternal/reactions/autorunImpl.js +1 -0
  80. package/esm/vs/base/common/observableInternal/reactions/autorunImpl.js.map +1 -1
  81. package/esm/vs/base/common/process.js.map +1 -1
  82. package/esm/vs/base/common/product.js.map +1 -1
  83. package/esm/vs/base/common/types.js +2 -0
  84. package/esm/vs/base/common/types.js.map +1 -1
  85. package/esm/vs/base/common/worker/webWorker.js +26 -14
  86. package/esm/vs/base/common/worker/webWorker.js.map +1 -1
  87. package/esm/vs/base/parts/sandbox/common/sandboxTypes.js +2 -0
  88. package/esm/vs/base/parts/sandbox/common/sandboxTypes.js.map +1 -0
  89. package/esm/vs/editor/browser/config/editorConfiguration.js +3 -2
  90. package/esm/vs/editor/browser/config/editorConfiguration.js.map +1 -1
  91. package/esm/vs/editor/browser/config/migrateOptions.js +1 -1
  92. package/esm/vs/editor/browser/config/migrateOptions.js.map +1 -1
  93. package/esm/vs/editor/browser/controller/editContext/native/editContextFactory.js.map +1 -1
  94. package/esm/vs/editor/browser/controller/editContext/native/nativeEditContextUtils.js +2 -0
  95. package/esm/vs/editor/browser/controller/editContext/native/nativeEditContextUtils.js.map +1 -1
  96. package/esm/vs/editor/browser/controller/mouseHandler.js +2 -1
  97. package/esm/vs/editor/browser/controller/mouseHandler.js.map +1 -1
  98. package/esm/vs/editor/browser/controller/mouseTarget.js +7 -0
  99. package/esm/vs/editor/browser/controller/mouseTarget.js.map +1 -1
  100. package/esm/vs/editor/browser/controller/pointerHandler.js.map +1 -1
  101. package/esm/vs/editor/browser/coreCommands.js.map +1 -1
  102. package/esm/vs/editor/browser/editorBrowser.js.map +1 -1
  103. package/esm/vs/editor/browser/editorDom.js.map +1 -1
  104. package/esm/vs/editor/browser/editorExtensions.js.map +1 -1
  105. package/esm/vs/editor/browser/gpu/gpuUtils.js +1 -0
  106. package/esm/vs/editor/browser/gpu/gpuUtils.js.map +1 -1
  107. package/esm/vs/editor/browser/gpu/viewGpuContext.js +1 -0
  108. package/esm/vs/editor/browser/gpu/viewGpuContext.js.map +1 -1
  109. package/esm/vs/editor/browser/services/abstractCodeEditorService.js.map +1 -1
  110. package/esm/vs/editor/browser/services/bulkEditService.js.map +1 -1
  111. package/esm/vs/editor/browser/services/codeEditorService.js.map +1 -1
  112. package/esm/vs/editor/browser/services/editorWorkerService.js.map +1 -1
  113. package/esm/vs/editor/browser/services/hoverService/hover.css +2 -0
  114. package/esm/vs/editor/browser/services/hoverService/hoverService.js.map +1 -1
  115. package/esm/vs/editor/browser/services/hoverService/hoverWidget.js +1 -1
  116. package/esm/vs/editor/browser/services/hoverService/hoverWidget.js.map +1 -1
  117. package/esm/vs/editor/browser/services/inlineCompletionsService.js +8 -8
  118. package/esm/vs/editor/browser/services/inlineCompletionsService.js.map +1 -1
  119. package/esm/vs/editor/browser/services/openerService.js.map +1 -1
  120. package/esm/vs/editor/browser/view/viewLayer.js +1 -1
  121. package/esm/vs/editor/browser/view/viewLayer.js.map +1 -1
  122. package/esm/vs/editor/browser/view.js.map +1 -1
  123. package/esm/vs/editor/browser/viewParts/contentWidgets/contentWidgets.js +1 -0
  124. package/esm/vs/editor/browser/viewParts/contentWidgets/contentWidgets.js.map +1 -1
  125. package/esm/vs/editor/browser/viewParts/viewZones/viewZones.js +1 -0
  126. package/esm/vs/editor/browser/viewParts/viewZones/viewZones.js.map +1 -1
  127. package/esm/vs/editor/browser/widget/codeEditor/codeEditorContributions.js.map +1 -1
  128. package/esm/vs/editor/browser/widget/codeEditor/codeEditorWidget.js +4 -1
  129. package/esm/vs/editor/browser/widget/codeEditor/codeEditorWidget.js.map +1 -1
  130. package/esm/vs/editor/browser/widget/diffEditor/components/diffEditorEditors.js +1 -0
  131. package/esm/vs/editor/browser/widget/diffEditor/components/diffEditorEditors.js.map +1 -1
  132. package/esm/vs/editor/browser/widget/diffEditor/delegatingEditorImpl.js.map +1 -1
  133. package/esm/vs/editor/browser/widget/diffEditor/diffEditorOptions.js +1 -0
  134. package/esm/vs/editor/browser/widget/diffEditor/diffEditorOptions.js.map +1 -1
  135. package/esm/vs/editor/browser/widget/diffEditor/diffEditorWidget.js +1 -0
  136. package/esm/vs/editor/browser/widget/diffEditor/diffEditorWidget.js.map +1 -1
  137. package/esm/vs/editor/browser/widget/diffEditor/utils.js +2 -0
  138. package/esm/vs/editor/browser/widget/diffEditor/utils.js.map +1 -1
  139. package/esm/vs/editor/browser/widget/multiDiffEditor/diffEditorItemTemplate.js +2 -0
  140. package/esm/vs/editor/browser/widget/multiDiffEditor/diffEditorItemTemplate.js.map +1 -1
  141. package/esm/vs/editor/common/config/editorOptions.js +122 -68
  142. package/esm/vs/editor/common/config/editorOptions.js.map +1 -1
  143. package/esm/vs/editor/common/config/fontInfo.js +32 -16
  144. package/esm/vs/editor/common/config/fontInfo.js.map +1 -1
  145. package/esm/vs/editor/common/config/fontInfoFromSettings.js +16 -0
  146. package/esm/vs/editor/common/config/fontInfoFromSettings.js.map +1 -0
  147. package/esm/vs/editor/common/core/edits/edit.js +1 -0
  148. package/esm/vs/editor/common/core/edits/edit.js.map +1 -1
  149. package/esm/vs/editor/common/core/edits/stringEdit.js +2 -0
  150. package/esm/vs/editor/common/core/edits/stringEdit.js.map +1 -1
  151. package/esm/vs/editor/common/core/position.js +1 -1
  152. package/esm/vs/editor/common/core/position.js.map +1 -1
  153. package/esm/vs/editor/common/core/range.js +1 -1
  154. package/esm/vs/editor/common/core/range.js.map +1 -1
  155. package/esm/vs/editor/common/core/selection.js +1 -1
  156. package/esm/vs/editor/common/core/selection.js.map +1 -1
  157. package/esm/vs/editor/common/cursor/cursorMoveCommands.js.map +1 -1
  158. package/esm/vs/editor/common/editorCommon.js.map +1 -1
  159. package/esm/vs/editor/common/languages.js +1 -1
  160. package/esm/vs/editor/common/languages.js.map +1 -1
  161. package/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/length.js +14 -0
  162. package/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/length.js.map +1 -1
  163. package/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/smallImmutableSet.js +2 -0
  164. package/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/smallImmutableSet.js.map +1 -1
  165. package/esm/vs/editor/common/model/textModel.js +1 -1
  166. package/esm/vs/editor/common/model/textModel.js.map +1 -1
  167. package/esm/vs/editor/common/model.js +1 -1
  168. package/esm/vs/editor/common/model.js.map +1 -1
  169. package/esm/vs/editor/common/services/editorBaseApi.js.map +1 -1
  170. package/esm/vs/editor/common/services/editorWebWorker.js +1 -0
  171. package/esm/vs/editor/common/services/editorWebWorker.js.map +1 -1
  172. package/esm/vs/editor/common/services/editorWorkerHost.js.map +1 -1
  173. package/esm/vs/editor/common/services/modelService.js +14 -21
  174. package/esm/vs/editor/common/services/modelService.js.map +1 -1
  175. package/esm/vs/editor/common/textModelEditSource.js +2 -0
  176. package/esm/vs/editor/common/textModelEditSource.js.map +1 -1
  177. package/esm/vs/editor/common/viewLayout/viewLineRenderer.js +40 -1
  178. package/esm/vs/editor/common/viewLayout/viewLineRenderer.js.map +1 -1
  179. package/esm/vs/editor/common/viewModel/viewModelImpl.js +2 -1
  180. package/esm/vs/editor/common/viewModel/viewModelImpl.js.map +1 -1
  181. package/esm/vs/editor/contrib/codeAction/browser/codeActionController.js +1 -1
  182. package/esm/vs/editor/contrib/codeAction/browser/codeActionController.js.map +1 -1
  183. package/esm/vs/editor/contrib/codelens/browser/codelensController.js +1 -1
  184. package/esm/vs/editor/contrib/codelens/browser/codelensController.js.map +1 -1
  185. package/esm/vs/editor/contrib/colorPicker/browser/colorDetector.js +1 -0
  186. package/esm/vs/editor/contrib/colorPicker/browser/colorDetector.js.map +1 -1
  187. package/esm/vs/editor/contrib/contextmenu/browser/contextmenu.js +1 -0
  188. package/esm/vs/editor/contrib/contextmenu/browser/contextmenu.js.map +1 -1
  189. package/esm/vs/editor/contrib/find/browser/findModel.js +1 -0
  190. package/esm/vs/editor/contrib/find/browser/findModel.js.map +1 -1
  191. package/esm/vs/editor/contrib/find/browser/findWidget.css +5 -5
  192. package/esm/vs/editor/contrib/folding/browser/folding.css +4 -4
  193. package/esm/vs/editor/contrib/folding/browser/foldingDecorations.js.map +1 -1
  194. package/esm/vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js +1 -1
  195. package/esm/vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js.map +1 -1
  196. package/esm/vs/editor/contrib/inlayHints/browser/inlayHintsController.js +30 -14
  197. package/esm/vs/editor/contrib/inlayHints/browser/inlayHintsController.js.map +1 -1
  198. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js +5 -3
  199. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js.map +1 -1
  200. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsSource.js +56 -7
  201. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsSource.js.map +1 -1
  202. package/esm/vs/editor/contrib/inlineCompletions/browser/structuredLogger.js +1 -0
  203. package/esm/vs/editor/contrib/inlineCompletions/browser/structuredLogger.js.map +1 -1
  204. package/esm/vs/editor/contrib/inlineCompletions/browser/view/ghostText/ghostTextView.js +2 -0
  205. package/esm/vs/editor/contrib/inlineCompletions/browser/view/ghostText/ghostTextView.js.map +1 -1
  206. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js +1 -0
  207. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js.map +1 -1
  208. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditWithChanges.js +2 -1
  209. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditWithChanges.js.map +1 -1
  210. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsModel.js +1 -1
  211. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsModel.js.map +1 -1
  212. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsView.js +27 -1
  213. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsView.js.map +1 -1
  214. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViewProducer.js +1 -1
  215. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViewProducer.js.map +1 -1
  216. package/esm/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js +1 -1
  217. package/esm/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js.map +1 -1
  218. package/esm/vs/editor/contrib/rename/browser/renameWidget.js.map +1 -1
  219. package/esm/vs/editor/contrib/symbolIcons/browser/symbolIcons.css +2 -0
  220. package/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js +2 -0
  221. package/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js.map +1 -1
  222. package/esm/vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js.map +1 -1
  223. package/esm/vs/editor/editor.api.d.ts +8 -8
  224. package/esm/vs/editor/editor.api.js +4 -0
  225. package/esm/vs/editor/editor.api.js.map +1 -1
  226. package/esm/vs/editor/standalone/browser/standaloneCodeEditor.js.map +1 -1
  227. package/esm/vs/editor/standalone/browser/standaloneEditor.js +37 -0
  228. package/esm/vs/editor/standalone/browser/standaloneEditor.js.map +1 -1
  229. package/esm/vs/editor/standalone/browser/standaloneLanguages.js +37 -0
  230. package/esm/vs/editor/standalone/browser/standaloneLanguages.js.map +1 -1
  231. package/esm/vs/editor/standalone/browser/standaloneServices.js.map +1 -1
  232. package/esm/vs/editor/standalone/browser/standaloneWebWorker.js.map +1 -1
  233. package/esm/vs/editor/standalone/common/monarch/monarchCompile.js +3 -0
  234. package/esm/vs/editor/standalone/common/monarch/monarchCompile.js.map +1 -1
  235. package/esm/vs/platform/accessibility/browser/accessibilityService.js +2 -2
  236. package/esm/vs/platform/accessibility/browser/accessibilityService.js.map +1 -1
  237. package/esm/vs/platform/actions/common/actions.js.map +1 -1
  238. package/esm/vs/platform/commands/common/commands.js.map +1 -1
  239. package/esm/vs/platform/contextkey/common/contextkey.js +5 -0
  240. package/esm/vs/platform/contextkey/common/contextkey.js.map +1 -1
  241. package/esm/vs/platform/dataChannel/browser/forwardingTelemetryService.js +1 -1
  242. package/esm/vs/platform/dataChannel/browser/forwardingTelemetryService.js.map +1 -1
  243. package/esm/vs/platform/dnd/browser/dnd.js +1 -1
  244. package/esm/vs/platform/dnd/browser/dnd.js.map +1 -1
  245. package/esm/vs/platform/instantiation/common/descriptors.js.map +1 -1
  246. package/esm/vs/platform/instantiation/common/instantiation.js.map +1 -1
  247. package/esm/vs/platform/instantiation/common/instantiationService.js +1 -0
  248. package/esm/vs/platform/instantiation/common/instantiationService.js.map +1 -1
  249. package/esm/vs/platform/list/browser/listService.js +5 -0
  250. package/esm/vs/platform/list/browser/listService.js.map +1 -1
  251. package/esm/vs/platform/log/common/log.js.map +1 -1
  252. package/esm/vs/platform/log/common/logService.js.map +1 -1
  253. package/esm/vs/platform/observable/common/wrapInHotClass.js +2 -0
  254. package/esm/vs/platform/observable/common/wrapInHotClass.js.map +1 -1
  255. package/esm/vs/platform/observable/common/wrapInReloadableClass.js +3 -0
  256. package/esm/vs/platform/observable/common/wrapInReloadableClass.js.map +1 -1
  257. package/esm/vs/platform/product/common/product.js +68 -0
  258. package/esm/vs/platform/product/common/product.js.map +1 -0
  259. package/esm/vs/platform/quickinput/browser/commandsQuickAccess.js +26 -2
  260. package/esm/vs/platform/quickinput/browser/commandsQuickAccess.js.map +1 -1
  261. package/esm/vs/platform/quickinput/browser/quickInput.js +1 -1
  262. package/esm/vs/platform/quickinput/browser/quickInput.js.map +1 -1
  263. package/monaco.d.ts +8 -8
  264. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/base/common/observableInternal/observables/observableFromEvent.ts","vs/base/common/observableInternal/observables/observableFromEvent.ts"],"names":[],"mappings":"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","file":"observableFromEvent.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { IObservable, ITransaction } from '../base.js';\nimport { subtransaction } from '../transaction.js';\nimport { EqualityComparer, Event, IDisposable, strictEquals } from '../commonFacade/deps.js';\nimport { DebugOwner, DebugNameData, IDebugNameData } from '../debugName.js';\nimport { getLogger } from '../logging/logging.js';\nimport { BaseObservable } from './baseObservable.js';\nimport { DebugLocation } from '../debugLocation.js';\n\n\nexport function observableFromEvent<T, TArgs = unknown>(\n\towner: DebugOwner,\n\tevent: Event<TArgs>,\n\tgetValue: (args: TArgs | undefined) => T,\n\tdebugLocation?: DebugLocation,\n): IObservable<T>;\nexport function observableFromEvent<T, TArgs = unknown>(\n\tevent: Event<TArgs>,\n\tgetValue: (args: TArgs | undefined) => T,\n): IObservable<T>;\nexport function observableFromEvent(...args:\n\t[owner: DebugOwner, event: Event<any>, getValue: (args: any | undefined) => any, debugLocation?: DebugLocation] |\n\t[event: Event<any>, getValue: (args: any | undefined) => any]\n): IObservable<any> {\n\tlet owner;\n\tlet event;\n\tlet getValue;\n\tlet debugLocation;\n\tif (args.length === 2) {\n\t\t[event, getValue] = args;\n\t} else {\n\t\t[owner, event, getValue, debugLocation] = args;\n\t}\n\treturn new FromEventObservable(\n\t\tnew DebugNameData(owner, undefined, getValue),\n\t\tevent,\n\t\tgetValue,\n\t\t() => FromEventObservable.globalTransaction,\n\t\tstrictEquals,\n\t\tdebugLocation ?? DebugLocation.ofCaller()\n\t);\n}\n\nexport function observableFromEventOpts<T, TArgs = unknown>(\n\toptions: IDebugNameData & {\n\t\tequalsFn?: EqualityComparer<T>;\n\t},\n\tevent: Event<TArgs>,\n\tgetValue: (args: TArgs | undefined) => T,\n\tdebugLocation = DebugLocation.ofCaller()\n): IObservable<T> {\n\treturn new FromEventObservable(\n\t\tnew DebugNameData(options.owner, options.debugName, options.debugReferenceFn ?? getValue),\n\t\tevent,\n\t\tgetValue, () => FromEventObservable.globalTransaction, options.equalsFn ?? strictEquals, debugLocation\n\t);\n}\n\nexport class FromEventObservable<TArgs, T> extends BaseObservable<T> {\n\tpublic static globalTransaction: ITransaction | undefined;\n\n\tprivate _value: T | undefined;\n\tprivate _hasValue = false;\n\tprivate _subscription: IDisposable | undefined;\n\n\tconstructor(\n\t\tprivate readonly _debugNameData: DebugNameData,\n\t\tprivate readonly event: Event<TArgs>,\n\t\tpublic readonly _getValue: (args: TArgs | undefined) => T,\n\t\tprivate readonly _getTransaction: () => ITransaction | undefined,\n\t\tprivate readonly _equalityComparator: EqualityComparer<T>,\n\t\tdebugLocation: DebugLocation\n\t) {\n\t\tsuper(debugLocation);\n\t}\n\n\tprivate getDebugName(): string | undefined {\n\t\treturn this._debugNameData.getDebugName(this);\n\t}\n\n\tpublic get debugName(): string {\n\t\tconst name = this.getDebugName();\n\t\treturn 'From Event' + (name ? `: ${name}` : '');\n\t}\n\n\tprotected override onFirstObserverAdded(): void {\n\t\tthis._subscription = this.event(this.handleEvent);\n\t}\n\n\tprivate readonly handleEvent = (args: TArgs | undefined) => {\n\t\tconst newValue = this._getValue(args);\n\t\tconst oldValue = this._value;\n\n\t\tconst didChange = !this._hasValue || !(this._equalityComparator(oldValue!, newValue));\n\t\tlet didRunTransaction = false;\n\n\t\tif (didChange) {\n\t\t\tthis._value = newValue;\n\n\t\t\tif (this._hasValue) {\n\t\t\t\tdidRunTransaction = true;\n\t\t\t\tsubtransaction(\n\t\t\t\t\tthis._getTransaction(),\n\t\t\t\t\t(tx) => {\n\t\t\t\t\t\tgetLogger()?.handleObservableUpdated(this, { oldValue, newValue, change: undefined, didChange, hadValue: this._hasValue });\n\n\t\t\t\t\t\tfor (const o of this._observers) {\n\t\t\t\t\t\t\ttx.updateObserver(o, this);\n\t\t\t\t\t\t\to.handleChange(this, undefined);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t() => {\n\t\t\t\t\t\tconst name = this.getDebugName();\n\t\t\t\t\t\treturn 'Event fired' + (name ? `: ${name}` : '');\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t\tthis._hasValue = true;\n\t\t}\n\n\t\tif (!didRunTransaction) {\n\t\t\tgetLogger()?.handleObservableUpdated(this, { oldValue, newValue, change: undefined, didChange, hadValue: this._hasValue });\n\t\t}\n\t};\n\n\tprotected override onLastObserverRemoved(): void {\n\t\tthis._subscription!.dispose();\n\t\tthis._subscription = undefined;\n\t\tthis._hasValue = false;\n\t\tthis._value = undefined;\n\t}\n\n\tpublic get(): T {\n\t\tif (this._subscription) {\n\t\t\tif (!this._hasValue) {\n\t\t\t\tthis.handleEvent(undefined);\n\t\t\t}\n\t\t\treturn this._value!;\n\t\t} else {\n\t\t\t// no cache, as there are no subscribers to keep it updated\n\t\t\tconst value = this._getValue(undefined);\n\t\t\treturn value;\n\t\t}\n\t}\n\n\tpublic debugSetValue(value: unknown): void {\n\t\tthis._value = value as any;\n\t}\n\n\tpublic debugGetState() {\n\t\treturn { value: this._value, hasValue: this._hasValue };\n\t}\n}\n\nexport namespace observableFromEvent {\n\texport const Observer = FromEventObservable;\n\n\texport function batchEventsGlobally(tx: ITransaction, fn: () => void): void {\n\t\tlet didSet = false;\n\t\tif (FromEventObservable.globalTransaction === undefined) {\n\t\t\tFromEventObservable.globalTransaction = tx;\n\t\t\tdidSet = true;\n\t\t}\n\t\ttry {\n\t\t\tfn();\n\t\t} finally {\n\t\t\tif (didSet) {\n\t\t\t\tFromEventObservable.globalTransaction = undefined;\n\t\t\t}\n\t\t}\n\t}\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { IObservable, ITransaction } from '../base.js';\nimport { subtransaction } from '../transaction.js';\nimport { EqualityComparer, Event, IDisposable, strictEquals } from '../commonFacade/deps.js';\nimport { DebugOwner, DebugNameData, IDebugNameData } from '../debugName.js';\nimport { getLogger } from '../logging/logging.js';\nimport { BaseObservable } from './baseObservable.js';\nimport { DebugLocation } from '../debugLocation.js';\n\n\nexport function observableFromEvent<T, TArgs = unknown>(\n\towner: DebugOwner,\n\tevent: Event<TArgs>,\n\tgetValue: (args: TArgs | undefined) => T,\n\tdebugLocation?: DebugLocation,\n): IObservable<T>;\nexport function observableFromEvent<T, TArgs = unknown>(\n\tevent: Event<TArgs>,\n\tgetValue: (args: TArgs | undefined) => T,\n): IObservable<T>;\nexport function observableFromEvent(...args:\n\t[owner: DebugOwner, event: Event<any>, getValue: (args: any | undefined) => any, debugLocation?: DebugLocation] |\n\t[event: Event<any>, getValue: (args: any | undefined) => any]\n): IObservable<any> {\n\tlet owner;\n\tlet event;\n\tlet getValue;\n\tlet debugLocation;\n\tif (args.length === 2) {\n\t\t[event, getValue] = args;\n\t} else {\n\t\t[owner, event, getValue, debugLocation] = args;\n\t}\n\treturn new FromEventObservable(\n\t\tnew DebugNameData(owner, undefined, getValue),\n\t\tevent,\n\t\tgetValue,\n\t\t() => FromEventObservable.globalTransaction,\n\t\tstrictEquals,\n\t\tdebugLocation ?? DebugLocation.ofCaller()\n\t);\n}\n\nexport function observableFromEventOpts<T, TArgs = unknown>(\n\toptions: IDebugNameData & {\n\t\tequalsFn?: EqualityComparer<T>;\n\t},\n\tevent: Event<TArgs>,\n\tgetValue: (args: TArgs | undefined) => T,\n\tdebugLocation = DebugLocation.ofCaller()\n): IObservable<T> {\n\treturn new FromEventObservable(\n\t\tnew DebugNameData(options.owner, options.debugName, options.debugReferenceFn ?? getValue),\n\t\tevent,\n\t\tgetValue, () => FromEventObservable.globalTransaction, options.equalsFn ?? strictEquals, debugLocation\n\t);\n}\n\nexport class FromEventObservable<TArgs, T> extends BaseObservable<T> {\n\tpublic static globalTransaction: ITransaction | undefined;\n\n\tprivate _value: T | undefined;\n\tprivate _hasValue = false;\n\tprivate _subscription: IDisposable | undefined;\n\n\tconstructor(\n\t\tprivate readonly _debugNameData: DebugNameData,\n\t\tprivate readonly event: Event<TArgs>,\n\t\tpublic readonly _getValue: (args: TArgs | undefined) => T,\n\t\tprivate readonly _getTransaction: () => ITransaction | undefined,\n\t\tprivate readonly _equalityComparator: EqualityComparer<T>,\n\t\tdebugLocation: DebugLocation\n\t) {\n\t\tsuper(debugLocation);\n\t}\n\n\tprivate getDebugName(): string | undefined {\n\t\treturn this._debugNameData.getDebugName(this);\n\t}\n\n\tpublic get debugName(): string {\n\t\tconst name = this.getDebugName();\n\t\treturn 'From Event' + (name ? `: ${name}` : '');\n\t}\n\n\tprotected override onFirstObserverAdded(): void {\n\t\tthis._subscription = this.event(this.handleEvent);\n\t}\n\n\tprivate readonly handleEvent = (args: TArgs | undefined) => {\n\t\tconst newValue = this._getValue(args);\n\t\tconst oldValue = this._value;\n\n\t\tconst didChange = !this._hasValue || !(this._equalityComparator(oldValue!, newValue));\n\t\tlet didRunTransaction = false;\n\n\t\tif (didChange) {\n\t\t\tthis._value = newValue;\n\n\t\t\tif (this._hasValue) {\n\t\t\t\tdidRunTransaction = true;\n\t\t\t\tsubtransaction(\n\t\t\t\t\tthis._getTransaction(),\n\t\t\t\t\t(tx) => {\n\t\t\t\t\t\tgetLogger()?.handleObservableUpdated(this, { oldValue, newValue, change: undefined, didChange, hadValue: this._hasValue });\n\n\t\t\t\t\t\tfor (const o of this._observers) {\n\t\t\t\t\t\t\ttx.updateObserver(o, this);\n\t\t\t\t\t\t\to.handleChange(this, undefined);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t() => {\n\t\t\t\t\t\tconst name = this.getDebugName();\n\t\t\t\t\t\treturn 'Event fired' + (name ? `: ${name}` : '');\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t\tthis._hasValue = true;\n\t\t}\n\n\t\tif (!didRunTransaction) {\n\t\t\tgetLogger()?.handleObservableUpdated(this, { oldValue, newValue, change: undefined, didChange, hadValue: this._hasValue });\n\t\t}\n\t};\n\n\tprotected override onLastObserverRemoved(): void {\n\t\tthis._subscription!.dispose();\n\t\tthis._subscription = undefined;\n\t\tthis._hasValue = false;\n\t\tthis._value = undefined;\n\t}\n\n\tpublic get(): T {\n\t\tif (this._subscription) {\n\t\t\tif (!this._hasValue) {\n\t\t\t\tthis.handleEvent(undefined);\n\t\t\t}\n\t\t\treturn this._value!;\n\t\t} else {\n\t\t\t// no cache, as there are no subscribers to keep it updated\n\t\t\tconst value = this._getValue(undefined);\n\t\t\treturn value;\n\t\t}\n\t}\n\n\tpublic debugSetValue(value: unknown): void {\n\t\tthis._value = value as any;\n\t}\n\n\tpublic debugGetState() {\n\t\treturn { value: this._value, hasValue: this._hasValue };\n\t}\n}\n\nexport namespace observableFromEvent {\n\texport const Observer = FromEventObservable;\n\n\texport function batchEventsGlobally(tx: ITransaction, fn: () => void): void {\n\t\tlet didSet = false;\n\t\tif (FromEventObservable.globalTransaction === undefined) {\n\t\t\tFromEventObservable.globalTransaction = tx;\n\t\t\tdidSet = true;\n\t\t}\n\t\ttry {\n\t\t\tfn();\n\t\t} finally {\n\t\t\tif (didSet) {\n\t\t\t\tFromEventObservable.globalTransaction = undefined;\n\t\t\t}\n\t\t}\n\t}\n}\n"]}
1
+ {"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/base/common/observableInternal/observables/observableFromEvent.ts","vs/base/common/observableInternal/observables/observableFromEvent.ts"],"names":[],"mappings":"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","file":"observableFromEvent.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { IObservable, ITransaction } from '../base.js';\nimport { subtransaction } from '../transaction.js';\nimport { EqualityComparer, Event, IDisposable, strictEquals } from '../commonFacade/deps.js';\nimport { DebugOwner, DebugNameData, IDebugNameData } from '../debugName.js';\nimport { getLogger } from '../logging/logging.js';\nimport { BaseObservable } from './baseObservable.js';\nimport { DebugLocation } from '../debugLocation.js';\n\n\nexport function observableFromEvent<T, TArgs = unknown>(\n\towner: DebugOwner,\n\tevent: Event<TArgs>,\n\tgetValue: (args: TArgs | undefined) => T,\n\tdebugLocation?: DebugLocation,\n): IObservable<T>;\nexport function observableFromEvent<T, TArgs = unknown>(\n\tevent: Event<TArgs>,\n\tgetValue: (args: TArgs | undefined) => T,\n): IObservable<T>;\nexport function observableFromEvent(...args:\n\t[owner: DebugOwner, event: Event<any>, getValue: (args: any | undefined) => any, debugLocation?: DebugLocation] |\n\t[event: Event<any>, getValue: (args: any | undefined) => any]\n): IObservable<any> {\n\tlet owner;\n\tlet event;\n\tlet getValue;\n\tlet debugLocation;\n\tif (args.length === 2) {\n\t\t[event, getValue] = args;\n\t} else {\n\t\t[owner, event, getValue, debugLocation] = args;\n\t}\n\treturn new FromEventObservable(\n\t\tnew DebugNameData(owner, undefined, getValue),\n\t\tevent,\n\t\tgetValue,\n\t\t() => FromEventObservable.globalTransaction,\n\t\tstrictEquals,\n\t\tdebugLocation ?? DebugLocation.ofCaller()\n\t);\n}\n\nexport function observableFromEventOpts<T, TArgs = unknown>(\n\toptions: IDebugNameData & {\n\t\tequalsFn?: EqualityComparer<T>;\n\t},\n\tevent: Event<TArgs>,\n\tgetValue: (args: TArgs | undefined) => T,\n\tdebugLocation = DebugLocation.ofCaller()\n): IObservable<T> {\n\treturn new FromEventObservable(\n\t\tnew DebugNameData(options.owner, options.debugName, options.debugReferenceFn ?? getValue),\n\t\tevent,\n\t\tgetValue, () => FromEventObservable.globalTransaction, options.equalsFn ?? strictEquals, debugLocation\n\t);\n}\n\nexport class FromEventObservable<TArgs, T> extends BaseObservable<T> {\n\tpublic static globalTransaction: ITransaction | undefined;\n\n\tprivate _value: T | undefined;\n\tprivate _hasValue = false;\n\tprivate _subscription: IDisposable | undefined;\n\n\tconstructor(\n\t\tprivate readonly _debugNameData: DebugNameData,\n\t\tprivate readonly event: Event<TArgs>,\n\t\tpublic readonly _getValue: (args: TArgs | undefined) => T,\n\t\tprivate readonly _getTransaction: () => ITransaction | undefined,\n\t\tprivate readonly _equalityComparator: EqualityComparer<T>,\n\t\tdebugLocation: DebugLocation\n\t) {\n\t\tsuper(debugLocation);\n\t}\n\n\tprivate getDebugName(): string | undefined {\n\t\treturn this._debugNameData.getDebugName(this);\n\t}\n\n\tpublic get debugName(): string {\n\t\tconst name = this.getDebugName();\n\t\treturn 'From Event' + (name ? `: ${name}` : '');\n\t}\n\n\tprotected override onFirstObserverAdded(): void {\n\t\tthis._subscription = this.event(this.handleEvent);\n\t}\n\n\tprivate readonly handleEvent = (args: TArgs | undefined) => {\n\t\tconst newValue = this._getValue(args);\n\t\tconst oldValue = this._value;\n\n\t\tconst didChange = !this._hasValue || !(this._equalityComparator(oldValue!, newValue));\n\t\tlet didRunTransaction = false;\n\n\t\tif (didChange) {\n\t\t\tthis._value = newValue;\n\n\t\t\tif (this._hasValue) {\n\t\t\t\tdidRunTransaction = true;\n\t\t\t\tsubtransaction(\n\t\t\t\t\tthis._getTransaction(),\n\t\t\t\t\t(tx) => {\n\t\t\t\t\t\tgetLogger()?.handleObservableUpdated(this, { oldValue, newValue, change: undefined, didChange, hadValue: this._hasValue });\n\n\t\t\t\t\t\tfor (const o of this._observers) {\n\t\t\t\t\t\t\ttx.updateObserver(o, this);\n\t\t\t\t\t\t\to.handleChange(this, undefined);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t() => {\n\t\t\t\t\t\tconst name = this.getDebugName();\n\t\t\t\t\t\treturn 'Event fired' + (name ? `: ${name}` : '');\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t\tthis._hasValue = true;\n\t\t}\n\n\t\tif (!didRunTransaction) {\n\t\t\tgetLogger()?.handleObservableUpdated(this, { oldValue, newValue, change: undefined, didChange, hadValue: this._hasValue });\n\t\t}\n\t};\n\n\tprotected override onLastObserverRemoved(): void {\n\t\tthis._subscription!.dispose();\n\t\tthis._subscription = undefined;\n\t\tthis._hasValue = false;\n\t\tthis._value = undefined;\n\t}\n\n\tpublic get(): T {\n\t\tif (this._subscription) {\n\t\t\tif (!this._hasValue) {\n\t\t\t\tthis.handleEvent(undefined);\n\t\t\t}\n\t\t\treturn this._value!;\n\t\t} else {\n\t\t\t// no cache, as there are no subscribers to keep it updated\n\t\t\tconst value = this._getValue(undefined);\n\t\t\treturn value;\n\t\t}\n\t}\n\n\tpublic debugSetValue(value: unknown): void {\n\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\tthis._value = value as any;\n\t}\n\n\tpublic debugGetState() {\n\t\treturn { value: this._value, hasValue: this._hasValue };\n\t}\n}\n\nexport namespace observableFromEvent {\n\texport const Observer = FromEventObservable;\n\n\texport function batchEventsGlobally(tx: ITransaction, fn: () => void): void {\n\t\tlet didSet = false;\n\t\tif (FromEventObservable.globalTransaction === undefined) {\n\t\t\tFromEventObservable.globalTransaction = tx;\n\t\t\tdidSet = true;\n\t\t}\n\t\ttry {\n\t\t\tfn();\n\t\t} finally {\n\t\t\tif (didSet) {\n\t\t\t\tFromEventObservable.globalTransaction = undefined;\n\t\t\t}\n\t\t}\n\t}\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { IObservable, ITransaction } from '../base.js';\nimport { subtransaction } from '../transaction.js';\nimport { EqualityComparer, Event, IDisposable, strictEquals } from '../commonFacade/deps.js';\nimport { DebugOwner, DebugNameData, IDebugNameData } from '../debugName.js';\nimport { getLogger } from '../logging/logging.js';\nimport { BaseObservable } from './baseObservable.js';\nimport { DebugLocation } from '../debugLocation.js';\n\n\nexport function observableFromEvent<T, TArgs = unknown>(\n\towner: DebugOwner,\n\tevent: Event<TArgs>,\n\tgetValue: (args: TArgs | undefined) => T,\n\tdebugLocation?: DebugLocation,\n): IObservable<T>;\nexport function observableFromEvent<T, TArgs = unknown>(\n\tevent: Event<TArgs>,\n\tgetValue: (args: TArgs | undefined) => T,\n): IObservable<T>;\nexport function observableFromEvent(...args:\n\t[owner: DebugOwner, event: Event<any>, getValue: (args: any | undefined) => any, debugLocation?: DebugLocation] |\n\t[event: Event<any>, getValue: (args: any | undefined) => any]\n): IObservable<any> {\n\tlet owner;\n\tlet event;\n\tlet getValue;\n\tlet debugLocation;\n\tif (args.length === 2) {\n\t\t[event, getValue] = args;\n\t} else {\n\t\t[owner, event, getValue, debugLocation] = args;\n\t}\n\treturn new FromEventObservable(\n\t\tnew DebugNameData(owner, undefined, getValue),\n\t\tevent,\n\t\tgetValue,\n\t\t() => FromEventObservable.globalTransaction,\n\t\tstrictEquals,\n\t\tdebugLocation ?? DebugLocation.ofCaller()\n\t);\n}\n\nexport function observableFromEventOpts<T, TArgs = unknown>(\n\toptions: IDebugNameData & {\n\t\tequalsFn?: EqualityComparer<T>;\n\t},\n\tevent: Event<TArgs>,\n\tgetValue: (args: TArgs | undefined) => T,\n\tdebugLocation = DebugLocation.ofCaller()\n): IObservable<T> {\n\treturn new FromEventObservable(\n\t\tnew DebugNameData(options.owner, options.debugName, options.debugReferenceFn ?? getValue),\n\t\tevent,\n\t\tgetValue, () => FromEventObservable.globalTransaction, options.equalsFn ?? strictEquals, debugLocation\n\t);\n}\n\nexport class FromEventObservable<TArgs, T> extends BaseObservable<T> {\n\tpublic static globalTransaction: ITransaction | undefined;\n\n\tprivate _value: T | undefined;\n\tprivate _hasValue = false;\n\tprivate _subscription: IDisposable | undefined;\n\n\tconstructor(\n\t\tprivate readonly _debugNameData: DebugNameData,\n\t\tprivate readonly event: Event<TArgs>,\n\t\tpublic readonly _getValue: (args: TArgs | undefined) => T,\n\t\tprivate readonly _getTransaction: () => ITransaction | undefined,\n\t\tprivate readonly _equalityComparator: EqualityComparer<T>,\n\t\tdebugLocation: DebugLocation\n\t) {\n\t\tsuper(debugLocation);\n\t}\n\n\tprivate getDebugName(): string | undefined {\n\t\treturn this._debugNameData.getDebugName(this);\n\t}\n\n\tpublic get debugName(): string {\n\t\tconst name = this.getDebugName();\n\t\treturn 'From Event' + (name ? `: ${name}` : '');\n\t}\n\n\tprotected override onFirstObserverAdded(): void {\n\t\tthis._subscription = this.event(this.handleEvent);\n\t}\n\n\tprivate readonly handleEvent = (args: TArgs | undefined) => {\n\t\tconst newValue = this._getValue(args);\n\t\tconst oldValue = this._value;\n\n\t\tconst didChange = !this._hasValue || !(this._equalityComparator(oldValue!, newValue));\n\t\tlet didRunTransaction = false;\n\n\t\tif (didChange) {\n\t\t\tthis._value = newValue;\n\n\t\t\tif (this._hasValue) {\n\t\t\t\tdidRunTransaction = true;\n\t\t\t\tsubtransaction(\n\t\t\t\t\tthis._getTransaction(),\n\t\t\t\t\t(tx) => {\n\t\t\t\t\t\tgetLogger()?.handleObservableUpdated(this, { oldValue, newValue, change: undefined, didChange, hadValue: this._hasValue });\n\n\t\t\t\t\t\tfor (const o of this._observers) {\n\t\t\t\t\t\t\ttx.updateObserver(o, this);\n\t\t\t\t\t\t\to.handleChange(this, undefined);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t() => {\n\t\t\t\t\t\tconst name = this.getDebugName();\n\t\t\t\t\t\treturn 'Event fired' + (name ? `: ${name}` : '');\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t\tthis._hasValue = true;\n\t\t}\n\n\t\tif (!didRunTransaction) {\n\t\t\tgetLogger()?.handleObservableUpdated(this, { oldValue, newValue, change: undefined, didChange, hadValue: this._hasValue });\n\t\t}\n\t};\n\n\tprotected override onLastObserverRemoved(): void {\n\t\tthis._subscription!.dispose();\n\t\tthis._subscription = undefined;\n\t\tthis._hasValue = false;\n\t\tthis._value = undefined;\n\t}\n\n\tpublic get(): T {\n\t\tif (this._subscription) {\n\t\t\tif (!this._hasValue) {\n\t\t\t\tthis.handleEvent(undefined);\n\t\t\t}\n\t\t\treturn this._value!;\n\t\t} else {\n\t\t\t// no cache, as there are no subscribers to keep it updated\n\t\t\tconst value = this._getValue(undefined);\n\t\t\treturn value;\n\t\t}\n\t}\n\n\tpublic debugSetValue(value: unknown): void {\n\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\tthis._value = value as any;\n\t}\n\n\tpublic debugGetState() {\n\t\treturn { value: this._value, hasValue: this._hasValue };\n\t}\n}\n\nexport namespace observableFromEvent {\n\texport const Observer = FromEventObservable;\n\n\texport function batchEventsGlobally(tx: ITransaction, fn: () => void): void {\n\t\tlet didSet = false;\n\t\tif (FromEventObservable.globalTransaction === undefined) {\n\t\t\tFromEventObservable.globalTransaction = tx;\n\t\t\tdidSet = true;\n\t\t}\n\t\ttry {\n\t\t\tfn();\n\t\t} finally {\n\t\t\tif (didSet) {\n\t\t\t\tFromEventObservable.globalTransaction = undefined;\n\t\t\t}\n\t\t}\n\t}\n}\n"]}
@@ -147,6 +147,7 @@ export class AutorunObserver {
147
147
  const shouldReact = this._changeTracker ? this._changeTracker.handleChange({
148
148
  changedObservable: observable,
149
149
  change,
150
+ // eslint-disable-next-line local/code-no-any-casts
150
151
  didChange: (o) => o === observable,
151
152
  }, this._changeSummary) : true;
152
153
  if (shouldReact) {
@@ -1 +1 @@
1
- {"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/base/common/observableInternal/reactions/autorunImpl.ts","vs/base/common/observableInternal/reactions/autorunImpl.ts"],"names":[],"mappings":"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","file":"autorunImpl.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { IObservable, IObservableWithChange, IObserver, IReaderWithStore } from '../base.js';\nimport { DebugNameData } from '../debugName.js';\nimport { assertFn, BugIndicatingError, DisposableStore, IDisposable, markAsDisposed, onBugIndicatingError, trackDisposable } from '../commonFacade/deps.js';\nimport { getLogger } from '../logging/logging.js';\nimport { IChangeTracker } from '../changeTracker.js';\nimport { DebugLocation } from '../debugLocation.js';\n\nexport const enum AutorunState {\n\t/**\n\t * A dependency could have changed.\n\t * We need to explicitly ask them if at least one dependency changed.\n\t */\n\tdependenciesMightHaveChanged = 1,\n\n\t/**\n\t * A dependency changed and we need to recompute.\n\t */\n\tstale = 2,\n\tupToDate = 3,\n}\n\nfunction autorunStateToString(state: AutorunState): string {\n\tswitch (state) {\n\t\tcase AutorunState.dependenciesMightHaveChanged: return 'dependenciesMightHaveChanged';\n\t\tcase AutorunState.stale: return 'stale';\n\t\tcase AutorunState.upToDate: return 'upToDate';\n\t\tdefault: return '<unknown>';\n\t}\n}\n\nexport class AutorunObserver<TChangeSummary = any> implements IObserver, IReaderWithStore, IDisposable {\n\tprivate _state = AutorunState.stale;\n\tprivate _updateCount = 0;\n\tprivate _disposed = false;\n\tprivate _dependencies = new Set<IObservable<any>>();\n\tprivate _dependenciesToBeRemoved = new Set<IObservable<any>>();\n\tprivate _changeSummary: TChangeSummary | undefined;\n\tprivate _isRunning = false;\n\n\tpublic get debugName(): string {\n\t\treturn this._debugNameData.getDebugName(this) ?? '(anonymous)';\n\t}\n\n\tconstructor(\n\t\tpublic readonly _debugNameData: DebugNameData,\n\t\tpublic readonly _runFn: (reader: IReaderWithStore, changeSummary: TChangeSummary) => void,\n\t\tprivate readonly _changeTracker: IChangeTracker<TChangeSummary> | undefined,\n\t\tdebugLocation: DebugLocation\n\t) {\n\t\tthis._changeSummary = this._changeTracker?.createChangeSummary(undefined);\n\t\tgetLogger()?.handleAutorunCreated(this, debugLocation);\n\t\tthis._run();\n\n\t\ttrackDisposable(this);\n\t}\n\n\tpublic dispose(): void {\n\t\tif (this._disposed) {\n\t\t\treturn;\n\t\t}\n\t\tthis._disposed = true;\n\t\tfor (const o of this._dependencies) {\n\t\t\to.removeObserver(this); // Warning: external call!\n\t\t}\n\t\tthis._dependencies.clear();\n\n\t\tif (this._store !== undefined) {\n\t\t\tthis._store.dispose();\n\t\t}\n\t\tif (this._delayedStore !== undefined) {\n\t\t\tthis._delayedStore.dispose();\n\t\t}\n\n\t\tgetLogger()?.handleAutorunDisposed(this);\n\t\tmarkAsDisposed(this);\n\t}\n\n\tprivate _run() {\n\t\tconst emptySet = this._dependenciesToBeRemoved;\n\t\tthis._dependenciesToBeRemoved = this._dependencies;\n\t\tthis._dependencies = emptySet;\n\n\t\tthis._state = AutorunState.upToDate;\n\n\t\ttry {\n\t\t\tif (!this._disposed) {\n\t\t\t\tgetLogger()?.handleAutorunStarted(this);\n\t\t\t\tconst changeSummary = this._changeSummary!;\n\t\t\t\tconst delayedStore = this._delayedStore;\n\t\t\t\tif (delayedStore !== undefined) {\n\t\t\t\t\tthis._delayedStore = undefined;\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\tthis._isRunning = true;\n\t\t\t\t\tif (this._changeTracker) {\n\t\t\t\t\t\tthis._changeTracker.beforeUpdate?.(this, changeSummary);\n\t\t\t\t\t\tthis._changeSummary = this._changeTracker.createChangeSummary(changeSummary); // Warning: external call!\n\t\t\t\t\t}\n\t\t\t\t\tif (this._store !== undefined) {\n\t\t\t\t\t\tthis._store.dispose();\n\t\t\t\t\t\tthis._store = undefined;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis._runFn(this, changeSummary); // Warning: external call!\n\t\t\t\t} catch (e) {\n\t\t\t\t\tonBugIndicatingError(e);\n\t\t\t\t} finally {\n\t\t\t\t\tthis._isRunning = false;\n\t\t\t\t\tif (delayedStore !== undefined) {\n\t\t\t\t\t\tdelayedStore.dispose();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} finally {\n\t\t\tif (!this._disposed) {\n\t\t\t\tgetLogger()?.handleAutorunFinished(this);\n\t\t\t}\n\t\t\t// We don't want our observed observables to think that they are (not even temporarily) not being observed.\n\t\t\t// Thus, we only unsubscribe from observables that are definitely not read anymore.\n\t\t\tfor (const o of this._dependenciesToBeRemoved) {\n\t\t\t\to.removeObserver(this); // Warning: external call!\n\t\t\t}\n\t\t\tthis._dependenciesToBeRemoved.clear();\n\t\t}\n\t}\n\n\tpublic toString(): string {\n\t\treturn `Autorun<${this.debugName}>`;\n\t}\n\n\t// IObserver implementation\n\tpublic beginUpdate(_observable: IObservable<any>): void {\n\t\tif (this._state === AutorunState.upToDate) {\n\t\t\tthis._state = AutorunState.dependenciesMightHaveChanged;\n\t\t}\n\t\tthis._updateCount++;\n\t}\n\n\tpublic endUpdate(_observable: IObservable<any>): void {\n\t\ttry {\n\t\t\tif (this._updateCount === 1) {\n\t\t\t\tdo {\n\t\t\t\t\tif (this._state === AutorunState.dependenciesMightHaveChanged) {\n\t\t\t\t\t\tthis._state = AutorunState.upToDate;\n\t\t\t\t\t\tfor (const d of this._dependencies) {\n\t\t\t\t\t\t\td.reportChanges(); // Warning: external call!\n\t\t\t\t\t\t\tif (this._state as AutorunState === AutorunState.stale) {\n\t\t\t\t\t\t\t\t// The other dependencies will refresh on demand\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (this._state !== AutorunState.upToDate) {\n\t\t\t\t\t\tthis._run(); // Warning: indirect external call!\n\t\t\t\t\t}\n\t\t\t\t} while (this._state !== AutorunState.upToDate);\n\t\t\t}\n\t\t} finally {\n\t\t\tthis._updateCount--;\n\t\t}\n\n\t\tassertFn(() => this._updateCount >= 0);\n\t}\n\n\tpublic handlePossibleChange(observable: IObservable<any>): void {\n\t\tif (this._state === AutorunState.upToDate && this._isDependency(observable)) {\n\t\t\tthis._state = AutorunState.dependenciesMightHaveChanged;\n\t\t}\n\t}\n\n\tpublic handleChange<T, TChange>(observable: IObservableWithChange<T, TChange>, change: TChange): void {\n\t\tif (this._isDependency(observable)) {\n\t\t\tgetLogger()?.handleAutorunDependencyChanged(this, observable, change);\n\t\t\ttry {\n\t\t\t\t// Warning: external call!\n\t\t\t\tconst shouldReact = this._changeTracker ? this._changeTracker.handleChange({\n\t\t\t\t\tchangedObservable: observable,\n\t\t\t\t\tchange,\n\t\t\t\t\tdidChange: (o): this is any => o === observable as any,\n\t\t\t\t}, this._changeSummary!) : true;\n\t\t\t\tif (shouldReact) {\n\t\t\t\t\tthis._state = AutorunState.stale;\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tonBugIndicatingError(e);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate _isDependency(observable: IObservableWithChange<any, any>): boolean {\n\t\treturn this._dependencies.has(observable) && !this._dependenciesToBeRemoved.has(observable);\n\t}\n\n\t// IReader implementation\n\n\tprivate _ensureNoRunning(): void {\n\t\tif (!this._isRunning) { throw new BugIndicatingError('The reader object cannot be used outside its compute function!'); }\n\t}\n\n\tpublic readObservable<T>(observable: IObservable<T>): T {\n\t\tthis._ensureNoRunning();\n\n\t\t// In case the run action disposes the autorun\n\t\tif (this._disposed) {\n\t\t\treturn observable.get(); // warning: external call!\n\t\t}\n\n\t\tobservable.addObserver(this); // warning: external call!\n\t\tconst value = observable.get(); // warning: external call!\n\t\tthis._dependencies.add(observable);\n\t\tthis._dependenciesToBeRemoved.delete(observable);\n\t\treturn value;\n\t}\n\n\tprivate _store: DisposableStore | undefined = undefined;\n\tget store(): DisposableStore {\n\t\tthis._ensureNoRunning();\n\t\tif (this._disposed) {\n\t\t\tthrow new BugIndicatingError('Cannot access store after dispose');\n\t\t}\n\n\t\tif (this._store === undefined) {\n\t\t\tthis._store = new DisposableStore();\n\t\t}\n\t\treturn this._store;\n\t}\n\n\tprivate _delayedStore: DisposableStore | undefined = undefined;\n\n\tpublic debugGetState() {\n\t\treturn {\n\t\t\tisRunning: this._isRunning,\n\t\t\tupdateCount: this._updateCount,\n\t\t\tdependencies: this._dependencies,\n\t\t\tstate: this._state,\n\t\t\tstateStr: autorunStateToString(this._state),\n\t\t};\n\t}\n\n\tpublic debugRerun(): void {\n\t\tif (!this._isRunning) {\n\t\t\tthis._run();\n\t\t} else {\n\t\t\tthis._state = AutorunState.stale;\n\t\t}\n\t}\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { IObservable, IObservableWithChange, IObserver, IReaderWithStore } from '../base.js';\nimport { DebugNameData } from '../debugName.js';\nimport { assertFn, BugIndicatingError, DisposableStore, IDisposable, markAsDisposed, onBugIndicatingError, trackDisposable } from '../commonFacade/deps.js';\nimport { getLogger } from '../logging/logging.js';\nimport { IChangeTracker } from '../changeTracker.js';\nimport { DebugLocation } from '../debugLocation.js';\n\nexport const enum AutorunState {\n\t/**\n\t * A dependency could have changed.\n\t * We need to explicitly ask them if at least one dependency changed.\n\t */\n\tdependenciesMightHaveChanged = 1,\n\n\t/**\n\t * A dependency changed and we need to recompute.\n\t */\n\tstale = 2,\n\tupToDate = 3,\n}\n\nfunction autorunStateToString(state: AutorunState): string {\n\tswitch (state) {\n\t\tcase AutorunState.dependenciesMightHaveChanged: return 'dependenciesMightHaveChanged';\n\t\tcase AutorunState.stale: return 'stale';\n\t\tcase AutorunState.upToDate: return 'upToDate';\n\t\tdefault: return '<unknown>';\n\t}\n}\n\nexport class AutorunObserver<TChangeSummary = any> implements IObserver, IReaderWithStore, IDisposable {\n\tprivate _state = AutorunState.stale;\n\tprivate _updateCount = 0;\n\tprivate _disposed = false;\n\tprivate _dependencies = new Set<IObservable<any>>();\n\tprivate _dependenciesToBeRemoved = new Set<IObservable<any>>();\n\tprivate _changeSummary: TChangeSummary | undefined;\n\tprivate _isRunning = false;\n\n\tpublic get debugName(): string {\n\t\treturn this._debugNameData.getDebugName(this) ?? '(anonymous)';\n\t}\n\n\tconstructor(\n\t\tpublic readonly _debugNameData: DebugNameData,\n\t\tpublic readonly _runFn: (reader: IReaderWithStore, changeSummary: TChangeSummary) => void,\n\t\tprivate readonly _changeTracker: IChangeTracker<TChangeSummary> | undefined,\n\t\tdebugLocation: DebugLocation\n\t) {\n\t\tthis._changeSummary = this._changeTracker?.createChangeSummary(undefined);\n\t\tgetLogger()?.handleAutorunCreated(this, debugLocation);\n\t\tthis._run();\n\n\t\ttrackDisposable(this);\n\t}\n\n\tpublic dispose(): void {\n\t\tif (this._disposed) {\n\t\t\treturn;\n\t\t}\n\t\tthis._disposed = true;\n\t\tfor (const o of this._dependencies) {\n\t\t\to.removeObserver(this); // Warning: external call!\n\t\t}\n\t\tthis._dependencies.clear();\n\n\t\tif (this._store !== undefined) {\n\t\t\tthis._store.dispose();\n\t\t}\n\t\tif (this._delayedStore !== undefined) {\n\t\t\tthis._delayedStore.dispose();\n\t\t}\n\n\t\tgetLogger()?.handleAutorunDisposed(this);\n\t\tmarkAsDisposed(this);\n\t}\n\n\tprivate _run() {\n\t\tconst emptySet = this._dependenciesToBeRemoved;\n\t\tthis._dependenciesToBeRemoved = this._dependencies;\n\t\tthis._dependencies = emptySet;\n\n\t\tthis._state = AutorunState.upToDate;\n\n\t\ttry {\n\t\t\tif (!this._disposed) {\n\t\t\t\tgetLogger()?.handleAutorunStarted(this);\n\t\t\t\tconst changeSummary = this._changeSummary!;\n\t\t\t\tconst delayedStore = this._delayedStore;\n\t\t\t\tif (delayedStore !== undefined) {\n\t\t\t\t\tthis._delayedStore = undefined;\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\tthis._isRunning = true;\n\t\t\t\t\tif (this._changeTracker) {\n\t\t\t\t\t\tthis._changeTracker.beforeUpdate?.(this, changeSummary);\n\t\t\t\t\t\tthis._changeSummary = this._changeTracker.createChangeSummary(changeSummary); // Warning: external call!\n\t\t\t\t\t}\n\t\t\t\t\tif (this._store !== undefined) {\n\t\t\t\t\t\tthis._store.dispose();\n\t\t\t\t\t\tthis._store = undefined;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis._runFn(this, changeSummary); // Warning: external call!\n\t\t\t\t} catch (e) {\n\t\t\t\t\tonBugIndicatingError(e);\n\t\t\t\t} finally {\n\t\t\t\t\tthis._isRunning = false;\n\t\t\t\t\tif (delayedStore !== undefined) {\n\t\t\t\t\t\tdelayedStore.dispose();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} finally {\n\t\t\tif (!this._disposed) {\n\t\t\t\tgetLogger()?.handleAutorunFinished(this);\n\t\t\t}\n\t\t\t// We don't want our observed observables to think that they are (not even temporarily) not being observed.\n\t\t\t// Thus, we only unsubscribe from observables that are definitely not read anymore.\n\t\t\tfor (const o of this._dependenciesToBeRemoved) {\n\t\t\t\to.removeObserver(this); // Warning: external call!\n\t\t\t}\n\t\t\tthis._dependenciesToBeRemoved.clear();\n\t\t}\n\t}\n\n\tpublic toString(): string {\n\t\treturn `Autorun<${this.debugName}>`;\n\t}\n\n\t// IObserver implementation\n\tpublic beginUpdate(_observable: IObservable<any>): void {\n\t\tif (this._state === AutorunState.upToDate) {\n\t\t\tthis._state = AutorunState.dependenciesMightHaveChanged;\n\t\t}\n\t\tthis._updateCount++;\n\t}\n\n\tpublic endUpdate(_observable: IObservable<any>): void {\n\t\ttry {\n\t\t\tif (this._updateCount === 1) {\n\t\t\t\tdo {\n\t\t\t\t\tif (this._state === AutorunState.dependenciesMightHaveChanged) {\n\t\t\t\t\t\tthis._state = AutorunState.upToDate;\n\t\t\t\t\t\tfor (const d of this._dependencies) {\n\t\t\t\t\t\t\td.reportChanges(); // Warning: external call!\n\t\t\t\t\t\t\tif (this._state as AutorunState === AutorunState.stale) {\n\t\t\t\t\t\t\t\t// The other dependencies will refresh on demand\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (this._state !== AutorunState.upToDate) {\n\t\t\t\t\t\tthis._run(); // Warning: indirect external call!\n\t\t\t\t\t}\n\t\t\t\t} while (this._state !== AutorunState.upToDate);\n\t\t\t}\n\t\t} finally {\n\t\t\tthis._updateCount--;\n\t\t}\n\n\t\tassertFn(() => this._updateCount >= 0);\n\t}\n\n\tpublic handlePossibleChange(observable: IObservable<any>): void {\n\t\tif (this._state === AutorunState.upToDate && this._isDependency(observable)) {\n\t\t\tthis._state = AutorunState.dependenciesMightHaveChanged;\n\t\t}\n\t}\n\n\tpublic handleChange<T, TChange>(observable: IObservableWithChange<T, TChange>, change: TChange): void {\n\t\tif (this._isDependency(observable)) {\n\t\t\tgetLogger()?.handleAutorunDependencyChanged(this, observable, change);\n\t\t\ttry {\n\t\t\t\t// Warning: external call!\n\t\t\t\tconst shouldReact = this._changeTracker ? this._changeTracker.handleChange({\n\t\t\t\t\tchangedObservable: observable,\n\t\t\t\t\tchange,\n\t\t\t\t\tdidChange: (o): this is any => o === observable as any,\n\t\t\t\t}, this._changeSummary!) : true;\n\t\t\t\tif (shouldReact) {\n\t\t\t\t\tthis._state = AutorunState.stale;\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tonBugIndicatingError(e);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate _isDependency(observable: IObservableWithChange<any, any>): boolean {\n\t\treturn this._dependencies.has(observable) && !this._dependenciesToBeRemoved.has(observable);\n\t}\n\n\t// IReader implementation\n\n\tprivate _ensureNoRunning(): void {\n\t\tif (!this._isRunning) { throw new BugIndicatingError('The reader object cannot be used outside its compute function!'); }\n\t}\n\n\tpublic readObservable<T>(observable: IObservable<T>): T {\n\t\tthis._ensureNoRunning();\n\n\t\t// In case the run action disposes the autorun\n\t\tif (this._disposed) {\n\t\t\treturn observable.get(); // warning: external call!\n\t\t}\n\n\t\tobservable.addObserver(this); // warning: external call!\n\t\tconst value = observable.get(); // warning: external call!\n\t\tthis._dependencies.add(observable);\n\t\tthis._dependenciesToBeRemoved.delete(observable);\n\t\treturn value;\n\t}\n\n\tprivate _store: DisposableStore | undefined = undefined;\n\tget store(): DisposableStore {\n\t\tthis._ensureNoRunning();\n\t\tif (this._disposed) {\n\t\t\tthrow new BugIndicatingError('Cannot access store after dispose');\n\t\t}\n\n\t\tif (this._store === undefined) {\n\t\t\tthis._store = new DisposableStore();\n\t\t}\n\t\treturn this._store;\n\t}\n\n\tprivate _delayedStore: DisposableStore | undefined = undefined;\n\n\tpublic debugGetState() {\n\t\treturn {\n\t\t\tisRunning: this._isRunning,\n\t\t\tupdateCount: this._updateCount,\n\t\t\tdependencies: this._dependencies,\n\t\t\tstate: this._state,\n\t\t\tstateStr: autorunStateToString(this._state),\n\t\t};\n\t}\n\n\tpublic debugRerun(): void {\n\t\tif (!this._isRunning) {\n\t\t\tthis._run();\n\t\t} else {\n\t\t\tthis._state = AutorunState.stale;\n\t\t}\n\t}\n}\n"]}
1
+ {"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/base/common/observableInternal/reactions/autorunImpl.ts","vs/base/common/observableInternal/reactions/autorunImpl.ts"],"names":[],"mappings":"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","file":"autorunImpl.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { IObservable, IObservableWithChange, IObserver, IReaderWithStore } from '../base.js';\nimport { DebugNameData } from '../debugName.js';\nimport { assertFn, BugIndicatingError, DisposableStore, IDisposable, markAsDisposed, onBugIndicatingError, trackDisposable } from '../commonFacade/deps.js';\nimport { getLogger } from '../logging/logging.js';\nimport { IChangeTracker } from '../changeTracker.js';\nimport { DebugLocation } from '../debugLocation.js';\n\nexport const enum AutorunState {\n\t/**\n\t * A dependency could have changed.\n\t * We need to explicitly ask them if at least one dependency changed.\n\t */\n\tdependenciesMightHaveChanged = 1,\n\n\t/**\n\t * A dependency changed and we need to recompute.\n\t */\n\tstale = 2,\n\tupToDate = 3,\n}\n\nfunction autorunStateToString(state: AutorunState): string {\n\tswitch (state) {\n\t\tcase AutorunState.dependenciesMightHaveChanged: return 'dependenciesMightHaveChanged';\n\t\tcase AutorunState.stale: return 'stale';\n\t\tcase AutorunState.upToDate: return 'upToDate';\n\t\tdefault: return '<unknown>';\n\t}\n}\n\nexport class AutorunObserver<TChangeSummary = any> implements IObserver, IReaderWithStore, IDisposable {\n\tprivate _state = AutorunState.stale;\n\tprivate _updateCount = 0;\n\tprivate _disposed = false;\n\tprivate _dependencies = new Set<IObservable<any>>();\n\tprivate _dependenciesToBeRemoved = new Set<IObservable<any>>();\n\tprivate _changeSummary: TChangeSummary | undefined;\n\tprivate _isRunning = false;\n\n\tpublic get debugName(): string {\n\t\treturn this._debugNameData.getDebugName(this) ?? '(anonymous)';\n\t}\n\n\tconstructor(\n\t\tpublic readonly _debugNameData: DebugNameData,\n\t\tpublic readonly _runFn: (reader: IReaderWithStore, changeSummary: TChangeSummary) => void,\n\t\tprivate readonly _changeTracker: IChangeTracker<TChangeSummary> | undefined,\n\t\tdebugLocation: DebugLocation\n\t) {\n\t\tthis._changeSummary = this._changeTracker?.createChangeSummary(undefined);\n\t\tgetLogger()?.handleAutorunCreated(this, debugLocation);\n\t\tthis._run();\n\n\t\ttrackDisposable(this);\n\t}\n\n\tpublic dispose(): void {\n\t\tif (this._disposed) {\n\t\t\treturn;\n\t\t}\n\t\tthis._disposed = true;\n\t\tfor (const o of this._dependencies) {\n\t\t\to.removeObserver(this); // Warning: external call!\n\t\t}\n\t\tthis._dependencies.clear();\n\n\t\tif (this._store !== undefined) {\n\t\t\tthis._store.dispose();\n\t\t}\n\t\tif (this._delayedStore !== undefined) {\n\t\t\tthis._delayedStore.dispose();\n\t\t}\n\n\t\tgetLogger()?.handleAutorunDisposed(this);\n\t\tmarkAsDisposed(this);\n\t}\n\n\tprivate _run() {\n\t\tconst emptySet = this._dependenciesToBeRemoved;\n\t\tthis._dependenciesToBeRemoved = this._dependencies;\n\t\tthis._dependencies = emptySet;\n\n\t\tthis._state = AutorunState.upToDate;\n\n\t\ttry {\n\t\t\tif (!this._disposed) {\n\t\t\t\tgetLogger()?.handleAutorunStarted(this);\n\t\t\t\tconst changeSummary = this._changeSummary!;\n\t\t\t\tconst delayedStore = this._delayedStore;\n\t\t\t\tif (delayedStore !== undefined) {\n\t\t\t\t\tthis._delayedStore = undefined;\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\tthis._isRunning = true;\n\t\t\t\t\tif (this._changeTracker) {\n\t\t\t\t\t\tthis._changeTracker.beforeUpdate?.(this, changeSummary);\n\t\t\t\t\t\tthis._changeSummary = this._changeTracker.createChangeSummary(changeSummary); // Warning: external call!\n\t\t\t\t\t}\n\t\t\t\t\tif (this._store !== undefined) {\n\t\t\t\t\t\tthis._store.dispose();\n\t\t\t\t\t\tthis._store = undefined;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis._runFn(this, changeSummary); // Warning: external call!\n\t\t\t\t} catch (e) {\n\t\t\t\t\tonBugIndicatingError(e);\n\t\t\t\t} finally {\n\t\t\t\t\tthis._isRunning = false;\n\t\t\t\t\tif (delayedStore !== undefined) {\n\t\t\t\t\t\tdelayedStore.dispose();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} finally {\n\t\t\tif (!this._disposed) {\n\t\t\t\tgetLogger()?.handleAutorunFinished(this);\n\t\t\t}\n\t\t\t// We don't want our observed observables to think that they are (not even temporarily) not being observed.\n\t\t\t// Thus, we only unsubscribe from observables that are definitely not read anymore.\n\t\t\tfor (const o of this._dependenciesToBeRemoved) {\n\t\t\t\to.removeObserver(this); // Warning: external call!\n\t\t\t}\n\t\t\tthis._dependenciesToBeRemoved.clear();\n\t\t}\n\t}\n\n\tpublic toString(): string {\n\t\treturn `Autorun<${this.debugName}>`;\n\t}\n\n\t// IObserver implementation\n\tpublic beginUpdate(_observable: IObservable<any>): void {\n\t\tif (this._state === AutorunState.upToDate) {\n\t\t\tthis._state = AutorunState.dependenciesMightHaveChanged;\n\t\t}\n\t\tthis._updateCount++;\n\t}\n\n\tpublic endUpdate(_observable: IObservable<any>): void {\n\t\ttry {\n\t\t\tif (this._updateCount === 1) {\n\t\t\t\tdo {\n\t\t\t\t\tif (this._state === AutorunState.dependenciesMightHaveChanged) {\n\t\t\t\t\t\tthis._state = AutorunState.upToDate;\n\t\t\t\t\t\tfor (const d of this._dependencies) {\n\t\t\t\t\t\t\td.reportChanges(); // Warning: external call!\n\t\t\t\t\t\t\tif (this._state as AutorunState === AutorunState.stale) {\n\t\t\t\t\t\t\t\t// The other dependencies will refresh on demand\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (this._state !== AutorunState.upToDate) {\n\t\t\t\t\t\tthis._run(); // Warning: indirect external call!\n\t\t\t\t\t}\n\t\t\t\t} while (this._state !== AutorunState.upToDate);\n\t\t\t}\n\t\t} finally {\n\t\t\tthis._updateCount--;\n\t\t}\n\n\t\tassertFn(() => this._updateCount >= 0);\n\t}\n\n\tpublic handlePossibleChange(observable: IObservable<any>): void {\n\t\tif (this._state === AutorunState.upToDate && this._isDependency(observable)) {\n\t\t\tthis._state = AutorunState.dependenciesMightHaveChanged;\n\t\t}\n\t}\n\n\tpublic handleChange<T, TChange>(observable: IObservableWithChange<T, TChange>, change: TChange): void {\n\t\tif (this._isDependency(observable)) {\n\t\t\tgetLogger()?.handleAutorunDependencyChanged(this, observable, change);\n\t\t\ttry {\n\t\t\t\t// Warning: external call!\n\t\t\t\tconst shouldReact = this._changeTracker ? this._changeTracker.handleChange({\n\t\t\t\t\tchangedObservable: observable,\n\t\t\t\t\tchange,\n\t\t\t\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\t\t\t\tdidChange: (o): this is any => o === observable as any,\n\t\t\t\t}, this._changeSummary!) : true;\n\t\t\t\tif (shouldReact) {\n\t\t\t\t\tthis._state = AutorunState.stale;\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tonBugIndicatingError(e);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate _isDependency(observable: IObservableWithChange<any, any>): boolean {\n\t\treturn this._dependencies.has(observable) && !this._dependenciesToBeRemoved.has(observable);\n\t}\n\n\t// IReader implementation\n\n\tprivate _ensureNoRunning(): void {\n\t\tif (!this._isRunning) { throw new BugIndicatingError('The reader object cannot be used outside its compute function!'); }\n\t}\n\n\tpublic readObservable<T>(observable: IObservable<T>): T {\n\t\tthis._ensureNoRunning();\n\n\t\t// In case the run action disposes the autorun\n\t\tif (this._disposed) {\n\t\t\treturn observable.get(); // warning: external call!\n\t\t}\n\n\t\tobservable.addObserver(this); // warning: external call!\n\t\tconst value = observable.get(); // warning: external call!\n\t\tthis._dependencies.add(observable);\n\t\tthis._dependenciesToBeRemoved.delete(observable);\n\t\treturn value;\n\t}\n\n\tprivate _store: DisposableStore | undefined = undefined;\n\tget store(): DisposableStore {\n\t\tthis._ensureNoRunning();\n\t\tif (this._disposed) {\n\t\t\tthrow new BugIndicatingError('Cannot access store after dispose');\n\t\t}\n\n\t\tif (this._store === undefined) {\n\t\t\tthis._store = new DisposableStore();\n\t\t}\n\t\treturn this._store;\n\t}\n\n\tprivate _delayedStore: DisposableStore | undefined = undefined;\n\n\tpublic debugGetState() {\n\t\treturn {\n\t\t\tisRunning: this._isRunning,\n\t\t\tupdateCount: this._updateCount,\n\t\t\tdependencies: this._dependencies,\n\t\t\tstate: this._state,\n\t\t\tstateStr: autorunStateToString(this._state),\n\t\t};\n\t}\n\n\tpublic debugRerun(): void {\n\t\tif (!this._isRunning) {\n\t\t\tthis._run();\n\t\t} else {\n\t\t\tthis._state = AutorunState.stale;\n\t\t}\n\t}\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { IObservable, IObservableWithChange, IObserver, IReaderWithStore } from '../base.js';\nimport { DebugNameData } from '../debugName.js';\nimport { assertFn, BugIndicatingError, DisposableStore, IDisposable, markAsDisposed, onBugIndicatingError, trackDisposable } from '../commonFacade/deps.js';\nimport { getLogger } from '../logging/logging.js';\nimport { IChangeTracker } from '../changeTracker.js';\nimport { DebugLocation } from '../debugLocation.js';\n\nexport const enum AutorunState {\n\t/**\n\t * A dependency could have changed.\n\t * We need to explicitly ask them if at least one dependency changed.\n\t */\n\tdependenciesMightHaveChanged = 1,\n\n\t/**\n\t * A dependency changed and we need to recompute.\n\t */\n\tstale = 2,\n\tupToDate = 3,\n}\n\nfunction autorunStateToString(state: AutorunState): string {\n\tswitch (state) {\n\t\tcase AutorunState.dependenciesMightHaveChanged: return 'dependenciesMightHaveChanged';\n\t\tcase AutorunState.stale: return 'stale';\n\t\tcase AutorunState.upToDate: return 'upToDate';\n\t\tdefault: return '<unknown>';\n\t}\n}\n\nexport class AutorunObserver<TChangeSummary = any> implements IObserver, IReaderWithStore, IDisposable {\n\tprivate _state = AutorunState.stale;\n\tprivate _updateCount = 0;\n\tprivate _disposed = false;\n\tprivate _dependencies = new Set<IObservable<any>>();\n\tprivate _dependenciesToBeRemoved = new Set<IObservable<any>>();\n\tprivate _changeSummary: TChangeSummary | undefined;\n\tprivate _isRunning = false;\n\n\tpublic get debugName(): string {\n\t\treturn this._debugNameData.getDebugName(this) ?? '(anonymous)';\n\t}\n\n\tconstructor(\n\t\tpublic readonly _debugNameData: DebugNameData,\n\t\tpublic readonly _runFn: (reader: IReaderWithStore, changeSummary: TChangeSummary) => void,\n\t\tprivate readonly _changeTracker: IChangeTracker<TChangeSummary> | undefined,\n\t\tdebugLocation: DebugLocation\n\t) {\n\t\tthis._changeSummary = this._changeTracker?.createChangeSummary(undefined);\n\t\tgetLogger()?.handleAutorunCreated(this, debugLocation);\n\t\tthis._run();\n\n\t\ttrackDisposable(this);\n\t}\n\n\tpublic dispose(): void {\n\t\tif (this._disposed) {\n\t\t\treturn;\n\t\t}\n\t\tthis._disposed = true;\n\t\tfor (const o of this._dependencies) {\n\t\t\to.removeObserver(this); // Warning: external call!\n\t\t}\n\t\tthis._dependencies.clear();\n\n\t\tif (this._store !== undefined) {\n\t\t\tthis._store.dispose();\n\t\t}\n\t\tif (this._delayedStore !== undefined) {\n\t\t\tthis._delayedStore.dispose();\n\t\t}\n\n\t\tgetLogger()?.handleAutorunDisposed(this);\n\t\tmarkAsDisposed(this);\n\t}\n\n\tprivate _run() {\n\t\tconst emptySet = this._dependenciesToBeRemoved;\n\t\tthis._dependenciesToBeRemoved = this._dependencies;\n\t\tthis._dependencies = emptySet;\n\n\t\tthis._state = AutorunState.upToDate;\n\n\t\ttry {\n\t\t\tif (!this._disposed) {\n\t\t\t\tgetLogger()?.handleAutorunStarted(this);\n\t\t\t\tconst changeSummary = this._changeSummary!;\n\t\t\t\tconst delayedStore = this._delayedStore;\n\t\t\t\tif (delayedStore !== undefined) {\n\t\t\t\t\tthis._delayedStore = undefined;\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\tthis._isRunning = true;\n\t\t\t\t\tif (this._changeTracker) {\n\t\t\t\t\t\tthis._changeTracker.beforeUpdate?.(this, changeSummary);\n\t\t\t\t\t\tthis._changeSummary = this._changeTracker.createChangeSummary(changeSummary); // Warning: external call!\n\t\t\t\t\t}\n\t\t\t\t\tif (this._store !== undefined) {\n\t\t\t\t\t\tthis._store.dispose();\n\t\t\t\t\t\tthis._store = undefined;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis._runFn(this, changeSummary); // Warning: external call!\n\t\t\t\t} catch (e) {\n\t\t\t\t\tonBugIndicatingError(e);\n\t\t\t\t} finally {\n\t\t\t\t\tthis._isRunning = false;\n\t\t\t\t\tif (delayedStore !== undefined) {\n\t\t\t\t\t\tdelayedStore.dispose();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} finally {\n\t\t\tif (!this._disposed) {\n\t\t\t\tgetLogger()?.handleAutorunFinished(this);\n\t\t\t}\n\t\t\t// We don't want our observed observables to think that they are (not even temporarily) not being observed.\n\t\t\t// Thus, we only unsubscribe from observables that are definitely not read anymore.\n\t\t\tfor (const o of this._dependenciesToBeRemoved) {\n\t\t\t\to.removeObserver(this); // Warning: external call!\n\t\t\t}\n\t\t\tthis._dependenciesToBeRemoved.clear();\n\t\t}\n\t}\n\n\tpublic toString(): string {\n\t\treturn `Autorun<${this.debugName}>`;\n\t}\n\n\t// IObserver implementation\n\tpublic beginUpdate(_observable: IObservable<any>): void {\n\t\tif (this._state === AutorunState.upToDate) {\n\t\t\tthis._state = AutorunState.dependenciesMightHaveChanged;\n\t\t}\n\t\tthis._updateCount++;\n\t}\n\n\tpublic endUpdate(_observable: IObservable<any>): void {\n\t\ttry {\n\t\t\tif (this._updateCount === 1) {\n\t\t\t\tdo {\n\t\t\t\t\tif (this._state === AutorunState.dependenciesMightHaveChanged) {\n\t\t\t\t\t\tthis._state = AutorunState.upToDate;\n\t\t\t\t\t\tfor (const d of this._dependencies) {\n\t\t\t\t\t\t\td.reportChanges(); // Warning: external call!\n\t\t\t\t\t\t\tif (this._state as AutorunState === AutorunState.stale) {\n\t\t\t\t\t\t\t\t// The other dependencies will refresh on demand\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (this._state !== AutorunState.upToDate) {\n\t\t\t\t\t\tthis._run(); // Warning: indirect external call!\n\t\t\t\t\t}\n\t\t\t\t} while (this._state !== AutorunState.upToDate);\n\t\t\t}\n\t\t} finally {\n\t\t\tthis._updateCount--;\n\t\t}\n\n\t\tassertFn(() => this._updateCount >= 0);\n\t}\n\n\tpublic handlePossibleChange(observable: IObservable<any>): void {\n\t\tif (this._state === AutorunState.upToDate && this._isDependency(observable)) {\n\t\t\tthis._state = AutorunState.dependenciesMightHaveChanged;\n\t\t}\n\t}\n\n\tpublic handleChange<T, TChange>(observable: IObservableWithChange<T, TChange>, change: TChange): void {\n\t\tif (this._isDependency(observable)) {\n\t\t\tgetLogger()?.handleAutorunDependencyChanged(this, observable, change);\n\t\t\ttry {\n\t\t\t\t// Warning: external call!\n\t\t\t\tconst shouldReact = this._changeTracker ? this._changeTracker.handleChange({\n\t\t\t\t\tchangedObservable: observable,\n\t\t\t\t\tchange,\n\t\t\t\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\t\t\t\tdidChange: (o): this is any => o === observable as any,\n\t\t\t\t}, this._changeSummary!) : true;\n\t\t\t\tif (shouldReact) {\n\t\t\t\t\tthis._state = AutorunState.stale;\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tonBugIndicatingError(e);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate _isDependency(observable: IObservableWithChange<any, any>): boolean {\n\t\treturn this._dependencies.has(observable) && !this._dependenciesToBeRemoved.has(observable);\n\t}\n\n\t// IReader implementation\n\n\tprivate _ensureNoRunning(): void {\n\t\tif (!this._isRunning) { throw new BugIndicatingError('The reader object cannot be used outside its compute function!'); }\n\t}\n\n\tpublic readObservable<T>(observable: IObservable<T>): T {\n\t\tthis._ensureNoRunning();\n\n\t\t// In case the run action disposes the autorun\n\t\tif (this._disposed) {\n\t\t\treturn observable.get(); // warning: external call!\n\t\t}\n\n\t\tobservable.addObserver(this); // warning: external call!\n\t\tconst value = observable.get(); // warning: external call!\n\t\tthis._dependencies.add(observable);\n\t\tthis._dependenciesToBeRemoved.delete(observable);\n\t\treturn value;\n\t}\n\n\tprivate _store: DisposableStore | undefined = undefined;\n\tget store(): DisposableStore {\n\t\tthis._ensureNoRunning();\n\t\tif (this._disposed) {\n\t\t\tthrow new BugIndicatingError('Cannot access store after dispose');\n\t\t}\n\n\t\tif (this._store === undefined) {\n\t\t\tthis._store = new DisposableStore();\n\t\t}\n\t\treturn this._store;\n\t}\n\n\tprivate _delayedStore: DisposableStore | undefined = undefined;\n\n\tpublic debugGetState() {\n\t\treturn {\n\t\t\tisRunning: this._isRunning,\n\t\t\tupdateCount: this._updateCount,\n\t\t\tdependencies: this._dependencies,\n\t\t\tstate: this._state,\n\t\t\tstateStr: autorunStateToString(this._state),\n\t\t};\n\t}\n\n\tpublic debugRerun(): void {\n\t\tif (!this._isRunning) {\n\t\t\tthis._run();\n\t\t} else {\n\t\t\tthis._state = AutorunState.stale;\n\t\t}\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/base/common/process.ts","vs/base/common/process.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,EAAgB,WAAW,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAErE,IAAI,WAAsE,CAAC;AAG3E,6BAA6B;AAC7B,MAAM,YAAY,GAAI,UAAkB,CAAC,MAAM,CAAC;AAChD,IAAI,OAAO,YAAY,KAAK,WAAW,IAAI,OAAO,YAAY,CAAC,OAAO,KAAK,WAAW,EAAE,CAAC;IACxF,MAAM,cAAc,GAAiB,YAAY,CAAC,OAAO,CAAC;IAC1D,WAAW,GAAG;QACb,IAAI,QAAQ,KAAK,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;QAClD,IAAI,IAAI,KAAK,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1C,IAAI,GAAG,KAAK,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;QACxC,GAAG,KAAK,OAAO,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;KACtC,CAAC;AACH,CAAC;AAED,6BAA6B;KACxB,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,OAAO,EAAE,QAAQ,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;IACxF,WAAW,GAAG;QACb,IAAI,QAAQ,KAAK,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3C,IAAI,IAAI,KAAK,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACnC,IAAI,GAAG,KAAK,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QACjC,GAAG,KAAK,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;KAC5D,CAAC;AACH,CAAC;AAED,kBAAkB;KACb,CAAC;IACL,WAAW,GAAG;QAEb,YAAY;QACZ,IAAI,QAAQ,KAAK,OAAO,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACjF,IAAI,IAAI,KAAK,OAAO,SAAS,CAAC,CAAC,8BAA8B,CAAC,CAAC;QAE/D,cAAc;QACd,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;QACxB,GAAG,KAAK,OAAO,GAAG,CAAC,CAAC,CAAC;KACrB,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC;AAEnC;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC","file":"process.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { INodeProcess, isMacintosh, isWindows } from './platform.js';\n\nlet safeProcess: Omit<INodeProcess, 'arch'> & { arch: string | undefined };\ndeclare const process: INodeProcess;\n\n// Native sandbox environment\nconst vscodeGlobal = (globalThis as any).vscode;\nif (typeof vscodeGlobal !== 'undefined' && typeof vscodeGlobal.process !== 'undefined') {\n\tconst sandboxProcess: INodeProcess = vscodeGlobal.process;\n\tsafeProcess = {\n\t\tget platform() { return sandboxProcess.platform; },\n\t\tget arch() { return sandboxProcess.arch; },\n\t\tget env() { return sandboxProcess.env; },\n\t\tcwd() { return sandboxProcess.cwd(); }\n\t};\n}\n\n// Native node.js environment\nelse if (typeof process !== 'undefined' && typeof process?.versions?.node === 'string') {\n\tsafeProcess = {\n\t\tget platform() { return process.platform; },\n\t\tget arch() { return process.arch; },\n\t\tget env() { return process.env; },\n\t\tcwd() { return process.env['VSCODE_CWD'] || process.cwd(); }\n\t};\n}\n\n// Web environment\nelse {\n\tsafeProcess = {\n\n\t\t// Supported\n\t\tget platform() { return isWindows ? 'win32' : isMacintosh ? 'darwin' : 'linux'; },\n\t\tget arch() { return undefined; /* arch is undefined in web */ },\n\n\t\t// Unsupported\n\t\tget env() { return {}; },\n\t\tcwd() { return '/'; }\n\t};\n}\n\n/**\n * Provides safe access to the `cwd` property in node.js, sandboxed or web\n * environments.\n *\n * Note: in web, this property is hardcoded to be `/`.\n *\n * @skipMangle\n */\nexport const cwd = safeProcess.cwd;\n\n/**\n * Provides safe access to the `env` property in node.js, sandboxed or web\n * environments.\n *\n * Note: in web, this property is hardcoded to be `{}`.\n */\nexport const env = safeProcess.env;\n\n/**\n * Provides safe access to the `platform` property in node.js, sandboxed or web\n * environments.\n */\nexport const platform = safeProcess.platform;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { INodeProcess, isMacintosh, isWindows } from './platform.js';\n\nlet safeProcess: Omit<INodeProcess, 'arch'> & { arch: string | undefined };\ndeclare const process: INodeProcess;\n\n// Native sandbox environment\nconst vscodeGlobal = (globalThis as any).vscode;\nif (typeof vscodeGlobal !== 'undefined' && typeof vscodeGlobal.process !== 'undefined') {\n\tconst sandboxProcess: INodeProcess = vscodeGlobal.process;\n\tsafeProcess = {\n\t\tget platform() { return sandboxProcess.platform; },\n\t\tget arch() { return sandboxProcess.arch; },\n\t\tget env() { return sandboxProcess.env; },\n\t\tcwd() { return sandboxProcess.cwd(); }\n\t};\n}\n\n// Native node.js environment\nelse if (typeof process !== 'undefined' && typeof process?.versions?.node === 'string') {\n\tsafeProcess = {\n\t\tget platform() { return process.platform; },\n\t\tget arch() { return process.arch; },\n\t\tget env() { return process.env; },\n\t\tcwd() { return process.env['VSCODE_CWD'] || process.cwd(); }\n\t};\n}\n\n// Web environment\nelse {\n\tsafeProcess = {\n\n\t\t// Supported\n\t\tget platform() { return isWindows ? 'win32' : isMacintosh ? 'darwin' : 'linux'; },\n\t\tget arch() { return undefined; /* arch is undefined in web */ },\n\n\t\t// Unsupported\n\t\tget env() { return {}; },\n\t\tcwd() { return '/'; }\n\t};\n}\n\n/**\n * Provides safe access to the `cwd` property in node.js, sandboxed or web\n * environments.\n *\n * Note: in web, this property is hardcoded to be `/`.\n *\n * @skipMangle\n */\nexport const cwd = safeProcess.cwd;\n\n/**\n * Provides safe access to the `env` property in node.js, sandboxed or web\n * environments.\n *\n * Note: in web, this property is hardcoded to be `{}`.\n */\nexport const env = safeProcess.env;\n\n/**\n * Provides safe access to the `platform` property in node.js, sandboxed or web\n * environments.\n */\nexport const platform = safeProcess.platform;\n"]}
1
+ {"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/base/common/process.ts","vs/base/common/process.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,EAAgB,WAAW,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAErE,IAAI,WAAsE,CAAC;AAG3E,6BAA6B;AAC7B,MAAM,YAAY,GAAI,UAAsD,CAAC,MAAM,CAAC;AACpF,IAAI,OAAO,YAAY,KAAK,WAAW,IAAI,OAAO,YAAY,CAAC,OAAO,KAAK,WAAW,EAAE,CAAC;IACxF,MAAM,cAAc,GAAiB,YAAY,CAAC,OAAO,CAAC;IAC1D,WAAW,GAAG;QACb,IAAI,QAAQ,KAAK,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;QAClD,IAAI,IAAI,KAAK,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1C,IAAI,GAAG,KAAK,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;QACxC,GAAG,KAAK,OAAO,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;KACtC,CAAC;AACH,CAAC;AAED,6BAA6B;KACxB,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,OAAO,EAAE,QAAQ,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;IACxF,WAAW,GAAG;QACb,IAAI,QAAQ,KAAK,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3C,IAAI,IAAI,KAAK,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACnC,IAAI,GAAG,KAAK,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QACjC,GAAG,KAAK,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;KAC5D,CAAC;AACH,CAAC;AAED,kBAAkB;KACb,CAAC;IACL,WAAW,GAAG;QAEb,YAAY;QACZ,IAAI,QAAQ,KAAK,OAAO,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACjF,IAAI,IAAI,KAAK,OAAO,SAAS,CAAC,CAAC,8BAA8B,CAAC,CAAC;QAE/D,cAAc;QACd,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;QACxB,GAAG,KAAK,OAAO,GAAG,CAAC,CAAC,CAAC;KACrB,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC;AAEnC;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC","file":"process.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { INodeProcess, isMacintosh, isWindows } from './platform.js';\n\nlet safeProcess: Omit<INodeProcess, 'arch'> & { arch: string | undefined };\ndeclare const process: INodeProcess;\n\n// Native sandbox environment\nconst vscodeGlobal = (globalThis as { vscode?: { process?: INodeProcess } }).vscode;\nif (typeof vscodeGlobal !== 'undefined' && typeof vscodeGlobal.process !== 'undefined') {\n\tconst sandboxProcess: INodeProcess = vscodeGlobal.process;\n\tsafeProcess = {\n\t\tget platform() { return sandboxProcess.platform; },\n\t\tget arch() { return sandboxProcess.arch; },\n\t\tget env() { return sandboxProcess.env; },\n\t\tcwd() { return sandboxProcess.cwd(); }\n\t};\n}\n\n// Native node.js environment\nelse if (typeof process !== 'undefined' && typeof process?.versions?.node === 'string') {\n\tsafeProcess = {\n\t\tget platform() { return process.platform; },\n\t\tget arch() { return process.arch; },\n\t\tget env() { return process.env; },\n\t\tcwd() { return process.env['VSCODE_CWD'] || process.cwd(); }\n\t};\n}\n\n// Web environment\nelse {\n\tsafeProcess = {\n\n\t\t// Supported\n\t\tget platform() { return isWindows ? 'win32' : isMacintosh ? 'darwin' : 'linux'; },\n\t\tget arch() { return undefined; /* arch is undefined in web */ },\n\n\t\t// Unsupported\n\t\tget env() { return {}; },\n\t\tcwd() { return '/'; }\n\t};\n}\n\n/**\n * Provides safe access to the `cwd` property in node.js, sandboxed or web\n * environments.\n *\n * Note: in web, this property is hardcoded to be `/`.\n *\n * @skipMangle\n */\nexport const cwd = safeProcess.cwd;\n\n/**\n * Provides safe access to the `env` property in node.js, sandboxed or web\n * environments.\n *\n * Note: in web, this property is hardcoded to be `{}`.\n */\nexport const env = safeProcess.env;\n\n/**\n * Provides safe access to the `platform` property in node.js, sandboxed or web\n * environments.\n */\nexport const platform = safeProcess.platform;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { INodeProcess, isMacintosh, isWindows } from './platform.js';\n\nlet safeProcess: Omit<INodeProcess, 'arch'> & { arch: string | undefined };\ndeclare const process: INodeProcess;\n\n// Native sandbox environment\nconst vscodeGlobal = (globalThis as { vscode?: { process?: INodeProcess } }).vscode;\nif (typeof vscodeGlobal !== 'undefined' && typeof vscodeGlobal.process !== 'undefined') {\n\tconst sandboxProcess: INodeProcess = vscodeGlobal.process;\n\tsafeProcess = {\n\t\tget platform() { return sandboxProcess.platform; },\n\t\tget arch() { return sandboxProcess.arch; },\n\t\tget env() { return sandboxProcess.env; },\n\t\tcwd() { return sandboxProcess.cwd(); }\n\t};\n}\n\n// Native node.js environment\nelse if (typeof process !== 'undefined' && typeof process?.versions?.node === 'string') {\n\tsafeProcess = {\n\t\tget platform() { return process.platform; },\n\t\tget arch() { return process.arch; },\n\t\tget env() { return process.env; },\n\t\tcwd() { return process.env['VSCODE_CWD'] || process.cwd(); }\n\t};\n}\n\n// Web environment\nelse {\n\tsafeProcess = {\n\n\t\t// Supported\n\t\tget platform() { return isWindows ? 'win32' : isMacintosh ? 'darwin' : 'linux'; },\n\t\tget arch() { return undefined; /* arch is undefined in web */ },\n\n\t\t// Unsupported\n\t\tget env() { return {}; },\n\t\tcwd() { return '/'; }\n\t};\n}\n\n/**\n * Provides safe access to the `cwd` property in node.js, sandboxed or web\n * environments.\n *\n * Note: in web, this property is hardcoded to be `/`.\n *\n * @skipMangle\n */\nexport const cwd = safeProcess.cwd;\n\n/**\n * Provides safe access to the `env` property in node.js, sandboxed or web\n * environments.\n *\n * Note: in web, this property is hardcoded to be `{}`.\n */\nexport const env = safeProcess.env;\n\n/**\n * Provides safe access to the `platform` property in node.js, sandboxed or web\n * environments.\n */\nexport const platform = safeProcess.platform;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"product.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sources":["vs/base/common/product.ts"],"names":[],"mappings":"","sourcesContent":["\n\nexport interface IProductConfiguration {\n\treadonly quality?: string;\n}\n"]}
1
+ {"version":3,"file":"product.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sources":["vs/base/common/product.ts"],"names":[],"mappings":"","sourcesContent":["\n\nexport interface IProductConfiguration {\n\treadonly version: string;\n\treadonly quality?: string;\n\n\treadonly nameShort: string;\n\treadonly nameLong: string;\n\treadonly dataFolderName: string;\n\treadonly serverDataFolderName?: string;\n\n\treadonly defaultChatAgent?: IDefaultChatAgent;\n}\n\nexport interface IDefaultChatAgent {\n\treadonly completionsEnablementSetting: string;\n}\n"]}
@@ -42,6 +42,7 @@ export function isNumber(obj) {
42
42
  * @returns whether the provided parameter is an Iterable, casting to the given generic
43
43
  */
44
44
  export function isIterable(obj) {
45
+ // eslint-disable-next-line local/code-no-any-casts
45
46
  return !!obj && typeof obj[Symbol.iterator] === 'function';
46
47
  }
47
48
  /**
@@ -137,6 +138,7 @@ export function validateConstraint(arg, constraint) {
137
138
  catch {
138
139
  // ignore
139
140
  }
141
+ // eslint-disable-next-line local/code-no-any-casts
140
142
  if (!isUndefinedOrNull(arg) && arg.constructor === constraint) {
141
143
  return;
142
144
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/base/common/types.ts","vs/base/common/types.ts"],"names":[],"mappings":"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","file":"types.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { assert } from './assert.js';\n\n/**\n * @returns whether the provided parameter is a JavaScript String or not.\n */\nexport function isString(str: unknown): str is string {\n\treturn (typeof str === 'string');\n}\n\n/**\n * @returns whether the provided parameter is of type `object` but **not**\n *\t`null`, an `array`, a `regexp`, nor a `date`.\n */\nexport function isObject(obj: unknown): obj is Object {\n\t// The method can't do a type cast since there are type (like strings) which\n\t// are subclasses of any put not positvely matched by the function. Hence type\n\t// narrowing results in wrong results.\n\treturn typeof obj === 'object'\n\t\t&& obj !== null\n\t\t&& !Array.isArray(obj)\n\t\t&& !(obj instanceof RegExp)\n\t\t&& !(obj instanceof Date);\n}\n\n/**\n * @returns whether the provided parameter is of type `Buffer` or Uint8Array dervived type\n */\nexport function isTypedArray(obj: unknown): obj is Object {\n\tconst TypedArray = Object.getPrototypeOf(Uint8Array);\n\treturn typeof obj === 'object'\n\t\t&& obj instanceof TypedArray;\n}\n\n/**\n * In **contrast** to just checking `typeof` this will return `false` for `NaN`.\n * @returns whether the provided parameter is a JavaScript Number or not.\n */\nexport function isNumber(obj: unknown): obj is number {\n\treturn (typeof obj === 'number' && !isNaN(obj));\n}\n\n/**\n * @returns whether the provided parameter is an Iterable, casting to the given generic\n */\nexport function isIterable<T>(obj: unknown): obj is Iterable<T> {\n\treturn !!obj && typeof (obj as any)[Symbol.iterator] === 'function';\n}\n\n/**\n * @returns whether the provided parameter is a JavaScript Boolean or not.\n */\nexport function isBoolean(obj: unknown): obj is boolean {\n\treturn (obj === true || obj === false);\n}\n\n/**\n * @returns whether the provided parameter is undefined.\n */\nexport function isUndefined(obj: unknown): obj is undefined {\n\treturn (typeof obj === 'undefined');\n}\n\n/**\n * @returns whether the provided parameter is defined.\n */\nexport function isDefined<T>(arg: T | null | undefined): arg is T {\n\treturn !isUndefinedOrNull(arg);\n}\n\n/**\n * @returns whether the provided parameter is undefined or null.\n */\nexport function isUndefinedOrNull(obj: unknown): obj is undefined | null {\n\treturn (isUndefined(obj) || obj === null);\n}\n\n\nexport function assertType(condition: unknown, type?: string): asserts condition {\n\tif (!condition) {\n\t\tthrow new Error(type ? `Unexpected type, expected '${type}'` : 'Unexpected type');\n\t}\n}\n\n/**\n * Asserts that the argument passed in is neither undefined nor null.\n *\n * @see {@link assertDefined} for a similar utility that leverages TS assertion functions to narrow down the type of `arg` to be non-nullable.\n */\nexport function assertReturnsDefined<T>(arg: T | null | undefined): NonNullable<T> {\n\tassert(\n\t\targ !== null && arg !== undefined,\n\t\t'Argument is `undefined` or `null`.',\n\t);\n\n\treturn arg;\n}\n\n/**\n * Checks if the provided value is one of the vales in the provided list.\n *\n * ## Examples\n *\n * ```typescript\n * // note! item type is a `subset of string`\n * type TItem = ':' | '.' | '/';\n *\n * // note! item is type of `string` here\n * const item: string = ':';\n * // list of the items to check against\n * const list: TItem[] = [':', '.'];\n *\n * // ok\n * assert(\n * isOneOf(item, list),\n * 'Must succeed.',\n * );\n *\n * // `item` is of `TItem` type now\n * ```\n */\nexport const isOneOf = <TType, TSubtype extends TType>(\n\tvalue: TType,\n\tvalidValues: readonly TSubtype[],\n): value is TSubtype => {\n\t// note! it is OK to type cast here, because we rely on the includes\n\t// utility to check if the value is present in the provided list\n\treturn validValues.includes(<TSubtype>value);\n};\n\n/**\n * @returns whether the provided parameter is a JavaScript Function or not.\n */\nexport function isFunction(obj: unknown): obj is Function {\n\treturn (typeof obj === 'function');\n}\n\nexport type TypeConstraint = string | Function;\n\nexport function validateConstraints(args: unknown[], constraints: Array<TypeConstraint | undefined>): void {\n\tconst len = Math.min(args.length, constraints.length);\n\tfor (let i = 0; i < len; i++) {\n\t\tvalidateConstraint(args[i], constraints[i]);\n\t}\n}\n\nexport function validateConstraint(arg: unknown, constraint: TypeConstraint | undefined): void {\n\n\tif (isString(constraint)) {\n\t\tif (typeof arg !== constraint) {\n\t\t\tthrow new Error(`argument does not match constraint: typeof ${constraint}`);\n\t\t}\n\t} else if (isFunction(constraint)) {\n\t\ttry {\n\t\t\tif (arg instanceof constraint) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t} catch {\n\t\t\t// ignore\n\t\t}\n\t\tif (!isUndefinedOrNull(arg) && (arg as any).constructor === constraint) {\n\t\t\treturn;\n\t\t}\n\t\tif (constraint.length === 1 && constraint.call(undefined, arg) === true) {\n\t\t\treturn;\n\t\t}\n\t\tthrow new Error(`argument does not match one of these constraints: arg instanceof constraint, arg.constructor === constraint, nor constraint(arg) === true`);\n\t}\n}\n\n/**\n * Helper type assertion that safely upcasts a type to a supertype.\n *\n * This can be used to make sure the argument correctly conforms to the subtype while still being able to pass it\n * to contexts that expects the supertype.\n */\nexport function upcast<Base, Sub extends Base = Base>(x: Sub): Base {\n\treturn x;\n}\n\n/**\n * Only picks the non-optional properties of a type.\n */\nexport type OmitOptional<T> = { [K in keyof T as T[K] extends Required<T>[K] ? K : never]: T[K] };\n\n/**\n * A type that removed readonly-less from all properties of `T`\n */\nexport type Mutable<T> = {\n\t-readonly [P in keyof T]: T[P]\n};\n\n/**\n * Represents a type that is a partial version of a given type `T`, except a subset.\n */\nexport type PartialExcept<T, K extends keyof T> = Partial<Omit<T, K>> & Pick<T, K>;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { assert } from './assert.js';\n\n/**\n * @returns whether the provided parameter is a JavaScript String or not.\n */\nexport function isString(str: unknown): str is string {\n\treturn (typeof str === 'string');\n}\n\n/**\n * @returns whether the provided parameter is of type `object` but **not**\n *\t`null`, an `array`, a `regexp`, nor a `date`.\n */\nexport function isObject(obj: unknown): obj is Object {\n\t// The method can't do a type cast since there are type (like strings) which\n\t// are subclasses of any put not positvely matched by the function. Hence type\n\t// narrowing results in wrong results.\n\treturn typeof obj === 'object'\n\t\t&& obj !== null\n\t\t&& !Array.isArray(obj)\n\t\t&& !(obj instanceof RegExp)\n\t\t&& !(obj instanceof Date);\n}\n\n/**\n * @returns whether the provided parameter is of type `Buffer` or Uint8Array dervived type\n */\nexport function isTypedArray(obj: unknown): obj is Object {\n\tconst TypedArray = Object.getPrototypeOf(Uint8Array);\n\treturn typeof obj === 'object'\n\t\t&& obj instanceof TypedArray;\n}\n\n/**\n * In **contrast** to just checking `typeof` this will return `false` for `NaN`.\n * @returns whether the provided parameter is a JavaScript Number or not.\n */\nexport function isNumber(obj: unknown): obj is number {\n\treturn (typeof obj === 'number' && !isNaN(obj));\n}\n\n/**\n * @returns whether the provided parameter is an Iterable, casting to the given generic\n */\nexport function isIterable<T>(obj: unknown): obj is Iterable<T> {\n\treturn !!obj && typeof (obj as any)[Symbol.iterator] === 'function';\n}\n\n/**\n * @returns whether the provided parameter is a JavaScript Boolean or not.\n */\nexport function isBoolean(obj: unknown): obj is boolean {\n\treturn (obj === true || obj === false);\n}\n\n/**\n * @returns whether the provided parameter is undefined.\n */\nexport function isUndefined(obj: unknown): obj is undefined {\n\treturn (typeof obj === 'undefined');\n}\n\n/**\n * @returns whether the provided parameter is defined.\n */\nexport function isDefined<T>(arg: T | null | undefined): arg is T {\n\treturn !isUndefinedOrNull(arg);\n}\n\n/**\n * @returns whether the provided parameter is undefined or null.\n */\nexport function isUndefinedOrNull(obj: unknown): obj is undefined | null {\n\treturn (isUndefined(obj) || obj === null);\n}\n\n\nexport function assertType(condition: unknown, type?: string): asserts condition {\n\tif (!condition) {\n\t\tthrow new Error(type ? `Unexpected type, expected '${type}'` : 'Unexpected type');\n\t}\n}\n\n/**\n * Asserts that the argument passed in is neither undefined nor null.\n *\n * @see {@link assertDefined} for a similar utility that leverages TS assertion functions to narrow down the type of `arg` to be non-nullable.\n */\nexport function assertReturnsDefined<T>(arg: T | null | undefined): NonNullable<T> {\n\tassert(\n\t\targ !== null && arg !== undefined,\n\t\t'Argument is `undefined` or `null`.',\n\t);\n\n\treturn arg;\n}\n\n/**\n * Checks if the provided value is one of the vales in the provided list.\n *\n * ## Examples\n *\n * ```typescript\n * // note! item type is a `subset of string`\n * type TItem = ':' | '.' | '/';\n *\n * // note! item is type of `string` here\n * const item: string = ':';\n * // list of the items to check against\n * const list: TItem[] = [':', '.'];\n *\n * // ok\n * assert(\n * isOneOf(item, list),\n * 'Must succeed.',\n * );\n *\n * // `item` is of `TItem` type now\n * ```\n */\nexport const isOneOf = <TType, TSubtype extends TType>(\n\tvalue: TType,\n\tvalidValues: readonly TSubtype[],\n): value is TSubtype => {\n\t// note! it is OK to type cast here, because we rely on the includes\n\t// utility to check if the value is present in the provided list\n\treturn validValues.includes(<TSubtype>value);\n};\n\n/**\n * @returns whether the provided parameter is a JavaScript Function or not.\n */\nexport function isFunction(obj: unknown): obj is Function {\n\treturn (typeof obj === 'function');\n}\n\nexport type TypeConstraint = string | Function;\n\nexport function validateConstraints(args: unknown[], constraints: Array<TypeConstraint | undefined>): void {\n\tconst len = Math.min(args.length, constraints.length);\n\tfor (let i = 0; i < len; i++) {\n\t\tvalidateConstraint(args[i], constraints[i]);\n\t}\n}\n\nexport function validateConstraint(arg: unknown, constraint: TypeConstraint | undefined): void {\n\n\tif (isString(constraint)) {\n\t\tif (typeof arg !== constraint) {\n\t\t\tthrow new Error(`argument does not match constraint: typeof ${constraint}`);\n\t\t}\n\t} else if (isFunction(constraint)) {\n\t\ttry {\n\t\t\tif (arg instanceof constraint) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t} catch {\n\t\t\t// ignore\n\t\t}\n\t\tif (!isUndefinedOrNull(arg) && (arg as any).constructor === constraint) {\n\t\t\treturn;\n\t\t}\n\t\tif (constraint.length === 1 && constraint.call(undefined, arg) === true) {\n\t\t\treturn;\n\t\t}\n\t\tthrow new Error(`argument does not match one of these constraints: arg instanceof constraint, arg.constructor === constraint, nor constraint(arg) === true`);\n\t}\n}\n\n/**\n * Helper type assertion that safely upcasts a type to a supertype.\n *\n * This can be used to make sure the argument correctly conforms to the subtype while still being able to pass it\n * to contexts that expects the supertype.\n */\nexport function upcast<Base, Sub extends Base = Base>(x: Sub): Base {\n\treturn x;\n}\n\n/**\n * Only picks the non-optional properties of a type.\n */\nexport type OmitOptional<T> = { [K in keyof T as T[K] extends Required<T>[K] ? K : never]: T[K] };\n\n/**\n * A type that removed readonly-less from all properties of `T`\n */\nexport type Mutable<T> = {\n\t-readonly [P in keyof T]: T[P]\n};\n\n/**\n * Represents a type that is a partial version of a given type `T`, except a subset.\n */\nexport type PartialExcept<T, K extends keyof T> = Partial<Omit<T, K>> & Pick<T, K>;\n"]}
1
+ {"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/base/common/types.ts","vs/base/common/types.ts"],"names":[],"mappings":"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","file":"types.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { assert } from './assert.js';\n\n/**\n * @returns whether the provided parameter is a JavaScript String or not.\n */\nexport function isString(str: unknown): str is string {\n\treturn (typeof str === 'string');\n}\n\n/**\n * @returns whether the provided parameter is of type `object` but **not**\n *\t`null`, an `array`, a `regexp`, nor a `date`.\n */\nexport function isObject(obj: unknown): obj is Object {\n\t// The method can't do a type cast since there are type (like strings) which\n\t// are subclasses of any put not positvely matched by the function. Hence type\n\t// narrowing results in wrong results.\n\treturn typeof obj === 'object'\n\t\t&& obj !== null\n\t\t&& !Array.isArray(obj)\n\t\t&& !(obj instanceof RegExp)\n\t\t&& !(obj instanceof Date);\n}\n\n/**\n * @returns whether the provided parameter is of type `Buffer` or Uint8Array dervived type\n */\nexport function isTypedArray(obj: unknown): obj is Object {\n\tconst TypedArray = Object.getPrototypeOf(Uint8Array);\n\treturn typeof obj === 'object'\n\t\t&& obj instanceof TypedArray;\n}\n\n/**\n * In **contrast** to just checking `typeof` this will return `false` for `NaN`.\n * @returns whether the provided parameter is a JavaScript Number or not.\n */\nexport function isNumber(obj: unknown): obj is number {\n\treturn (typeof obj === 'number' && !isNaN(obj));\n}\n\n/**\n * @returns whether the provided parameter is an Iterable, casting to the given generic\n */\nexport function isIterable<T>(obj: unknown): obj is Iterable<T> {\n\t// eslint-disable-next-line local/code-no-any-casts\n\treturn !!obj && typeof (obj as any)[Symbol.iterator] === 'function';\n}\n\n/**\n * @returns whether the provided parameter is a JavaScript Boolean or not.\n */\nexport function isBoolean(obj: unknown): obj is boolean {\n\treturn (obj === true || obj === false);\n}\n\n/**\n * @returns whether the provided parameter is undefined.\n */\nexport function isUndefined(obj: unknown): obj is undefined {\n\treturn (typeof obj === 'undefined');\n}\n\n/**\n * @returns whether the provided parameter is defined.\n */\nexport function isDefined<T>(arg: T | null | undefined): arg is T {\n\treturn !isUndefinedOrNull(arg);\n}\n\n/**\n * @returns whether the provided parameter is undefined or null.\n */\nexport function isUndefinedOrNull(obj: unknown): obj is undefined | null {\n\treturn (isUndefined(obj) || obj === null);\n}\n\n\nexport function assertType(condition: unknown, type?: string): asserts condition {\n\tif (!condition) {\n\t\tthrow new Error(type ? `Unexpected type, expected '${type}'` : 'Unexpected type');\n\t}\n}\n\n/**\n * Asserts that the argument passed in is neither undefined nor null.\n *\n * @see {@link assertDefined} for a similar utility that leverages TS assertion functions to narrow down the type of `arg` to be non-nullable.\n */\nexport function assertReturnsDefined<T>(arg: T | null | undefined): NonNullable<T> {\n\tassert(\n\t\targ !== null && arg !== undefined,\n\t\t'Argument is `undefined` or `null`.',\n\t);\n\n\treturn arg;\n}\n\n/**\n * Checks if the provided value is one of the vales in the provided list.\n *\n * ## Examples\n *\n * ```typescript\n * // note! item type is a `subset of string`\n * type TItem = ':' | '.' | '/';\n *\n * // note! item is type of `string` here\n * const item: string = ':';\n * // list of the items to check against\n * const list: TItem[] = [':', '.'];\n *\n * // ok\n * assert(\n * isOneOf(item, list),\n * 'Must succeed.',\n * );\n *\n * // `item` is of `TItem` type now\n * ```\n */\nexport const isOneOf = <TType, TSubtype extends TType>(\n\tvalue: TType,\n\tvalidValues: readonly TSubtype[],\n): value is TSubtype => {\n\t// note! it is OK to type cast here, because we rely on the includes\n\t// utility to check if the value is present in the provided list\n\treturn validValues.includes(<TSubtype>value);\n};\n\n/**\n * @returns whether the provided parameter is a JavaScript Function or not.\n */\nexport function isFunction(obj: unknown): obj is Function {\n\treturn (typeof obj === 'function');\n}\n\nexport type TypeConstraint = string | Function;\n\nexport function validateConstraints(args: unknown[], constraints: Array<TypeConstraint | undefined>): void {\n\tconst len = Math.min(args.length, constraints.length);\n\tfor (let i = 0; i < len; i++) {\n\t\tvalidateConstraint(args[i], constraints[i]);\n\t}\n}\n\nexport function validateConstraint(arg: unknown, constraint: TypeConstraint | undefined): void {\n\n\tif (isString(constraint)) {\n\t\tif (typeof arg !== constraint) {\n\t\t\tthrow new Error(`argument does not match constraint: typeof ${constraint}`);\n\t\t}\n\t} else if (isFunction(constraint)) {\n\t\ttry {\n\t\t\tif (arg instanceof constraint) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t} catch {\n\t\t\t// ignore\n\t\t}\n\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\tif (!isUndefinedOrNull(arg) && (arg as any).constructor === constraint) {\n\t\t\treturn;\n\t\t}\n\t\tif (constraint.length === 1 && constraint.call(undefined, arg) === true) {\n\t\t\treturn;\n\t\t}\n\t\tthrow new Error(`argument does not match one of these constraints: arg instanceof constraint, arg.constructor === constraint, nor constraint(arg) === true`);\n\t}\n}\n\n/**\n * Helper type assertion that safely upcasts a type to a supertype.\n *\n * This can be used to make sure the argument correctly conforms to the subtype while still being able to pass it\n * to contexts that expects the supertype.\n */\nexport function upcast<Base, Sub extends Base = Base>(x: Sub): Base {\n\treturn x;\n}\n\n/**\n * Only picks the non-optional properties of a type.\n */\nexport type OmitOptional<T> = { [K in keyof T as T[K] extends Required<T>[K] ? K : never]: T[K] };\n\n/**\n * A type that removed readonly-less from all properties of `T`\n */\nexport type Mutable<T> = {\n\t-readonly [P in keyof T]: T[P]\n};\n\n/**\n * Represents a type that is a partial version of a given type `T`, except a subset.\n */\nexport type PartialExcept<T, K extends keyof T> = Partial<Omit<T, K>> & Pick<T, K>;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { assert } from './assert.js';\n\n/**\n * @returns whether the provided parameter is a JavaScript String or not.\n */\nexport function isString(str: unknown): str is string {\n\treturn (typeof str === 'string');\n}\n\n/**\n * @returns whether the provided parameter is of type `object` but **not**\n *\t`null`, an `array`, a `regexp`, nor a `date`.\n */\nexport function isObject(obj: unknown): obj is Object {\n\t// The method can't do a type cast since there are type (like strings) which\n\t// are subclasses of any put not positvely matched by the function. Hence type\n\t// narrowing results in wrong results.\n\treturn typeof obj === 'object'\n\t\t&& obj !== null\n\t\t&& !Array.isArray(obj)\n\t\t&& !(obj instanceof RegExp)\n\t\t&& !(obj instanceof Date);\n}\n\n/**\n * @returns whether the provided parameter is of type `Buffer` or Uint8Array dervived type\n */\nexport function isTypedArray(obj: unknown): obj is Object {\n\tconst TypedArray = Object.getPrototypeOf(Uint8Array);\n\treturn typeof obj === 'object'\n\t\t&& obj instanceof TypedArray;\n}\n\n/**\n * In **contrast** to just checking `typeof` this will return `false` for `NaN`.\n * @returns whether the provided parameter is a JavaScript Number or not.\n */\nexport function isNumber(obj: unknown): obj is number {\n\treturn (typeof obj === 'number' && !isNaN(obj));\n}\n\n/**\n * @returns whether the provided parameter is an Iterable, casting to the given generic\n */\nexport function isIterable<T>(obj: unknown): obj is Iterable<T> {\n\t// eslint-disable-next-line local/code-no-any-casts\n\treturn !!obj && typeof (obj as any)[Symbol.iterator] === 'function';\n}\n\n/**\n * @returns whether the provided parameter is a JavaScript Boolean or not.\n */\nexport function isBoolean(obj: unknown): obj is boolean {\n\treturn (obj === true || obj === false);\n}\n\n/**\n * @returns whether the provided parameter is undefined.\n */\nexport function isUndefined(obj: unknown): obj is undefined {\n\treturn (typeof obj === 'undefined');\n}\n\n/**\n * @returns whether the provided parameter is defined.\n */\nexport function isDefined<T>(arg: T | null | undefined): arg is T {\n\treturn !isUndefinedOrNull(arg);\n}\n\n/**\n * @returns whether the provided parameter is undefined or null.\n */\nexport function isUndefinedOrNull(obj: unknown): obj is undefined | null {\n\treturn (isUndefined(obj) || obj === null);\n}\n\n\nexport function assertType(condition: unknown, type?: string): asserts condition {\n\tif (!condition) {\n\t\tthrow new Error(type ? `Unexpected type, expected '${type}'` : 'Unexpected type');\n\t}\n}\n\n/**\n * Asserts that the argument passed in is neither undefined nor null.\n *\n * @see {@link assertDefined} for a similar utility that leverages TS assertion functions to narrow down the type of `arg` to be non-nullable.\n */\nexport function assertReturnsDefined<T>(arg: T | null | undefined): NonNullable<T> {\n\tassert(\n\t\targ !== null && arg !== undefined,\n\t\t'Argument is `undefined` or `null`.',\n\t);\n\n\treturn arg;\n}\n\n/**\n * Checks if the provided value is one of the vales in the provided list.\n *\n * ## Examples\n *\n * ```typescript\n * // note! item type is a `subset of string`\n * type TItem = ':' | '.' | '/';\n *\n * // note! item is type of `string` here\n * const item: string = ':';\n * // list of the items to check against\n * const list: TItem[] = [':', '.'];\n *\n * // ok\n * assert(\n * isOneOf(item, list),\n * 'Must succeed.',\n * );\n *\n * // `item` is of `TItem` type now\n * ```\n */\nexport const isOneOf = <TType, TSubtype extends TType>(\n\tvalue: TType,\n\tvalidValues: readonly TSubtype[],\n): value is TSubtype => {\n\t// note! it is OK to type cast here, because we rely on the includes\n\t// utility to check if the value is present in the provided list\n\treturn validValues.includes(<TSubtype>value);\n};\n\n/**\n * @returns whether the provided parameter is a JavaScript Function or not.\n */\nexport function isFunction(obj: unknown): obj is Function {\n\treturn (typeof obj === 'function');\n}\n\nexport type TypeConstraint = string | Function;\n\nexport function validateConstraints(args: unknown[], constraints: Array<TypeConstraint | undefined>): void {\n\tconst len = Math.min(args.length, constraints.length);\n\tfor (let i = 0; i < len; i++) {\n\t\tvalidateConstraint(args[i], constraints[i]);\n\t}\n}\n\nexport function validateConstraint(arg: unknown, constraint: TypeConstraint | undefined): void {\n\n\tif (isString(constraint)) {\n\t\tif (typeof arg !== constraint) {\n\t\t\tthrow new Error(`argument does not match constraint: typeof ${constraint}`);\n\t\t}\n\t} else if (isFunction(constraint)) {\n\t\ttry {\n\t\t\tif (arg instanceof constraint) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t} catch {\n\t\t\t// ignore\n\t\t}\n\t\t// eslint-disable-next-line local/code-no-any-casts\n\t\tif (!isUndefinedOrNull(arg) && (arg as any).constructor === constraint) {\n\t\t\treturn;\n\t\t}\n\t\tif (constraint.length === 1 && constraint.call(undefined, arg) === true) {\n\t\t\treturn;\n\t\t}\n\t\tthrow new Error(`argument does not match one of these constraints: arg instanceof constraint, arg.constructor === constraint, nor constraint(arg) === true`);\n\t}\n}\n\n/**\n * Helper type assertion that safely upcasts a type to a supertype.\n *\n * This can be used to make sure the argument correctly conforms to the subtype while still being able to pass it\n * to contexts that expects the supertype.\n */\nexport function upcast<Base, Sub extends Base = Base>(x: Sub): Base {\n\treturn x;\n}\n\n/**\n * Only picks the non-optional properties of a type.\n */\nexport type OmitOptional<T> = { [K in keyof T as T[K] extends Required<T>[K] ? K : never]: T[K] };\n\n/**\n * A type that removed readonly-less from all properties of `T`\n */\nexport type Mutable<T> = {\n\t-readonly [P in keyof T]: T[P]\n};\n\n/**\n * Represents a type that is a partial version of a given type `T`, except a subset.\n */\nexport type PartialExcept<T, K extends keyof T> = Partial<Omit<T, K>> & Pick<T, K>;\n"]}
@@ -77,7 +77,7 @@ class WebWorkerProtocol {
77
77
  setWorkerId(workerId) {
78
78
  this._workerId = workerId;
79
79
  }
80
- sendMessage(channel, method, args) {
80
+ async sendMessage(channel, method, args) {
81
81
  const req = String(++this._lastSentReq);
82
82
  return new Promise((resolve, reject) => {
83
83
  this._pendingReplies[req] = {
@@ -160,10 +160,11 @@ class WebWorkerProtocol {
160
160
  if (replyMessage.err) {
161
161
  let err = replyMessage.err;
162
162
  if (replyMessage.err.$isError) {
163
- err = new Error();
164
- err.name = replyMessage.err.name;
165
- err.message = replyMessage.err.message;
166
- err.stack = replyMessage.err.stack;
163
+ const newErr = new Error();
164
+ newErr.name = replyMessage.err.name;
165
+ newErr.message = replyMessage.err.message;
166
+ newErr.stack = replyMessage.err.stack;
167
+ err = newErr;
167
168
  }
168
169
  reply.reject(err);
169
170
  return;
@@ -209,8 +210,9 @@ class WebWorkerProtocol {
209
210
  const transfer = [];
210
211
  if (msg.type === 0 /* MessageType.Request */) {
211
212
  for (let i = 0; i < msg.args.length; i++) {
212
- if (msg.args[i] instanceof ArrayBuffer) {
213
- transfer.push(msg.args[i]);
213
+ const arg = msg.args[i];
214
+ if (arg instanceof ArrayBuffer) {
215
+ transfer.push(arg);
214
216
  }
215
217
  }
216
218
  }
@@ -252,7 +254,7 @@ export class WebWorkerClient extends Disposable {
252
254
  // Send initialize message
253
255
  this._onModuleLoaded = this._protocol.sendMessage(DEFAULT_CHANNEL, INITIALIZE, [
254
256
  this._worker.getId(),
255
- ]);
257
+ ]).then(() => { });
256
258
  this.proxy = this._protocol.createProxyToRemoteChannel(DEFAULT_CHANNEL, async () => { await this._onModuleLoaded; });
257
259
  this._onModuleLoaded.catch((e) => {
258
260
  this._onError('Worker failed to load ', e);
@@ -263,11 +265,12 @@ export class WebWorkerClient extends Disposable {
263
265
  if (!channel) {
264
266
  return Promise.reject(new Error(`Missing channel ${channelName} on main thread`));
265
267
  }
266
- if (typeof channel[method] !== 'function') {
268
+ const fn = channel[method];
269
+ if (typeof fn !== 'function') {
267
270
  return Promise.reject(new Error(`Missing method ${method} on main thread channel ${channelName}`));
268
271
  }
269
272
  try {
270
- return Promise.resolve(channel[method].apply(channel, args));
273
+ return Promise.resolve(fn.apply(channel, args));
271
274
  }
272
275
  catch (e) {
273
276
  return Promise.reject(e);
@@ -279,7 +282,11 @@ export class WebWorkerClient extends Disposable {
279
282
  throw new Error(`Missing channel ${channelName} on main thread`);
280
283
  }
281
284
  if (propertyIsDynamicEvent(eventName)) {
282
- const event = channel[eventName].call(channel, arg);
285
+ const fn = channel[eventName];
286
+ if (typeof fn !== 'function') {
287
+ throw new Error(`Missing dynamic event ${eventName} on main thread channel ${channelName}.`);
288
+ }
289
+ const event = fn.call(channel, arg);
283
290
  if (typeof event !== 'function') {
284
291
  throw new Error(`Missing dynamic event ${eventName} on main thread channel ${channelName}.`);
285
292
  }
@@ -337,11 +344,12 @@ export class WebWorkerServer {
337
344
  if (!requestHandler) {
338
345
  return Promise.reject(new Error(`Missing channel ${channel} on worker thread`));
339
346
  }
340
- if (typeof requestHandler[method] !== 'function') {
347
+ const fn = requestHandler[method];
348
+ if (typeof fn !== 'function') {
341
349
  return Promise.reject(new Error(`Missing method ${method} on worker thread channel ${channel}`));
342
350
  }
343
351
  try {
344
- return Promise.resolve(requestHandler[method].apply(requestHandler, args));
352
+ return Promise.resolve(fn.apply(requestHandler, args));
345
353
  }
346
354
  catch (e) {
347
355
  return Promise.reject(e);
@@ -353,7 +361,11 @@ export class WebWorkerServer {
353
361
  throw new Error(`Missing channel ${channel} on worker thread`);
354
362
  }
355
363
  if (propertyIsDynamicEvent(eventName)) {
356
- const event = requestHandler[eventName].call(requestHandler, arg);
364
+ const fn = requestHandler[eventName];
365
+ if (typeof fn !== 'function') {
366
+ throw new Error(`Missing dynamic event ${eventName} on request handler.`);
367
+ }
368
+ const event = fn.call(requestHandler, arg);
357
369
  if (typeof event !== 'function') {
358
370
  throw new Error(`Missing dynamic event ${eventName} on request handler.`);
359
371
  }