@gitpod/gitpod-protocol 0.1.5-main.648 → 0.1.5-main.6480

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 (455) hide show
  1. package/data/gitpod-schema.json +157 -29
  2. package/lib/accounting-protocol.d.ts +19 -14
  3. package/lib/accounting-protocol.d.ts.map +1 -1
  4. package/lib/accounting-protocol.js +44 -48
  5. package/lib/accounting-protocol.js.map +1 -1
  6. package/lib/admin-protocol.d.ts +44 -5
  7. package/lib/admin-protocol.d.ts.map +1 -1
  8. package/lib/admin-protocol.js +16 -1
  9. package/lib/admin-protocol.js.map +1 -1
  10. package/lib/analytics.d.ts +44 -0
  11. package/lib/analytics.d.ts.map +1 -0
  12. package/lib/analytics.js +10 -0
  13. package/lib/analytics.js.map +1 -0
  14. package/lib/attribution.d.ts +24 -0
  15. package/lib/attribution.d.ts.map +1 -0
  16. package/lib/attribution.js +54 -0
  17. package/lib/attribution.js.map +1 -0
  18. package/lib/auth.d.ts +1 -1
  19. package/lib/auth.d.ts.map +1 -1
  20. package/lib/auth.js +1 -1
  21. package/lib/billing-mode.d.ts +45 -0
  22. package/lib/billing-mode.d.ts.map +1 -0
  23. package/lib/billing-mode.js +44 -0
  24. package/lib/billing-mode.js.map +1 -0
  25. package/lib/blocked-repositories-protocol.d.ts +13 -0
  26. package/lib/blocked-repositories-protocol.d.ts.map +1 -0
  27. package/lib/blocked-repositories-protocol.js +8 -0
  28. package/lib/blocked-repositories-protocol.js.map +1 -0
  29. package/lib/context-url.d.ts +30 -0
  30. package/lib/context-url.d.ts.map +1 -0
  31. package/lib/context-url.js +100 -0
  32. package/lib/context-url.js.map +1 -0
  33. package/lib/context-url.spec.d.ts +12 -0
  34. package/lib/context-url.spec.d.ts.map +1 -0
  35. package/lib/context-url.spec.js +81 -0
  36. package/lib/context-url.spec.js.map +1 -0
  37. package/lib/encryption/container-module.d.ts +1 -1
  38. package/lib/encryption/container-module.d.ts.map +1 -1
  39. package/lib/encryption/container-module.js +5 -5
  40. package/lib/encryption/container-module.js.map +1 -1
  41. package/lib/encryption/encryption-engine.d.ts +1 -1
  42. package/lib/encryption/encryption-engine.d.ts.map +1 -1
  43. package/lib/encryption/encryption-engine.js +26 -27
  44. package/lib/encryption/encryption-engine.js.map +1 -1
  45. package/lib/encryption/encryption-engine.spec.d.ts +1 -1
  46. package/lib/encryption/encryption-engine.spec.d.ts.map +1 -1
  47. package/lib/encryption/encryption-engine.spec.js +30 -38
  48. package/lib/encryption/encryption-engine.spec.js.map +1 -1
  49. package/lib/encryption/encryption-service.d.ts +1 -1
  50. package/lib/encryption/encryption-service.d.ts.map +1 -1
  51. package/lib/encryption/encryption-service.js +31 -45
  52. package/lib/encryption/encryption-service.js.map +1 -1
  53. package/lib/encryption/key-provider.d.ts +1 -1
  54. package/lib/encryption/key-provider.d.ts.map +1 -1
  55. package/lib/encryption/key-provider.js +32 -39
  56. package/lib/encryption/key-provider.js.map +1 -1
  57. package/lib/env.d.ts +1 -7
  58. package/lib/env.d.ts.map +1 -1
  59. package/lib/env.js +8 -28
  60. package/lib/env.js.map +1 -1
  61. package/lib/experiments/always-default.d.ts +8 -0
  62. package/lib/experiments/always-default.d.ts.map +1 -0
  63. package/lib/experiments/always-default.js +20 -0
  64. package/lib/experiments/always-default.js.map +1 -0
  65. package/lib/experiments/configcat-server.d.ts +10 -0
  66. package/lib/experiments/configcat-server.d.ts.map +1 -0
  67. package/lib/experiments/configcat-server.js +37 -0
  68. package/lib/experiments/configcat-server.js.map +1 -0
  69. package/lib/experiments/configcat.d.ts +21 -0
  70. package/lib/experiments/configcat.d.ts.map +1 -0
  71. package/lib/experiments/configcat.js +51 -0
  72. package/lib/experiments/configcat.js.map +1 -0
  73. package/lib/experiments/types.d.ts +22 -0
  74. package/lib/experiments/types.d.ts.map +1 -0
  75. package/lib/experiments/types.js +10 -0
  76. package/lib/experiments/types.js.map +1 -0
  77. package/lib/frontend-dashboard-service.d.ts +90 -0
  78. package/lib/frontend-dashboard-service.d.ts.map +1 -0
  79. package/lib/frontend-dashboard-service.js +49 -0
  80. package/lib/frontend-dashboard-service.js.map +1 -0
  81. package/lib/gitpod-file-parser.d.ts +1 -1
  82. package/lib/gitpod-file-parser.d.ts.map +1 -1
  83. package/lib/gitpod-file-parser.js +27 -43
  84. package/lib/gitpod-file-parser.js.map +1 -1
  85. package/lib/gitpod-file-parser.spec.d.ts +1 -1
  86. package/lib/gitpod-file-parser.spec.js +146 -143
  87. package/lib/gitpod-file-parser.spec.js.map +1 -1
  88. package/lib/gitpod-service.d.ts +191 -55
  89. package/lib/gitpod-service.d.ts.map +1 -1
  90. package/lib/gitpod-service.js +204 -298
  91. package/lib/gitpod-service.js.map +1 -1
  92. package/lib/headless-workspace-log.d.ts +10 -12
  93. package/lib/headless-workspace-log.d.ts.map +1 -1
  94. package/lib/headless-workspace-log.js +7 -9
  95. package/lib/headless-workspace-log.js.map +1 -1
  96. package/lib/ide-frontend-service.d.ts +2 -2
  97. package/lib/ide-frontend-service.js +1 -1
  98. package/lib/ide-protocol.d.ts +126 -0
  99. package/lib/ide-protocol.d.ts.map +1 -0
  100. package/lib/ide-protocol.js +18 -0
  101. package/lib/ide-protocol.js.map +1 -0
  102. package/lib/index.d.ts +17 -11
  103. package/lib/index.d.ts.map +1 -1
  104. package/lib/index.js +8 -2
  105. package/lib/index.js.map +1 -1
  106. package/lib/installation-admin-protocol.d.ts +30 -0
  107. package/lib/installation-admin-protocol.d.ts.map +1 -0
  108. package/lib/installation-admin-protocol.js +31 -0
  109. package/lib/installation-admin-protocol.js.map +1 -0
  110. package/lib/license-protocol.d.ts +8 -1
  111. package/lib/license-protocol.d.ts.map +1 -1
  112. package/lib/license-protocol.js +1 -1
  113. package/lib/license-protocol.js.map +1 -1
  114. package/lib/messaging/browser/connection.d.ts +4 -6
  115. package/lib/messaging/browser/connection.d.ts.map +1 -1
  116. package/lib/messaging/browser/connection.js +176 -45
  117. package/lib/messaging/browser/connection.js.map +1 -1
  118. package/lib/messaging/browser/window-connection.d.ts +5 -5
  119. package/lib/messaging/browser/window-connection.d.ts.map +1 -1
  120. package/lib/messaging/browser/window-connection.js +43 -60
  121. package/lib/messaging/browser/window-connection.js.map +1 -1
  122. package/lib/messaging/client-call-metrics.d.ts +21 -0
  123. package/lib/messaging/client-call-metrics.d.ts.map +1 -0
  124. package/lib/messaging/client-call-metrics.js +95 -0
  125. package/lib/messaging/client-call-metrics.js.map +1 -0
  126. package/lib/messaging/error.d.ts +13 -3
  127. package/lib/messaging/error.d.ts.map +1 -1
  128. package/lib/messaging/error.js +25 -5
  129. package/lib/messaging/error.js.map +1 -1
  130. package/lib/messaging/handler.d.ts +10 -0
  131. package/lib/messaging/handler.d.ts.map +1 -1
  132. package/lib/messaging/handler.js +1 -1
  133. package/lib/messaging/node/connection.d.ts +1 -17
  134. package/lib/messaging/node/connection.d.ts.map +1 -1
  135. package/lib/messaging/node/connection.js +24 -60
  136. package/lib/messaging/node/connection.js.map +1 -1
  137. package/lib/messaging/proxy-factory.d.ts +3 -1
  138. package/lib/messaging/proxy-factory.d.ts.map +1 -1
  139. package/lib/messaging/proxy-factory.js +75 -162
  140. package/lib/messaging/proxy-factory.js.map +1 -1
  141. package/lib/oss-allowlist.d.ts +14 -0
  142. package/lib/oss-allowlist.d.ts.map +1 -0
  143. package/lib/oss-allowlist.js +8 -0
  144. package/lib/oss-allowlist.js.map +1 -0
  145. package/lib/payment-protocol.d.ts +1 -1
  146. package/lib/payment-protocol.d.ts.map +1 -1
  147. package/lib/payment-protocol.js +2 -2
  148. package/lib/payment-protocol.js.map +1 -1
  149. package/lib/permission.d.ts +14 -4
  150. package/lib/permission.d.ts.map +1 -1
  151. package/lib/permission.js +45 -32
  152. package/lib/permission.js.map +1 -1
  153. package/lib/plans.d.ts +6 -5
  154. package/lib/plans.d.ts.map +1 -1
  155. package/lib/plans.js +230 -210
  156. package/lib/plans.js.map +1 -1
  157. package/lib/protocol.d.ts +261 -105
  158. package/lib/protocol.d.ts.map +1 -1
  159. package/lib/protocol.js +346 -205
  160. package/lib/protocol.js.map +1 -1
  161. package/{src/util/without.ts → lib/protocol.spec.d.ts} +3 -4
  162. package/lib/protocol.spec.d.ts.map +1 -0
  163. package/lib/protocol.spec.js +127 -0
  164. package/lib/protocol.spec.js.map +1 -0
  165. package/lib/snapshot-url.d.ts +14 -0
  166. package/lib/snapshot-url.d.ts.map +1 -0
  167. package/lib/snapshot-url.js +26 -0
  168. package/lib/snapshot-url.js.map +1 -0
  169. package/lib/snapshot-url.spec.d.ts +7 -0
  170. package/lib/snapshot-url.spec.d.ts.map +1 -0
  171. package/lib/snapshot-url.spec.js +41 -0
  172. package/lib/snapshot-url.spec.js.map +1 -0
  173. package/lib/team-subscription-protocol.d.ts +24 -5
  174. package/lib/team-subscription-protocol.d.ts.map +1 -1
  175. package/lib/team-subscription-protocol.js +36 -18
  176. package/lib/team-subscription-protocol.js.map +1 -1
  177. package/lib/teams-projects-protocol.d.ts +137 -0
  178. package/lib/teams-projects-protocol.d.ts.map +1 -0
  179. package/lib/teams-projects-protocol.js +41 -0
  180. package/lib/teams-projects-protocol.js.map +1 -0
  181. package/lib/typings/globals.d.ts +3 -3
  182. package/lib/typings/globals.d.ts.map +1 -1
  183. package/lib/typings/globals.js +1 -1
  184. package/lib/usage.d.ts +73 -0
  185. package/lib/usage.d.ts.map +1 -0
  186. package/lib/usage.js +20 -0
  187. package/lib/usage.js.map +1 -0
  188. package/lib/util/analytics.d.ts +8 -0
  189. package/lib/util/analytics.d.ts.map +1 -0
  190. package/lib/util/analytics.js +88 -0
  191. package/lib/util/analytics.js.map +1 -0
  192. package/lib/util/async-iterator.d.ts +1 -1
  193. package/lib/util/async-iterator.d.ts.map +1 -1
  194. package/lib/util/async-iterator.js +58 -136
  195. package/lib/util/async-iterator.js.map +1 -1
  196. package/lib/util/cancelable.d.ts +1 -1
  197. package/lib/util/cancelable.js +18 -60
  198. package/lib/util/cancelable.js.map +1 -1
  199. package/lib/util/date-time.d.ts +1 -1
  200. package/lib/util/date-time.js +12 -12
  201. package/lib/util/date-time.js.map +1 -1
  202. package/lib/util/debug-app.d.ts +25 -0
  203. package/lib/util/debug-app.d.ts.map +1 -0
  204. package/lib/util/debug-app.js +100 -0
  205. package/lib/util/debug-app.js.map +1 -0
  206. package/lib/util/deep-partial.d.ts +1 -1
  207. package/lib/util/deep-partial.js +1 -1
  208. package/lib/util/deferred.d.ts +1 -1
  209. package/lib/util/deferred.js +11 -13
  210. package/lib/util/deferred.js.map +1 -1
  211. package/lib/util/disposable.d.ts.map +1 -1
  212. package/lib/util/disposable.js +27 -40
  213. package/lib/util/disposable.js.map +1 -1
  214. package/lib/util/event.d.ts.map +1 -1
  215. package/lib/util/event.js +63 -77
  216. package/lib/util/event.js.map +1 -1
  217. package/lib/util/garbage-collected-cache.d.ts +2 -1
  218. package/lib/util/garbage-collected-cache.d.ts.map +1 -1
  219. package/lib/util/garbage-collected-cache.js +33 -48
  220. package/lib/util/garbage-collected-cache.js.map +1 -1
  221. package/lib/util/generate-workspace-id.d.ts +6 -1
  222. package/lib/util/generate-workspace-id.d.ts.map +1 -1
  223. package/lib/util/generate-workspace-id.js +469 -502
  224. package/lib/util/generate-workspace-id.js.map +1 -1
  225. package/lib/util/generate-workspace-id.spec.d.ts +1 -1
  226. package/lib/util/generate-workspace-id.spec.js +69 -79
  227. package/lib/util/generate-workspace-id.spec.js.map +1 -1
  228. package/lib/util/gitpod-cookie.d.ts +20 -0
  229. package/lib/util/gitpod-cookie.d.ts.map +1 -0
  230. package/lib/util/gitpod-cookie.js +41 -0
  231. package/lib/util/gitpod-cookie.js.map +1 -0
  232. package/lib/util/gitpod-host-url.d.ts +12 -7
  233. package/lib/util/gitpod-host-url.d.ts.map +1 -1
  234. package/lib/util/gitpod-host-url.js +132 -110
  235. package/lib/util/gitpod-host-url.js.map +1 -1
  236. package/lib/util/gitpod-host-url.spec.d.ts +7 -1
  237. package/lib/util/gitpod-host-url.spec.d.ts.map +1 -1
  238. package/lib/util/gitpod-host-url.spec.js +113 -31
  239. package/lib/util/gitpod-host-url.spec.js.map +1 -1
  240. package/lib/util/grpc.d.ts +35 -0
  241. package/lib/util/grpc.d.ts.map +1 -0
  242. package/lib/util/grpc.js +90 -0
  243. package/lib/util/grpc.js.map +1 -0
  244. package/lib/util/jaeger-client-types.d.ts +68 -0
  245. package/lib/util/jaeger-client-types.d.ts.map +1 -0
  246. package/lib/{theia-plugins.js → util/jaeger-client-types.js} +2 -2
  247. package/lib/util/jaeger-client-types.js.map +1 -0
  248. package/lib/util/logging.d.ts +50 -34
  249. package/lib/util/logging.d.ts.map +1 -1
  250. package/lib/util/logging.js +133 -130
  251. package/lib/util/logging.js.map +1 -1
  252. package/lib/util/logging.spec.d.ts +7 -0
  253. package/lib/util/logging.spec.d.ts.map +1 -0
  254. package/lib/util/logging.spec.js +52 -0
  255. package/lib/util/logging.spec.js.map +1 -0
  256. package/lib/util/make-link.d.ts +1 -1
  257. package/lib/util/make-link.js +6 -6
  258. package/lib/util/make-link.js.map +1 -1
  259. package/lib/util/nice-grpc.d.ts +9 -0
  260. package/lib/util/nice-grpc.d.ts.map +1 -0
  261. package/lib/util/nice-grpc.js +121 -0
  262. package/lib/util/nice-grpc.js.map +1 -0
  263. package/lib/util/parse-workspace-id.d.ts +11 -1
  264. package/lib/util/parse-workspace-id.d.ts.map +1 -1
  265. package/lib/util/parse-workspace-id.js +31 -8
  266. package/lib/util/parse-workspace-id.js.map +1 -1
  267. package/lib/util/parse-workspace-id.spec.d.ts +5 -1
  268. package/lib/util/parse-workspace-id.spec.d.ts.map +1 -1
  269. package/lib/util/parse-workspace-id.spec.js +124 -85
  270. package/lib/util/parse-workspace-id.spec.js.map +1 -1
  271. package/lib/util/queue.d.ts +1 -1
  272. package/lib/util/queue.js +17 -56
  273. package/lib/util/queue.js.map +1 -1
  274. package/lib/util/queue.spec.d.ts +1 -1
  275. package/lib/util/queue.spec.js +148 -289
  276. package/lib/util/queue.spec.js.map +1 -1
  277. package/lib/util/repeat.d.ts +15 -0
  278. package/lib/util/repeat.d.ts.map +1 -0
  279. package/lib/util/repeat.js +55 -0
  280. package/lib/util/repeat.js.map +1 -0
  281. package/lib/util/semaphore.d.ts +1 -1
  282. package/lib/util/semaphore.d.ts.map +1 -1
  283. package/lib/util/semaphore.js +16 -47
  284. package/lib/util/semaphore.js.map +1 -1
  285. package/lib/util/skip-if.d.ts +1 -1
  286. package/lib/util/skip-if.d.ts.map +1 -1
  287. package/lib/util/skip-if.js +7 -7
  288. package/lib/util/skip-if.js.map +1 -1
  289. package/lib/util/timeutil.d.ts +3 -1
  290. package/lib/util/timeutil.d.ts.map +1 -1
  291. package/lib/util/timeutil.js +30 -18
  292. package/lib/util/timeutil.js.map +1 -1
  293. package/lib/util/timeutil.spec.d.ts +3 -1
  294. package/lib/util/timeutil.spec.d.ts.map +1 -1
  295. package/lib/util/timeutil.spec.js +55 -24
  296. package/lib/util/timeutil.spec.js.map +1 -1
  297. package/lib/util/tracing.d.ts +53 -7
  298. package/lib/util/tracing.d.ts.map +1 -1
  299. package/lib/util/tracing.js +198 -65
  300. package/lib/util/tracing.js.map +1 -1
  301. package/lib/util/tracing.spec.d.ts +7 -0
  302. package/lib/util/tracing.spec.d.ts.map +1 -0
  303. package/lib/util/tracing.spec.js +121 -0
  304. package/lib/util/tracing.spec.js.map +1 -0
  305. package/lib/util/workspace-port-authentication.d.ts +8 -8
  306. package/lib/util/workspace-port-authentication.d.ts.map +1 -1
  307. package/lib/util/workspace-port-authentication.js +10 -13
  308. package/lib/util/workspace-port-authentication.js.map +1 -1
  309. package/lib/webhook-event.d.ts +44 -0
  310. package/lib/webhook-event.d.ts.map +1 -0
  311. package/lib/webhook-event.js +8 -0
  312. package/lib/webhook-event.js.map +1 -0
  313. package/lib/workspace-class.d.ts +14 -0
  314. package/lib/workspace-class.d.ts.map +1 -0
  315. package/lib/workspace-class.js +8 -0
  316. package/lib/workspace-class.js.map +1 -0
  317. package/lib/workspace-cluster.d.ts +28 -8
  318. package/lib/workspace-cluster.d.ts.map +1 -1
  319. package/lib/workspace-cluster.js +20 -5
  320. package/lib/workspace-cluster.js.map +1 -1
  321. package/lib/workspace-instance.d.ts +46 -6
  322. package/lib/workspace-instance.d.ts.map +1 -1
  323. package/lib/workspace-instance.js +1 -1
  324. package/lib/wsready.d.ts +8 -2
  325. package/lib/wsready.d.ts.map +1 -1
  326. package/lib/wsready.js +3 -3
  327. package/package.json +40 -18
  328. package/pkg-yarn.lock +23 -10
  329. package/provenance-bundle.jsonl +2 -0
  330. package/src/accounting-protocol.ts +67 -58
  331. package/src/admin-protocol.ts +88 -20
  332. package/src/analytics.ts +52 -0
  333. package/src/attribution.ts +63 -0
  334. package/src/auth.ts +3 -3
  335. package/src/billing-mode.ts +84 -0
  336. package/src/blocked-repositories-protocol.ts +13 -0
  337. package/src/context-url.spec.ts +49 -0
  338. package/src/context-url.ts +107 -0
  339. package/src/encryption/container-module.ts +3 -4
  340. package/src/encryption/encryption-engine.spec.ts +10 -9
  341. package/src/encryption/encryption-engine.ts +21 -17
  342. package/src/encryption/encryption-service.ts +5 -6
  343. package/src/encryption/key-provider.ts +17 -20
  344. package/src/env.ts +2 -25
  345. package/src/experiments/always-default.ts +24 -0
  346. package/src/experiments/configcat-server.ts +42 -0
  347. package/src/experiments/configcat.ts +56 -0
  348. package/src/experiments/types.ts +34 -0
  349. package/src/frontend-dashboard-service.ts +125 -0
  350. package/src/gitpod-file-parser.spec.ts +56 -62
  351. package/src/gitpod-file-parser.ts +17 -18
  352. package/src/gitpod-service.ts +369 -146
  353. package/src/headless-workspace-log.ts +13 -15
  354. package/src/ide-frontend-service.ts +3 -3
  355. package/src/ide-protocol.ts +147 -0
  356. package/src/index.ts +17 -11
  357. package/src/installation-admin-protocol.ts +45 -0
  358. package/src/license-protocol.ts +13 -7
  359. package/src/messaging/browser/connection.ts +187 -28
  360. package/src/messaging/browser/window-connection.ts +40 -30
  361. package/src/messaging/client-call-metrics.ts +94 -0
  362. package/src/messaging/error.ts +36 -8
  363. package/src/messaging/handler.ts +13 -1
  364. package/src/messaging/node/connection.ts +23 -70
  365. package/src/messaging/proxy-factory.ts +35 -34
  366. package/src/oss-allowlist.ts +15 -0
  367. package/src/payment-protocol.ts +3 -3
  368. package/src/permission.ts +47 -34
  369. package/src/plans.ts +250 -199
  370. package/src/protocol.spec.ts +97 -0
  371. package/src/protocol.ts +636 -293
  372. package/src/snapshot-url.spec.ts +27 -0
  373. package/src/snapshot-url.ts +27 -0
  374. package/src/team-subscription-protocol.ts +62 -23
  375. package/src/teams-projects-protocol.ts +181 -0
  376. package/src/typings/globals.ts +6 -5
  377. package/src/usage.ts +85 -0
  378. package/src/util/analytics.ts +109 -0
  379. package/src/util/async-iterator.ts +5 -6
  380. package/src/util/cancelable.ts +4 -4
  381. package/src/util/date-time.ts +9 -9
  382. package/src/util/debug-app.ts +81 -0
  383. package/src/util/deep-partial.ts +1 -1
  384. package/src/util/deferred.ts +7 -7
  385. package/src/util/disposable.ts +3 -6
  386. package/src/util/event.ts +9 -11
  387. package/src/util/garbage-collected-cache.ts +17 -9
  388. package/src/util/generate-workspace-id.spec.ts +38 -11
  389. package/src/util/generate-workspace-id.ts +465 -439
  390. package/src/util/gitpod-cookie.ts +38 -0
  391. package/src/util/gitpod-host-url.spec.ts +59 -8
  392. package/src/util/gitpod-host-url.ts +88 -48
  393. package/src/util/grpc.ts +107 -0
  394. package/src/util/jaeger-client-types.ts +102 -0
  395. package/src/util/logging.spec.ts +23 -0
  396. package/src/util/logging.ts +157 -75
  397. package/src/util/make-link.ts +7 -8
  398. package/src/util/nice-grpc.ts +96 -0
  399. package/src/util/parse-workspace-id.spec.ts +38 -9
  400. package/src/util/parse-workspace-id.ts +33 -8
  401. package/src/util/queue.spec.ts +28 -26
  402. package/src/util/queue.ts +1 -1
  403. package/src/util/repeat.ts +45 -0
  404. package/src/util/semaphore.ts +7 -9
  405. package/src/util/skip-if.ts +11 -8
  406. package/src/util/timeutil.spec.ts +41 -15
  407. package/src/util/timeutil.ts +32 -16
  408. package/src/util/tracing.spec.ts +88 -0
  409. package/src/util/tracing.ts +201 -32
  410. package/src/util/workspace-port-authentication.ts +11 -14
  411. package/src/webhook-event.ts +55 -0
  412. package/src/workspace-class.ts +14 -0
  413. package/src/workspace-cluster.ts +47 -17
  414. package/src/workspace-instance.ts +106 -32
  415. package/src/wsready.ts +11 -4
  416. package/data/builtin-theia-plugins.json +0 -372
  417. package/lib/email-protocol.d.ts +0 -50
  418. package/lib/email-protocol.d.ts.map +0 -1
  419. package/lib/email-protocol.js +0 -28
  420. package/lib/email-protocol.js.map +0 -1
  421. package/lib/messaging/connection-error-handler.d.ts +0 -27
  422. package/lib/messaging/connection-error-handler.d.ts.map +0 -1
  423. package/lib/messaging/connection-error-handler.js +0 -46
  424. package/lib/messaging/connection-error-handler.js.map +0 -1
  425. package/lib/theia-plugins.d.ts +0 -11
  426. package/lib/theia-plugins.d.ts.map +0 -1
  427. package/lib/theia-plugins.js.map +0 -1
  428. package/lib/util/context-url.d.ts +0 -13
  429. package/lib/util/context-url.d.ts.map +0 -1
  430. package/lib/util/context-url.js +0 -26
  431. package/lib/util/context-url.js.map +0 -1
  432. package/lib/util/context-url.spec.d.ts +0 -10
  433. package/lib/util/context-url.spec.d.ts.map +0 -1
  434. package/lib/util/context-url.spec.js +0 -52
  435. package/lib/util/context-url.spec.js.map +0 -1
  436. package/lib/util/repeater.d.ts +0 -22
  437. package/lib/util/repeater.d.ts.map +0 -1
  438. package/lib/util/repeater.js +0 -118
  439. package/lib/util/repeater.js.map +0 -1
  440. package/lib/util/safe-promise.d.ts +0 -11
  441. package/lib/util/safe-promise.d.ts.map +0 -1
  442. package/lib/util/safe-promise.js +0 -34
  443. package/lib/util/safe-promise.js.map +0 -1
  444. package/lib/util/without.d.ts +0 -7
  445. package/lib/util/without.d.ts.map +0 -1
  446. package/lib/util/without.js +0 -8
  447. package/lib/util/without.js.map +0 -1
  448. package/src/email-protocol.ts +0 -67
  449. package/src/messaging/connection-error-handler.ts +0 -62
  450. package/src/theia-plugins.ts +0 -11
  451. package/src/util/context-url.spec.ts +0 -25
  452. package/src/util/context-url.ts +0 -23
  453. package/src/util/jaeger-client.d.ts +0 -105
  454. package/src/util/repeater.ts +0 -49
  455. package/src/util/safe-promise.ts +0 -26
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Copyright (c) 2020 Gitpod GmbH. All rights reserved.
4
4
  * Licensed under the GNU Affero General Public License (AGPL).
