@gitpod/gitpod-protocol 0.1.5-wth-argo.0 → 0.1.5-yh-vmoptions-fork.1

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 (352) hide show
  1. package/data/gitpod-schema.json +206 -28
  2. package/lib/accounting-protocol.d.ts +162 -0
  3. package/lib/accounting-protocol.d.ts.map +1 -0
  4. package/lib/accounting-protocol.js +107 -0
  5. package/lib/accounting-protocol.js.map +1 -0
  6. package/lib/admin-protocol.d.ts +32 -4
  7. package/lib/admin-protocol.d.ts.map +1 -1
  8. package/lib/admin-protocol.js +15 -0
  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/auth.d.ts.map +1 -1
  15. package/lib/context-url.d.ts +31 -0
  16. package/lib/context-url.d.ts.map +1 -0
  17. package/lib/context-url.js +102 -0
  18. package/lib/context-url.js.map +1 -0
  19. package/lib/context-url.spec.d.ts +14 -0
  20. package/lib/context-url.spec.d.ts.map +1 -0
  21. package/lib/context-url.spec.js +109 -0
  22. package/lib/context-url.spec.js.map +1 -0
  23. package/lib/email-protocol.d.ts +1 -2
  24. package/lib/email-protocol.d.ts.map +1 -1
  25. package/lib/email-protocol.js +4 -4
  26. package/lib/email-protocol.js.map +1 -1
  27. package/lib/encryption/container-module.d.ts.map +1 -1
  28. package/lib/encryption/container-module.js +5 -4
  29. package/lib/encryption/container-module.js.map +1 -1
  30. package/lib/encryption/encryption-engine.d.ts.map +1 -1
  31. package/lib/encryption/encryption-engine.js +25 -26
  32. package/lib/encryption/encryption-engine.js.map +1 -1
  33. package/lib/encryption/encryption-engine.spec.d.ts.map +1 -1
  34. package/lib/encryption/encryption-engine.spec.js +29 -37
  35. package/lib/encryption/encryption-engine.spec.js.map +1 -1
  36. package/lib/encryption/encryption-service.d.ts.map +1 -1
  37. package/lib/encryption/encryption-service.js +30 -44
  38. package/lib/encryption/encryption-service.js.map +1 -1
  39. package/lib/encryption/key-provider.d.ts.map +1 -1
  40. package/lib/encryption/key-provider.js +31 -38
  41. package/lib/encryption/key-provider.js.map +1 -1
  42. package/lib/env.d.ts +0 -6
  43. package/lib/env.d.ts.map +1 -1
  44. package/lib/env.js +7 -27
  45. package/lib/env.js.map +1 -1
  46. package/lib/gitpod-file-parser.d.ts.map +1 -1
  47. package/lib/gitpod-file-parser.js +26 -42
  48. package/lib/gitpod-file-parser.js.map +1 -1
  49. package/lib/gitpod-file-parser.spec.js +145 -142
  50. package/lib/gitpod-file-parser.spec.js.map +1 -1
  51. package/lib/gitpod-service.d.ts +180 -33
  52. package/lib/gitpod-service.d.ts.map +1 -1
  53. package/lib/gitpod-service.js +194 -273
  54. package/lib/gitpod-service.js.map +1 -1
  55. package/lib/headless-workspace-log.d.ts +9 -11
  56. package/lib/headless-workspace-log.d.ts.map +1 -1
  57. package/lib/headless-workspace-log.js +6 -8
  58. package/lib/headless-workspace-log.js.map +1 -1
  59. package/lib/ide-frontend-service.d.ts +5 -1
  60. package/lib/ide-frontend-service.d.ts.map +1 -1
  61. package/lib/ide-protocol.d.ts +105 -0
  62. package/lib/ide-protocol.d.ts.map +1 -0
  63. package/lib/{util/without.js → ide-protocol.js} +2 -2
  64. package/lib/ide-protocol.js.map +1 -0
  65. package/lib/index.d.ts +16 -10
  66. package/lib/index.d.ts.map +1 -1
  67. package/lib/index.js +7 -1
  68. package/lib/index.js.map +1 -1
  69. package/lib/installation-admin-protocol.d.ts +27 -0
  70. package/lib/installation-admin-protocol.d.ts.map +1 -0
  71. package/lib/installation-admin-protocol.js +30 -0
  72. package/lib/installation-admin-protocol.js.map +1 -0
  73. package/lib/license-protocol.d.ts +7 -0
  74. package/lib/license-protocol.d.ts.map +1 -1
  75. package/lib/license-protocol.js.map +1 -1
  76. package/lib/messaging/browser/connection.d.ts +5 -3
  77. package/lib/messaging/browser/connection.d.ts.map +1 -1
  78. package/lib/messaging/browser/connection.js +184 -34
  79. package/lib/messaging/browser/connection.js.map +1 -1
  80. package/lib/messaging/browser/window-connection.d.ts +4 -4
  81. package/lib/messaging/browser/window-connection.d.ts.map +1 -1
  82. package/lib/messaging/browser/window-connection.js +42 -59
  83. package/lib/messaging/browser/window-connection.js.map +1 -1
  84. package/lib/messaging/client-call-metrics.d.ts +35 -0
  85. package/lib/messaging/client-call-metrics.d.ts.map +1 -0
  86. package/lib/messaging/client-call-metrics.js +83 -0
  87. package/lib/messaging/client-call-metrics.js.map +1 -0
  88. package/lib/messaging/error.d.ts +6 -1
  89. package/lib/messaging/error.d.ts.map +1 -1
  90. package/lib/messaging/error.js +12 -2
  91. package/lib/messaging/error.js.map +1 -1
  92. package/lib/messaging/handler.d.ts +10 -0
  93. package/lib/messaging/handler.d.ts.map +1 -1
  94. package/lib/messaging/handler.js +1 -1
  95. package/lib/messaging/node/connection.d.ts +1 -17
  96. package/lib/messaging/node/connection.d.ts.map +1 -1
  97. package/lib/messaging/node/connection.js +24 -60
  98. package/lib/messaging/node/connection.js.map +1 -1
  99. package/lib/messaging/proxy-factory.d.ts +3 -1
  100. package/lib/messaging/proxy-factory.d.ts.map +1 -1
  101. package/lib/messaging/proxy-factory.js +75 -162
  102. package/lib/messaging/proxy-factory.js.map +1 -1
  103. package/lib/oss-allowlist.d.ts +14 -0
  104. package/lib/oss-allowlist.d.ts.map +1 -0
  105. package/lib/oss-allowlist.js +8 -0
  106. package/lib/oss-allowlist.js.map +1 -0
  107. package/lib/payment-protocol.d.ts +18 -0
  108. package/lib/payment-protocol.d.ts.map +1 -0
  109. package/lib/payment-protocol.js +13 -0
  110. package/lib/payment-protocol.js.map +1 -0
  111. package/lib/permission.d.ts +10 -3
  112. package/lib/permission.d.ts.map +1 -1
  113. package/lib/permission.js +41 -31
  114. package/lib/permission.js.map +1 -1
  115. package/lib/plans.d.ts +210 -0
  116. package/lib/plans.d.ts.map +1 -0
  117. package/lib/plans.js +605 -0
  118. package/lib/plans.js.map +1 -0
  119. package/lib/protocol.d.ts +196 -83
  120. package/lib/protocol.d.ts.map +1 -1
  121. package/lib/protocol.js +264 -200
  122. package/lib/protocol.js.map +1 -1
  123. package/lib/snapshot-url.d.ts +14 -0
  124. package/lib/snapshot-url.d.ts.map +1 -0
  125. package/lib/snapshot-url.js +26 -0
  126. package/lib/snapshot-url.js.map +1 -0
  127. package/{src/util/without.ts → lib/snapshot-url.spec.d.ts} +2 -3
  128. package/lib/snapshot-url.spec.d.ts.map +1 -0
  129. package/lib/snapshot-url.spec.js +41 -0
  130. package/lib/snapshot-url.spec.js.map +1 -0
  131. package/lib/team-subscription-protocol.d.ts +91 -0
  132. package/lib/team-subscription-protocol.d.ts.map +1 -0
  133. package/lib/team-subscription-protocol.js +74 -0
  134. package/lib/team-subscription-protocol.js.map +1 -0
  135. package/lib/teams-projects-protocol.d.ts +118 -0
  136. package/lib/teams-projects-protocol.d.ts.map +1 -0
  137. package/lib/teams-projects-protocol.js +30 -0
  138. package/lib/teams-projects-protocol.js.map +1 -0
  139. package/lib/typings/globals.d.ts +2 -2
  140. package/lib/typings/globals.d.ts.map +1 -1
  141. package/lib/util/analytics.d.ts +8 -0
  142. package/lib/util/analytics.d.ts.map +1 -0
  143. package/lib/util/analytics.js +88 -0
  144. package/lib/util/analytics.js.map +1 -0
  145. package/lib/util/async-iterator.d.ts.map +1 -1
  146. package/lib/util/async-iterator.js +57 -135
  147. package/lib/util/async-iterator.js.map +1 -1
  148. package/lib/util/cancelable.js +17 -59
  149. package/lib/util/cancelable.js.map +1 -1
  150. package/lib/util/date-time.js +11 -11
  151. package/lib/util/date-time.js.map +1 -1
  152. package/lib/util/deferred.js +10 -12
  153. package/lib/util/deferred.js.map +1 -1
  154. package/lib/util/disposable.d.ts.map +1 -1
  155. package/lib/util/disposable.js +27 -40
  156. package/lib/util/disposable.js.map +1 -1
  157. package/lib/util/event.d.ts.map +1 -1
  158. package/lib/util/event.js +63 -77
  159. package/lib/util/event.js.map +1 -1
  160. package/lib/util/garbage-collected-cache.d.ts +1 -0
  161. package/lib/util/garbage-collected-cache.d.ts.map +1 -1
  162. package/lib/util/garbage-collected-cache.js +27 -47
  163. package/lib/util/garbage-collected-cache.js.map +1 -1
  164. package/lib/util/generate-workspace-id.d.ts +6 -1
  165. package/lib/util/generate-workspace-id.d.ts.map +1 -1
  166. package/lib/util/generate-workspace-id.js +469 -502
  167. package/lib/util/generate-workspace-id.js.map +1 -1
  168. package/lib/util/generate-workspace-id.spec.js +68 -78
  169. package/lib/util/generate-workspace-id.spec.js.map +1 -1
  170. package/lib/util/gitpod-cookie.d.ts +20 -0
  171. package/lib/util/gitpod-cookie.d.ts.map +1 -0
  172. package/lib/util/gitpod-cookie.js +41 -0
  173. package/lib/util/gitpod-cookie.js.map +1 -0
  174. package/lib/util/gitpod-host-url.d.ts +1 -2
  175. package/lib/util/gitpod-host-url.d.ts.map +1 -1
  176. package/lib/util/gitpod-host-url.js +108 -109
  177. package/lib/util/gitpod-host-url.js.map +1 -1
  178. package/lib/util/gitpod-host-url.spec.d.ts +7 -1
  179. package/lib/util/gitpod-host-url.spec.d.ts.map +1 -1
  180. package/lib/util/gitpod-host-url.spec.js +113 -31
  181. package/lib/util/gitpod-host-url.spec.js.map +1 -1
  182. package/lib/util/grpc.d.ts +15 -0
  183. package/lib/util/grpc.d.ts.map +1 -0
  184. package/lib/util/grpc.js +18 -0
  185. package/lib/util/grpc.js.map +1 -0
  186. package/lib/util/jaeger-client-types.d.ts +68 -0
  187. package/lib/util/jaeger-client-types.d.ts.map +1 -0
  188. package/lib/{theia-plugins.js → util/jaeger-client-types.js} +1 -1
  189. package/lib/util/jaeger-client-types.js.map +1 -0
  190. package/lib/util/logging.d.ts +49 -33
  191. package/lib/util/logging.d.ts.map +1 -1
  192. package/lib/util/logging.js +125 -129
  193. package/lib/util/logging.js.map +1 -1
  194. package/lib/util/make-link.js +5 -5
  195. package/lib/util/make-link.js.map +1 -1
  196. package/lib/util/parse-workspace-id.d.ts +10 -0
  197. package/lib/util/parse-workspace-id.d.ts.map +1 -1
  198. package/lib/util/parse-workspace-id.js +31 -7
  199. package/lib/util/parse-workspace-id.js.map +1 -1
  200. package/lib/util/parse-workspace-id.spec.d.ts +4 -0
  201. package/lib/util/parse-workspace-id.spec.d.ts.map +1 -1
  202. package/lib/util/parse-workspace-id.spec.js +123 -84
  203. package/lib/util/parse-workspace-id.spec.js.map +1 -1
  204. package/lib/util/queue.js +16 -55
  205. package/lib/util/queue.js.map +1 -1
  206. package/lib/util/queue.spec.js +147 -288
  207. package/lib/util/queue.spec.js.map +1 -1
  208. package/lib/util/repeat.d.ts +15 -0
  209. package/lib/util/repeat.d.ts.map +1 -0
  210. package/lib/util/repeat.js +55 -0
  211. package/lib/util/repeat.js.map +1 -0
  212. package/lib/util/semaphore.d.ts.map +1 -1
  213. package/lib/util/semaphore.js +15 -46
  214. package/lib/util/semaphore.js.map +1 -1
  215. package/lib/util/skip-if.d.ts.map +1 -1
  216. package/lib/util/skip-if.js +6 -6
  217. package/lib/util/skip-if.js.map +1 -1
  218. package/lib/util/timeutil.d.ts +1 -0
  219. package/lib/util/timeutil.d.ts.map +1 -1
  220. package/lib/util/timeutil.js +35 -17
  221. package/lib/util/timeutil.js.map +1 -1
  222. package/lib/util/timeutil.spec.d.ts.map +1 -1
  223. package/lib/util/timeutil.spec.js +21 -24
  224. package/lib/util/timeutil.spec.js.map +1 -1
  225. package/lib/util/tracing.d.ts +52 -6
  226. package/lib/util/tracing.d.ts.map +1 -1
  227. package/lib/util/tracing.js +197 -64
  228. package/lib/util/tracing.js.map +1 -1
  229. package/lib/util/tracing.spec.d.ts +7 -0
  230. package/lib/util/tracing.spec.d.ts.map +1 -0
  231. package/lib/util/tracing.spec.js +121 -0
  232. package/lib/util/tracing.spec.js.map +1 -0
  233. package/lib/util/workspace-port-authentication.d.ts +7 -7
  234. package/lib/util/workspace-port-authentication.d.ts.map +1 -1
  235. package/lib/util/workspace-port-authentication.js +10 -12
  236. package/lib/util/workspace-port-authentication.js.map +1 -1
  237. package/lib/workspace-cluster.d.ts +76 -0
  238. package/lib/workspace-cluster.d.ts.map +1 -0
  239. package/lib/workspace-cluster.js +31 -0
  240. package/lib/workspace-cluster.js.map +1 -0
  241. package/lib/workspace-instance.d.ts +45 -5
  242. package/lib/workspace-instance.d.ts.map +1 -1
  243. package/lib/wsready.d.ts +1 -1
  244. package/lib/wsready.d.ts.map +1 -1
  245. package/lib/wsready.js +2 -2
  246. package/package.json +32 -18
  247. package/pkg-yarn.lock +18 -10
  248. package/provenance-bundle.jsonl +2 -0
  249. package/src/accounting-protocol.ts +241 -0
  250. package/src/admin-protocol.ts +70 -19
  251. package/src/analytics.ts +52 -0
  252. package/src/auth.ts +2 -2
  253. package/src/context-url.spec.ts +67 -0
  254. package/src/context-url.ts +109 -0
  255. package/src/email-protocol.ts +5 -7
  256. package/src/encryption/container-module.ts +2 -3
  257. package/src/encryption/encryption-engine.spec.ts +9 -8
  258. package/src/encryption/encryption-engine.ts +14 -14
  259. package/src/encryption/encryption-service.ts +4 -5
  260. package/src/encryption/key-provider.ts +16 -19
  261. package/src/env.ts +0 -22
  262. package/src/gitpod-file-parser.spec.ts +55 -61
  263. package/src/gitpod-file-parser.ts +16 -17
  264. package/src/gitpod-service.ts +348 -110
  265. package/src/headless-workspace-log.ts +12 -14
  266. package/src/ide-frontend-service.ts +6 -2
  267. package/src/ide-protocol.ts +119 -0
  268. package/src/index.ts +16 -10
  269. package/src/installation-admin-protocol.ts +42 -0
  270. package/src/license-protocol.ts +12 -6
  271. package/src/messaging/browser/connection.ts +197 -18
  272. package/src/messaging/browser/window-connection.ts +39 -29
  273. package/src/messaging/client-call-metrics.ts +96 -0
  274. package/src/messaging/error.ts +18 -5
  275. package/src/messaging/handler.ts +13 -1
  276. package/src/messaging/node/connection.ts +23 -70
  277. package/src/messaging/proxy-factory.ts +35 -34
  278. package/src/oss-allowlist.ts +15 -0
  279. package/src/payment-protocol.ts +20 -0
  280. package/src/permission.ts +42 -33
  281. package/src/plans.ts +679 -0
  282. package/src/protocol.ts +493 -275
  283. package/src/snapshot-url.spec.ts +27 -0
  284. package/src/snapshot-url.ts +27 -0
  285. package/src/team-subscription-protocol.ts +147 -0
  286. package/src/teams-projects-protocol.ts +153 -0
  287. package/src/typings/globals.ts +4 -4
  288. package/src/util/analytics.ts +109 -0
  289. package/src/util/async-iterator.ts +4 -5
  290. package/src/util/cancelable.ts +3 -3
  291. package/src/util/date-time.ts +8 -8
  292. package/src/util/deferred.ts +6 -6
  293. package/src/util/disposable.ts +3 -6
  294. package/src/util/event.ts +9 -11
  295. package/src/util/garbage-collected-cache.ts +11 -8
  296. package/src/util/generate-workspace-id.spec.ts +37 -10
  297. package/src/util/generate-workspace-id.ts +464 -438
  298. package/src/util/gitpod-cookie.ts +38 -0
  299. package/src/util/gitpod-host-url.spec.ts +59 -8
  300. package/src/util/gitpod-host-url.ts +52 -40
  301. package/src/util/grpc.ts +15 -0
  302. package/src/util/jaeger-client-types.ts +102 -0
  303. package/src/util/logging.ts +145 -72
  304. package/src/util/make-link.ts +6 -7
  305. package/src/util/parse-workspace-id.spec.ts +37 -8
  306. package/src/util/parse-workspace-id.ts +32 -7
  307. package/src/util/queue.spec.ts +28 -26
  308. package/src/util/repeat.ts +45 -0
  309. package/src/util/semaphore.ts +6 -8
  310. package/src/util/skip-if.ts +10 -7
  311. package/src/util/timeutil.spec.ts +14 -15
  312. package/src/util/timeutil.ts +25 -15
  313. package/src/util/tracing.spec.ts +88 -0
  314. package/src/util/tracing.ts +200 -31
  315. package/src/util/workspace-port-authentication.ts +10 -13
  316. package/src/workspace-cluster.ts +107 -0
  317. package/src/workspace-instance.ts +98 -31
  318. package/src/wsready.ts +3 -3
  319. package/data/builtin-theia-plugins.json +0 -372
  320. package/lib/messaging/connection-error-handler.d.ts +0 -27
  321. package/lib/messaging/connection-error-handler.d.ts.map +0 -1
  322. package/lib/messaging/connection-error-handler.js +0 -46
  323. package/lib/messaging/connection-error-handler.js.map +0 -1
  324. package/lib/theia-plugins.d.ts +0 -11
  325. package/lib/theia-plugins.d.ts.map +0 -1
  326. package/lib/theia-plugins.js.map +0 -1
  327. package/lib/util/context-url.d.ts +0 -13
  328. package/lib/util/context-url.d.ts.map +0 -1
  329. package/lib/util/context-url.js +0 -26
  330. package/lib/util/context-url.js.map +0 -1
  331. package/lib/util/context-url.spec.d.ts +0 -10
  332. package/lib/util/context-url.spec.d.ts.map +0 -1
  333. package/lib/util/context-url.spec.js +0 -52
  334. package/lib/util/context-url.spec.js.map +0 -1
  335. package/lib/util/repeater.d.ts +0 -22
  336. package/lib/util/repeater.d.ts.map +0 -1
  337. package/lib/util/repeater.js +0 -118
  338. package/lib/util/repeater.js.map +0 -1
  339. package/lib/util/safe-promise.d.ts +0 -11
  340. package/lib/util/safe-promise.d.ts.map +0 -1
  341. package/lib/util/safe-promise.js +0 -34
  342. package/lib/util/safe-promise.js.map +0 -1
  343. package/lib/util/without.d.ts +0 -7
  344. package/lib/util/without.d.ts.map +0 -1
  345. package/lib/util/without.js.map +0 -1
  346. package/src/messaging/connection-error-handler.ts +0 -62
  347. package/src/theia-plugins.ts +0 -11
  348. package/src/util/context-url.spec.ts +0 -25
  349. package/src/util/context-url.ts +0 -23
  350. package/src/util/jaeger-client.d.ts +0 -105
  351. package/src/util/repeater.ts +0 -49
  352. package/src/util/safe-promise.ts +0 -26
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Copyright (c) 2021 Gitpod GmbH. All rights reserved.
3
+ * Licensed under the GNU Affero General Public License (AGPL).
4
+ * See License-AGPL.txt in the project root for license information.
5
+ */
6
+ export declare namespace PaymentProtocol {
7
+ const UPDATE_GITPOD_SUBSCRIPTION_PATH = "/payment/chargebee";
8
+ }
9
+ export interface PlanCoupon {
10
+ chargebeePlanID: string;
11
+ newPrice: number;
12
+ description: string;
13
+ }
14
+ export interface GithubUpgradeURL {
15
+ url: string;
16
+ planID: number;
17
+ }
18
+ //# sourceMappingURL=payment-protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payment-protocol.d.ts","sourceRoot":"","sources":["../src/payment-protocol.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,yBAAiB,eAAe,CAAC;IACtB,MAAM,+BAA+B,uBAAuB,CAAC;CACvE;AAED,MAAM,WAAW,UAAU;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAClB"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright (c) 2021 Gitpod GmbH. All rights reserved.
4
+ * Licensed under the GNU Affero General Public License (AGPL).
5
+ * See License-AGPL.txt in the project root for license information.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.PaymentProtocol = void 0;
9
+ var PaymentProtocol;
10
+ (function (PaymentProtocol) {
11
+ PaymentProtocol.UPDATE_GITPOD_SUBSCRIPTION_PATH = "/payment/chargebee";
12
+ })(PaymentProtocol = exports.PaymentProtocol || (exports.PaymentProtocol = {}));
13
+ //# sourceMappingURL=payment-protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payment-protocol.js","sourceRoot":"","sources":["../src/payment-protocol.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,IAAiB,eAAe,CAE/B;AAFD,WAAiB,eAAe;IACf,+CAA+B,GAAG,oBAAoB,CAAC;AACxE,CAAC,EAFgB,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAE/B"}
@@ -10,16 +10,18 @@ export declare const Permissions: {
10
10
  "registry-access": undefined;
11
11
  "admin-users": undefined;
12
12
  "admin-workspaces": undefined;
13
+ "admin-projects": undefined;
13
14
  "admin-api": undefined;
14
15
  "ide-settings": undefined;
16
+ "new-workspace-cluster": undefined;
15
17
  };
