@theia/core 1.29.0-next.9 → 1.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (354) hide show
  1. package/README.md +10 -9
  2. package/i18n/nls.cs.json +80 -1
  3. package/i18n/nls.de.json +80 -1
  4. package/i18n/nls.es.json +80 -1
  5. package/i18n/nls.fr.json +80 -1
  6. package/i18n/nls.hu.json +80 -1
  7. package/i18n/nls.it.json +80 -1
  8. package/i18n/nls.ja.json +80 -1
  9. package/i18n/nls.json +80 -1
  10. package/i18n/nls.pl.json +80 -1
  11. package/i18n/nls.pt-br.json +80 -1
  12. package/i18n/nls.pt-pt.json +80 -1
  13. package/i18n/nls.ru.json +80 -1
  14. package/i18n/nls.zh-cn.json +80 -1
  15. package/lib/browser/authentication-service.d.ts +18 -6
  16. package/lib/browser/authentication-service.d.ts.map +1 -1
  17. package/lib/browser/authentication-service.js +4 -4
  18. package/lib/browser/authentication-service.js.map +1 -1
  19. package/lib/browser/breadcrumbs/breadcrumbs-renderer.d.ts +0 -2
  20. package/lib/browser/breadcrumbs/breadcrumbs-renderer.d.ts.map +1 -1
  21. package/lib/browser/breadcrumbs/breadcrumbs-renderer.js +0 -2
  22. package/lib/browser/breadcrumbs/breadcrumbs-renderer.js.map +1 -1
  23. package/lib/browser/common-frontend-contribution.d.ts +4 -0
  24. package/lib/browser/common-frontend-contribution.d.ts.map +1 -1
  25. package/lib/browser/common-frontend-contribution.js +37 -0
  26. package/lib/browser/common-frontend-contribution.js.map +1 -1
  27. package/lib/browser/core-preferences.d.ts.map +1 -1
  28. package/lib/browser/core-preferences.js +2 -1
  29. package/lib/browser/core-preferences.js.map +1 -1
  30. package/lib/browser/decorations-service.d.ts.map +1 -1
  31. package/lib/browser/decorations-service.js +2 -6
  32. package/lib/browser/decorations-service.js.map +1 -1
  33. package/lib/browser/dialogs/react-dialog.d.ts +2 -2
  34. package/lib/browser/dialogs/react-dialog.d.ts.map +1 -1
  35. package/lib/browser/dialogs/react-dialog.js +4 -6
  36. package/lib/browser/dialogs/react-dialog.js.map +1 -1
  37. package/lib/browser/keybinding.spec.js +0 -1
  38. package/lib/browser/keybinding.spec.js.map +1 -1
  39. package/lib/browser/keyboard/keys.spec.js +0 -1
  40. package/lib/browser/keyboard/keys.spec.js.map +1 -1
  41. package/lib/browser/label-parser.spec.js +0 -1
  42. package/lib/browser/label-parser.spec.js.map +1 -1
  43. package/lib/browser/label-provider.d.ts +1 -1
  44. package/lib/browser/label-provider.d.ts.map +1 -1
  45. package/lib/browser/label-provider.js +1 -2
  46. package/lib/browser/label-provider.js.map +1 -1
  47. package/lib/browser/menu/browser-context-menu-renderer.d.ts.map +1 -1
  48. package/lib/browser/menu/browser-context-menu-renderer.js +0 -1
  49. package/lib/browser/menu/browser-context-menu-renderer.js.map +1 -1
  50. package/lib/browser/menu/browser-menu-plugin.d.ts +0 -1
  51. package/lib/browser/menu/browser-menu-plugin.d.ts.map +1 -1
  52. package/lib/browser/menu/browser-menu-plugin.js +3 -2
  53. package/lib/browser/menu/browser-menu-plugin.js.map +1 -1
  54. package/lib/browser/navigatable-types.d.ts +3 -3
  55. package/lib/browser/navigatable-types.d.ts.map +1 -1
  56. package/lib/browser/navigatable-types.js +2 -3
  57. package/lib/browser/navigatable-types.js.map +1 -1
  58. package/lib/browser/preferences/injectable-preference-proxy.js +1 -1
  59. package/lib/browser/preferences/injectable-preference-proxy.js.map +1 -1
  60. package/lib/browser/preferences/preference-contribution.js +3 -3
  61. package/lib/browser/preferences/preference-contribution.js.map +1 -1
  62. package/lib/browser/preferences/preference-language-override-service.d.ts +2 -2
  63. package/lib/browser/preferences/preference-language-override-service.d.ts.map +1 -1
  64. package/lib/browser/preferences/preference-language-override-service.js +0 -2
  65. package/lib/browser/preferences/preference-language-override-service.js.map +1 -1
  66. package/lib/browser/preferences/preference-proxy.spec.js +0 -1
  67. package/lib/browser/preferences/preference-proxy.spec.js.map +1 -1
  68. package/lib/browser/preferences/preference-service.spec.js +0 -1
  69. package/lib/browser/preferences/preference-service.spec.js.map +1 -1
  70. package/lib/browser/preferences/preference-validation-service.spec.js +1 -1
  71. package/lib/browser/preferences/preference-validation-service.spec.js.map +1 -1
  72. package/lib/browser/saveable.d.ts +6 -6
  73. package/lib/browser/saveable.d.ts.map +1 -1
  74. package/lib/browser/saveable.js +2 -8
  75. package/lib/browser/saveable.js.map +1 -1
  76. package/lib/browser/shell/application-shell.d.ts +3 -3
  77. package/lib/browser/shell/application-shell.d.ts.map +1 -1
  78. package/lib/browser/shell/application-shell.js +2 -4
  79. package/lib/browser/shell/application-shell.js.map +1 -1
  80. package/lib/browser/shell/shell-layout-restorer.d.ts +1 -1
  81. package/lib/browser/shell/shell-layout-restorer.d.ts.map +1 -1
  82. package/lib/browser/shell/shell-layout-restorer.js +1 -2
  83. package/lib/browser/shell/shell-layout-restorer.js.map +1 -1
  84. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-types.d.ts +1 -1
  85. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-types.d.ts.map +1 -1
  86. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-types.js +1 -2
  87. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-types.js.map +1 -1
  88. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.d.ts +1 -0
  89. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.d.ts.map +1 -1
  90. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.js +3 -6
  91. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.js.map +1 -1
  92. package/lib/browser/shell/tab-bars.d.ts.map +1 -1
  93. package/lib/browser/shell/tab-bars.js +0 -1
  94. package/lib/browser/shell/tab-bars.js.map +1 -1
  95. package/lib/browser/shell/view-contribution.d.ts +1 -1
  96. package/lib/browser/shell/view-contribution.d.ts.map +1 -1
  97. package/lib/browser/shell/view-contribution.js +0 -1
  98. package/lib/browser/shell/view-contribution.js.map +1 -1
  99. package/lib/browser/source-tree/tree-source.d.ts +2 -2
  100. package/lib/browser/source-tree/tree-source.d.ts.map +1 -1
  101. package/lib/browser/source-tree/tree-source.js +1 -2
  102. package/lib/browser/source-tree/tree-source.js.map +1 -1
  103. package/lib/browser/tooltip-service.d.ts +0 -2
  104. package/lib/browser/tooltip-service.d.ts.map +1 -1
  105. package/lib/browser/tooltip-service.js +0 -2
  106. package/lib/browser/tooltip-service.js.map +1 -1
  107. package/lib/browser/tree/tree-decorator.spec.js +0 -1
  108. package/lib/browser/tree/tree-decorator.spec.js.map +1 -1
  109. package/lib/browser/tree/tree-expansion.d.ts +2 -2
  110. package/lib/browser/tree/tree-expansion.d.ts.map +1 -1
  111. package/lib/browser/tree/tree-expansion.js.map +1 -1
  112. package/lib/browser/tree/tree-expansion.spec.js +0 -1
  113. package/lib/browser/tree/tree-expansion.spec.js.map +1 -1
  114. package/lib/browser/tree/tree-iterator.spec.js +0 -2
  115. package/lib/browser/tree/tree-iterator.spec.js.map +1 -1
  116. package/lib/browser/tree/tree-selection-state.d.ts +1 -1
  117. package/lib/browser/tree/tree-selection-state.d.ts.map +1 -1
  118. package/lib/browser/tree/tree-selection-state.js.map +1 -1
  119. package/lib/browser/tree/tree-selection-state.spec.js.map +1 -1
  120. package/lib/browser/tree/tree-selection.d.ts +3 -3
  121. package/lib/browser/tree/tree-selection.d.ts.map +1 -1
  122. package/lib/browser/tree/tree-selection.js +2 -2
  123. package/lib/browser/tree/tree-selection.js.map +1 -1
  124. package/lib/browser/tree/tree-widget-selection.d.ts +3 -3
  125. package/lib/browser/tree/tree-widget-selection.d.ts.map +1 -1
  126. package/lib/browser/tree/tree-widget-selection.js +1 -2
  127. package/lib/browser/tree/tree-widget-selection.js.map +1 -1
  128. package/lib/browser/tree/tree-widget.d.ts +7 -25
  129. package/lib/browser/tree/tree-widget.d.ts.map +1 -1
  130. package/lib/browser/tree/tree-widget.js +29 -46
  131. package/lib/browser/tree/tree-widget.js.map +1 -1
  132. package/lib/browser/tree/tree.d.ts +1 -1
  133. package/lib/browser/tree/tree.d.ts.map +1 -1
  134. package/lib/browser/tree/tree.js.map +1 -1
  135. package/lib/browser/tree/tree.spec.js +0 -1
  136. package/lib/browser/tree/tree.spec.js.map +1 -1
  137. package/lib/browser/view-container.d.ts +5 -5
  138. package/lib/browser/view-container.d.ts.map +1 -1
  139. package/lib/browser/view-container.js +2 -4
  140. package/lib/browser/view-container.js.map +1 -1
  141. package/lib/browser/widget-manager.d.ts +3 -1
  142. package/lib/browser/widget-manager.d.ts.map +1 -1
  143. package/lib/browser/widget-manager.js +6 -8
  144. package/lib/browser/widget-manager.js.map +1 -1
  145. package/lib/browser/widget-manager.spec.js +37 -18
  146. package/lib/browser/widget-manager.spec.js.map +1 -1
  147. package/lib/browser/widgets/alert-message.d.ts +1 -0
  148. package/lib/browser/widgets/alert-message.d.ts.map +1 -1
  149. package/lib/browser/widgets/alert-message.js.map +1 -1
  150. package/lib/browser/widgets/react-renderer.d.ts +4 -1
  151. package/lib/browser/widgets/react-renderer.d.ts.map +1 -1
  152. package/lib/browser/widgets/react-renderer.js +7 -3
  153. package/lib/browser/widgets/react-renderer.js.map +1 -1
  154. package/lib/browser/widgets/react-widget.d.ts +2 -2
  155. package/lib/browser/widgets/react-widget.d.ts.map +1 -1
  156. package/lib/browser/widgets/react-widget.js +4 -6
  157. package/lib/browser/widgets/react-widget.js.map +1 -1
  158. package/lib/browser/widgets/select-component.d.ts +3 -7
  159. package/lib/browser/widgets/select-component.d.ts.map +1 -1
  160. package/lib/browser/widgets/select-component.js +10 -12
  161. package/lib/browser/widgets/select-component.js.map +1 -1
  162. package/lib/browser/widgets/widget.d.ts +1 -1
  163. package/lib/browser/widgets/widget.d.ts.map +1 -1
  164. package/lib/browser/widgets/widget.js +1 -2
  165. package/lib/browser/widgets/widget.js.map +1 -1
  166. package/lib/common/cancellation.d.ts +1 -1
  167. package/lib/common/cancellation.d.ts.map +1 -1
  168. package/lib/common/cancellation.js +0 -1
  169. package/lib/common/cancellation.js.map +1 -1
  170. package/lib/common/command.d.ts +1 -1
  171. package/lib/common/command.d.ts.map +1 -1
  172. package/lib/common/command.js +1 -2
  173. package/lib/common/command.js.map +1 -1
  174. package/lib/common/command.spec.js +0 -1
  175. package/lib/common/command.spec.js.map +1 -1
  176. package/lib/common/disposable.d.ts +1 -1
  177. package/lib/common/disposable.d.ts.map +1 -1
  178. package/lib/common/disposable.js +1 -2
  179. package/lib/common/disposable.js.map +1 -1
  180. package/lib/common/disposable.spec.js +0 -1
  181. package/lib/common/disposable.spec.js.map +1 -1
  182. package/lib/common/glob.d.ts +1 -1
  183. package/lib/common/glob.d.ts.map +1 -1
  184. package/lib/common/glob.js +1 -2
  185. package/lib/common/glob.js.map +1 -1
  186. package/lib/common/keybinding.d.ts +1 -1
  187. package/lib/common/keybinding.d.ts.map +1 -1
  188. package/lib/common/keybinding.js +1 -2
  189. package/lib/common/keybinding.js.map +1 -1
  190. package/lib/common/keys.d.ts +1 -1
  191. package/lib/common/keys.d.ts.map +1 -1
  192. package/lib/common/keys.js +1 -2
  193. package/lib/common/keys.js.map +1 -1
  194. package/lib/common/logger.spec.js +0 -1
  195. package/lib/common/logger.spec.js.map +1 -1
  196. package/lib/common/lsp-types.d.ts +1 -1
  197. package/lib/common/lsp-types.d.ts.map +1 -1
  198. package/lib/common/lsp-types.js +6 -2
  199. package/lib/common/lsp-types.js.map +1 -1
  200. package/lib/common/menu/menu-types.d.ts +1 -1
  201. package/lib/common/menu/menu-types.d.ts.map +1 -1
  202. package/lib/common/menu/menu-types.js +1 -2
  203. package/lib/common/menu/menu-types.js.map +1 -1
  204. package/lib/common/menu/menu.spec.js +0 -1
  205. package/lib/common/menu/menu.spec.js.map +1 -1
  206. package/lib/common/message-rpc/channel.d.ts +17 -8
  207. package/lib/common/message-rpc/channel.d.ts.map +1 -1
  208. package/lib/common/message-rpc/channel.js +37 -10
  209. package/lib/common/message-rpc/channel.js.map +1 -1
  210. package/lib/common/message-rpc/index.d.ts +1 -1
  211. package/lib/common/message-rpc/index.d.ts.map +1 -1
  212. package/lib/common/message-rpc/index.js +3 -1
  213. package/lib/common/message-rpc/index.js.map +1 -1
  214. package/lib/common/message-rpc/rpc-message-encoder.d.ts +23 -92
  215. package/lib/common/message-rpc/rpc-message-encoder.d.ts.map +1 -1
  216. package/lib/common/message-rpc/rpc-message-encoder.js +47 -359
  217. package/lib/common/message-rpc/rpc-message-encoder.js.map +1 -1
  218. package/lib/common/message-rpc/rpc-message-encoder.spec.js +24 -14
  219. package/lib/common/message-rpc/rpc-message-encoder.spec.js.map +1 -1
  220. package/lib/common/message-rpc/rpc-protocol.d.ts.map +1 -1
  221. package/lib/common/message-rpc/rpc-protocol.js +2 -2
  222. package/lib/common/message-rpc/rpc-protocol.js.map +1 -1
  223. package/lib/common/messaging/web-socket-channel.d.ts +2 -12
  224. package/lib/common/messaging/web-socket-channel.d.ts.map +1 -1
  225. package/lib/common/messaging/web-socket-channel.js +4 -22
  226. package/lib/common/messaging/web-socket-channel.js.map +1 -1
  227. package/lib/common/preferences/preference-schema.d.ts +3 -2
  228. package/lib/common/preferences/preference-schema.d.ts.map +1 -1
  229. package/lib/common/preferences/preference-schema.js +1 -1
  230. package/lib/common/preferences/preference-schema.js.map +1 -1
  231. package/lib/common/preferences/preference-scope.d.ts +1 -1
  232. package/lib/common/preferences/preference-scope.d.ts.map +1 -1
  233. package/lib/common/preferences/preference-scope.js +6 -10
  234. package/lib/common/preferences/preference-scope.js.map +1 -1
  235. package/lib/common/preferences/preference-scope.spec.d.ts +2 -0
  236. package/lib/common/preferences/preference-scope.spec.d.ts.map +1 -0
  237. package/lib/common/preferences/preference-scope.spec.js +45 -0
  238. package/lib/common/preferences/preference-scope.spec.js.map +1 -0
  239. package/lib/common/promise-util.d.ts +1 -0
  240. package/lib/common/promise-util.d.ts.map +1 -1
  241. package/lib/common/promise-util.js +5 -1
  242. package/lib/common/promise-util.js.map +1 -1
  243. package/lib/common/quick-pick-service.d.ts +4 -1
  244. package/lib/common/quick-pick-service.d.ts.map +1 -1
  245. package/lib/common/selection.d.ts +3 -3
  246. package/lib/common/selection.d.ts.map +1 -1
  247. package/lib/common/selection.js +1 -2
  248. package/lib/common/selection.js.map +1 -1
  249. package/lib/electron-browser/messaging/electron-ipc-connection-provider.d.ts +5 -1
  250. package/lib/electron-browser/messaging/electron-ipc-connection-provider.d.ts.map +1 -1
  251. package/lib/electron-browser/messaging/electron-ipc-connection-provider.js +16 -16
  252. package/lib/electron-browser/messaging/electron-ipc-connection-provider.js.map +1 -1
  253. package/lib/electron-main/electron-main-application.js +1 -1
  254. package/lib/electron-main/electron-main-application.js.map +1 -1
  255. package/lib/electron-main/messaging/electron-messaging-contribution.d.ts +3 -9
  256. package/lib/electron-main/messaging/electron-messaging-contribution.d.ts.map +1 -1
  257. package/lib/electron-main/messaging/electron-messaging-contribution.js +2 -17
  258. package/lib/electron-main/messaging/electron-messaging-contribution.js.map +1 -1
  259. package/lib/node/i18n/localization-backend-contribution.d.ts +3 -0
  260. package/lib/node/i18n/localization-backend-contribution.d.ts.map +1 -1
  261. package/lib/node/i18n/localization-backend-contribution.js +10 -1
  262. package/lib/node/i18n/localization-backend-contribution.js.map +1 -1
  263. package/lib/node/messaging/ipc-channel.d.ts +2 -10
  264. package/lib/node/messaging/ipc-channel.d.ts.map +1 -1
  265. package/lib/node/messaging/ipc-channel.js +2 -18
  266. package/lib/node/messaging/ipc-channel.js.map +1 -1
  267. package/lib/node/messaging/ipc-connection-provider.d.ts.map +1 -1
  268. package/lib/node/messaging/ipc-connection-provider.js +5 -1
  269. package/lib/node/messaging/ipc-connection-provider.js.map +1 -1
  270. package/package.json +14 -13
  271. package/shared/react-dom/client/index.d.ts +1 -0
  272. package/shared/react-dom/client/index.js +1 -0
  273. package/shared/react-virtuoso/index.d.ts +1 -0
  274. package/shared/react-virtuoso/index.js +1 -0
  275. package/src/browser/authentication-service.ts +23 -12
  276. package/src/browser/breadcrumbs/breadcrumbs-renderer.tsx +0 -2
  277. package/src/browser/common-frontend-contribution.ts +41 -1
  278. package/src/browser/core-preferences.ts +2 -1
  279. package/src/browser/decorations-service.ts +1 -6
  280. package/src/browser/dialogs/react-dialog.tsx +6 -7
  281. package/src/browser/keybinding.spec.ts +0 -2
  282. package/src/browser/keyboard/keys.spec.ts +0 -2
  283. package/src/browser/label-parser.spec.ts +0 -2
  284. package/src/browser/label-provider.ts +2 -3
  285. package/src/browser/menu/browser-context-menu-renderer.ts +0 -2
  286. package/src/browser/menu/browser-menu-plugin.ts +3 -3
  287. package/src/browser/navigatable-types.ts +5 -6
  288. package/src/browser/preferences/injectable-preference-proxy.ts +1 -1
  289. package/src/browser/preferences/preference-contribution.ts +3 -3
  290. package/src/browser/preferences/preference-language-override-service.ts +2 -4
  291. package/src/browser/preferences/preference-proxy.spec.ts +0 -1
  292. package/src/browser/preferences/preference-service.spec.ts +0 -1
  293. package/src/browser/preferences/preference-validation-service.spec.ts +1 -1
  294. package/src/browser/saveable.ts +9 -15
  295. package/src/browser/shell/application-shell.ts +6 -7
  296. package/src/browser/shell/shell-layout-restorer.ts +2 -3
  297. package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar-types.ts +2 -3
  298. package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar.tsx +4 -5
  299. package/src/browser/shell/tab-bars.ts +0 -1
  300. package/src/browser/shell/view-contribution.ts +1 -2
  301. package/src/browser/source-tree/tree-source.ts +3 -4
  302. package/src/browser/style/index.css +5 -1
  303. package/src/browser/tooltip-service.tsx +0 -2
  304. package/src/browser/tree/tree-decorator.spec.ts +0 -2
  305. package/src/browser/tree/tree-expansion.spec.ts +0 -1
  306. package/src/browser/tree/tree-expansion.ts +2 -2
  307. package/src/browser/tree/tree-iterator.spec.ts +0 -3
  308. package/src/browser/tree/tree-selection-state.spec.ts +0 -2
  309. package/src/browser/tree/tree-selection-state.ts +1 -1
  310. package/src/browser/tree/tree-selection.ts +5 -5
  311. package/src/browser/tree/tree-widget-selection.ts +4 -5
  312. package/src/browser/tree/tree-widget.tsx +33 -68
  313. package/src/browser/tree/tree.spec.ts +0 -1
  314. package/src/browser/tree/tree.ts +1 -1
  315. package/src/browser/view-container.ts +7 -9
  316. package/src/browser/widget-manager.spec.ts +40 -18
  317. package/src/browser/widget-manager.ts +6 -8
  318. package/src/browser/widgets/alert-message.tsx +1 -0
  319. package/src/browser/widgets/react-renderer.tsx +9 -4
  320. package/src/browser/widgets/react-widget.tsx +6 -7
  321. package/src/browser/widgets/select-component.tsx +13 -19
  322. package/src/browser/widgets/widget.ts +2 -3
  323. package/src/common/cancellation.ts +1 -2
  324. package/src/common/command.spec.ts +0 -2
  325. package/src/common/command.ts +2 -3
  326. package/src/common/disposable.spec.ts +0 -1
  327. package/src/common/disposable.ts +2 -3
  328. package/src/common/glob.ts +2 -3
  329. package/src/common/keybinding.ts +2 -3
  330. package/src/common/keys.ts +2 -3
  331. package/src/common/logger.spec.ts +0 -2
  332. package/src/common/lsp-types.ts +7 -3
  333. package/src/common/menu/menu-types.ts +2 -3
  334. package/src/common/menu/menu.spec.ts +0 -1
  335. package/src/common/message-rpc/channel.ts +31 -10
  336. package/src/common/message-rpc/index.ts +1 -1
  337. package/src/common/message-rpc/rpc-message-encoder.spec.ts +26 -16
  338. package/src/common/message-rpc/rpc-message-encoder.ts +54 -429
  339. package/src/common/message-rpc/rpc-protocol.ts +3 -3
  340. package/src/common/messaging/web-socket-channel.ts +5 -28
  341. package/src/common/preferences/preference-schema.ts +4 -3
  342. package/src/common/preferences/preference-scope.spec.ts +48 -0
  343. package/src/common/preferences/preference-scope.ts +7 -12
  344. package/src/common/promise-util.ts +4 -0
  345. package/src/common/quick-pick-service.ts +1 -1
  346. package/src/common/selection.ts +4 -5
  347. package/src/electron-browser/messaging/electron-ipc-connection-provider.ts +21 -19
  348. package/src/electron-main/electron-main-application.ts +1 -1
  349. package/src/electron-main/messaging/electron-messaging-contribution.ts +6 -21
  350. package/src/node/i18n/localization-backend-contribution.ts +9 -2
  351. package/src/node/messaging/ipc-channel.ts +3 -23
  352. package/src/node/messaging/ipc-connection-provider.ts +5 -1
  353. package/shared/react-virtualized/index.d.ts +0 -1
  354. package/shared/react-virtualized/index.js +0 -1
