@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
package/lib/plans.js CHANGED
@@ -2,82 +2,62 @@
2
2
  /**
3
3
  * Copyright (c) 2021 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
- var __read = (this && this.__read) || function (o, n) {
8
- var m = typeof Symbol === "function" && o[Symbol.iterator];
9
- if (!m) return o;
10
- var i = m.call(o), r, ar = [], e;
11
- try {
12
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
13
- }
14
- catch (error) { e = { error: error }; }
15
- finally {
16
- try {
17
- if (r && !r.done && (m = i["return"])) m.call(i);
18
- }
19
- finally { if (e) throw e.error; }
20
- }
21
- return ar;
22
- };
23
- var __spread = (this && this.__spread) || function () {
24
- for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
25
- return ar;
26
- };
27
7
  Object.defineProperty(exports, "__esModule", { value: true });
28
8
  exports.Plans = exports.ABSOLUTE_MAX_USAGE = exports.Coupons = exports.Coupon = exports.MAX_PARALLEL_WORKSPACES = exports.Plan = exports.Currency = void 0;
29
9
  var Currency;
30
10
  (function (Currency) {
31
- Currency.getAll = function () {
32
- return ['USD', 'EUR'];
11
+ Currency.getAll = () => {
12
+ return ["USD", "EUR"];
33
13
  };
34
- Currency.getSymbol = function (c) {
35
- return c === 'USD' ? '$' : '';
14
+ Currency.getSymbol = (c) => {
15
+ return c === "USD" ? "$" : "";
36
16
  };
37
17
  })(Currency = exports.Currency || (exports.Currency = {}));
38
18
  var Plan;
39
19
  (function (Plan) {
40
- Plan.is = function (o) {
41
- return 'chargebeeId' in o
42
- && 'name' in o
43
- && 'currency' in o
44
- && 'pricePerMonth' in o
45
- && 'hoursPerMonth' in o
46
- && 'type' in o;
20
+ Plan.is = (o) => {
21
+ return ("chargebeeId" in o &&
22
+ "name" in o &&
23
+ "currency" in o &&
24
+ "pricePerMonth" in o &&
25
+ "hoursPerMonth" in o &&
26
+ "type" in o);
47
27
  };
48
28
  })(Plan = exports.Plan || (exports.Plan = {}));
49
29
  exports.MAX_PARALLEL_WORKSPACES = 16;
50
30
  var Coupon;
51
31
  (function (Coupon) {
52
- Coupon.is = function (o) {
53
- return 'id' in o;
32
+ Coupon.is = (o) => {
33
+ return "id" in o;
54
34
  };
55
35
  })(Coupon = exports.Coupon || (exports.Coupon = {}));
56
36
  var Coupons;
57
37
  (function (Coupons) {
58
38
  Coupons.INTERNAL_GITPOD_GHSP = {
59
39
  id: "INTERNAL_GITPOD_GHSP",
60
- isGithubStudentCoupon: true
40
+ isGithubStudentCoupon: true,
61
41
  };
62
42
  Coupons.INTERNAL_GITPOD_GHSP_2 = {
63
43
  id: "INTERNAL_GITPOD_GHSP_2",
64
- isGithubStudentCoupon: true
44
+ isGithubStudentCoupon: true,
65
45
  };
66
46
  Coupons.GITHUBSTUDENTPACKFORFACULTY = {
67
47
  id: "GITHUBSTUDENTPACKFORFACULTY",
68
- isGithubStudentCoupon: true
48
+ isGithubStudentCoupon: true,
69
49
  };
70
- Coupons.isGithubStudentCoupon = function (id) {
71
- var c = Coupons.getAllCoupons().find(function (ic) { return ic.id === id; });
50
+ Coupons.isGithubStudentCoupon = (id) => {
51
+ const c = Coupons.getAllCoupons().find((ic) => ic.id === id);
72
52
  if (!c) {
73
53
  return undefined;
74
54
  }
75
55
  return !!c.isGithubStudentCoupon;
76
56
  };
77
- Coupons.getAllCoupons = function () {
57
+ Coupons.getAllCoupons = () => {
78
58
  return Object.keys(Coupons)
79
- .map(function (k) { return Coupons[k]; })
80
- .filter(function (a) { return typeof a === 'object' && Coupon.is(a); });
59
+ .map((k) => Coupons[k])
60
+ .filter((a) => typeof a === "object" && Coupon.is(a));
81
61
  };
82
62
  })(Coupons = exports.Coupons || (exports.Coupons = {}));
83
63
  // Theoretical maximum of workspace hours: 16 workspaces for 24h a day for 31 days as permitted by the v3 unlimited plan
@@ -115,249 +95,249 @@ var Plans;
115
95
  * The old default plan (v1): 100h hours for public repos
116
96
  */
