@theia/core 1.43.1 → 1.45.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 (320) hide show
  1. package/README.md +6 -6
  2. package/i18n/nls.cs.json +10 -3
  3. package/i18n/nls.de.json +10 -3
  4. package/i18n/nls.es.json +10 -3
  5. package/i18n/nls.fr.json +10 -3
  6. package/i18n/nls.hu.json +10 -3
  7. package/i18n/nls.it.json +10 -3
  8. package/i18n/nls.ja.json +10 -3
  9. package/i18n/nls.json +10 -3
  10. package/i18n/nls.pl.json +10 -3
  11. package/i18n/nls.pt-br.json +10 -3
  12. package/i18n/nls.pt-pt.json +10 -3
  13. package/i18n/nls.ru.json +10 -3
  14. package/i18n/nls.zh-cn.json +10 -3
  15. package/lib/browser/common-frontend-contribution.d.ts +10 -0
  16. package/lib/browser/common-frontend-contribution.d.ts.map +1 -1
  17. package/lib/browser/common-frontend-contribution.js +68 -10
  18. package/lib/browser/common-frontend-contribution.js.map +1 -1
  19. package/lib/browser/connection-status-service.d.ts +2 -2
  20. package/lib/browser/connection-status-service.d.ts.map +1 -1
  21. package/lib/browser/connection-status-service.js +3 -3
  22. package/lib/browser/connection-status-service.js.map +1 -1
  23. package/lib/browser/connection-status-service.spec.js +6 -6
  24. package/lib/browser/connection-status-service.spec.js.map +1 -1
  25. package/lib/browser/core-preferences.d.ts.map +1 -1
  26. package/lib/browser/core-preferences.js +16 -0
  27. package/lib/browser/core-preferences.js.map +1 -1
  28. package/lib/browser/dialogs.d.ts +0 -1
  29. package/lib/browser/dialogs.d.ts.map +1 -1
  30. package/lib/browser/dialogs.js +1 -34
  31. package/lib/browser/dialogs.js.map +1 -1
  32. package/lib/browser/frontend-application-module.d.ts.map +1 -1
  33. package/lib/browser/frontend-application-module.js +4 -0
  34. package/lib/browser/frontend-application-module.js.map +1 -1
  35. package/lib/browser/icon-theme-contribution.d.ts +1 -0
  36. package/lib/browser/icon-theme-contribution.d.ts.map +1 -1
  37. package/lib/browser/icon-theme-contribution.js +1 -0
  38. package/lib/browser/icon-theme-contribution.js.map +1 -1
  39. package/lib/browser/icon-theme-service.d.ts +1 -0
  40. package/lib/browser/icon-theme-service.d.ts.map +1 -1
  41. package/lib/browser/icon-theme-service.js.map +1 -1
  42. package/lib/browser/language-icon-provider.d.ts +15 -0
  43. package/lib/browser/language-icon-provider.d.ts.map +1 -0
  44. package/lib/browser/language-icon-provider.js +74 -0
  45. package/lib/browser/language-icon-provider.js.map +1 -0
  46. package/lib/browser/language-service.d.ts +22 -0
  47. package/lib/browser/language-service.d.ts.map +1 -1
  48. package/lib/browser/language-service.js +28 -0
  49. package/lib/browser/language-service.js.map +1 -1
  50. package/lib/browser/messaging/connection-source.d.ts +9 -0
  51. package/lib/browser/messaging/connection-source.d.ts.map +1 -0
  52. package/lib/browser/messaging/connection-source.js +20 -0
  53. package/lib/browser/messaging/connection-source.js.map +1 -0
  54. package/lib/browser/messaging/frontend-id-provider.d.ts +13 -0
  55. package/lib/browser/messaging/frontend-id-provider.d.ts.map +1 -0
  56. package/lib/browser/messaging/frontend-id-provider.js +40 -0
  57. package/lib/browser/messaging/frontend-id-provider.js.map +1 -0
  58. package/lib/browser/messaging/messaging-frontend-module.d.ts.map +1 -1
  59. package/lib/browser/messaging/messaging-frontend-module.js +18 -1
  60. package/lib/browser/messaging/messaging-frontend-module.js.map +1 -1
  61. package/lib/browser/messaging/service-connection-provider.d.ts +48 -0
  62. package/lib/browser/messaging/service-connection-provider.d.ts.map +1 -0
  63. package/lib/browser/messaging/service-connection-provider.js +115 -0
  64. package/lib/browser/messaging/service-connection-provider.js.map +1 -0
  65. package/lib/browser/messaging/ws-connection-provider.d.ts +7 -38
  66. package/lib/browser/messaging/ws-connection-provider.d.ts.map +1 -1
  67. package/lib/browser/messaging/ws-connection-provider.js +17 -121
  68. package/lib/browser/messaging/ws-connection-provider.js.map +1 -1
  69. package/lib/browser/messaging/ws-connection-source.d.ts +41 -0
  70. package/lib/browser/messaging/ws-connection-source.d.ts.map +1 -0
  71. package/lib/browser/messaging/ws-connection-source.js +210 -0
  72. package/lib/browser/messaging/ws-connection-source.js.map +1 -0
  73. package/lib/browser/preload/i18n-preload-contribution.js +1 -1
  74. package/lib/browser/preload/i18n-preload-contribution.js.map +1 -1
  75. package/lib/browser/shell/application-shell.js +1 -1
  76. package/lib/browser/shell/application-shell.js.map +1 -1
  77. package/lib/browser/tree/tree-compression/compressed-tree-widget.d.ts +1 -0
  78. package/lib/browser/tree/tree-compression/compressed-tree-widget.d.ts.map +1 -1
  79. package/lib/browser/tree/tree-compression/compressed-tree-widget.js +5 -0
  80. package/lib/browser/tree/tree-compression/compressed-tree-widget.js.map +1 -1
  81. package/lib/browser/tree/tree-widget.d.ts +6 -0
  82. package/lib/browser/tree/tree-widget.d.ts.map +1 -1
  83. package/lib/browser/tree/tree-widget.js +21 -11
  84. package/lib/browser/tree/tree-widget.js.map +1 -1
  85. package/lib/browser/user-working-directory-provider.d.ts +8 -1
  86. package/lib/browser/user-working-directory-provider.d.ts.map +1 -1
  87. package/lib/browser/user-working-directory-provider.js +22 -1
  88. package/lib/browser/user-working-directory-provider.js.map +1 -1
  89. package/lib/browser/window/default-secondary-window-service.d.ts +3 -0
  90. package/lib/browser/window/default-secondary-window-service.d.ts.map +1 -1
  91. package/lib/browser/window/default-secondary-window-service.js +55 -1
  92. package/lib/browser/window/default-secondary-window-service.js.map +1 -1
  93. package/lib/common/contribution-filter/contribution-filter.d.ts +9 -0
  94. package/lib/common/contribution-filter/contribution-filter.d.ts.map +1 -1
  95. package/lib/common/event.js +1 -1
  96. package/lib/common/event.js.map +1 -1
  97. package/lib/common/message-rpc/channel.d.ts.map +1 -1
  98. package/lib/common/message-rpc/channel.js +7 -1
  99. package/lib/common/message-rpc/channel.js.map +1 -1
  100. package/lib/common/message-rpc/message-buffer.d.ts +2 -0
  101. package/lib/common/message-rpc/message-buffer.d.ts.map +1 -1
  102. package/lib/common/message-rpc/message-buffer.js +4 -0
  103. package/lib/common/message-rpc/message-buffer.js.map +1 -1
  104. package/lib/common/message-rpc/uint8-array-message-buffer.d.ts +1 -0
  105. package/lib/common/message-rpc/uint8-array-message-buffer.d.ts.map +1 -1
  106. package/lib/common/message-rpc/uint8-array-message-buffer.js +6 -0
  107. package/lib/common/message-rpc/uint8-array-message-buffer.js.map +1 -1
  108. package/lib/common/messaging/connection-management.d.ts +25 -0
  109. package/lib/common/messaging/connection-management.d.ts.map +1 -0
  110. package/lib/common/messaging/connection-management.js +38 -0
  111. package/lib/common/messaging/connection-management.js.map +1 -0
  112. package/lib/common/messaging/handler.d.ts +1 -0
  113. package/lib/common/messaging/handler.d.ts.map +1 -1
  114. package/lib/common/messaging/handler.js +2 -1
  115. package/lib/common/messaging/handler.js.map +1 -1
  116. package/lib/common/messaging/socket-write-buffer.d.ts +11 -0
  117. package/lib/common/messaging/socket-write-buffer.d.ts.map +1 -0
  118. package/lib/common/messaging/socket-write-buffer.js +50 -0
  119. package/lib/common/messaging/socket-write-buffer.js.map +1 -0
  120. package/lib/common/messaging/web-socket-channel.d.ts +7 -35
  121. package/lib/common/messaging/web-socket-channel.d.ts.map +1 -1
  122. package/lib/common/messaging/web-socket-channel.js +20 -9
  123. package/lib/common/messaging/web-socket-channel.js.map +1 -1
  124. package/lib/common/nls.js +12 -1
  125. package/lib/common/nls.js.map +1 -1
  126. package/lib/electron-browser/messaging/electron-frontend-id-provider.d.ts +5 -0
  127. package/lib/electron-browser/messaging/electron-frontend-id-provider.d.ts.map +1 -0
  128. package/lib/{electron-node/token/electron-token-messaging-contribution.js → electron-browser/messaging/electron-frontend-id-provider.js} +9 -28
  129. package/lib/electron-browser/messaging/electron-frontend-id-provider.js.map +1 -0
  130. package/lib/electron-browser/messaging/electron-ipc-connection-source.d.ts +24 -0
  131. package/lib/electron-browser/messaging/electron-ipc-connection-source.d.ts.map +1 -0
  132. package/lib/electron-browser/messaging/{electron-ipc-connection-provider.js → electron-ipc-connection-source.js} +19 -19
  133. package/lib/electron-browser/messaging/electron-ipc-connection-source.js.map +1 -0
  134. package/lib/electron-browser/messaging/electron-local-ws-connection-source.d.ts +7 -0
  135. package/lib/electron-browser/messaging/electron-local-ws-connection-source.d.ts.map +1 -0
  136. package/lib/electron-browser/messaging/{electron-local-ws-connection-provider.js → electron-local-ws-connection-source.js} +7 -7
  137. package/lib/electron-browser/messaging/electron-local-ws-connection-source.js.map +1 -0
  138. package/lib/electron-browser/messaging/electron-messaging-frontend-module.d.ts.map +1 -1
  139. package/lib/electron-browser/messaging/electron-messaging-frontend-module.js +45 -13
  140. package/lib/electron-browser/messaging/electron-messaging-frontend-module.js.map +1 -1
  141. package/lib/electron-browser/messaging/electron-ws-connection-source.d.ts +12 -0
  142. package/lib/electron-browser/messaging/electron-ws-connection-source.d.ts.map +1 -0
  143. package/lib/electron-browser/messaging/{electron-ws-connection-provider.js → electron-ws-connection-source.js} +14 -21
  144. package/lib/electron-browser/messaging/electron-ws-connection-source.js.map +1 -0
  145. package/lib/electron-browser/preload.d.ts.map +1 -1
  146. package/lib/electron-browser/preload.js +11 -0
  147. package/lib/electron-browser/preload.js.map +1 -1
  148. package/lib/electron-browser/window/electron-secondary-window-service.d.ts +1 -1
  149. package/lib/electron-browser/window/electron-secondary-window-service.d.ts.map +1 -1
  150. package/lib/electron-browser/window/electron-window-module.js +2 -2
  151. package/lib/electron-browser/window/electron-window-module.js.map +1 -1
  152. package/lib/electron-browser/window/electron-window-preferences.js +1 -1
  153. package/lib/electron-browser/window/electron-window-preferences.js.map +1 -1
  154. package/lib/electron-browser/window/electron-window-service.d.ts +4 -0
  155. package/lib/electron-browser/window/electron-window-service.d.ts.map +1 -1
  156. package/lib/electron-browser/window/electron-window-service.js +13 -0
  157. package/lib/electron-browser/window/electron-window-service.js.map +1 -1
  158. package/lib/electron-common/electron-api.d.ts +7 -0
  159. package/lib/electron-common/electron-api.d.ts.map +1 -1
  160. package/lib/electron-common/electron-api.js +3 -1
  161. package/lib/electron-common/electron-api.js.map +1 -1
  162. package/lib/electron-main/electron-api-main.d.ts +1 -0
  163. package/lib/electron-main/electron-api-main.d.ts.map +1 -1
  164. package/lib/electron-main/electron-api-main.js +15 -0
  165. package/lib/electron-main/electron-api-main.js.map +1 -1
  166. package/lib/electron-main/electron-main-application-module.js +5 -5
  167. package/lib/electron-main/electron-main-application-module.js.map +1 -1
  168. package/lib/electron-main/electron-main-application.d.ts +9 -13
  169. package/lib/electron-main/electron-main-application.d.ts.map +1 -1
  170. package/lib/electron-main/electron-main-application.js +60 -28
  171. package/lib/electron-main/electron-main-application.js.map +1 -1
  172. package/lib/electron-main/messaging/electron-connection-handler.d.ts.map +1 -0
  173. package/lib/electron-main/messaging/electron-connection-handler.js.map +1 -0
  174. package/lib/electron-main/messaging/electron-messaging-contribution.d.ts +13 -22
  175. package/lib/electron-main/messaging/electron-messaging-contribution.d.ts.map +1 -1
  176. package/lib/electron-main/messaging/electron-messaging-contribution.js +39 -39
  177. package/lib/electron-main/messaging/electron-messaging-contribution.js.map +1 -1
  178. package/lib/electron-main/messaging/electron-messaging-service.d.ts.map +1 -1
  179. package/lib/electron-main/messaging/electron-messaging-service.js.map +1 -1
  180. package/lib/electron-main/theia-electron-window.d.ts +2 -2
  181. package/lib/electron-main/theia-electron-window.d.ts.map +1 -1
  182. package/lib/electron-main/theia-electron-window.js +3 -2
  183. package/lib/electron-main/theia-electron-window.js.map +1 -1
  184. package/lib/node/backend-application.d.ts +2 -0
  185. package/lib/node/backend-application.d.ts.map +1 -1
  186. package/lib/node/backend-application.js +11 -9
  187. package/lib/node/backend-application.js.map +1 -1
  188. package/lib/node/cli.d.ts +1 -1
  189. package/lib/node/cli.d.ts.map +1 -1
  190. package/lib/node/cli.js +9 -5
  191. package/lib/node/cli.js.map +1 -1
  192. package/lib/node/cli.spec.js +3 -3
  193. package/lib/node/cli.spec.js.map +1 -1
  194. package/lib/node/env-variables/env-variables-server.d.ts +3 -0
  195. package/lib/node/env-variables/env-variables-server.d.ts.map +1 -1
  196. package/lib/node/env-variables/env-variables-server.js +25 -1
  197. package/lib/node/env-variables/env-variables-server.js.map +1 -1
  198. package/lib/node/i18n/localization-server.d.ts +1 -1
  199. package/lib/node/i18n/localization-server.d.ts.map +1 -1
  200. package/lib/node/messaging/default-messaging-service.d.ts +29 -0
  201. package/lib/node/messaging/default-messaging-service.d.ts.map +1 -0
  202. package/lib/node/messaging/default-messaging-service.js +140 -0
  203. package/lib/node/messaging/default-messaging-service.js.map +1 -0
  204. package/lib/node/messaging/frontend-connection-service.d.ts +7 -0
  205. package/lib/node/messaging/frontend-connection-service.d.ts.map +1 -0
  206. package/lib/node/messaging/frontend-connection-service.js +19 -0
  207. package/lib/node/messaging/frontend-connection-service.js.map +1 -0
  208. package/lib/node/messaging/ipc-protocol.js +1 -1
  209. package/lib/node/messaging/ipc-protocol.js.map +1 -1
  210. package/lib/node/messaging/messaging-backend-module.d.ts.map +1 -1
  211. package/lib/node/messaging/messaging-backend-module.js +23 -9
  212. package/lib/node/messaging/messaging-backend-module.js.map +1 -1
  213. package/lib/node/messaging/messaging-service.d.ts +2 -3
  214. package/lib/node/messaging/messaging-service.d.ts.map +1 -1
  215. package/lib/node/messaging/test/test-web-socket-channel.d.ts +3 -3
  216. package/lib/node/messaging/test/test-web-socket-channel.d.ts.map +1 -1
  217. package/lib/node/messaging/test/test-web-socket-channel.js +38 -24
  218. package/lib/node/messaging/test/test-web-socket-channel.js.map +1 -1
  219. package/lib/node/messaging/websocket-endpoint.d.ts +21 -0
  220. package/lib/node/messaging/websocket-endpoint.d.ts.map +1 -0
  221. package/lib/node/messaging/websocket-endpoint.js +89 -0
  222. package/lib/node/messaging/websocket-endpoint.js.map +1 -0
  223. package/lib/node/messaging/websocket-frontend-connection-service.d.ts +30 -0
  224. package/lib/node/messaging/websocket-frontend-connection-service.d.ts.map +1 -0
  225. package/lib/node/messaging/websocket-frontend-connection-service.js +173 -0
  226. package/lib/node/messaging/websocket-frontend-connection-service.js.map +1 -0
  227. package/package.json +6 -6
  228. package/src/browser/common-frontend-contribution.ts +70 -9
  229. package/src/browser/connection-status-service.spec.ts +6 -6
  230. package/src/browser/connection-status-service.ts +2 -2
  231. package/src/browser/core-preferences.ts +16 -0
  232. package/src/browser/dialogs.ts +0 -34
  233. package/src/browser/frontend-application-module.ts +4 -0
  234. package/src/browser/icon-theme-contribution.ts +1 -0
  235. package/src/browser/icon-theme-service.ts +1 -0
  236. package/src/browser/language-icon-provider.ts +55 -0
  237. package/src/browser/language-service.ts +34 -0
  238. package/src/browser/messaging/connection-source.ts +26 -0
  239. package/src/browser/messaging/frontend-id-provider.ts +37 -0
  240. package/src/browser/messaging/messaging-frontend-module.ts +20 -2
  241. package/src/browser/messaging/service-connection-provider.ts +126 -0
  242. package/src/browser/messaging/ws-connection-provider.ts +16 -141
  243. package/src/browser/messaging/ws-connection-source.ts +210 -0
  244. package/src/browser/preload/i18n-preload-contribution.ts +1 -1
  245. package/src/browser/shell/application-shell.ts +1 -1
  246. package/src/browser/style/index.css +1 -0
  247. package/src/browser/style/os.css +87 -0
  248. package/src/browser/tree/tree-compression/compressed-tree-widget.tsx +27 -7
  249. package/src/browser/tree/tree-widget.tsx +21 -10
  250. package/src/browser/user-working-directory-provider.ts +32 -3
  251. package/src/browser/window/default-secondary-window-service.ts +54 -1
  252. package/src/common/contribution-filter/contribution-filter.ts +9 -0
  253. package/src/common/event.ts +1 -1
  254. package/src/common/i18n/nls.metadata.json +7695 -7220
  255. package/src/common/message-rpc/channel.ts +5 -1
  256. package/src/common/message-rpc/message-buffer.ts +6 -0
  257. package/src/common/message-rpc/uint8-array-message-buffer.ts +7 -0
  258. package/src/common/messaging/connection-management.ts +43 -0
  259. package/src/common/messaging/handler.ts +2 -0
  260. package/src/common/messaging/socket-write-buffer.ts +52 -0
  261. package/src/common/messaging/web-socket-channel.ts +28 -45
  262. package/src/common/nls.ts +12 -1
  263. package/src/electron-browser/messaging/electron-frontend-id-provider.ts +25 -0
  264. package/src/electron-browser/messaging/{electron-ipc-connection-provider.ts → electron-ipc-connection-source.ts} +17 -13
  265. package/src/electron-browser/messaging/{electron-local-ws-connection-provider.ts → electron-local-ws-connection-source.ts} +2 -2
  266. package/src/electron-browser/messaging/electron-messaging-frontend-module.ts +49 -12
  267. package/src/electron-browser/messaging/{electron-ws-connection-provider.ts → electron-ws-connection-source.ts} +6 -17
  268. package/src/electron-browser/preload.ts +16 -1
  269. package/src/electron-browser/window/electron-secondary-window-service.ts +1 -1
  270. package/src/electron-browser/window/electron-window-module.ts +1 -1
  271. package/src/electron-browser/window/electron-window-preferences.ts +1 -1
  272. package/src/electron-browser/window/electron-window-service.ts +11 -0
  273. package/src/electron-common/electron-api.ts +8 -0
  274. package/src/electron-main/electron-api-main.ts +20 -1
  275. package/src/electron-main/electron-main-application-module.ts +5 -5
  276. package/src/electron-main/electron-main-application.ts +72 -44
  277. package/src/electron-main/messaging/electron-messaging-contribution.ts +45 -43
  278. package/src/electron-main/messaging/electron-messaging-service.ts +1 -0
  279. package/src/electron-main/theia-electron-window.ts +4 -3
  280. package/src/node/backend-application.ts +14 -11
  281. package/src/node/cli.spec.ts +3 -3
  282. package/src/node/cli.ts +9 -5
  283. package/src/node/env-variables/env-variables-server.ts +21 -1
  284. package/src/node/i18n/localization-server.ts +1 -1
  285. package/src/node/messaging/default-messaging-service.ts +129 -0
  286. package/src/node/messaging/frontend-connection-service.ts +24 -0
  287. package/src/node/messaging/ipc-protocol.ts +1 -1
  288. package/src/node/messaging/messaging-backend-module.ts +25 -10
  289. package/src/node/messaging/messaging-service.ts +3 -3
  290. package/src/node/messaging/test/test-web-socket-channel.ts +32 -27
  291. package/src/node/messaging/websocket-endpoint.ts +79 -0
  292. package/src/node/messaging/websocket-frontend-connection-service.ts +171 -0
  293. package/lib/common/messaging/abstract-connection-provider.d.ts +0 -45
  294. package/lib/common/messaging/abstract-connection-provider.d.ts.map +0 -1
  295. package/lib/common/messaging/abstract-connection-provider.js +0 -93
  296. package/lib/common/messaging/abstract-connection-provider.js.map +0 -1
  297. package/lib/electron-browser/messaging/electron-ipc-connection-provider.d.ts +0 -19
  298. package/lib/electron-browser/messaging/electron-ipc-connection-provider.d.ts.map +0 -1
  299. package/lib/electron-browser/messaging/electron-ipc-connection-provider.js.map +0 -1
  300. package/lib/electron-browser/messaging/electron-local-ws-connection-provider.d.ts +0 -7
  301. package/lib/electron-browser/messaging/electron-local-ws-connection-provider.d.ts.map +0 -1
  302. package/lib/electron-browser/messaging/electron-local-ws-connection-provider.js.map +0 -1
  303. package/lib/electron-browser/messaging/electron-ws-connection-provider.d.ts +0 -17
  304. package/lib/electron-browser/messaging/electron-ws-connection-provider.d.ts.map +0 -1
  305. package/lib/electron-browser/messaging/electron-ws-connection-provider.js.map +0 -1
  306. package/lib/electron-common/messaging/electron-connection-handler.d.ts.map +0 -1
  307. package/lib/electron-common/messaging/electron-connection-handler.js.map +0 -1
  308. package/lib/electron-node/token/electron-token-messaging-contribution.d.ts +0 -16
  309. package/lib/electron-node/token/electron-token-messaging-contribution.d.ts.map +0 -1
  310. package/lib/electron-node/token/electron-token-messaging-contribution.js.map +0 -1
  311. package/lib/node/messaging/messaging-contribution.d.ts +0 -44
  312. package/lib/node/messaging/messaging-contribution.d.ts.map +0 -1
  313. package/lib/node/messaging/messaging-contribution.js +0 -210
  314. package/lib/node/messaging/messaging-contribution.js.map +0 -1
  315. package/src/common/messaging/abstract-connection-provider.ts +0 -115
  316. package/src/electron-node/token/electron-token-messaging-contribution.ts +0 -41
  317. package/src/node/messaging/messaging-contribution.ts +0 -197
  318. /package/lib/{electron-common → electron-main}/messaging/electron-connection-handler.d.ts +0 -0
  319. /package/lib/{electron-common → electron-main}/messaging/electron-connection-handler.js +0 -0
  320. /package/src/{electron-common → electron-main}/messaging/electron-connection-handler.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"env-variables-server.js","sourceRoot":"","sources":["../../../src/node/env-variables/env-variables-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"env-variables-server.js","sourceRoot":"","sources":["../../../src/node/env-variables/env-variables-server.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Localization } from 'src/common/i18n/localization';