@@ -0,0 +1,48 @@
1
+ // *****************************************************************************
2
+ // Copyright (C) 2022 TypeFox and others.
3
+ //
4
+ // This program and the accompanying materials are made available under the
5
+ // terms of the Eclipse Public License v. 2.0 which is available at
6
+ // http://www.eclipse.org/legal/epl-2.0.
7
+ //
8
+ // This Source Code may also be made available under the following Secondary
9
+ // Licenses when the conditions for such availability set forth in the Eclipse
10
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ // with the GNU Classpath Exception which is available at
12
+ // https://www.gnu.org/software/classpath/license.html.
13
+ //
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
+ // *****************************************************************************
16
+
17
+ import { expect } from 'chai';
18
+ import { PreferenceScope } from './preference-scope';
19
+
20
+ describe('PreferenceScope', () => {
21
+
22
+ it('getScopes() should return numbers from broadest to narrowest', () => {
23
+ expect(PreferenceScope.getScopes()).deep.equal([0, 1, 2, 3]);
24
+ });
25
+
26
+ it('getReversedScopes() should return numbers from narrowest to broadest', () => {
27
+ expect(PreferenceScope.getReversedScopes()).deep.equal([3, 2, 1, 0]);
28
+ });
29
+
30
+ it('getScopeNames() should return the names of scopes broader than the current one', () => {
31
+ expect(PreferenceScope.getScopeNames(PreferenceScope.Workspace)).deep.equal(['Default', 'User', 'Workspace']);
32
+ });
33
+
34
+ it('is() returns whether a value is a preference scope', () => {
35
+ expect(PreferenceScope.is(PreferenceScope.Default)).to.be.true;
36
+ expect(PreferenceScope.is(PreferenceScope.User)).to.be.true;
37
+ expect(PreferenceScope.is(PreferenceScope.Workspace)).to.be.true;
38
+ expect(PreferenceScope.is(PreferenceScope.Folder)).to.be.true;
39
+ expect(PreferenceScope.is(0)).to.be.true;
40
+ expect(PreferenceScope.is(1)).to.be.true;
41
+ expect(PreferenceScope.is(2)).to.be.true;
42
+ expect(PreferenceScope.is(3)).to.be.true;
43
+ expect(PreferenceScope.is(4)).to.be.false;
44
+ expect(PreferenceScope.is(-1)).to.be.false;
45
+ expect(PreferenceScope.is({})).to.be.false;
46
+ expect(PreferenceScope.is('Default')).to.be.false;
47
+ });
48
+ });
@@ -14,8 +14,6 @@
14
14
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
 