117
97
  Plans.FREE = {
118
- chargebeeId: 'free',
98
+ chargebeeId: "free",
119
99
  githubId: 2034,
120
100
  githubPlanNumber: 1,
121
- type: 'free',
122
- name: 'Open Source',
123
- currency: 'USD',
101
+ type: "free",
102
+ name: "Free",
103
+ currency: "USD",
124
104
  pricePerMonth: 0,
125
- hoursPerMonth: 100
105
+ hoursPerMonth: 100,
126
106
  };
127
107
  /**
128
108
  * The new default plan (v3): 50h hours for public repos
129
109
  */
130
110
  Plans.FREE_50 = {
131
- chargebeeId: 'free-50',
111
+ chargebeeId: "free-50",
132
112
  githubId: 4902,
133
113
  githubPlanNumber: 5,
134
- type: 'free-50',
135
- name: 'Open Source',
136
- currency: 'USD',
114
+ type: "free-50",
115
+ name: "Free",
116
+ currency: "USD",
137
117
  pricePerMonth: 0,
138
- hoursPerMonth: 50
118
+ hoursPerMonth: 50,
139
119
  };
140
120
  /**
141
121
  * Users created after this date get the FREE_50 plan (v3) instead of the (old) FREE plan (v1)
142
122
  */
143
- Plans.FREE_50_START_DATE = '2019-12-19T00:00:00.000Z';
123
+ Plans.FREE_50_START_DATE = "2019-12-19T00:00:00.000Z";
144
124
  /**
145
125
  * The 'Professional Open Source' plan was introduced to offer professional open-souce developers unlimited hours.
146
126
  */
147
127
  Plans.FREE_OPEN_SOURCE = {
148
- chargebeeId: 'free-open-source',
149
- type: 'free-open-source',
150
- name: 'Professional Open Source',
151
- currency: 'USD',
128
+ chargebeeId: "free-open-source",
129
+ type: "free-open-source",
130
+ name: "Professional Open Source",
131
+ currency: "USD",
152
132
  pricePerMonth: 0,
153
- hoursPerMonth: 'unlimited'
133
+ hoursPerMonth: "unlimited",
154
134
  };
155
135
  /**
156
136
  * The 'Student Unleashed' plans were introduced to give students access to the highly-priced unlimited plans.
157
137
  */
158
138
  Plans.PROFESSIONAL_STUDENT_EUR = {
159
- chargebeeId: 'professional-student-eur',
160
- type: 'student',
161
- name: 'Student Unleashed',
162
- currency: 'EUR',
139
+ chargebeeId: "professional-student-eur",
140
+ type: "student",
141
+ name: "Student Unleashed",
142
+ currency: "EUR",
163
143
  pricePerMonth: 8,
164
- hoursPerMonth: 'unlimited'
144
+ hoursPerMonth: "unlimited",
165
145
  };
166
146
  /**
167
147
  * The 'Student Unleashed' plans were introduced to give students access to the highly-priced unlimited plans.
168
148
  */
169
149
  Plans.PROFESSIONAL_STUDENT_USD = {
170
- chargebeeId: 'professional-student-usd',
171
- type: 'student',
172
- name: 'Student Unleashed',
173
- currency: 'USD',
150
+ chargebeeId: "professional-student-usd",
151
+ type: "student",
152
+ name: "Student Unleashed",
153
+ currency: "USD",
174
154
  pricePerMonth: 9,
175
- hoursPerMonth: 'unlimited'
155
+ hoursPerMonth: "unlimited",
176
156
  };
177
157
  /**
178
158
  * The 'Student Unleashed' plans were introduced to give students access to the highly-priced unlimited plans.
179
159
  */