1
+ import { Localization } from '../../common/i18n/localization';
2
2
  import { LocalizationServer } from '../../common/i18n/localization-server';
3
3
  import { Deferred } from '../../common/promise-util';
4
4
  import { BackendApplicationContribution } from '../backend-application';
@@ -1 +1 @@
1
- {"version":3,"file":"localization-server.d.ts","sourceRoot":"","sources":["../../../src/node/i18n/localization-server.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAE3E,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE/D,qBACa,sBAAuB,YAAW,kBAAkB,EAAE,8BAA8B;IAE7F,SAAS,CAAC,QAAQ,CAAC,WAAW,iBAAwB;IAGtD,SAAS,CAAC,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IAG9D,SAAS,CAAC,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IAExD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjC,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIhC,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;CAMpE"}
1
+ {"version":3,"file":"localization-server.d.ts","sourceRoot":"","sources":["../../../src/node/i18n/localization-server.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAE3E,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE/D,qBACa,sBAAuB,YAAW,kBAAkB,EAAE,8BAA8B;IAE7F,SAAS,CAAC,QAAQ,CAAC,WAAW,iBAAwB;IAGtD,SAAS,CAAC,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IAG9D,SAAS,CAAC,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IAExD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjC,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIhC,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;CAMpE"}
@@ -0,0 +1,29 @@
1
+ import { interfaces, Container } from 'inversify';
2
+ import { ContributionProvider } from '../../common';
3
+ import { MessagingService } from './messaging-service';
4
+ import { Channel } from '../../common/message-rpc/channel';
5
+ import { FrontendConnectionService } from './frontend-connection-service';
6
+ import { BackendApplicationContribution } from '../backend-application';
7
+ export declare const MessagingContainer: unique symbol;
8
+ export declare const MainChannel: unique symbol;
9
+ export declare class DefaultMessagingService implements MessagingService, BackendApplicationContribution {
10
+ protected readonly container: interfaces.Container;
11
+ protected readonly frontendConnectionService: FrontendConnectionService;
12
+ protected readonly connectionModules: ContributionProvider<interfaces.ContainerModule>;
13
+ protected readonly contributions: ContributionProvider<MessagingService.Contribution>;
14
+ protected readonly channelHandlers: ConnectionHandlers<Channel>;
15
+ initialize(): void;
16
+ registerConnectionHandler(path: string, callback: (params: MessagingService.PathParams, mainChannel: Channel) => void): void;
17
+ registerChannelHandler(spec: string, callback: (params: MessagingService.PathParams, channel: Channel) => void): void;
18
+ protected handleConnection(channel: Channel): void;
19
+ protected createMainChannelContainer(socket: Channel): Container;
20
+ protected getConnectionChannelHandlers(socket: Channel): ConnectionHandlers<Channel>;
21
+ }
22
+ export declare class ConnectionHandlers<T> {
23
+ protected readonly parent?: ConnectionHandlers<T> | undefined;
24
+ protected readonly handlers: ((path: string, connection: T) => string | false)[];
25
+ constructor(parent?: ConnectionHandlers<T> | undefined);
26
+ push(spec: string, callback: (params: MessagingService.PathParams, connection: T) => void): void;
27
+ route(path: string, connection: T): string | false;
28
+ }
29
+ //# sourceMappingURL=default-messaging-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-messaging-service.d.ts","sourceRoot":"","sources":["../../../src/node/messaging/default-messaging-service.ts"],"names":[],"mappings":"AAgBA,OAAO,EAA6B,UAAU,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAA6D,MAAM,cAAc,CAAC;AAC/G,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EAAE,OAAO,EAAsB,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AAExE,eAAO,MAAM,kBAAkB,eAA+B,CAAC;AAC/D,eAAO,MAAM,WAAW,eAAwB,CAAC;AAEjD,qBACa,uBAAwB,YAAW,gBAAgB,EAAE,8BAA8B;IAE5F,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC;IAGnD,SAAS,CAAC,QAAQ,CAAC,yBAAyB,EAAE,yBAAyB,CAAC;IAGxE,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;IAGvF,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,oBAAoB,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAEtF,SAAS,CAAC,QAAQ,CAAC,eAAe,8BAAqC;IAEvE,UAAU,IAAI,IAAI;IAOlB,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;IAI5H,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;IAIrH,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAWlD,SAAS,CAAC,0BAA0B,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS;IAMhE,SAAS,CAAC,4BAA4B,CAAC,MAAM,EAAE,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC;CAcvF;AAED,qBAAa,kBAAkB,CAAC,CAAC;IAIzB,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;IAH9B,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,KAAK,MAAM,GAAG,KAAK,CAAC,EAAE,CAAM;gBAG/D,MAAM,CAAC,mCAAuB;IAGrD,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC,KAAK,IAAI,GAAG,IAAI;IAahG,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,GAAG,MAAM,GAAG,KAAK;CAgBrD"}
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2018 TypeFox and others.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ // *****************************************************************************
17
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
18
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
19
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
20
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
21
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
22
+ };
23
+ var __metadata = (this && this.__metadata) || function (k, v) {
24
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
25
+ };
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ exports.ConnectionHandlers = exports.DefaultMessagingService = exports.MainChannel = exports.MessagingContainer = void 0;
28
+ const inversify_1 = require("inversify");
29
+ const common_1 = require("../../common");
30
+ const messaging_service_1 = require("./messaging-service");
31
+ const connection_container_module_1 = require("./connection-container-module");
32
+ const Route = require("route-parser");
33
+ const channel_1 = require("../../common/message-rpc/channel");
34
+ const frontend_connection_service_1 = require("./frontend-connection-service");
35
+ exports.MessagingContainer = Symbol('MessagingContainer');
36
+ exports.MainChannel = Symbol('MainChannel');
37
+ let DefaultMessagingService = class DefaultMessagingService {
38
+ constructor() {
39
+ this.channelHandlers = new ConnectionHandlers();
40
+ }
41
+ initialize() {
42
+ this.registerConnectionHandler(common_1.servicesPath, (_, socket) => this.handleConnection(socket));
43
+ for (const contribution of this.contributions.getContributions()) {
44
+ contribution.configure(this);
45
+ }
46
+ }
47
+ registerConnectionHandler(path, callback) {
48
+ this.frontendConnectionService.registerConnectionHandler(path, callback);
49
+ }
50
+ registerChannelHandler(spec, callback) {
51
+ this.channelHandlers.push(spec, (params, channel) => callback(params, channel));
52
+ }
53
+ handleConnection(channel) {
54
+ const multiplexer = new channel_1.ChannelMultiplexer(channel);
55
+ const channelHandlers = this.getConnectionChannelHandlers(channel);
56
+ multiplexer.onDidOpenChannel(event => {
57
+ if (channelHandlers.route(event.id, event.channel)) {
58
+ console.debug(`Opening channel for service path '${event.id}'.`);
59
+ event.channel.onClose(() => console.info(`Closing channel on service path '${event.id}'.`));
60
+ }
61
+ });
62
+ }
63
+ createMainChannelContainer(socket) {
64
+ const connectionContainer = this.container.createChild();
65
+ connectionContainer.bind(exports.MainChannel).toConstantValue(socket);
66
+ return connectionContainer;
67
+ }
68
+ getConnectionChannelHandlers(socket) {
69
+ const connectionContainer = this.createMainChannelContainer(socket);
70
+ (0, common_1.bindContributionProvider)(connectionContainer, common_1.ConnectionHandler);
71
+ connectionContainer.load(...this.connectionModules.getContributions());
72
+ const connectionChannelHandlers = new ConnectionHandlers(this.channelHandlers);
73
+ const connectionHandlers = connectionContainer.getNamed(common_1.ContributionProvider, common_1.ConnectionHandler);
74
+ for (const connectionHandler of connectionHandlers.getContributions(true)) {
75
+ connectionChannelHandlers.push(connectionHandler.path, (_, channel) => {
76
+ connectionHandler.onConnection(channel);
77
+ });
78
+ }
79
+ return connectionChannelHandlers;
80
+ }
81
+ };
82
+ __decorate([
83
+ (0, inversify_1.inject)(exports.MessagingContainer),
84
+ __metadata("design:type", Object)
85
+ ], DefaultMessagingService.prototype, "container", void 0);
86
+ __decorate([
87
+ (0, inversify_1.inject)(frontend_connection_service_1.FrontendConnectionService),
88
+ __metadata("design:type", Object)
89
+ ], DefaultMessagingService.prototype, "frontendConnectionService", void 0);
90
+ __decorate([
91
+ (0, inversify_1.inject)(common_1.ContributionProvider),
92
+ (0, inversify_1.named)(connection_container_module_1.ConnectionContainerModule),
93
+ __metadata("design:type", Object)
94
+ ], DefaultMessagingService.prototype, "connectionModules", void 0);
95
+ __decorate([
96
+ (0, inversify_1.inject)(common_1.ContributionProvider),
97
+ (0, inversify_1.named)(messaging_service_1.MessagingService.Contribution),
98
+ __metadata("design:type", Object)
99
+ ], DefaultMessagingService.prototype, "contributions", void 0);
100
+ DefaultMessagingService = __decorate([
101
+ (0, inversify_1.injectable)()
102
+ ], DefaultMessagingService);
103
+ exports.DefaultMessagingService = DefaultMessagingService;
104
+ class ConnectionHandlers {
105
+ constructor(parent) {
106
+ this.parent = parent;
107
+ this.handlers = [];
108
+ }
109
+ push(spec, callback) {
110
+ const route = new Route(spec);
111
+ const handler = (path, channel) => {
112
+ const params = route.match(path);
113
+ if (!params) {
114
+ return false;
115
+ }
116
+ callback(params, channel);
117
+ return route.reverse(params);
118
+ };
119
+ this.handlers.push(handler);
120
+ }
121
+ route(path, connection) {
122
+ for (const handler of this.handlers) {
123
+ try {
124
+ const result = handler(path, connection);
125
+ if (result) {
126
+ return result;
127
+ }
128
+ }
129
+ catch (e) {
130
+ console.error(e);
131
+ }
132
+ }
133
+ if (this.parent) {
134
+ return this.parent.route(path, connection);
135
+ }
136
+ return false;
137
+ }
138
+ }
139
+ exports.ConnectionHandlers = ConnectionHandlers;
140
+ //# sourceMappingURL=default-messaging-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-messaging-service.js","sourceRoot":"","sources":["../../../src/node/messaging/default-messaging-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { Channel } from '../../common/message-rpc/';
2
+ import { MessagingService } from './messaging-service';
3
+ export declare const FrontendConnectionService: unique symbol;
4
+ export interface FrontendConnectionService {
5
+ registerConnectionHandler(path: string, callback: (params: MessagingService.PathParams, mainChannel: Channel) => void): void;
6
+ }
7
+ //# sourceMappingURL=frontend-connection-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frontend-connection-service.d.ts","sourceRoot":"","sources":["../../../src/node/messaging/frontend-connection-service.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,eAAO,MAAM,yBAAyB,eAAsC,CAAC;AAE7E,MAAM,WAAW,yBAAyB;IACtC,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAAC;CAChI"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2023 STMicroelectronics and others.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.FrontendConnectionService = void 0;
18
+ exports.FrontendConnectionService = Symbol('FrontendConnectionService');
19
+ //# sourceMappingURL=frontend-connection-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frontend-connection-service.js","sourceRoot":"","sources":["../../../src/node/messaging/frontend-connection-service.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,oDAAoD;AACpD,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;;;AAKnE,QAAA,yBAAyB,GAAG,MAAM,CAAC,2BAA2B,CAAC,CAAC"}
@@ -48,7 +48,7 @@ function checkParentAlive() {
48
48
  catch {
49
49
  process.exit();
50
50
  }
51
- }, 5000);
51
+ }, 5000).unref(); // we don't want this timeout to keep the process alive
52
52
  }