17
- /* eslint-disable @typescript-eslint/no-explicit-any */
18
-
19
17
  export enum PreferenceScope {
20
18
  Default,
21
19
  User,
@@ -24,17 +22,15 @@ export enum PreferenceScope {
24
22
  }
25
23
 
26
24
  export namespace PreferenceScope {
27
- export function is(scope: any): scope is PreferenceScope {
28
- return typeof scope === 'number' && getScopes().findIndex(s => s === scope) >= 0;
25
+ export function is(scope: unknown): scope is PreferenceScope {
26
+ return typeof scope === 'number' && getScopes().includes(scope);
29
27
  }
30
28
 
31
29
  /**
32
30
  * @returns preference scopes from broadest to narrowest: Default -> Folder.
33
31
  */
34
32
  export function getScopes(): PreferenceScope[] {
35
- return Object.keys(PreferenceScope)
36
- .filter(k => typeof PreferenceScope[k as any] === 'string')
37
- .map(v => <PreferenceScope>Number(v));
33
+ return Object.values(PreferenceScope).filter(nameOrIndex => !isNaN(Number(nameOrIndex))) as PreferenceScope[];
38
34
  }
39
35
 
40
36
  /**
@@ -46,12 +42,11 @@ export namespace PreferenceScope {
46
42
 
47
43
  export function getScopeNames(scope?: PreferenceScope): string[] {
48
44
  const names: string[] = [];
49
- const allNames = Object.keys(PreferenceScope)
50
- .filter(k => typeof PreferenceScope[k as any] === 'number');
45
+ const scopes = getScopes();
51
46
  if (scope) {
52
- for (const name of allNames) {
53
- if ((<any>PreferenceScope)[name] <= scope) {
54
- names.push(name);
47
+ for (const scopeIndex of scopes) {
48
+ if (scopeIndex <= scope) {
49
+ names.push(PreferenceScope[scopeIndex]);
55
50
  }
56
51
  }
57
52
  }
@@ -124,3 +124,7 @@ export function waitForEvent<T>(event: Event<T>, ms: number, thisArg?: any, disp
124
124
 
125
125
  });
126
126
  }
127
+
128
+ export function isThenable<T>(obj: unknown): obj is Promise<T> {
129
+ return typeof obj === 'object' && !!obj && typeof (obj as Promise<unknown>).then === 'function';
130
+ }
@@ -216,7 +216,7 @@ export interface InputOptions {
216
216
  placeHolder?: string;
217
217
  password?: boolean;
218
218
  ignoreFocusLost?: boolean;
219
- validateInput?(input: string): Promise<string | null | undefined> | undefined;
219
+ validateInput?(input: string): Promise<string | { content: string; severity: number; } | null | undefined> | undefined;
220
220
  }
221
221
 
222
222
  export interface QuickPickItemButtonEvent<T extends QuickPickItemOrSeparator> {
@@ -22,12 +22,11 @@ export interface UriSelection {
22
22
 
23
23
  export namespace UriSelection {
24
24
 
25
- export function is(arg: Object | undefined): arg is UriSelection {
26
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
27
- return typeof arg === 'object' && ('uri' in arg) && (<any>arg)['uri'] instanceof URI;
25
+ export function is(arg: unknown): arg is UriSelection {
26
+ return !!arg && typeof arg === 'object' && ('uri' in arg) && (arg as UriSelection).uri instanceof URI;
28
27
  }
29
28
 
30
- export function getUri(selection: Object | undefined): URI | undefined {
29
+ export function getUri(selection: unknown): URI | undefined {
31
30
  if (is(selection)) {
32
31
  return selection.uri;
33
32
  }
@@ -37,7 +36,7 @@ export namespace UriSelection {
37
36
  return undefined;
38
37
  }
39
38
 
40
- export function getUris(selection: Object | undefined): URI[] {
39
+ export function getUris(selection: unknown): URI[] {
41
40
  if (is(selection)) {
42
41
  return [selection.uri];
43
42
  }
@@ -19,9 +19,8 @@ import { injectable, interfaces } from 'inversify';
19
19
  import { JsonRpcProxy } from '../../common/messaging';
20
20
  import { AbstractConnectionProvider } from '../../common/messaging/abstract-connection-provider';
21
21
  import { THEIA_ELECTRON_IPC_CHANNEL_NAME } from '../../electron-common/messaging/electron-connection-handler';
22
- import { Emitter, Event } from '../../common';
22
+ import { AbstractChannel, Channel, Disposable, WriteBuffer } from '../../common';
23
23
  import { Uint8ArrayReadBuffer, Uint8ArrayWriteBuffer } from '../../common/message-rpc/uint8-array-message-buffer';
24
- import { Channel, MessageProvider } from '../../common/message-rpc/channel';
25
24
 
26
25
  export interface ElectronIpcOptions {
27
26
  }
@@ -42,23 +41,26 @@ export class ElectronIpcConnectionProvider extends AbstractConnectionProvider<El
42
41
  }
43
42
 
44
43
  protected createMainChannel(): Channel {
45
- const onMessageEmitter = new Emitter<MessageProvider>();
46
- ipcRenderer.on(THEIA_ELECTRON_IPC_CHANNEL_NAME, (_event: ElectronEvent, data: Uint8Array) => {
47
- onMessageEmitter.fire(() => new Uint8ArrayReadBuffer(data));
48
- });
49
- return {
50
- close: () => Event.None,
51
- getWriteBuffer: () => {
52
- const writer = new Uint8ArrayWriteBuffer();
53
- writer.onCommit(buffer =>
54
- ipcRenderer.send(THEIA_ELECTRON_IPC_CHANNEL_NAME, buffer)
55
- );
56
- return writer;
57
- },
58
- onClose: Event.None,
59
- onError: Event.None,
60
- onMessage: onMessageEmitter.event
61
- };
44
+ return new ElectronIpcRendererChannel();
45
+ }
46
+
47
+ }
48
+
49
+ export class ElectronIpcRendererChannel extends AbstractChannel {
50
+
51
+ constructor() {
52
+ super();
53
+ const ipcMessageHandler = (_event: ElectronEvent, data: Uint8Array) => this.onMessageEmitter.fire(() => new Uint8ArrayReadBuffer(data));
54
+ ipcRenderer.on(THEIA_ELECTRON_IPC_CHANNEL_NAME, ipcMessageHandler);
55
+ this.toDispose.push(Disposable.create(() => ipcRenderer.removeListener(THEIA_ELECTRON_IPC_CHANNEL_NAME, ipcMessageHandler)));
56
+ }
57
+
58
+ getWriteBuffer(): WriteBuffer {
59
+ const writer = new Uint8ArrayWriteBuffer();
60
+ writer.onCommit(buffer =>
61
+ ipcRenderer.send(THEIA_ELECTRON_IPC_CHANNEL_NAME, buffer)
62
+ );
63
+ return writer;
62
64
  }
63
65
 
64
66
  }
@@ -500,7 +500,7 @@ export class ElectronMainApplication {
500
500
  app.on('window-all-closed', this.onWindowAllClosed.bind(this));
501
501
 
502
502
  ipcMain.on(TitleBarStyleChanged, ({ sender }, titleBarStyle: string) => {
503
- this.useNativeWindowFrame = titleBarStyle === 'native';
503
+ this.useNativeWindowFrame = isOSX || titleBarStyle === 'native';
504
504
  const browserWindow = BrowserWindow.fromId(sender.id);
505
505
  if (browserWindow) {
506
506
  this.saveWindowState(browserWindow);
@@ -21,8 +21,8 @@ import { MessagingContribution } from '../../node/messaging/messaging-contributi
21
21
  import { ElectronConnectionHandler, THEIA_ELECTRON_IPC_CHANNEL_NAME } from '../../electron-common/messaging/electron-connection-handler';
22
22
  import { ElectronMainApplicationContribution } from '../electron-main-application';
23
23
  import { ElectronMessagingService } from './electron-messaging-service';
24
- import { Channel, ChannelCloseEvent, ChannelMultiplexer, MessageProvider } from '../../common/message-rpc/channel';
25
- import { Emitter, Event, WriteBuffer } from '../../common';
24
+ import { AbstractChannel, Channel, ChannelMultiplexer, MessageProvider } from '../../common/message-rpc/channel';
25
+ import { Emitter, WriteBuffer } from '../../common';
26
26
  import { Uint8ArrayReadBuffer, Uint8ArrayWriteBuffer } from '../../common/message-rpc/uint8-array-message-buffer';
27
27
 
28
28
  /**
@@ -114,24 +114,13 @@ export class ElectronMessagingContribution implements ElectronMainApplicationCon
114
114
  * Used to establish a connection between the ipcMain and the Electron frontend (window).
115
115
  * Messages a transferred via electron IPC.
116
116
  */
117
- export class ElectronWebContentChannel implements Channel {
118
- protected readonly onCloseEmitter: Emitter<ChannelCloseEvent> = new Emitter();
119
- get onClose(): Event<ChannelCloseEvent> {
120
- return this.onCloseEmitter.event;
121
- }
117
+ export class ElectronWebContentChannel extends AbstractChannel {
122
118
 
123
119
  // Make the message emitter public so that we can easily forward messages received from the ipcMain.
124
- readonly onMessageEmitter: Emitter<MessageProvider> = new Emitter();
125
- get onMessage(): Event<MessageProvider> {
126
- return this.onMessageEmitter.event;
127
- }
128
-
129
- protected readonly onErrorEmitter: Emitter<unknown> = new Emitter();
130
- get onError(): Event<unknown> {
131
- return this.onErrorEmitter.event;
132
- }
120
+ override readonly onMessageEmitter: Emitter<MessageProvider> = new Emitter();
133
121
 
134
122
  constructor(protected readonly sender: Electron.WebContents) {
123
+ super();
135
124
  }
136
125
 
137
126
  getWriteBuffer(): WriteBuffer {
@@ -145,9 +134,5 @@ export class ElectronWebContentChannel implements Channel {
145
134
 
146
135
  return writer;
147
136
  }
148
- close(): void {
149
- this.onCloseEmitter.dispose();
150
- this.onMessageEmitter.dispose();
151
- this.onErrorEmitter.dispose();
152
- }
137
+
153
138
  }
@@ -16,12 +16,14 @@
16
16
 
17
17
  import * as express from 'express';
18
18
  import { inject, injectable } from 'inversify';
19
+ import { Deferred } from '../../common/promise-util';
19
20
  import { BackendApplicationContribution } from '../backend-application';
20
21
  import { LocalizationRegistry } from './localization-contribution';
21
22
  import { LocalizationProvider } from './localization-provider';
22
23
 
23
24
  @injectable()
24
25
  export class LocalizationBackendContribution implements BackendApplicationContribution {
26
+ protected readonly initialized = new Deferred<void>();
25
27
 
26
28
  @inject(LocalizationRegistry)
27
29
  protected readonly localizationRegistry: LocalizationRegistry;
@@ -31,15 +33,20 @@ export class LocalizationBackendContribution implements BackendApplicationContri
31
33
 
32
34
  async initialize(): Promise<void> {
33
35
  await this.localizationRegistry.initialize();
36
+ this.initialized.resolve();
37
+ }
38
+
39
+ waitForInitialization(): Promise<void> {
40
+ return this.initialized.promise;
34
41
  }
35
42
 
36
43
  configure(app: express.Application): void {
37
- app.get('/i18n/:locale', (req, res) => {
44
+ app.get('/i18n/:locale', async (req, res) => {
45
+ await this.waitForInitialization();
38
46
  let locale = req.params.locale;
39
47
  locale = this.localizationProvider.getAvailableLanguages().some(e => e.languageId === locale) ? locale : 'en';
40
48
  this.localizationProvider.setCurrentLanguage(locale);
41
49
  res.send(this.localizationProvider.loadLocalization(locale));
42
50
  });
43
51
  }
44
-
45
52
  }
@@ -18,7 +18,7 @@
18
18
  import * as cp from 'child_process';
19
19
  import { Socket } from 'net';
20
20
  import { Duplex } from 'stream';
21
- import { Channel, ChannelCloseEvent, Disposable, DisposableCollection, Emitter, Event, MessageProvider, WriteBuffer } from '../../common';
21
+ import { AbstractChannel, Disposable, WriteBuffer } from '../../common';
22
22
  import { Uint8ArrayReadBuffer, Uint8ArrayWriteBuffer } from '../../common/message-rpc/uint8-array-message-buffer';
23
23
  import { BinaryMessagePipe } from './binary-message-pipe';
24
24
 
@@ -27,29 +27,14 @@ import { BinaryMessagePipe } from './binary-message-pipe';
27
27
  * This fd is opened as 5th channel in addition to the default stdios (stdin, stdout, stderr, ipc). This means the default channels
28
28
  * are not blocked and can be used by the respective process for additional custom message handling.
29
29
  */
30
- export class IPCChannel implements Channel {
31
-
32
- protected readonly onCloseEmitter: Emitter<ChannelCloseEvent> = new Emitter();
33
- get onClose(): Event<ChannelCloseEvent> {
34
- return this.onCloseEmitter.event;
35
- }
36
-
37
- protected readonly onMessageEmitter: Emitter<MessageProvider> = new Emitter();
38
- get onMessage(): Event<MessageProvider> {
39
- return this.onMessageEmitter.event;
40
- }
41
-
42
- protected readonly onErrorEmitter: Emitter<unknown> = new Emitter();
43
- get onError(): Event<unknown> {
44
- return this.onErrorEmitter.event;
45
- }
30
+ export class IPCChannel extends AbstractChannel {
46
31
 
47
32
  protected messagePipe: BinaryMessagePipe;
48
- protected toDispose = new DisposableCollection();
49
33
 
50
34
  protected ipcErrorListener: (error: Error) => void = error => this.onErrorEmitter.fire(error);
51
35
 
52
36
  constructor(childProcess?: cp.ChildProcess) {
37
+ super();
53
38
  if (childProcess) {
54
39
  this.setupChildProcess(childProcess);
55
40
  } else {
@@ -58,7 +43,6 @@ export class IPCChannel implements Channel {
58
43
  this.messagePipe.onMessage(message => {
59
44
  this.onMessageEmitter.fire(() => new Uint8ArrayReadBuffer(message));
60
45
  });
61
- this.toDispose.pushAll([this.onCloseEmitter, this.onMessageEmitter, this.onErrorEmitter]);
62
46
  }
63
47
 
64
48
  protected setupChildProcess(childProcess: cp.ChildProcess): void {
@@ -90,8 +74,4 @@ export class IPCChannel implements Channel {
90
74
  return result;
91
75
  }
92
76
 
93
- close(): void {
94
- this.toDispose.dispose();
95
- }
96
-
97
77
  }
@@ -81,7 +81,11 @@ export class IPCConnectionProvider {
81
81
  const forkOptions: cp.ForkOptions = {
82
82
  env: createIpcEnv(options),
83
83
  execArgv: [],
84
- stdio: ['pipe', 'pipe', 'pipe', 'ipc', 'pipe']
84
+ // 5th element MUST be 'overlapped' for it to work properly on Windows.
85
+ // 'overlapped' works just like 'pipe' on non-Windows platforms.
86
+ // See: https://nodejs.org/docs/latest-v14.x/api/child_process.html#child_process_options_stdio
87
+ // Note: For some reason `@types/node` does not know about 'overlapped'.
88
+ stdio: ['pipe', 'pipe', 'pipe', 'ipc', 'overlapped' as 'pipe']
85
89
  };
86
90
  const inspectArgPrefix = `--${options.serverName}-inspect`;
87
91
  const inspectArg = process.argv.find(v => v.startsWith(inspectArgPrefix));
@@ -1 +0,0 @@
1
- export * from 'react-virtualized';
@@ -1 +0,0 @@
1
- module.exports = require('react-virtualized');