180
160
  Plans.TEAM_PROFESSIONAL_STUDENT_EUR = {
181
- chargebeeId: 'team-professional-student-eur',
182
- type: 'student',
183
- name: 'Team Student Unleashed',
161
+ chargebeeId: "team-professional-student-eur",
162
+ type: "student",
163
+ name: "Team Student Unleashed",
184
164
  team: true,
185
- currency: 'EUR',
165
+ currency: "EUR",
186
166
  pricePerMonth: 8,
187
- hoursPerMonth: 'unlimited'
167
+ hoursPerMonth: "unlimited",
188
168
  };
189
169
  /**
190
170
  * The 'Student Unleashed' plans were introduced to give students access to the highly-priced unlimited plans.
191
171
  */
192
172
  Plans.TEAM_PROFESSIONAL_STUDENT_USD = {
193
- chargebeeId: 'team-professional-student-usd',
194
- type: 'student',
195
- name: 'Team Student Unleashed',
173
+ chargebeeId: "team-professional-student-usd",
174
+ type: "student",
175
+ name: "Team Student Unleashed",
196
176
  team: true,
197
- currency: 'USD',
177
+ currency: "USD",
198
178
  pricePerMonth: 9,
199
- hoursPerMonth: 'unlimited'
179
+ hoursPerMonth: "unlimited",
200
180
  };
201
181
  /**
202
182
  * The 'basic' plan was the original differentiator between FREE and Professional (v1) but got discarded soon.
203
183
  */
204
184
  Plans.BASIC_EUR = {
205
- chargebeeId: 'basic-eur',
206
- type: 'basic',
207
- name: 'Standard',
208
- currency: 'EUR',
185
+ chargebeeId: "basic-eur",
186
+ type: "basic",
187
+ name: "Standard",
188
+ currency: "EUR",
209
189
  pricePerMonth: 17,
210
- hoursPerMonth: 100
190
+ hoursPerMonth: 100,
211
191
  };
212
192
  /**
213
193
  * The 'basic' plan was the original differentiator between FREE and Professional (v1) but got discarded soon.
214
194
  */
215
195
  Plans.BASIC_USD = {
216
- chargebeeId: 'basic-usd',
196
+ chargebeeId: "basic-usd",
217
197
  githubId: 2035,
218
198
  githubPlanNumber: 2,
219
- type: 'basic',
220
- name: 'Standard',
221
- currency: 'USD',
199
+ type: "basic",
200
+ name: "Standard",
201
+ currency: "USD",
222
202
  pricePerMonth: 19,
223
- hoursPerMonth: 100
203
+ hoursPerMonth: 100,
224
204
  };
225
205
  /**
226
206
  * The 'personal' plan was introduced to superseed the 'basic' plan (introduced with v2) to be more attractive to hobbyists.
227
207
  */
228
208
  Plans.PERSONAL_EUR = {
229
- chargebeeId: 'personal-eur',
230
- type: 'personal',
231
- name: 'Personal',
232
- currency: 'EUR',
209
+ chargebeeId: "personal-eur",
210
+ type: "personal",
211
+ name: "Personal",
212
+ currency: "EUR",
233
213
  pricePerMonth: 8,
234
- hoursPerMonth: 100
214
+ hoursPerMonth: 100,
235
215
  };
236
216
  /**
237
217
  * The 'personal' plan was introduced to superseed the 'basic' plan (introduced with v2) to be more attractive to hobbyists.
238
218
  */
239
219
  Plans.PERSONAL_USD = {
240
- chargebeeId: 'personal-usd',
220
+ chargebeeId: "personal-usd",
241
221
  githubId: 2274,
242
222
  githubPlanNumber: 4,
243
- type: 'personal',
244
- name: 'Personal',
245
- currency: 'USD',
223
+ type: "personal",
224
+ name: "Personal",
225
+ currency: "USD",
246
226
  pricePerMonth: 9,
247
- hoursPerMonth: 100
227
+ hoursPerMonth: 100,
248
228
  };
249
229
  /**
250
230
  * This is the 'new' Professional plan (v3), which is meant to fit well between Personal (9$/8€) on the left and
251
231
  * Unleashed (39$/35€) on the right.
252
232
  */