5
- * See License-AGPL.txt in the project root for license information.
5
+ * See License.AGPL.txt in the project root for license information.
6
6
  */
7
7
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
8
8
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
@@ -13,401 +13,307 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
13
13
  step((generator = generator.apply(thisArg, _arguments || [])).next());
14
14
  });
15
15
  };
16
- var __generator = (this && this.__generator) || function (thisArg, body) {
17
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
18
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
19
- function verb(n) { return function (v) { return step([n, v]); }; }
20
- function step(op) {
21
- if (f) throw new TypeError("Generator is already executing.");
22
- while (_) try {
23
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
24
- if (y = 0, t) op = [op[0] & 2, t.value];
25
- switch (op[0]) {
26
- case 0: case 1: t = op; break;
27
- case 4: _.label++; return { value: op[1], done: false };
28
- case 5: _.label++; y = op[1]; op = [0]; continue;
29
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
30
- default:
31
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
32
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
33
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
34
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
35
- if (t[2]) _.ops.pop();
36
- _.trys.pop(); continue;
37
- }
38
- op = body.call(thisArg, _);
39
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
40
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
41
- }
42
- };
43
- var __values = (this && this.__values) || function(o) {
44
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
45
- if (m) return m.call(o);
46
- if (o && typeof o.length === "number") return {
47
- next: function () {
48
- if (o && i >= o.length) o = void 0;
49
- return { value: o && o[i++], done: !o };
50
- }
51
- };
52
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
53
- };
54
16
  Object.defineProperty(exports, "__esModule", { value: true });
55
- exports.createGitpodService = exports.GitpodServiceImpl = exports.WorkspaceInstanceUpdateListener = exports.GitpodCompositeClient = exports.GitpodServerProxy = exports.GitpodServerPath = exports.createServerMock = exports.createServiceMock = exports.WorkspaceTimeoutValues = exports.GitpodServer = void 0;
56
- var vscode_jsonrpc_1 = require("vscode-jsonrpc");
57
- var gitpod_host_url_1 = require("./util/gitpod-host-url");
58
- var connection_1 = require("./messaging/browser/connection");
59
- var event_1 = require("./util/event");
60
- exports.GitpodServer = Symbol('GitpodServer');
61
- exports.WorkspaceTimeoutValues = ["30m", "60m", "180m"];
62
- var createServiceMock = function (methods) {
63
- return new GitpodServiceImpl(exports.createServerMock(methods));
17
+ exports.createGitpodService = exports.GitpodServiceImpl = exports.WorkspaceInstanceUpdateListener = exports.GitpodCompositeClient = exports.GitpodServerProxy = exports.GitpodServerPath = exports.createServerMock = exports.createServiceMock = exports.WORKSPACE_TIMEOUT_EXTENDED = exports.WORKSPACE_TIMEOUT_DEFAULT_LONG = exports.WORKSPACE_TIMEOUT_DEFAULT_SHORT = exports.WorkspaceTimeoutDuration = exports.GitpodServer = void 0;
18
+ const vscode_jsonrpc_1 = require("vscode-jsonrpc");
19
+ const gitpod_host_url_1 = require("./util/gitpod-host-url");
20
+ const connection_1 = require("./messaging/browser/connection");
21
+ const event_1 = require("./util/event");
22
+ exports.GitpodServer = Symbol("GitpodServer");
23
+ var WorkspaceTimeoutDuration;
24
+ (function (WorkspaceTimeoutDuration) {
25
+ function validate(duration) {
26
+ const unit = duration.slice(-1);
27
+ if (!["m", "h", "d"].includes(unit)) {
28
+ throw new Error(`Invalid timeout unit: ${unit}`);
29
+ }
30
+ const value = parseInt(duration.slice(0, -1));
31
+ if (isNaN(value) || value <= 0) {
32
+ throw new Error(`Invalid timeout value: ${duration}`);
33
+ }
34
+ return duration;
35
+ }
36
+ WorkspaceTimeoutDuration.validate = validate;
37
+ })(WorkspaceTimeoutDuration = exports.WorkspaceTimeoutDuration || (exports.WorkspaceTimeoutDuration = {}));
38
+ exports.WORKSPACE_TIMEOUT_DEFAULT_SHORT = "30m";
39
+ exports.WORKSPACE_TIMEOUT_DEFAULT_LONG = "60m";
40
+ exports.WORKSPACE_TIMEOUT_EXTENDED = "180m";
41
+ const createServiceMock = function (methods) {
42
+ return new GitpodServiceImpl((0, exports.createServerMock)(methods));
64
43
  };
65
44
  exports.createServiceMock = createServiceMock;
66
- var createServerMock = function (methods) {
67
- methods.setClient = methods.setClient || (function () { });
68
- methods.dispose = methods.dispose || (function () { });
45
+ const createServerMock = function (methods) {
46
+ methods.setClient = methods.setClient || (() => { });
47
+ methods.dispose = methods.dispose || (() => { });
69
48
  return new Proxy(methods, {
70
- get: function (target, property) {
71
- var result = target[property];
49
+ // @ts-ignore
50
+ get: (target, property) => {
51
+ const result = target[property];
72
52
  if (!result) {
73
- throw new Error("Method " + property + " not implemented");
53
+ throw new Error(`Method ${String(property)} not implemented`);
74
54
  }
75
55
  return result;
76
- }
56
+ },
77
57
  });
78
58
  };
79
59
  exports.createServerMock = createServerMock;
80
- exports.GitpodServerPath = '/gitpod';
81
- exports.GitpodServerProxy = Symbol('GitpodServerProxy');
82
- var GitpodCompositeClient = /** @class */ (function () {
83
- function GitpodCompositeClient() {
60
+ exports.GitpodServerPath = "/gitpod";
61
+ exports.GitpodServerProxy = Symbol("GitpodServerProxy");
62
+ class GitpodCompositeClient {
63
+ constructor() {
84
64
  this.clients = [];
85
65
  }
86
- GitpodCompositeClient.prototype.registerClient = function (client) {
87
- var _this = this;
66
+ registerClient(client) {
88
67
  this.clients.push(client);
89
- var index = this.clients.length;
90
68
  return {
91
- dispose: function () {
92
- _this.clients.slice(index, 1);
93
- }
69
+ dispose: () => {
70
+ const index = this.clients.indexOf(client);
71
+ if (index > -1) {
72
+ this.clients.splice(index, 1);
73
+ }
74
+ },
94
75
  };
95
- };
96
- GitpodCompositeClient.prototype.onInstanceUpdate = function (instance) {
97
- var e_1, _a;
98
- try {
99
- for (var _b = __values(this.clients), _c = _b.next(); !_c.done; _c = _b.next()) {
100
- var client = _c.value;
101
- if (client.onInstanceUpdate) {
102
- try {
103
- client.onInstanceUpdate(instance);
104
- }
105
- catch (error) {
106
- console.error(error);
107
- }
76
+ }
77
+ onInstanceUpdate(instance) {
78
+ for (const client of this.clients) {
79
+ if (client.onInstanceUpdate) {
80
+ try {
81
+ client.onInstanceUpdate(instance);
108
82
  }
109
- }
110
- }
111
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
112
- finally {
113
- try {
114
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
115
- }
116
- finally { if (e_1) throw e_1.error; }
117
- }
118
- };
119
- GitpodCompositeClient.prototype.onWorkspaceImageBuildLogs = function (info, content) {
120
- var e_2, _a;
121
- try {
122
- for (var _b = __values(this.clients), _c = _b.next(); !_c.done; _c = _b.next()) {
123
- var client = _c.value;
124
- if (client.onWorkspaceImageBuildLogs) {
125
- try {
126
- client.onWorkspaceImageBuildLogs(info, content);
127
- }
128
- catch (error) {
129
- console.error(error);
130
- }
83
+ catch (error) {
84
+ console.error(error);
131
85
  }
132
86
  }
133
87
  }
134
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
135
- finally {
136
- try {
137
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
138
- }
139
- finally { if (e_2) throw e_2.error; }
140
- }
141
- };
142
- GitpodCompositeClient.prototype.onHeadlessWorkspaceLogs = function (evt) {
143
- var e_3, _a;
144
- try {
145
- for (var _b = __values(this.clients), _c = _b.next(); !_c.done; _c = _b.next()) {
146
- var client = _c.value;
147
- if (client.onHeadlessWorkspaceLogs) {
148
- try {
149
- client.onHeadlessWorkspaceLogs(evt);
150
- }
151
- catch (error) {
152
- console.error(error);
153
- }
88
+ }
89
+ onPrebuildUpdate(update) {
90
+ for (const client of this.clients) {
91
+ if (client.onPrebuildUpdate) {
92
+ try {
93
+ client.onPrebuildUpdate(update);
154
94
  }
155
- }
156
- }
157
- catch (e_3_1) { e_3 = { error: e_3_1 }; }
158
- finally {
159
- try {
160
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
161
- }
162
- finally { if (e_3) throw e_3.error; }
163
- }
164
- };
165
- GitpodCompositeClient.prototype.notifyDidOpenConnection = function () {
166
- var e_4, _a;
167
- try {
168
- for (var _b = __values(this.clients), _c = _b.next(); !_c.done; _c = _b.next()) {
169
- var client = _c.value;
170
- if (client.notifyDidOpenConnection) {
171
- try {
172
- client.notifyDidOpenConnection();
173
- }
174
- catch (error) {
175
- console.error(error);
176
- }
95
+ catch (error) {
96
+ console.error(error);
177
97
  }
178
98
  }
179
99
  }
180
- catch (e_4_1) { e_4 = { error: e_4_1 }; }
181
- finally {
182
- try {
183
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
100
+ }
101
+ onWorkspaceImageBuildLogs(info, content) {
102
+ for (const client of this.clients) {
103
+ if (client.onWorkspaceImageBuildLogs) {
104
+ try {
105
+ client.onWorkspaceImageBuildLogs(info, content);
106
+ }
107
+ catch (error) {
108
+ console.error(error);
109
+ }
184
110
  }
185
- finally { if (e_4) throw e_4.error; }
186
111
  }
187
- };
188
- GitpodCompositeClient.prototype.notifyDidCloseConnection = function () {
189
- var e_5, _a;
190
- try {
191
- for (var _b = __values(this.clients), _c = _b.next(); !_c.done; _c = _b.next()) {
192
- var client = _c.value;
193
- if (client.notifyDidCloseConnection) {
194
- try {
195
- client.notifyDidCloseConnection();
196
- }
197
- catch (error) {
198
- console.error(error);
199
- }
112
+ }
113
+ notifyDidOpenConnection() {
114
+ for (const client of this.clients) {
115
+ if (client.notifyDidOpenConnection) {
116
+ try {
117
+ client.notifyDidOpenConnection();
118
+ }
119
+ catch (error) {
120
+ console.error(error);
200
121
  }
201
122
  }
202
123
  }
203
- catch (e_5_1) { e_5 = { error: e_5_1 }; }
204
- finally {
205
- try {
206
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
124
+ }
125
+ notifyDidCloseConnection() {
126
+ for (const client of this.clients) {
127
+ if (client.notifyDidCloseConnection) {
128
+ try {
129
+ client.notifyDidCloseConnection();
130
+ }
131
+ catch (error) {
132
+ console.error(error);
133
+ }
207
134
  }
208
- finally { if (e_5) throw e_5.error; }
209
135
  }
210
- };
211
- GitpodCompositeClient.prototype.onCreditAlert = function (creditAlert) {
212
- var e_6, _a;
213
- try {
214
- for (var _b = __values(this.clients), _c = _b.next(); !_c.done; _c = _b.next()) {
215
- var client = _c.value;
216
- if (client.onCreditAlert) {
217
- try {
218
- client.onCreditAlert(creditAlert);
219
- }
220
- catch (error) {
221
- console.error(error);
222
- }
136
+ }
137
+ onCreditAlert(creditAlert) {
138
+ for (const client of this.clients) {
139
+ if (client.onCreditAlert) {
140
+ try {
141
+ client.onCreditAlert(creditAlert);
142
+ }
143
+ catch (error) {
144
+ console.error(error);
223
145
  }
224
146
  }
225
147
  }
226
- catch (e_6_1) { e_6 = { error: e_6_1 }; }
227
- finally {
228
- try {
229
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
148
+ }
149
+ onNotificationUpdated() {
150
+ for (const client of this.clients) {
151
+ if (client.onNotificationUpdated) {
152
+ try {
153
+ client.onNotificationUpdated();
154
+ }
155
+ catch (error) {
156
+ console.error(error);
157
+ }
230
158
  }
231
- finally { if (e_6) throw e_6.error; }
232
159
  }
233
- };
234
- return GitpodCompositeClient;
235
- }());
160
+ }
161
+ }
236
162
  exports.GitpodCompositeClient = GitpodCompositeClient;
237
- var hasWindow = (typeof window !== 'undefined');
238
- var phasesOrder = {
163
+ const hasWindow = typeof window !== "undefined";
164
+ const phasesOrder = {
239
165
  unknown: 0,
240
166
  preparing: 1,
241
- pending: 2,
242
- creating: 3,
243
- initializing: 4,
244
- running: 5,
245
- interrupted: 6,
246
- stopping: 7,
247
- stopped: 8
167
+ building: 2,
168
+ pending: 3,
169
+ creating: 4,
170
+ initializing: 5,
171
+ running: 6,
172
+ interrupted: 7,
173
+ stopping: 8,
174
+ stopped: 9,
248
175
  };
249
- var WorkspaceInstanceUpdateListener = /** @class */ (function () {
250
- function WorkspaceInstanceUpdateListener(service, _info) {
251
- var _this = this;
176
+ class WorkspaceInstanceUpdateListener {
177
+ constructor(service, _info) {
252
178
  this.service = service;
253
179
  this._info = _info;
254
180
  this.onDidChangeEmitter = new event_1.Emitter();
255
181
  this.onDidChange = this.onDidChangeEmitter.event;
256
- this.source = 'sync';
182
+ this.source = "sync";
257
183
  this.syncQueue = Promise.resolve();
258
184
  service.registerClient({
259
- onInstanceUpdate: function (instance) {
260
- if (_this.isOutOfOrder(instance)) {
185
+ onInstanceUpdate: (instance) => {
186
+ if (this.isOutOfOrder(instance)) {
261
187
  return;
262
188
  }
263
- _this.cancelSync();
264
- _this._info.latestInstance = instance;
265
- _this.source = 'update';
266
- _this.onDidChangeEmitter.fire(undefined);
189
+ this.cancelSync();
190
+ this._info.latestInstance = instance;
191
+ this.source = "update";
192
+ this.onDidChangeEmitter.fire(undefined);
193
+ },
194
+ notifyDidOpenConnection: () => {
195
+ this.sync();
267
196
  },
268
- notifyDidOpenConnection: function () {
269
- _this.sync();
270
- }
271
197
  });
272
198
  if (hasWindow) {
273
199
  // learn about page lifecycle here: https://developers.google.com/web/updates/2018/07/page-lifecycle-api
274
- window.document.addEventListener('visibilitychange', function () { return __awaiter(_this, void 0, void 0, function () {
275
- return __generator(this, function (_a) {
276
- if (window.document.visibilityState === 'visible') {
277
- this.sync();
278
- }
279
- return [2 /*return*/];
280
- });
281
- }); });
282
- window.addEventListener('pageshow', function (e) {
200
+ window.document.addEventListener("visibilitychange", () => __awaiter(this, void 0, void 0, function* () {
201
+ if (window.document.visibilityState === "visible") {
202
+ this.sync();
203
+ }
204
+ }));
205
+ window.addEventListener("pageshow", (e) => {
283
206
  if (e.persisted) {
284
- _this.sync();
207
+ this.sync();
285
208
  }
286
209
  });
287
210
  }
288
211
  }
289
- Object.defineProperty(WorkspaceInstanceUpdateListener.prototype, "info", {
290
- get: function () {
291
- return this._info;
292
- },
293
- enumerable: false,
294
- configurable: true
295
- });
212
+ get info() {
213
+ return this._info;
214
+ }
296
215
  /**
297
216
  * Only one sync can be performed at the same time.
298
217
  * Any new sync request or instance update cancels all previously scheduled sync requests.
299
218
  */
300
- WorkspaceInstanceUpdateListener.prototype.sync = function () {
301
- var _this = this;
219
+ sync() {
302
220
  this.cancelSync();
303
221
  this.syncTokenSource = new vscode_jsonrpc_1.CancellationTokenSource();
304
- var token = this.syncTokenSource.token;
305
- this.syncQueue = this.syncQueue.then(function () { return __awaiter(_this, void 0, void 0, function () {
306
- var info, e_7;
307
- return __generator(this, function (_a) {
308
- switch (_a.label) {
309
- case 0:
310
- if (token.isCancellationRequested) {
311
- return [2 /*return*/];
312
- }
313
- _a.label = 1;
314
- case 1:
315
- _a.trys.push([1, 3, , 4]);
316
- return [4 /*yield*/, this.service.server.getWorkspace(this._info.workspace.id)];
317
- case 2:
318
- info = _a.sent();
319
- if (token.isCancellationRequested) {
320
- return [2 /*return*/];
321
- }
322
- this._info = info;
323
- this.source = 'sync';
324
- this.onDidChangeEmitter.fire(undefined);
325
- return [3 /*break*/, 4];
326
- case 3:
327
- e_7 = _a.sent();
328
- console.error('failed to sync workspace instance:', e_7);
329
- return [3 /*break*/, 4];
330
- case 4: return [2 /*return*/];
222
+ const token = this.syncTokenSource.token;
223
+ this.syncQueue = this.syncQueue.then(() => __awaiter(this, void 0, void 0, function* () {
224
+ if (token.isCancellationRequested) {
225
+ return;
226
+ }
227
+ try {
228
+ const info = yield this.service.server.getWorkspace(this._info.workspace.id);
229
+ if (token.isCancellationRequested) {
230
+ return;
331
231
  }
332
- });
333
- }); });
334
- };
335
- WorkspaceInstanceUpdateListener.prototype.cancelSync = function () {
232
+ this._info = info;
233
+ this.source = "sync";
234
+ this.onDidChangeEmitter.fire(undefined);
235
+ }
236
+ catch (e) {
237
+ console.error("failed to sync workspace instance:", e);
238
+ }
239
+ }));
240
+ }
241
+ cancelSync() {
336
242
  if (this.syncTokenSource) {
337
243
  this.syncTokenSource.cancel();
338
244
  this.syncTokenSource = undefined;
339
245
  }
340
- };
246
+ }
341
247
  /**
342
248
  * If sync seen more recent update then ignore all updates with previous phases.
343
249
  * Within the same phase still the race can occur but which should be eventually consistent.
344
250
  */
345
- WorkspaceInstanceUpdateListener.prototype.isOutOfOrder = function (instance) {
251
+ isOutOfOrder(instance) {
346
252
  var _a;
347
253
  if (instance.workspaceId !== this._info.workspace.id) {
348
254
  return true;
349
255
  }
350
- if (this.source === 'update') {
256
+ if (this.source === "update") {
351
257
  return false;
352
258
  }
353
259
  if (instance.id !== ((_a = this.info.latestInstance) === null || _a === void 0 ? void 0 : _a.id)) {
354
260
  return false;
355
261
  }
356
262
  return phasesOrder[instance.status.phase] < phasesOrder[this.info.latestInstance.status.phase];
357
- };
358
- return WorkspaceInstanceUpdateListener;
359
- }());
263
+ }
264
+ }
360
265
  exports.WorkspaceInstanceUpdateListener = WorkspaceInstanceUpdateListener;
361
- var GitpodServiceImpl = /** @class */ (function () {
362
- function GitpodServiceImpl(server) {
363
- var _this = this;
266
+ class GitpodServiceImpl {
267
+ constructor(server, options) {
364
268
  this.server = server;
269
+ this.options = options;
365
270
  this.compositeClient = new GitpodCompositeClient();
366
271
  this.instanceListeners = new Map();
367
272
  server.setClient(this.compositeClient);
368
- server.onDidOpenConnection(function () { return _this.compositeClient.notifyDidOpenConnection(); });
369
- server.onDidCloseConnection(function () { return _this.compositeClient.notifyDidCloseConnection(); });
273
+ server.onDidOpenConnection(() => this.compositeClient.notifyDidOpenConnection());
274
+ server.onDidCloseConnection(() => this.compositeClient.notifyDidCloseConnection());
370
275
  }
371
- GitpodServiceImpl.prototype.registerClient = function (client) {
276
+ registerClient(client) {
372
277
  return this.compositeClient.registerClient(client);
373
- };
374
- GitpodServiceImpl.prototype.listenToInstance = function (workspaceId) {
375
- var _this = this;
376
- var listener = this.instanceListeners.get(workspaceId) ||
377
- (function () { return __awaiter(_this, void 0, void 0, function () {
378
- var info;
379
- return __generator(this, function (_a) {
380
- switch (_a.label) {
381
- case 0: return [4 /*yield*/, this.server.getWorkspace(workspaceId)];
382
- case 1:
383
- info = _a.sent();
384
- return [2 /*return*/, new WorkspaceInstanceUpdateListener(this, info)];
385
- }
386
- });
387
- }); })();
278
+ }
279
+ listenToInstance(workspaceId) {
280
+ const listener = this.instanceListeners.get(workspaceId) ||
281
+ (() => __awaiter(this, void 0, void 0, function* () {
282
+ const info = yield this.server.getWorkspace(workspaceId);
283
+ return new WorkspaceInstanceUpdateListener(this, info);
284
+ }))();
388
285
  this.instanceListeners.set(workspaceId, listener);
389
286
  return listener;
390
- };
391
- return GitpodServiceImpl;
392
- }());
287
+ }
288
+ reconnect() {
289
+ var _a;
290
+ return __awaiter(this, void 0, void 0, function* () {
291
+ if ((_a = this.options) === null || _a === void 0 ? void 0 : _a.onReconnect) {
292
+ yield this.options.onReconnect();
293
+ }
294
+ });
295
+ }
296
+ }
393
297
  exports.GitpodServiceImpl = GitpodServiceImpl;
394
298
  function createGitpodService(serverUrl) {
395
- var toWsUrl = function (serverUrl) {
396
- return new gitpod_host_url_1.GitpodHostUrl(serverUrl)
397
- .asWebsocket()
398
- .withApi({ pathname: exports.GitpodServerPath })
399
- .toString();
299
+ const toWsUrl = (serverUrl) => {
300
+ return new gitpod_host_url_1.GitpodHostUrl(serverUrl).asWebsocket().withApi({ pathname: exports.GitpodServerPath }).toString();
400
301
  };
401
- var url;
302
+ let url;
402
303
  if (typeof serverUrl === "string") {
403
304
  url = toWsUrl(serverUrl);
404
305
  }
405
306
  else {
406
- url = serverUrl.then(function (url) { return toWsUrl(url); });
307
+ url = serverUrl.then((url) => toWsUrl(url));
407
308
  }
408
- var connectionProvider = new connection_1.WebSocketConnectionProvider();
409
- var gitpodServer = connectionProvider.createProxy(url);
410
- return new GitpodServiceImpl(gitpodServer);
309
+ const connectionProvider = new connection_1.WebSocketConnectionProvider();
310
+ let onReconnect = () => { };
311
+ const gitpodServer = connectionProvider.createProxy(url, undefined, {
312
+ onListening: (socket) => {
313
+ onReconnect = () => socket.reconnect();
314
+ },
315
+ });
316
+ return new GitpodServiceImpl(gitpodServer, { onReconnect });
411
317
  }
412
318
  exports.createGitpodService = createGitpodService;
413
319
  //# sourceMappingURL=gitpod-service.js.map