16
- export declare type PermissionName = keyof (typeof Permissions);
18
+ export declare type PermissionName = keyof typeof Permissions;
17
19
  export declare const Roles: {
18
20
  devops: undefined;
19
21
  viewer: undefined;
20
22
  admin: undefined;
21
23
  };
22
- export declare type RoleName = keyof (typeof Roles);
24
+ export declare type RoleName = keyof typeof Roles;
23
25
  export declare type RoleOrPermission = RoleName | PermissionName;
24
26
  export declare namespace RoleName {
25
27
  const is: (o: any) => o is "devops" | "viewer" | "admin";
@@ -28,6 +30,9 @@ export interface Role {
28
30
  name: RoleName;
29
31
  permissions: PermissionName[];
30
32
  }
33
+ export declare namespace RolesOrPermissions {
34
+ function toPermissionSet(rolesOrPermissions: RoleOrPermission[] | undefined): Set<PermissionName>;
35
+ }
31
36
  export declare namespace Permission {
32
37
  /** The permission to monitor the (live) state of a Gitpod installation */
33
38
  const MONITOR: PermissionName;
@@ -39,11 +44,13 @@ export declare namespace Permission {
39
44
  const ADMIN_USERS: PermissionName;
40
45
  /** The permission for accessing all workspace data */
41
46
  const ADMIN_WORKSPACES: PermissionName;
47
+ /** The permission for accessing all projects data */
48
+ const ADMIN_PROJECTS: PermissionName;
42
49
  /** The permission to access the admin API */
43
50
  const ADMIN_API: PermissionName;
44
51
  /** The permission to access the IDE settings */
45
52
  const IDE_SETTINGS: PermissionName;
46
- const is: (o: any) => o is "monitor" | "enforcement" | "privileged-ws" | "registry-access" | "admin-users" | "admin-workspaces" | "admin-api" | "ide-settings";
53
+ const is: (o: any) => o is "monitor" | "enforcement" | "privileged-ws" | "registry-access" | "admin-users" | "admin-workspaces" | "admin-projects" | "admin-api" | "ide-settings" | "new-workspace-cluster";
47
54
  const all: () => PermissionName[];
48
55
  }
49
56
  export declare namespace Role {
@@ -1 +1 @@
1
- {"version":3,"file":"permission.d.ts","sourceRoot":"","sources":["../src/permission.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,eAAO,MAAM,WAAW;;;;;;;;;CASvB,CAAC;AACF,oBAAY,cAAc,GAAG,MAAM,CAAC,OAAO,WAAW,CAAC,CAAC;AACxD,eAAO,MAAM,KAAK;;;;CAAkE,CAAC;AACrF,oBAAY,QAAQ,GAAG,MAAM,CAAC,OAAO,KAAK,CAAC,CAAC;AAC5C,oBAAY,gBAAgB,GAAG,QAAQ,GAAG,cAAc,CAAC;AAEzD,yBAAiB,QAAQ,CAAC;IACf,MAAM,EAAE,MAAO,GAAG,uCAGxB,CAAA;CACJ;AAED,MAAM,WAAW,IAAI;IACjB,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,EAAE,cAAc,EAAE,CAAC;CACjC;AAED,yBAAiB,UAAU,CAAC;IACxB,0EAA0E;IACnE,MAAM,OAAO,EAAE,cAA0B,CAAC;IAEjD,uEAAuE;IAChE,MAAM,WAAW,EAAE,cAA8B,CAAC;IAEzD,sGAAsG;IAC/F,MAAM,eAAe,EAAE,cAAkC,CAAC;IAEjE,iDAAiD;IAC1C,MAAM,WAAW,EAAE,cAA8B,CAAC;IAEzD,sDAAsD;IAC/C,MAAM,gBAAgB,EAAE,cAAmC,CAAC;IAEnE,6CAA6C;IACtC,MAAM,SAAS,EAAE,cAA4B,CAAC;IAErD,gDAAgD;IACzC,MAAM,YAAY,EAAE,cAA+B,CAAC;IAEpD,MAAM,EAAE,MAAO,GAAG,6IAGxB,CAAA;IAEM,MAAM,GAAG,QAAO,cAAc,EAIpC,CAAC;CACL;AAED,yBAAiB,IAAI,CAAC;IAClB,iDAAiD;IAC1C,MAAM,MAAM,EAAE,IAQpB,CAAC;IAEF,kEAAkE;IAC3D,MAAM,MAAM,EAAE,IAMpB,CAAC;IAEK,MAAM,KAAK,EAAE,IAQnB,CAAA;IAEM,MAAM,SAAS,SAAU,QAAQ,KAAG,IAM1C,CAAC;IAEK,MAAM,GAAG,QAAO,IAAI,EAI1B,CAAC;CACL"}
1
+ {"version":3,"file":"permission.d.ts","sourceRoot":"","sources":["../src/permission.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,eAAO,MAAM,WAAW;;;;;;;;;;;CAWvB,CAAC;AACF,oBAAY,cAAc,GAAG,MAAM,OAAO,WAAW,CAAC;AACtD,eAAO,MAAM,KAAK;;;;CAA6D,CAAC;AAChF,oBAAY,QAAQ,GAAG,MAAM,OAAO,KAAK,CAAC;AAC1C,oBAAY,gBAAgB,GAAG,QAAQ,GAAG,cAAc,CAAC;AAEzD,yBAAiB,QAAQ,CAAC;IACf,MAAM,EAAE,MAAO,GAAG,uCAExB,CAAC;CACL;AAED,MAAM,WAAW,IAAI;IACjB,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,EAAE,cAAc,EAAE,CAAC;CACjC;AAED,yBAAiB,kBAAkB,CAAC;IAChC,SAAgB,eAAe,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,GAAG,SAAS,GAAG,GAAG,CAAC,cAAc,CAAC,CAYvG;CACJ;AAED,yBAAiB,UAAU,CAAC;IACxB,0EAA0E;IACnE,MAAM,OAAO,EAAE,cAA0B,CAAC;IAEjD,uEAAuE;IAChE,MAAM,WAAW,EAAE,cAA8B,CAAC;IAEzD,sGAAsG;IAC/F,MAAM,eAAe,EAAE,cAAkC,CAAC;IAEjE,iDAAiD;IAC1C,MAAM,WAAW,EAAE,cAA8B,CAAC;IAEzD,sDAAsD;IAC/C,MAAM,gBAAgB,EAAE,cAAmC,CAAC;IAEnE,qDAAqD;IAC9C,MAAM,cAAc,EAAE,cAAiC,CAAC;IAE/D,6CAA6C;IACtC,MAAM,SAAS,EAAE,cAA4B,CAAC;IAErD,gDAAgD;IACzC,MAAM,YAAY,EAAE,cAA+B,CAAC;IAEpD,MAAM,EAAE,MAAO,GAAG,0LAExB,CAAC;IAEK,MAAM,GAAG,QAAO,cAAc,EAEpC,CAAC;CACL;AAED,yBAAiB,IAAI,CAAC;IAClB,iDAAiD;IAC1C,MAAM,MAAM,EAAE,IAGpB,CAAC;IAEF,kEAAkE;IAC3D,MAAM,MAAM,EAAE,IAGpB,CAAC;IAEK,MAAM,KAAK,EAAE,IASnB,CAAC;IAEK,MAAM,SAAS,SAAU,QAAQ,KAAG,IAM1C,CAAC;IAEK,MAAM,GAAG,QAAO,IAAI,EAI1B,CAAC;CACL"}
package/lib/permission.js CHANGED
@@ -5,26 +5,44 @@
5
5
  * See License-AGPL.txt in the project root for license information.
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.Role = exports.Permission = exports.RoleName = exports.Roles = exports.Permissions = void 0;
8
+ exports.Role = exports.Permission = exports.RolesOrPermissions = exports.RoleName = exports.Roles = exports.Permissions = void 0;
9
9
  // see below for explanation
10
10
  exports.Permissions = {
11
- "monitor": undefined,
12
- "enforcement": undefined,
11
+ monitor: undefined,
12
+ enforcement: undefined,
13
13
  "privileged-ws": undefined,
14
14
  "registry-access": undefined,
15
15
  "admin-users": undefined,
16
16
  "admin-workspaces": undefined,
17
+ "admin-projects": undefined,
17
18
  "admin-api": undefined,
18
- "ide-settings": undefined
19
+ "ide-settings": undefined,
20
+ "new-workspace-cluster": undefined,
19
21
  };
20
- exports.Roles = { "devops": undefined, "viewer": undefined, "admin": undefined };
22
+ exports.Roles = { devops: undefined, viewer: undefined, admin: undefined };
21
23
  var RoleName;
22
24
  (function (RoleName) {
23
- RoleName.is = function (o) {
24
- return typeof (o) === 'string'
25
- && Role.all().some(function (r) { return r.name === o; });
25
+ RoleName.is = (o) => {
26
+ return typeof o === "string" && Role.all().some((r) => r.name === o);
26
27
  };
27
28
  })(RoleName = exports.RoleName || (exports.RoleName = {}));
29
+ var RolesOrPermissions;
30
+ (function (RolesOrPermissions) {
31
+ function toPermissionSet(rolesOrPermissions) {
32
+ rolesOrPermissions = rolesOrPermissions || [];
33
+ const permissions = new Set();
34
+ for (const rop of rolesOrPermissions) {
35
+ if (Permission.is(rop)) {
36
+ permissions.add(rop);
37
+ }
38
+ else if (RoleName.is(rop)) {
39
+ Role.getByName(rop).permissions.forEach((p) => permissions.add(p));
40
+ }
41
+ }
42
+ return permissions;
43
+ }
44
+ RolesOrPermissions.toPermissionSet = toPermissionSet;
45
+ })(RolesOrPermissions = exports.RolesOrPermissions || (exports.RolesOrPermissions = {}));
28
46
  var Permission;
29
47
  (function (Permission) {
30
48
  /** The permission to monitor the (live) state of a Gitpod installation */
@@ -37,18 +55,17 @@ var Permission;
37
55
  Permission.ADMIN_USERS = "admin-users";
38
56
  /** The permission for accessing all workspace data */
39
57
  Permission.ADMIN_WORKSPACES = "admin-workspaces";
58
+ /** The permission for accessing all projects data */
59
+ Permission.ADMIN_PROJECTS = "admin-projects";
40
60
  /** The permission to access the admin API */
41
61
  Permission.ADMIN_API = "admin-api";
42
62
  /** The permission to access the IDE settings */
43
63
  Permission.IDE_SETTINGS = "ide-settings";
44
- Permission.is = function (o) {
45
- return typeof (o) === 'string'
46
- && Permission.all().some(function (p) { return p === o; });
64
+ Permission.is = (o) => {
65
+ return typeof o === "string" && Permission.all().some((p) => p === o);
47
66
  };
48
- Permission.all = function () {
49
- return Object.keys(Permission)
50
- .map(function (k) { return Permission[k]; })
51
- .filter(function (k) { return typeof (k) === 'string'; });
67
+ Permission.all = () => {
68
+ return Object.keys(exports.Permissions);
52
69
  };
53
70
  })(Permission = exports.Permission || (exports.Permission = {}));
54
71
  var Role;
@@ -56,41 +73,34 @@ var Role;
56
73
  /** The default role for all Gitpod developers */
57
74
  Role.DEVOPS = {
58
75
  name: "devops",
59
- permissions: [
60
- Permission.MONITOR,
61
- Permission.ENFORCEMENT,
62
- Permission.REGISTRY_ACCESS,
63
- Permission.IDE_SETTINGS
64
- ]
76
+ permissions: [Permission.MONITOR, Permission.ENFORCEMENT, Permission.REGISTRY_ACCESS, Permission.IDE_SETTINGS],
65
77
  };
66
78
  /** A role for people that are allowed to view Gitpod internals */
67
79
  Role.VIEWER = {
68
80
  name: "viewer",
69
- permissions: [
70
- Permission.MONITOR,
71
- Permission.REGISTRY_ACCESS,
72
- ]
81
+ permissions: [Permission.MONITOR, Permission.REGISTRY_ACCESS],
73
82
  };
74
83
  Role.ADMIN = {
75
84
  name: "admin",
76
85
  permissions: [
77
86
  Permission.ADMIN_USERS,
78
87
  Permission.ADMIN_WORKSPACES,
88
+ Permission.ADMIN_PROJECTS,
79
89
  Permission.ADMIN_API,
80
90
  Permission.ENFORCEMENT,
81
- ]
91
+ ],
82
92
  };
83
- Role.getByName = function (name) {
84
- var result = Role.all().find(function (r) { return r.name === name; });
93
+ Role.getByName = (name) => {
94
+ const result = Role.all().find((r) => r.name === name);
85
95
  if (!result) {
86
96
  throw Error("Unknown RoleName: " + name);
87
97
  }
88
98
  return result;
89
99
  };
90
- Role.all = function () {
100
+ Role.all = () => {
91
101
  return Object.keys(Role)
92
- .map(function (k) { return Role[k]; })
93
- .filter(function (k) { return typeof (k) === 'object'; });
102
+ .map((k) => Role[k])
103
+ .filter((k) => typeof k === "object");
94
104
  };
95
105
  })(Role = exports.Role || (exports.Role = {}));
96
106
  //# sourceMappingURL=permission.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"permission.js","sourceRoot":"","sources":["../src/permission.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"permission.js","sourceRoot":"","sources":["../src/permission.ts"],"names":[],"mappings":"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"}
package/lib/plans.d.ts ADDED
@@ -0,0 +1,210 @@
1
+ /**
2
+ * Copyright (c) 2021 Gitpod GmbH. All rights reserved.
3
+ * Licensed under the GNU Affero General Public License (AGPL).
4
+ * See License-AGPL.txt in the project root for license information.
5
+ */
6
+ export declare type Currency = "USD" | "EUR";
7
+ export declare namespace Currency {
8
+ const getAll: () => Currency[];
9
+ const getSymbol: (c: Currency) => "$" | "€";
10
+ }
11
+ /**
12
+ * Different plans of the same type MAY have different prices ($/€, for example) but MUST have the same feature set.
13
+ */
14
+ export declare type PlanType = "free" | "free-50" | "free-open-source" | "student" | "basic" | "personal" | "professional" | "professional-new";
15
+ export declare type HoursPerMonthType = number | "unlimited";
16
+ export interface Plan {
17
+ chargebeeId: string;
18
+ githubId?: number;
19
+ githubPlanNumber?: number;
20
+ name: string;
21
+ currency: Currency;
22
+ /** In full currencies (Euro, US Dollar, ...) */
23
+ pricePerMonth: number;
24
+ hoursPerMonth: HoursPerMonthType;
25
+ type: PlanType;
26
+ team?: boolean;
27
+ }
28
+ export declare namespace Plan {
29
+ const is: (o: any) => o is Plan;
30
+ }
31
+ export declare const MAX_PARALLEL_WORKSPACES = 16;
32
+ export interface Coupon {
33
+ id: string;
34
+ isGithubStudentCoupon?: boolean;
35
+ }
36
+ export declare namespace Coupon {
37
+ const is: (o: any) => o is Coupon;
38
+ }
39
+ export declare namespace Coupons {
40
+ const INTERNAL_GITPOD_GHSP: Coupon;
41
+ const INTERNAL_GITPOD_GHSP_2: Coupon;
42
+ const GITHUBSTUDENTPACKFORFACULTY: Coupon;
43
+ const isGithubStudentCoupon: (id: string) => boolean | undefined;
44
+ const getAllCoupons: () => Coupon[];
45
+ }
46
+ export declare const ABSOLUTE_MAX_USAGE: number;
47
+ /**
48
+ * Version history:
49
+ * - v1:
50
+ * - Free
51
+ * - Basic
52
+ * - Professional
53
+ * - Team Professional
54
+ * - v2:
55
+ * - Free
56
+ * - Personal
57
+ * - Unlimited: rebranded professional with unlimited hours
58
+ * - Team Unlimited: rebranded professional with unlimited hours
59
+ * - dropped: Basic
60
+ * - v2.5:
61
+ * + Student Unlimited
62
+ * + Team Unlimited Student
63
+ * - V3:
64
+ * - Free: reduced to 50h (stays default, but not advertised directly anymore)
65
+ * - Personal (8/9)
66
+ * - Professional (23/25)
67
+ * - Unlimited (35/39)
68
+ * - v4:
69
+ * - Professional Open Source (free)
70
+ * - v5:
71
+ * - Unleashed: rebranded Unlimited
72
+ */
73
+ export declare namespace Plans {
74
+ /**
75
+ * The old default plan (v1): 100h hours for public repos
76
+ */
77
+ const FREE: Plan;
78
+ /**
79
+ * The new default plan (v3): 50h hours for public repos
80
+ */
81
+ const FREE_50: Plan;
82
+ /**
83
+ * Users created after this date get the FREE_50 plan (v3) instead of the (old) FREE plan (v1)
84
+ */
85
+ const FREE_50_START_DATE = "2019-12-19T00:00:00.000Z";
86
+ /**
87
+ * The 'Professional Open Source' plan was introduced to offer professional open-souce developers unlimited hours.
88
+ */
89
+ const FREE_OPEN_SOURCE: Plan;
90
+ /**
91
+ * The 'Student Unleashed' plans were introduced to give students access to the highly-priced unlimited plans.
92
+ */
93
+ const PROFESSIONAL_STUDENT_EUR: Plan;
94
+ /**
95
+ * The 'Student Unleashed' plans were introduced to give students access to the highly-priced unlimited plans.
96
+ */
97
+ const PROFESSIONAL_STUDENT_USD: Plan;
98
+ /**
99
+ * The 'Student Unleashed' plans were introduced to give students access to the highly-priced unlimited plans.
100
+ */
101
+ const TEAM_PROFESSIONAL_STUDENT_EUR: Plan;
102
+ /**
103
+ * The 'Student Unleashed' plans were introduced to give students access to the highly-priced unlimited plans.
104
+ */
105
+ const TEAM_PROFESSIONAL_STUDENT_USD: Plan;
106
+ /**
107
+ * The 'basic' plan was the original differentiator between FREE and Professional (v1) but got discarded soon.
108
+ */
109
+ const BASIC_EUR: Plan;
110
+ /**
111
+ * The 'basic' plan was the original differentiator between FREE and Professional (v1) but got discarded soon.
112
+ */
113
+ const BASIC_USD: Plan;
114
+ /**
115
+ * The 'personal' plan was introduced to superseed the 'basic' plan (introduced with v2) to be more attractive to hobbyists.
116
+ */
117
+ const PERSONAL_EUR: Plan;
118
+ /**
119
+ * The 'personal' plan was introduced to superseed the 'basic' plan (introduced with v2) to be more attractive to hobbyists.
120
+ */
121
+ const PERSONAL_USD: Plan;
122
+ /**
123
+ * This is the 'new' Professional plan (v3), which is meant to fit well between Personal (9$/8€) on the left and
124
+ * Unleashed (39$/35€) on the right.
125
+ */
126
+ const PROFESSIONAL_NEW_EUR: Plan;
127
+ /**
128
+ * This is the 'new' Professional plan (v3), which is meant to fit well between Personal (9$/8€) on the left and
129
+ * Unleashed (39$/35€) on the right.
130
+ */
131
+ const PROFESSIONAL_NEW_USD: Plan;
132
+ /**
133
+ * This is the 'new' Team Professional plan (v3), which is meant to fit well between Personal (9$/8€) on the left and
134
+ * Unleashed (39$/35€) on the right.
135
+ */
136
+ const TEAM_PROFESSIONAL_NEW_EUR: Plan;
137
+ /**
138
+ * This is the 'new' Team Professional plan (v3), which is meant to fit well between Personal (9$/8€) on the left and
139
+ * Unleashed (39$/35€) on the right.
140
+ */
141
+ const TEAM_PROFESSIONAL_NEW_USD: Plan;
142
+ /**
143
+ * This is the 'Unleashed' plan (v1, rebranded v2, v5)
144
+ * It was originally introduced as 'Professional', and we cannot update the ids, so it stays that way in the code.
145
+ */
146
+ const PROFESSIONAL_EUR: Plan;
147
+ /**
148
+ * This is the 'Unleashed' plan (v1, rebranded v2, v5)
149
+ * It was originally introduced as 'Professional', and we cannot update the ids, so it stays that way in the code.
150
+ */
151
+ const PROFESSIONAL_USD: Plan;
152
+ /**
153
+ * This is the Team-'Unleashed' plan (v1, rebranded v2, v5)
154
+ * It was originally introduced as 'Professional', and we cannot update the ids, so it stays that way in the code.
155
+ */
156
+ const TEAM_PROFESSIONAL_USD: Plan;
157
+ /**
158
+ * This is the Team-'Unleashed' plan (v1, rebranded v2, v5)
159
+ * It was originally introduced as 'Professional', and we cannot update the ids, so it stays that way in the code.
160
+ */
161
+ const TEAM_PROFESSIONAL_EUR: Plan;
162
+ /**
163
+ * This function returns all individual plans that might be active (= we have subscriptions for) at the moment
164
+ */
165
+ function getAvailablePlans(currency: Currency): Plan[];
166
+ const getAvailableTeamPlans: (currency?: Currency | undefined) => Plan[];
167
+ function getById(id: string | undefined): Plan | undefined;
168
+ function getByTypeAndCurrency(type: PlanType, currency: Currency): Plan | undefined;
169
+ function getProPlan(currency: Currency): Plan;
170
+ function getNewProPlan(currency: Currency): Plan;
171
+ function getStudentProPlan(currency: Currency): Plan;
172
+ function getBasicPlan(currency: Currency): Plan;
173
+ function getPersonalPlan(currency: Currency): Plan;
174
+ function getFreePlan(userCreationDate: string): Plan;
175
+ function isFreePlan(chargebeeId: string | undefined): boolean;
176
+ function isFreeNonTransientPlan(chargebeeId: string | undefined): boolean;
177
+ function getHoursPerMonth(plan: Plan): number;
178
+ /**
179
+ * Returns the maximum number of parallel workspaces for the given plan
180
+ * @param plan
181
+ */
182
+ function getParallelWorkspacesById(planId: string | undefined): number;
183
+ /**
184
+ * Returns the maximum number of parallel workspaces for the given plan
185
+ * @param plan
186
+ */
187
+ function getParallelWorkspaces(plan: Plan | undefined): number;
188
+ /**
189
+ * Returns the preferred plan type with the next higher arity
190
+ * @param type
191
+ */
192
+ function getNextHigherPlanType(type: PlanType): PlanType;
193
+ /**
194
+ * This imposes a partial order on the plan types
195
+ * @param planTypeA
196
+ * @param planTypeB
197
+ */
198
+ function compareTypes(planTypeA: PlanType, planTypeB: PlanType): 0 | 1 | -1;
199
+ function subscriptionChange(fromType: PlanType, toType: PlanType): "upgrade" | "downgrade" | "none";
200
+ interface Feature {
201
+ title: string;
202
+ emph?: boolean;
203
+ link?: string;
204
+ tooltip?: string;
205
+ }
206
+ namespace Feature {
207
+ const getFeaturesFor: (p: Plan) => Feature[];
208
+ }
209
+ }
210
+ //# sourceMappingURL=plans.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plans.d.ts","sourceRoot":"","sources":["../src/plans.ts"],"names":[],"mappings":"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"}