253
233
  Plans.PROFESSIONAL_NEW_EUR = {
254
- chargebeeId: 'professional-new-eur',
255
- type: 'professional-new',
256
- name: 'Professional',
257
- currency: 'EUR',
234
+ chargebeeId: "professional-new-eur",
235
+ type: "professional-new",
236
+ name: "Professional",
237
+ currency: "EUR",
258
238
  pricePerMonth: 23,
259
- hoursPerMonth: 'unlimited'
239
+ hoursPerMonth: "unlimited",
260
240
  };
261
241
  /**
262
242
  * This is the 'new' Professional plan (v3), which is meant to fit well between Personal (9$/8€) on the left and
263
243
  * Unleashed (39$/35€) on the right.
264
244
  */
265
245
  Plans.PROFESSIONAL_NEW_USD = {
266
- chargebeeId: 'professional-new-usd',
267
- type: 'professional-new',
268
- name: 'Professional',
269
- currency: 'USD',
246
+ chargebeeId: "professional-new-usd",
247
+ type: "professional-new",
248
+ name: "Professional",
249
+ currency: "USD",
270
250
  pricePerMonth: 25,
271
- hoursPerMonth: 'unlimited'
251
+ hoursPerMonth: "unlimited",
272
252
  };
273
253
  /**
274
254
  * This is the 'new' Team Professional plan (v3), which is meant to fit well between Personal (9$/8€) on the left and
275
255
  * Unleashed (39$/35€) on the right.
276
256
  */
277
257
  Plans.TEAM_PROFESSIONAL_NEW_EUR = {
278
- chargebeeId: 'team-professional-new-eur',
279
- type: 'professional-new',
280
- name: 'Team Professional',
281
- currency: 'EUR',
258
+ chargebeeId: "team-professional-new-eur",
259
+ type: "professional-new",
260
+ name: "Team Professional",
261
+ currency: "EUR",
282
262
  team: true,
283
263
  pricePerMonth: 23,
284
- hoursPerMonth: 'unlimited'
264
+ hoursPerMonth: "unlimited",
285
265
  };
286
266
  /**
287
267
  * This is the 'new' Team Professional plan (v3), which is meant to fit well between Personal (9$/8€) on the left and
288
268
  * Unleashed (39$/35€) on the right.
289
269
  */
290
270
  Plans.TEAM_PROFESSIONAL_NEW_USD = {
291
- chargebeeId: 'team-professional-new-usd',
292
- type: 'professional-new',
293
- name: 'Team Professional',
294
- currency: 'USD',
271
+ chargebeeId: "team-professional-new-usd",
272
+ type: "professional-new",
273
+ name: "Team Professional",
274
+ currency: "USD",
295
275
  team: true,
296
276
  pricePerMonth: 25,
297
- hoursPerMonth: 'unlimited'
277
+ hoursPerMonth: "unlimited",
298
278
  };
299
279
  /**
300
280
  * This is the 'Unleashed' plan (v1, rebranded v2, v5)
301
281
  * It was originally introduced as 'Professional', and we cannot update the ids, so it stays that way in the code.
302
282
  */
303
283
  Plans.PROFESSIONAL_EUR = {
304
- chargebeeId: 'professional-eur',
305
- type: 'professional',
306
- name: 'Unleashed',
307
- currency: 'EUR',
284
+ chargebeeId: "professional-eur",
285
+ type: "professional",
286
+ name: "Unleashed",
287
+ currency: "EUR",
308
288
  pricePerMonth: 35,
309
- hoursPerMonth: 'unlimited'
289
+ hoursPerMonth: "unlimited",
310
290
  };
311
291
  /**
312
292
  * This is the 'Unleashed' plan (v1, rebranded v2, v5)
313
293
  * It was originally introduced as 'Professional', and we cannot update the ids, so it stays that way in the code.
314
294
  */
315
295
  Plans.PROFESSIONAL_USD = {
316
- chargebeeId: 'professional-usd',
296
+ chargebeeId: "professional-usd",
317
297
  githubId: 2036,
318
298
  githubPlanNumber: 3,
319
- type: 'professional',
320
- name: 'Unleashed',
321
- currency: 'USD',
299
+ type: "professional",
300
+ name: "Unleashed",
301
+ currency: "USD",
322
302
  pricePerMonth: 39,
323
- hoursPerMonth: 'unlimited'
303
+ hoursPerMonth: "unlimited",
324
304
  };
325
305
  /**
326
306
  * This is the Team-'Unleashed' plan (v1, rebranded v2, v5)
327
307
  * It was originally introduced as 'Professional', and we cannot update the ids, so it stays that way in the code.
328
308
  */