53
53
  }
54
54
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ipc-protocol.js","sourceRoot":"","sources":["../../../src/node/messaging/ipc-protocol.ts"],"names":[],"mappings":";AACA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAIhF,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AAC5C,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAEjC,QAAA,aAAa,GAAuB,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAGhF,IAAiB,aAAa,CAU7B;AAVD,WAAiB,aAAa;IAC1B;;OAEG;IACH,SAAgB,gBAAgB;QAC5B,IAAI,CAAC,qBAAa,EAAE;YAChB,MAAM,IAAI,KAAK,CAAC,IAAI,iBAAiB,mCAAmC,CAAC,CAAC;SAC7E;QACD,OAAO,qBAAa,CAAC;IACzB,CAAC;IALe,8BAAgB,mBAK/B,CAAA;AACL,CAAC,EAVgB,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAU7B;AAED;;;GAGG;AACH,SAAgB,gBAAgB;IAC5B,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE;QAC/B,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAExD,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;YACpD,WAAW,CAAC,GAAG,EAAE;gBACb,IAAI;oBACA,iEAAiE;oBACjE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;iBAC9B;gBAAC,MAAM;oBACJ,OAAO,CAAC,IAAI,EAAE,CAAC;iBAClB;YACL,CAAC,EAAE,IAAI,CAAC,CAAC;SACZ;KACJ;AACL,CAAC;AAfD,4CAeC;AAED,SAAgB,YAAY,CAAC,OAG5B;IACG,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IAE3C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;QACrC,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;YAC1B,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;SACxB;KACJ;IAED,QAAQ,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACjD,QAAQ,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC;IAE5C,OAAO,QAAQ,CAAC;AACpB,CAAC;AAjBD,oCAiBC"}
1
+ {"version":3,"file":"ipc-protocol.js","sourceRoot":"","sources":["../../../src/node/messaging/ipc-protocol.ts"],"names":[],"mappings":";AACA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAIhF,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AAC5C,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAEjC,QAAA,aAAa,GAAuB,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAGhF,IAAiB,aAAa,CAU7B;AAVD,WAAiB,aAAa;IAC1B;;OAEG;IACH,SAAgB,gBAAgB;QAC5B,IAAI,CAAC,qBAAa,EAAE;YAChB,MAAM,IAAI,KAAK,CAAC,IAAI,iBAAiB,mCAAmC,CAAC,CAAC;SAC7E;QACD,OAAO,qBAAa,CAAC;IACzB,CAAC;IALe,8BAAgB,mBAK/B,CAAA;AACL,CAAC,EAVgB,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAU7B;AAED;;;GAGG;AACH,SAAgB,gBAAgB;IAC5B,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE;QAC/B,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAExD,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;YACpD,WAAW,CAAC,GAAG,EAAE;gBACb,IAAI;oBACA,iEAAiE;oBACjE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;iBAC9B;gBAAC,MAAM;oBACJ,OAAO,CAAC,IAAI,EAAE,CAAC;iBAClB;YACL,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,uDAAuD;SAC5E;KACJ;AACL,CAAC;AAfD,4CAeC;AAED,SAAgB,YAAY,CAAC,OAG5B;IACG,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IAE3C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;QACrC,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;YAC1B,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;SACxB;KACJ;IAED,QAAQ,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACjD,QAAQ,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC;IAE5C,OAAO,QAAQ,CAAC;AACpB,CAAC;AAjBD,oCAiBC"}
@@ -1 +1 @@
1
- {"version":3,"file":"messaging-backend-module.d.ts","sourceRoot":"","sources":["../../../src/node/messaging/messaging-backend-module.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAQ5C,eAAO,MAAM,sBAAsB,iBAYjC,CAAC"}
1
+ {"version":3,"file":"messaging-backend-module.d.ts","sourceRoot":"","sources":["../../../src/node/messaging/messaging-backend-module.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAa5C,eAAO,MAAM,sBAAsB,iBAsBjC,CAAC"}
@@ -18,22 +18,36 @@ Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.messagingBackendModule = void 0;
19
19
  const inversify_1 = require("inversify");
20
20
  const common_1 = require("../../common");
21
- const backend_application_1 = require("../backend-application");
22
- const messaging_contribution_1 = require("./messaging-contribution");
21
+ // import { BackendApplicationContribution } from '../backend-application';
22
+ const default_messaging_service_1 = require("./default-messaging-service");
23
23
  const connection_container_module_1 = require("./connection-container-module");
24
24
  const messaging_service_1 = require("./messaging-service");
25
25
  const messaging_listeners_1 = require("./messaging-listeners");
26
+ const frontend_connection_service_1 = require("./frontend-connection-service");
27
+ const backend_application_1 = require("../backend-application");
28
+ const connection_management_1 = require("../../common/messaging/connection-management");
29
+ const websocket_frontend_connection_service_1 = require("./websocket-frontend-connection-service");
30
+ const websocket_endpoint_1 = require("./websocket-endpoint");
26
31
  exports.messagingBackendModule = new inversify_1.ContainerModule(bind => {
27
32
  (0, common_1.bindContributionProvider)(bind, connection_container_module_1.ConnectionContainerModule);
28
33
  (0, common_1.bindContributionProvider)(bind, messaging_service_1.MessagingService.Contribution);
29
- bind(messaging_service_1.MessagingService.Identifier).to(messaging_contribution_1.MessagingContribution).inSingletonScope();
30
- bind(messaging_contribution_1.MessagingContribution).toDynamicValue(({ container }) => {
31
- const child = container.createChild();
32
- child.bind(messaging_contribution_1.MessagingContainer).toConstantValue(container);
33
- return child.get(messaging_service_1.MessagingService.Identifier);
34
- }).inSingletonScope();
35
- bind(backend_application_1.BackendApplicationContribution).toService(messaging_contribution_1.MessagingContribution);
34
+ bind(default_messaging_service_1.DefaultMessagingService).toSelf().inSingletonScope();
35
+ bind(messaging_service_1.MessagingService.Identifier).toService(default_messaging_service_1.DefaultMessagingService);
36
+ bind(backend_application_1.BackendApplicationContribution).toService(default_messaging_service_1.DefaultMessagingService);
37
+ bind(default_messaging_service_1.MessagingContainer).toDynamicValue(({ container }) => container).inSingletonScope();
38
+ bind(websocket_endpoint_1.WebsocketEndpoint).toSelf().inSingletonScope();
39
+ bind(backend_application_1.BackendApplicationContribution).toService(websocket_endpoint_1.WebsocketEndpoint);
40
+ bind(websocket_frontend_connection_service_1.WebsocketFrontendConnectionService).toSelf().inSingletonScope();
41
+ bind(frontend_connection_service_1.FrontendConnectionService).toService(websocket_frontend_connection_service_1.WebsocketFrontendConnectionService);
36
42
  bind(messaging_listeners_1.MessagingListener).toSelf().inSingletonScope();
37
43
  (0, common_1.bindContributionProvider)(bind, messaging_listeners_1.MessagingListenerContribution);
44
+ bind(common_1.ConnectionHandler).toDynamicValue(context => {
45
+ const connectionService = context.container.get(frontend_connection_service_1.FrontendConnectionService);
46
+ return new common_1.RpcConnectionHandler(connection_management_1.connectionCloseServicePath, () => ({
47
+ markForClose: (channelId) => {
48
+ connectionService.markForClose(channelId);
49
+ }
50
+ }));
51
+ }).inSingletonScope();
38
52
  });
39
53
  //# sourceMappingURL=messaging-backend-module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"messaging-backend-module.js","sourceRoot":"","sources":["../../../src/node/messaging/messaging-backend-module.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAEhF,yCAA4C;AAC5C,yCAAwD;AACxD,gEAAwE;AACxE,qEAAqF;AACrF,+EAA0E;AAC1E,2DAAuD;AACvD,+DAAyF;AAE5E,QAAA,sBAAsB,GAAG,IAAI,2BAAe,CAAC,IAAI,CAAC,EAAE;IAC7D,IAAA,iCAAwB,EAAC,IAAI,EAAE,uDAAyB,CAAC,CAAC;IAC1D,IAAA,iCAAwB,EAAC,IAAI,EAAE,oCAAgB,CAAC,YAAY,CAAC,CAAC;IAC9D,IAAI,CAAC,oCAAgB,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,8CAAqB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC/E,IAAI,CAAC,8CAAqB,CAAC,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE;QACzD,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,2CAAkB,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAC1D,OAAO,KAAK,CAAC,GAAG,CAAC,oCAAgB,CAAC,UAAU,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACtB,IAAI,CAAC,oDAA8B,CAAC,CAAC,SAAS,CAAC,8CAAqB,CAAC,CAAC;IACtE,IAAI,CAAC,uCAAiB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACpD,IAAA,iCAAwB,EAAC,IAAI,EAAE,mDAA6B,CAAC,CAAC;AAClE,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"messaging-backend-module.js","sourceRoot":"","sources":["../../../src/node/messaging/messaging-backend-module.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAEhF,yCAA4C;AAC5C,yCAAiG;AACjG,2EAA2E;AAC3E,2EAA0F;AAC1F,+EAA0E;AAC1E,2DAAuD;AACvD,+DAAyF;AACzF,+EAA0E;AAC1E,gEAAwE;AACxE,wFAA0F;AAC1F,mGAA6F;AAC7F,6DAAyD;AAE5C,QAAA,sBAAsB,GAAG,IAAI,2BAAe,CAAC,IAAI,CAAC,EAAE;IAC7D,IAAA,iCAAwB,EAAC,IAAI,EAAE,uDAAyB,CAAC,CAAC;IAC1D,IAAA,iCAAwB,EAAC,IAAI,EAAE,oCAAgB,CAAC,YAAY,CAAC,CAAC;IAC9D,IAAI,CAAC,mDAAuB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC1D,IAAI,CAAC,oCAAgB,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,mDAAuB,CAAC,CAAC;IACrE,IAAI,CAAC,oDAA8B,CAAC,CAAC,SAAS,CAAC,mDAAuB,CAAC,CAAC;IACxE,IAAI,CAAC,8CAAkB,CAAC,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACzF,IAAI,CAAC,sCAAiB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACpD,IAAI,CAAC,oDAA8B,CAAC,CAAC,SAAS,CAAC,sCAAiB,CAAC,CAAC;IAClE,IAAI,CAAC,0EAAkC,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACrE,IAAI,CAAC,uDAAyB,CAAC,CAAC,SAAS,CAAC,0EAAkC,CAAC,CAAC;IAC9E,IAAI,CAAC,uCAAiB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACpD,IAAA,iCAAwB,EAAC,IAAI,EAAE,mDAA6B,CAAC,CAAC;IAE9D,IAAI,CAAC,0BAAiB,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;QAC7C,MAAM,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAqC,uDAAyB,CAAC,CAAC;QAC/G,OAAO,IAAI,6BAAoB,CAAS,kDAA0B,EAAE,GAAG,EAAE,CAAC,CAAC;YACvE,YAAY,EAAE,CAAC,SAAiB,EAAE,EAAE;gBAChC,iBAAiB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YAC9C,CAAC;SACJ,CAAC,CAAC,CAAC;IACR,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC;AAC1B,CAAC,CAAC,CAAC"}
@@ -1,11 +1,10 @@
1
- import { Socket } from 'socket.io';
2
1
  import { Channel } from '../../common/message-rpc/channel';
3
2
  export interface MessagingService {
4
3
  /**
5
4
  * Accept a web socket channel on the given path.
6
5
  * A path supports the route syntax: https://github.com/rcs/route-parser#what-can-i-use-in-my-routes.
7
6
  */
8
- wsChannel(path: string, callback: (params: MessagingService.PathParams, channel: Channel) => void): void;
7
+ registerChannelHandler(path: string, handler: (params: MessagingService.PathParams, channel: Channel) => void): void;
9
8
  /**
10
9
  * Accept a web socket connection on the given path.
11
10
  * A path supports the route syntax: https://github.com/rcs/route-parser#what-can-i-use-in-my-routes.
@@ -14,7 +13,7 @@ export interface MessagingService {
14
13
  * Prefer using web socket channels over establishing new web socket connection. Clients can handle only limited amount of web sockets
15
14
  * and excessive amount can cause performance degradation. All web socket channels share a single web socket connection.
16
15
  */
17
- ws(path: string, callback: (params: MessagingService.PathParams, socket: Socket) => void): void;
16
+ registerConnectionHandler(path: string, callback: (params: MessagingService.PathParams, mainChannel: Channel) => void): void;
18
17
  }
19
18
  export declare namespace MessagingService {
20
19
  /** Inversify container identifier for the `MessagingService` component. */
@@ -1 +1 @@
1
- {"version":3,"file":"messaging-service.d.ts","sourceRoot":"","sources":["../../../src/node/messaging/messaging-service.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAE3D,MAAM,WAAW,gBAAgB;IAC7B;;;OAGG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAAC;IACzG;;;;;;;OAOG;IACH,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;CACnG;AACD,yBAAiB,gBAAgB,CAAC;IAC9B,2EAA2E;IACpE,MAAM,UAAU,eAA6B,CAAC;IACrD,UAAiB,UAAU;QACvB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;KACzB;IACM,MAAM,YAAY,eAA0C,CAAC;IACpE,UAAiB,YAAY;QACzB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC;KAC9C;CACJ"}
1
+ {"version":3,"file":"messaging-service.d.ts","sourceRoot":"","sources":["../../../src/node/messaging/messaging-service.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAE3D,MAAM,WAAW,gBAAgB;IAC7B;;;OAGG;IACH,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAAC;IACrH;;;;;;;OAOG;IACH,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAAC;CAChI;AAED,yBAAiB,gBAAgB,CAAC;IAC9B,2EAA2E;IACpE,MAAM,UAAU,eAA6B,CAAC;IACrD,UAAiB,UAAU;QACvB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;KACzB;IACM,MAAM,YAAY,eAA0C,CAAC;IACpE,UAAiB,YAAY;QACzB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC;KAC9C;CACJ"}
@@ -1,13 +1,13 @@
1
1
  /// <reference types="node" />
2
2
  import * as http from 'http';
3
3
  import * as https from 'https';
4
- import { Channel, ChannelMultiplexer } from '../../../common/message-rpc/channel';
4
+ import { ServiceConnectionProvider } from '../../../browser/messaging/service-connection-provider';
5
5
  export declare class TestWebSocketChannelSetup {
6
- readonly multiplexer: ChannelMultiplexer;
7
- readonly channel: Channel;
6
+ readonly connectionProvider: ServiceConnectionProvider;
8
7
  constructor({ server, path }: {
9
8
  server: http.Server | https.Server;
10
9
  path: string;
11
10
  });
11
+ protected createConnectionProvider(socketUrl: string): ServiceConnectionProvider;
12
12
  }
13
13
  //# sourceMappingURL=test-web-socket-channel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"test-web-socket-channel.d.ts","sourceRoot":"","sources":["../../../../src/node/messaging/test/test-web-socket-channel.ts"],"names":[],"mappings":";AAgBA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAGlF,qBAAa,yBAAyB;IAClC,SAAgB,WAAW,EAAE,kBAAkB,CAAC;IAChD,SAAgB,OAAO,EAAE,OAAO,CAAC;gBAErB,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;QAC1B,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QACnC,IAAI,EAAE,MAAM,CAAA;KACf;CASJ"}
1
+ {"version":3,"file":"test-web-socket-channel.d.ts","sourceRoot":"","sources":["../../../../src/node/messaging/test/test-web-socket-channel.ts"],"names":[],"mappings":";AAiBA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,EAA4B,yBAAyB,EAAE,MAAM,wDAAwD,CAAC;AAkB7H,qBAAa,yBAAyB;IAClC,SAAgB,kBAAkB,EAAE,yBAAyB,CAAC;gBAElD,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;QAC1B,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QACnC,IAAI,EAAE,MAAM,CAAA;KACf;IAMD,SAAS,CAAC,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,yBAAyB;CAOnF"}
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ /* eslint-disable @theia/runtime-import-check */
2
3
  // *****************************************************************************
3
4
  // Copyright (C) 2018 TypeFox and others.
4
5
  //
@@ -14,36 +15,49 @@
14
15
  //
15
16
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
17
  // *****************************************************************************
18
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
23
+ };
24
+ var __metadata = (this && this.__metadata) || function (k, v) {
25
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
26
+ };
17
27
  Object.defineProperty(exports, "__esModule", { value: true });
18
28
  exports.TestWebSocketChannelSetup = void 0;
29
+ const common_1 = require("../../../common");
30
+ const ws_connection_source_1 = require("../../../browser/messaging/ws-connection-source");
31
+ const inversify_1 = require("inversify");
32
+ const service_connection_provider_1 = require("../../../browser/messaging/service-connection-provider");
33
+ const messaging_frontend_module_1 = require("../../../browser/messaging/messaging-frontend-module");
19
34
  const socket_io_client_1 = require("socket.io-client");
20
- const channel_1 = require("../../../common/message-rpc/channel");
21
- const web_socket_channel_1 = require("../../../common/messaging/web-socket-channel");
35
+ const websocketUrl = Symbol('testWebsocketUrl');
36
+ class TestWebsocketConnectionSource extends ws_connection_source_1.WebSocketConnectionSource {
37
+ createWebSocketUrl(path) {
38
+ return this.websocketUrl;
39
+ }
40
+ createWebSocket(url) {
41
+ return (0, socket_io_client_1.io)(url);
42
+ }
43
+ }
44
+ __decorate([
45
+ (0, inversify_1.inject)(websocketUrl),
46
+ __metadata("design:type", String)
47
+ ], TestWebsocketConnectionSource.prototype, "websocketUrl", void 0);
22
48
  class TestWebSocketChannelSetup {
23
49
  constructor({ server, path }) {
24
- const socket = (0, socket_io_client_1.io)(`ws://localhost:${server.address().port}${web_socket_channel_1.WebSocketChannel.wsPath}`);
25
- this.channel = new web_socket_channel_1.WebSocketChannel(toIWebSocket(socket));
26
- this.multiplexer = new channel_1.ChannelMultiplexer(this.channel);
27
- socket.on('connect', () => {
28
- this.multiplexer.open(path);
29
- });
30
- socket.connect();
50
+ const address = server.address();
51
+ const url = `ws://${address.address}:${address.port}${common_1.servicesPath}`;
52
+ this.connectionProvider = this.createConnectionProvider(url);
53
+ }
54
+ createConnectionProvider(socketUrl) {
55
+ const container = new inversify_1.Container();
56
+ container.bind(websocketUrl).toConstantValue(socketUrl);
57
+ container.load(messaging_frontend_module_1.messagingFrontendModule);
58
+ container.rebind(ws_connection_source_1.WebSocketConnectionSource).to(TestWebsocketConnectionSource);
59
+ return container.get(service_connection_provider_1.RemoteConnectionProvider);
31
60
  }
32
61
  }
33
62
  exports.TestWebSocketChannelSetup = TestWebSocketChannelSetup;
34
- function toIWebSocket(socket) {
35
- return {
36
- close: () => {
37
- socket.removeAllListeners('disconnect');
38
- socket.removeAllListeners('error');
39
- socket.removeAllListeners('message');
40
- socket.close();
41
- },
42
- isConnected: () => socket.connected,
43
- onClose: cb => socket.on('disconnect', reason => cb(reason)),
44
- onError: cb => socket.on('error', reason => cb(reason)),
45
- onMessage: cb => socket.on('message', data => cb(data)),
46
- send: message => socket.emit('message', message)
47
- };
48
- }
49
63
  //# sourceMappingURL=test-web-socket-channel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"test-web-socket-channel.js","sourceRoot":"","sources":["../../../../src/node/messaging/test/test-web-socket-channel.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAKhF,uDAA8C;AAC9C,iEAAkF;AAClF,qFAA4F;AAE5F,MAAa,yBAAyB;IAIlC,YAAY,EAAE,MAAM,EAAE,IAAI,EAGzB;QACG,MAAM,MAAM,GAAG,IAAA,qBAAE,EAAC,kBAAmB,MAAM,CAAC,OAAO,EAAkB,CAAC,IAAI,GAAG,qCAAgB,CAAC,MAAM,EAAE,CAAC,CAAC;QACxG,IAAI,CAAC,OAAO,GAAG,IAAI,qCAAgB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1D,IAAI,CAAC,WAAW,GAAG,IAAI,4BAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,OAAO,EAAE,CAAC;IACrB,CAAC;CACJ;AAhBD,8DAgBC;AAED,SAAS,YAAY,CAAC,MAAc;IAChC,OAAO;QACH,KAAK,EAAE,GAAG,EAAE;YACR,MAAM,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;YACxC,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;YACnC,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;YACrC,MAAM,CAAC,KAAK,EAAE,CAAC;QACnB,CAAC;QACD,WAAW,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS;QACnC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QAC5D,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QACvD,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QACvD,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC;KACnD,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"test-web-socket-channel.js","sourceRoot":"","sources":["../../../../src/node/messaging/test/test-web-socket-channel.ts"],"names":[],"mappings":";AAAA,gDAAgD;AAChD,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;;;;;;;;;AAKhF,4CAA+C;AAC/C,0FAA4F;AAC5F,yCAA8C;AAC9C,wGAA6H;AAC7H,oGAA+F;AAC/F,uDAA8C;AAE9C,MAAM,YAAY,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAChD,MAAM,6BAA8B,SAAQ,gDAAyB;IAI9C,kBAAkB,CAAC,IAAY;QAC9C,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAEkB,eAAe,CAAC,GAAW;QAC1C,OAAO,IAAA,qBAAE,EAAC,GAAG,CAAC,CAAC;IACnB,CAAC;CACJ;AATG;IADC,IAAA,kBAAM,EAAC,YAAY,CAAC;;mEACS;AAWlC,MAAa,yBAAyB;IAGlC,YAAY,EAAE,MAAM,EAAE,IAAI,EAGzB;QACG,MAAM,OAAO,GAAI,MAAM,CAAC,OAAO,EAAkB,CAAC;QAClD,MAAM,GAAG,GAAG,QAAQ,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,GAAG,qBAAY,EAAE,CAAC;QACrE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;IACjE,CAAC;IAES,wBAAwB,CAAC,SAAiB;QAChD,MAAM,SAAS,GAAG,IAAI,qBAAS,EAAE,CAAC;QAClC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QACxD,SAAS,CAAC,IAAI,CAAC,mDAAuB,CAAC,CAAC;QACxC,SAAS,CAAC,MAAM,CAAC,gDAAyB,CAAC,CAAC,EAAE,CAAC,6BAA6B,CAAC,CAAC;QAC9E,OAAO,SAAS,CAAC,GAAG,CAAC,sDAAwB,CAAC,CAAC;IACnD,CAAC;CACJ;AAnBD,8DAmBC"}
@@ -0,0 +1,21 @@
1
+ /// <reference types="node" />
2
+ import { MessagingService } from './messaging-service';
3
+ import * as http from 'http';
4
+ import * as https from 'https';
5
+ import { Socket } from 'socket.io';
6
+ import { WsRequestValidator } from '../ws-request-validators';
7
+ import { MessagingListener } from './messaging-listeners';
8
+ import { ConnectionHandlers } from './default-messaging-service';
9
+ import { BackendApplicationContribution } from '../backend-application';
10
+ export declare class WebsocketEndpoint implements BackendApplicationContribution {
11
+ protected readonly wsRequestValidator: WsRequestValidator;
12
+ protected readonly messagingListener: MessagingListener;
13
+ protected checkAliveTimeout: number;
14
+ protected maxHttpBufferSize: number;
15
+ protected readonly wsHandlers: ConnectionHandlers<Socket<import("socket.io/dist/typed-events").DefaultEventsMap, import("socket.io/dist/typed-events").DefaultEventsMap, import("socket.io/dist/typed-events").DefaultEventsMap, any>>;
16
+ registerConnectionHandler(spec: string, callback: (params: MessagingService.PathParams, socket: Socket) => void): void;
17
+ onStart(server: http.Server | https.Server): void;
18
+ protected allowConnect(request: http.IncomingMessage): Promise<boolean>;
19
+ protected handleConnection(socket: Socket): Promise<void>;
20
+ }
21
+ //# sourceMappingURL=websocket-endpoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket-endpoint.d.ts","sourceRoot":"","sources":["../../../src/node/messaging/websocket-endpoint.ts"],"names":[],"mappings":";AAeA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAU,MAAM,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AAExE,qBACa,iBAAkB,YAAW,8BAA8B;IAEpE,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAG1D,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAExD,SAAS,CAAC,iBAAiB,SAAS;IACpC,SAAS,CAAC,iBAAiB,SAAO;IAElC,SAAS,CAAC,QAAQ,CAAC,UAAU,0MAAoC;IAEjE,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAItH,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,IAAI;cAqBjC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;cAQ7D,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAMlE"}
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ // *****************************************************************************
3
+ // Copyright (C) 2023 STMicroelectronics and others.
4
+ //
5
+ // This program and the accompanying materials are made available under the
6
+ // terms of the Eclipse Public License v. 2.0 which is available at
7
+ // http://www.eclipse.org/legal/epl-2.0.
8
+ //
9
+ // This Source Code may also be made available under the following Secondary
10
+ // Licenses when the conditions for such availability set forth in the Eclipse
11
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ // with the GNU Classpath Exception which is available at
13
+ // https://www.gnu.org/software/classpath/license.html.
14
+ //
15
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
17
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
18
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
19
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
20
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
21
+ };
22
+ var __metadata = (this && this.__metadata) || function (k, v) {
23
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.WebsocketEndpoint = void 0;
27
+ const inversify_1 = require("inversify");
28
+ const socket_io_1 = require("socket.io");
29
+ const ws_request_validators_1 = require("../ws-request-validators");
30
+ const messaging_listeners_1 = require("./messaging-listeners");
31
+ const default_messaging_service_1 = require("./default-messaging-service");
32
+ let WebsocketEndpoint = class WebsocketEndpoint {
33
+ constructor() {
34
+ this.checkAliveTimeout = 30000; // 30 seconds
35
+ this.maxHttpBufferSize = 1e8; // 100 MB
36
+ this.wsHandlers = new default_messaging_service_1.ConnectionHandlers();
37
+ }
38
+ registerConnectionHandler(spec, callback) {
39
+ this.wsHandlers.push(spec, callback);
40
+ }
41
+ onStart(server) {
42
+ const socketServer = new socket_io_1.Server(server, {
43
+ pingInterval: this.checkAliveTimeout,
44
+ pingTimeout: this.checkAliveTimeout * 2,
45
+ maxHttpBufferSize: this.maxHttpBufferSize
46
+ });
47
+ // Accept every namespace by using /.*/
48
+ socketServer.of(/.*/).on('connection', async (socket) => {
49
+ const request = socket.request;
50
+ // Socket.io strips the `origin` header of the incoming request
51
+ // We provide a `fix-origin` header in the `WebSocketConnectionProvider`
52
+ request.headers.origin = request.headers['fix-origin'];
53
+ if (await this.allowConnect(socket.request)) {
54
+ await this.handleConnection(socket);
55
+ this.messagingListener.onDidWebSocketUpgrade(socket.request, socket);
56
+ }
57
+ else {
58
+ socket.disconnect(true);
59
+ }
60
+ });
61
+ }
62
+ async allowConnect(request) {
63
+ try {
64
+ return this.wsRequestValidator.allowWsUpgrade(request);
65
+ }
66
+ catch (e) {
67
+ return false;
68
+ }
69
+ }
70
+ async handleConnection(socket) {
71
+ const pathname = socket.nsp.name;
72
+ if (pathname && !this.wsHandlers.route(pathname, socket)) {
73
+ console.error('Cannot find a ws handler for the path: ' + pathname);
74
+ }
75
+ }
76
+ };
77
+ __decorate([
78
+ (0, inversify_1.inject)(ws_request_validators_1.WsRequestValidator),
79
+ __metadata("design:type", ws_request_validators_1.WsRequestValidator)
80
+ ], WebsocketEndpoint.prototype, "wsRequestValidator", void 0);
81
+ __decorate([
82
+ (0, inversify_1.inject)(messaging_listeners_1.MessagingListener),
83
+ __metadata("design:type", messaging_listeners_1.MessagingListener)
84
+ ], WebsocketEndpoint.prototype, "messagingListener", void 0);
85
+ WebsocketEndpoint = __decorate([
86
+ (0, inversify_1.injectable)()
87
+ ], WebsocketEndpoint);
88
+ exports.WebsocketEndpoint = WebsocketEndpoint;
89
+ //# sourceMappingURL=websocket-endpoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket-endpoint.js","sourceRoot":"","sources":["../../../src/node/messaging/websocket-endpoint.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,oDAAoD;AACpD,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;;;;;;;;;;;;AAKhF,yCAA+C;AAC/C,yCAA2C;AAC3C,oEAA8D;AAC9D,+DAA0D;AAC1D,2EAAiE;AAIjE,IAAa,iBAAiB,GAA9B,MAAa,iBAAiB;IAA9B;QAOc,sBAAiB,GAAG,KAAK,CAAC,CAAC,aAAa;QACxC,sBAAiB,GAAG,GAAG,CAAC,CAAC,SAAS;QAEzB,eAAU,GAAG,IAAI,8CAAkB,EAAU,CAAC;IAyCrE,CAAC;IAvCG,yBAAyB,CAAC,IAAY,EAAE,QAAuE;QAC3G,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,CAAC,MAAkC;QACtC,MAAM,YAAY,GAAG,IAAI,kBAAM,CAAC,MAAM,EAAE;YACpC,YAAY,EAAE,IAAI,CAAC,iBAAiB;YACpC,WAAW,EAAE,IAAI,CAAC,iBAAiB,GAAG,CAAC;YACvC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;SAC5C,CAAC,CAAC;QACH,uCAAuC;QACvC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,YAAY,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;YAClD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YAC/B,+DAA+D;YAC/D,wEAAwE;YACxE,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAW,CAAC;YACjE,IAAI,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;gBACzC,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBACpC,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;aACxE;iBAAM;gBACH,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aAC3B;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAES,KAAK,CAAC,YAAY,CAAC,OAA6B;QACtD,IAAI;YACA,OAAO,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;SAC1D;QAAC,OAAO,CAAC,EAAE;YACR,OAAO,KAAK,CAAC;SAChB;IACL,CAAC;IAES,KAAK,CAAC,gBAAgB,CAAC,MAAc;QAC3C,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;QACjC,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;YACtD,OAAO,CAAC,KAAK,CAAC,yCAAyC,GAAG,QAAQ,CAAC,CAAC;SACvE;IACL,CAAC;CACJ,CAAA;AAjDG;IADC,IAAA,kBAAM,EAAC,0CAAkB,CAAC;8BACY,0CAAkB;6DAAC;AAG1D;IADC,IAAA,kBAAM,EAAC,uCAAiB,CAAC;8BACY,uCAAiB;4DAAC;AAL/C,iBAAiB;IAD7B,IAAA,sBAAU,GAAE;GACA,iBAAiB,CAmD7B;AAnDY,8CAAiB"}