329
309
  Plans.TEAM_PROFESSIONAL_USD = {
330
- chargebeeId: 'team-professional-usd',
331
- type: 'professional',
332
- name: 'Team Unleashed',
333
- currency: 'USD',
310
+ chargebeeId: "team-professional-usd",
311
+ type: "professional",
312
+ name: "Team Unleashed",
313
+ currency: "USD",
334
314
  team: true,
335
315
  pricePerMonth: 39,
336
- hoursPerMonth: 'unlimited'
316
+ hoursPerMonth: "unlimited",
337
317
  };
338
318
  /**
339
319
  * This is the Team-'Unleashed' plan (v1, rebranded v2, v5)
340
320
  * It was originally introduced as 'Professional', and we cannot update the ids, so it stays that way in the code.
341
321
  */
342
322
  Plans.TEAM_PROFESSIONAL_EUR = {
343
- chargebeeId: 'team-professional-eur',
344
- type: 'professional',
345
- name: 'Team Unleashed',
346
- currency: 'EUR',
323
+ chargebeeId: "team-professional-eur",
324
+ type: "professional",
325
+ name: "Team Unleashed",
326
+ currency: "EUR",
347
327
  team: true,
348
328
  pricePerMonth: 35,
349
- hoursPerMonth: 'unlimited'
329
+ hoursPerMonth: "unlimited",
350
330
  };
351
- var getAllPlans = function () {
331
+ const getAllPlans = () => {
352
332
  return Object.keys(Plans)
353
- .map(function (k) { return Plans[k]; })
354
- .filter(function (a) { return typeof a === 'object' && Plan.is(a); });
333
+ .map((k) => Plans[k])
334
+ .filter((a) => typeof a === "object" && Plan.is(a));
355
335
  };
356
336
  /**
357
337
  * This function returns all individual plans that might be active (= we have subscriptions for) at the moment
358
338
  */
359
339
  function getAvailablePlans(currency) {
360
- var availablePaidPlans = [
340
+ const availablePaidPlans = [
361
341
  Plans.BASIC_EUR,
362
342
  Plans.BASIC_USD,
363
343
  Plans.PERSONAL_EUR,
@@ -365,67 +345,70 @@ var Plans;
365
345
  Plans.PROFESSIONAL_NEW_EUR,
366
346
  Plans.PROFESSIONAL_NEW_USD,
367
347
  Plans.PROFESSIONAL_EUR,
368
- Plans.PROFESSIONAL_USD
348
+ Plans.PROFESSIONAL_USD,
369
349
  ];
370
- return __spread([
371
- Plans.FREE,
372
- Plans.FREE_50,
373
- Plans.FREE_OPEN_SOURCE
374
- ], availablePaidPlans.filter(function (p) { return p.currency; }));
350
+ return [Plans.FREE, Plans.FREE_50, Plans.FREE_OPEN_SOURCE, ...availablePaidPlans.filter((p) => p.currency)];
375
351
  }
376
352
  Plans.getAvailablePlans = getAvailablePlans;
377
- ;
378
- Plans.getAvailableTeamPlans = function (currency) {
379
- var teamPlans = getAllPlans().filter(function (p) { return !!p.team; });
380
- return currency ? teamPlans.filter(function (p) { return p.currency === currency; }) : teamPlans;
353
+ Plans.getAvailableTeamPlans = (currency) => {
354
+ const teamPlans = getAllPlans().filter((p) => !!p.team);
355
+ return currency ? teamPlans.filter((p) => p.currency === currency) : teamPlans;
381
356
  };
382
357
  function getById(id) {
383
358
  if (id === undefined) {
384
359
  return undefined;
385
360
  }
386
- return getAllPlans()
387
- .find(function (p) { return p.chargebeeId === id; }) || undefined;
361
+ return getAllPlans().find((p) => p.chargebeeId === id) || undefined;
388
362
  }
389
363
  Plans.getById = getById;
390
- ;
391
364
  function getByTypeAndCurrency(type, currency) {
392
365
  return getAllPlans()
393
- .filter(function (p) { return p.type; })
394
- .find(function (p) { return p.currency === currency; });
366
+ .filter((p) => p.type)
367
+ .find((p) => p.currency === currency);
395
368
  }
396
369
  Plans.getByTypeAndCurrency = getByTypeAndCurrency;
397
370
  function getProPlan(currency) {
398
371
  switch (currency) {
399
- case "EUR": return Plans.PROFESSIONAL_EUR;
400
- case "USD": return Plans.PROFESSIONAL_USD;
372
+ case "EUR":
373
+ return Plans.PROFESSIONAL_EUR;
374
+ case "USD":
375
+ return Plans.PROFESSIONAL_USD;
401
376
  }
402
377
  }
403
378
  Plans.getProPlan = getProPlan;
404
379
  function getNewProPlan(currency) {
405
380
  switch (currency) {
406
- case "EUR": return Plans.PROFESSIONAL_NEW_EUR;
407
- case "USD": return Plans.PROFESSIONAL_NEW_USD;
381
+ case "EUR":
382
+ return Plans.PROFESSIONAL_NEW_EUR;
383
+ case "USD":
384
+ return Plans.PROFESSIONAL_NEW_USD;
408
385
  }
409
386
  }
410
387
  Plans.getNewProPlan = getNewProPlan;
411
388
  function getStudentProPlan(currency) {
412
389
  switch (currency) {
413
- case "EUR": return Plans.PROFESSIONAL_STUDENT_EUR;
414
- case "USD": return Plans.PROFESSIONAL_STUDENT_USD;
390
+ case "EUR":
391
+ return Plans.PROFESSIONAL_STUDENT_EUR;
392
+ case "USD":
393
+ return Plans.PROFESSIONAL_STUDENT_USD;
415
394
  }
416
395
  }
417
396
  Plans.getStudentProPlan = getStudentProPlan;
418
397
  function getBasicPlan(currency) {
419
398
  switch (currency) {
420
- case "EUR": return Plans.BASIC_EUR;
421
- case "USD": return Plans.BASIC_USD;
399
+ case "EUR":
400
+ return Plans.BASIC_EUR;
401
+ case "USD":
402
+ return Plans.BASIC_USD;
422
403
  }
423
404
  }
424
405
  Plans.getBasicPlan = getBasicPlan;
425
406
  function getPersonalPlan(currency) {
426
407
  switch (currency) {
427
- case "EUR": return Plans.PERSONAL_EUR;
428
- case "USD": return Plans.PERSONAL_USD;
408
+ case "EUR":
409
+ return Plans.PERSONAL_EUR;
410
+ case "USD":
411
+ return Plans.PERSONAL_USD;
429
412
  }
430
413
  }
431
414
  Plans.getPersonalPlan = getPersonalPlan;
@@ -434,17 +417,21 @@ var Plans;
434
417
  }
435
418
  Plans.getFreePlan = getFreePlan;
436
419
  function isFreePlan(chargebeeId) {
437
- return chargebeeId === Plans.FREE.chargebeeId
438
- || chargebeeId === Plans.FREE_50.chargebeeId
439
- || chargebeeId === Plans.FREE_OPEN_SOURCE.chargebeeId;
420
+ return (chargebeeId === Plans.FREE.chargebeeId ||
421
+ chargebeeId === Plans.FREE_50.chargebeeId ||
422
+ chargebeeId === Plans.FREE_OPEN_SOURCE.chargebeeId);
440
423
  }
441
424
  Plans.isFreePlan = isFreePlan;
425
+ function isFreeTier(chargebeeId) {
426
+ return chargebeeId === Plans.FREE.chargebeeId || chargebeeId === Plans.FREE_50.chargebeeId;
427
+ }
428
+ Plans.isFreeTier = isFreeTier;
442
429
  function isFreeNonTransientPlan(chargebeeId) {
443
430
  return chargebeeId === Plans.FREE_OPEN_SOURCE.chargebeeId;
444
431
  }
445
432
  Plans.isFreeNonTransientPlan = isFreeNonTransientPlan;
446
433
  function getHoursPerMonth(plan) {
447
- return plan.hoursPerMonth == 'unlimited' ? exports.ABSOLUTE_MAX_USAGE : plan.hoursPerMonth;
434
+ return plan.hoursPerMonth == "unlimited" ? exports.ABSOLUTE_MAX_USAGE : plan.hoursPerMonth;
448
435
  }
449
436
  Plans.getHoursPerMonth = getHoursPerMonth;
450
437
  /**
@@ -460,7 +447,7 @@ var Plans;
460
447
  * @param plan
461
448
  */
462
449
  function getParallelWorkspaces(plan) {
463
- var DEFAULT = 4;
450
+ const DEFAULT = 4;
464
451
  if (!plan) {
465
452
  return DEFAULT;
466
453
  }
@@ -480,14 +467,14 @@ var Plans;
480
467
  * The order inside the sub-array carries meaning, too: The first one is the current, preferred plan (we advertise) for the given arity.
481
468
  * This is used to be able to get the next "higher" plan (cmp. getNextHigherPlanType).
482
469
  */
483
- var planStructure = [
470
+ const planStructure = [
484
471
  ["free-50", "free", "free-open-source"],
485
472
  ["personal", "basic"],
486
473
  ["professional-new"],
487
- ["professional", "student"]
474
+ ["professional", "student"],
488
475
  ];
489
476
  function getPlanTypeArity(type) {
490
- return planStructure.findIndex(function (types) { return types.includes(type); });
477
+ return planStructure.findIndex((types) => types.includes(type));
491
478
  }
492
479
  function getPlanTypeForArity(arity) {
493
480
  if (arity >= planStructure.length) {
@@ -500,8 +487,8 @@ var Plans;
500
487
  * @param type
501
488
  */
502
489
  function getNextHigherPlanType(type) {
503
- var arity = getPlanTypeArity(type);
504
- var nextHigherType = getPlanTypeForArity(arity + 1);
490
+ const arity = getPlanTypeArity(type);
491
+ const nextHigherType = getPlanTypeForArity(arity + 1);
505
492
  return nextHigherType || "professional";
506
493
  }
507
494
  Plans.getNextHigherPlanType = getNextHigherPlanType;
@@ -511,13 +498,13 @@ var Plans;
511
498
  * @param planTypeB
512
499
  */
513
500
  function compareTypes(planTypeA, planTypeB) {
514
- var va = getPlanTypeArity(planTypeA);
515
- var vb = getPlanTypeArity(planTypeB);
501
+ const va = getPlanTypeArity(planTypeA);
502
+ const vb = getPlanTypeArity(planTypeB);
516
503
  return va < vb ? -1 : va > vb ? 1 : 0;
517
504
  }
518
505
  Plans.compareTypes = compareTypes;
519
506
  function subscriptionChange(fromType, toType) {
520
- var cmp = Plans.compareTypes(fromType, toType);
507
+ const cmp = Plans.compareTypes(fromType, toType);
521
508
  if (cmp < 0) {
522
509
  return "upgrade";
523
510
  }
@@ -529,58 +516,91 @@ var Plans;
529
516
  }
530
517
  }
531
518
  Plans.subscriptionChange = subscriptionChange;
532
- var Feature;
519
+ let Feature;
533
520
  (function (Feature) {
534
- Feature.getFeaturesFor = function (p) {
521
+ Feature.getFeaturesFor = (p) => {
535
522
  switch (p.type) {
536
523
  case "free":
537
- return [
538
- { title: 'Public repositories' }
539
- ];
524
+ return [{ title: "Public repositories" }];
540
525
  case "free-50":
541
- return [
542
- { title: 'Public repositories' }
543
- ];
526
+ return [{ title: "Public repositories" }];
544
527
  case "free-open-source":
545
- return [
546
- { title: 'Public repositories' },
547
- ];
528
+ return [{ title: "Public repositories" }];
548
529
  case "student":
549
530
  return [
550
- { title: 'Private & Public repos' },
551
- { title: Plans.getParallelWorkspaces(p) + " Parallel Workspaces", tooltip: 'The number of workspaces running at the same time' },
552
- { title: 'Team Manageable', link: "/teams/", tooltip: 'Setup Gitpod for an entire Team with a single invoice and credit card' },
553
- { title: '1h Timeout', tooltip: 'Workspaces without user activity are stopped after 1 hour' },
554
- { title: '3h Timeout Boost', tooltip: 'You can manually boost the timeout to 3 hours within a running workspace' }
531
+ { title: "Private & Public repos" },
532
+ {
533
+ title: `${Plans.getParallelWorkspaces(p)} Parallel Workspaces`,
534
+ tooltip: "The number of workspaces running at the same time",
535
+ },
536
+ {
537
+ title: "Team Manageable",
538
+ link: "/teams/",
539
+ tooltip: "Setup Gitpod for an entire Team with a single invoice and credit card",
540
+ },
541
+ { title: "1h Timeout", tooltip: "Workspaces without user activity are stopped after 1 hour" },
542
+ {
543
+ title: "3h Timeout Boost",
544
+ tooltip: "You can manually boost the timeout to 3 hours within a running workspace",
545
+ },
555
546
  ];
556
547
  case "basic":
557
548
  return [
558
- { title: 'Private & Public repos' },
559
- { title: Plans.getParallelWorkspaces(p) + " Parallel Workspaces", tooltip: 'The number of workspaces running at the same time.' },
549
+ { title: "Private & Public repos" },
550
+ {
551
+ title: `${Plans.getParallelWorkspaces(p)} Parallel Workspaces`,
552
+ tooltip: "The number of workspaces running at the same time.",
553
+ },
560
554
  ];
561
555
  // Personal
562
556
  case "personal":
563
557
  return [
564
- { title: 'Private & Public repos' },
565
- { title: Plans.getParallelWorkspaces(p) + " Parallel Workspaces", tooltip: 'The number of workspaces running at the same time' },
566
- { title: '30min Timeout', tooltip: 'Workspaces without user activity are stopped after 30 minutes' }
558
+ { title: "Private & Public repos" },
559
+ {
560
+ title: `${Plans.getParallelWorkspaces(p)} Parallel Workspaces`,
561
+ tooltip: "The number of workspaces running at the same time",
562
+ },
563
+ {
564
+ title: "30min Timeout",
565
+ tooltip: "Workspaces without user activity are stopped after 30 minutes",
566
+ },
567
567
  ];
568
568
  // Professional
569
569
  case "professional-new":
570
570
  return [
571
- { title: 'Private & Public repos' },
572
- { title: Plans.getParallelWorkspaces(p) + " Parallel Workspaces", tooltip: 'The number of workspaces running at the same time' },
573
- { title: 'Team Manageable', link: "/teams/", tooltip: 'Setup Gitpod for an entire Team with a single invoice and credit card' },
574
- { title: '30min Timeout', tooltip: 'Workspaces without user activity are stopped after 30 minutes' }
571
+ { title: "Private & Public repos" },
572
+ {
573
+ title: `${Plans.getParallelWorkspaces(p)} Parallel Workspaces`,
574
+ tooltip: "The number of workspaces running at the same time",
575
+ },
576
+ {
577
+ title: "Team Manageable",
578
+ link: "/teams/",
579
+ tooltip: "Setup Gitpod for an entire Team with a single invoice and credit card",
580
+ },
581
+ {
582
+ title: "30min Timeout",
583
+ tooltip: "Workspaces without user activity are stopped after 30 minutes",
584
+ },
575
585
  ];
576
586
  // Unleashed
577
587
  case "professional":
578
588
  return [
579
- { title: 'Private & Public repos' },
580
- { title: Plans.getParallelWorkspaces(p) + " Parallel Workspaces", tooltip: 'The number of workspaces running at the same time' },
581
- { title: 'Team Manageable', link: "/teams/", tooltip: 'Setup Gitpod for an entire Team with a single invoice and credit card' },
582
- { title: '1h Timeout', tooltip: 'Workspaces without user activity are stopped after 1 hour' },
583
- { title: '3h Timeout Boost', tooltip: 'You can manually boost the timeout to 3 hours within a running workspace' }
589
+ { title: "Private & Public repos" },
590
+ {
591
+ title: `${Plans.getParallelWorkspaces(p)} Parallel Workspaces`,
592
+ tooltip: "The number of workspaces running at the same time",
593
+ },
594
+ {
595
+ title: "Team Manageable",
596
+ link: "/teams/",
597
+ tooltip: "Setup Gitpod for an entire Team with a single invoice and credit card",
598
+ },
599
+ { title: "1h Timeout", tooltip: "Workspaces without user activity are stopped after 1 hour" },
600
+ {
601
+ title: "3h Timeout Boost",
602
+ tooltip: "You can manually boost the timeout to 3 hours within a running workspace",
603
+ },
584
604
  ];
585
605
  }
586
606
  };