@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
package/lib/protocol.js CHANGED
@@ -4,202 +4,231 @@
4
4
  * Licensed under the GNU Affero General Public License (AGPL).
5
5
  * See License-AGPL.txt in the project root for license information.
6
6
  */
7
- var __assign = (this && this.__assign) || function () {
8
- __assign = Object.assign || function(t) {
9
- for (var s, i = 1, n = arguments.length; i < n; i++) {
10
- s = arguments[i];
11
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
12
- t[p] = s[p];
13
- }
14
- return t;
15
- };
16
- return __assign.apply(this, arguments);
17
- };
18
- var __values = (this && this.__values) || function(o) {
19
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
20
- if (m) return m.call(o);
21
- if (o && typeof o.length === "number") return {
22
- next: function () {
23
- if (o && i >= o.length) o = void 0;
24
- return { value: o && o[i++], done: !o };
25
- }
26
- };
27
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
28
- };
29
- var __read = (this && this.__read) || function (o, n) {
30
- var m = typeof Symbol === "function" && o[Symbol.iterator];
31
- if (!m) return o;
32
- var i = m.call(o), r, ar = [], e;
33
- try {
34
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
35
- }
36
- catch (error) { e = { error: error }; }
37
- finally {
38
- try {
39
- if (r && !r.done && (m = i["return"])) m.call(i);
40
- }
41
- finally { if (e) throw e.error; }
42
- }
43
- return ar;
44
- };
45
7
  Object.defineProperty(exports, "__esModule", { value: true });
46
- exports.TheiaPlugin = exports.WorkspaceCreationResult = exports.CreateWorkspaceMode = exports.WorkspaceInstancePortsChangedEvent = exports.Repository = exports.NavigatorContext = exports.IssueContext = exports.PullRequestContext = exports.CommitContext = exports.RefType = exports.WorkspaceProbeContext = exports.WithEnvvarsContext = exports.PrebuiltWorkspaceContext = exports.StartPrebuildContext = exports.SnapshotContext = exports.WithPrebuild = exports.WithSnapshot = exports.WorkspaceContext = exports.ExternalImageConfigFile = exports.ImageConfigFile = exports.ImageConfigString = exports.WorkspaceImageBuild = exports.TaskConfig = exports.PortRangeConfig = exports.PortConfig = exports.PrebuiltWorkspace = exports.WorkspaceImageSourceReference = exports.WorkspaceImageSourceDocker = exports.GithubAppPrebuildConfig = exports.Workspace = exports.Identity = exports.GitpodTokenType = exports.UserEnvVar = exports.WorkspaceFeatureFlags = exports.User = void 0;
8
+ exports.TheiaPlugin = exports.AuthProviderEntry = exports.WorkspaceCreationResult = exports.CreateWorkspaceMode = exports.WorkspaceInfo = exports.WorkspaceInstancePortsChangedEvent = exports.Repository = exports.NavigatorContext = exports.IssueContext = exports.PullRequestContext = exports.CommitContext = exports.AdditionalContentContext = exports.RefType = exports.WorkspaceProbeContext = exports.WithEnvvarsContext = exports.WithReferrerContext = exports.PrebuiltWorkspaceContext = exports.StartPrebuildContext = exports.SnapshotContext = exports.WithDefaultConfig = exports.WithPrebuild = exports.WithSnapshot = exports.WorkspaceContext = exports.ExternalImageConfigFile = exports.ImageConfigFile = exports.ImageConfigString = exports.WorkspaceImageBuild = exports.TaskConfig = exports.PortRangeConfig = exports.PortConfig = exports.PrebuiltWorkspace = exports.WorkspaceImageSourceReference = exports.WorkspaceImageSourceDocker = exports.GithubAppPrebuildConfig = exports.Workspace = exports.Identity = exports.GitpodTokenType = exports.UserEnvVar = exports.WorkspaceFeatureFlags = exports.User = void 0;
9
+ const crypto_1 = require("crypto");
47
10
  var User;
48
11
  (function (User) {
49
12
  function is(data) {
50
- return data
51
- && data.hasOwnProperty('id')
52
- && data.hasOwnProperty('identities');
13
+ return data && data.hasOwnProperty("id") && data.hasOwnProperty("identities");
53
14
  }
54
15
  User.is = is;
55
16
  function getIdentity(user, authProviderId) {
56
- return user.identities.find(function (id) { return id.authProviderId === authProviderId; });
17
+ return user.identities.find((id) => id.authProviderId === authProviderId);
57
18
  }
58
19
  User.getIdentity = getIdentity;
59
20
  function censor(user) {
60
- var res = __assign({}, user);
61
- delete (res.additionalData);
62
- res.identities = res.identities.map(function (i) {
63
- delete (i.tokens);
21
+ const res = Object.assign({}, user);
22
+ delete res.additionalData;
23
+ res.identities = res.identities.map((i) => {
24
+ delete i.tokens;
64
25
  // The user field is not in the Identity shape, but actually exists on DBIdentity.
65
26
  // Trying to push this object out via JSON RPC will fail because of the cyclic nature
66
27
  // of this field.
67
- delete (i.user);
28
+ delete i.user;
68
29
  return i;
69
30
  });
70
31
  return res;
71
32
  }
72
33
  User.censor = censor;
34
+ /**
35
+ * Tries to return the primaryEmail of the first identity this user signed up with.
36
+ * @param user
37
+ * @returns A primaryEmail, or undefined if there is none.
38
+ */
73
39
  function getPrimaryEmail(user) {
74
- var identities = user.identities.filter(function (i) { return !!i.primaryEmail; });
40
+ const identities = user.identities.filter((i) => !!i.primaryEmail);
75
41
  if (identities.length <= 0) {
76
- throw new Error("No identity with primary email for user: " + user.id + "!");
42
+ return undefined;
77
43
  }
78
- return identities[0].primaryEmail;
44
+ return identities[0].primaryEmail || undefined;
79
45
  }
80
46
  User.getPrimaryEmail = getPrimaryEmail;
81
47
  function getName(user) {
82
- var e_1, _a;
83
- var name = user.fullName || user.name;
48
+ const name = user.fullName || user.name;
84
49
  if (name) {
85
50
  return name;
86
51
  }
87
- try {
88
- for (var _b = __values(user.identities), _c = _b.next(); !_c.done; _c = _b.next()) {
89
- var id = _c.value;
90
- if (id.authName !== "") {
91
- return id.authName;
92
- }
93
- }
94
- }
95
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
96
- finally {
97
- try {
98
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
52
+ for (const id of user.identities) {
53
+ if (id.authName !== "") {
54
+ return id.authName;
99
55
  }
100
- finally { if (e_1) throw e_1.error; }
101
56
  }
102
57
  return undefined;
103
58
  }
104
59
  User.getName = getName;
60
+ function hasPreferredIde(user) {
61
+ var _a, _b, _c, _d;
62
+ return (typeof ((_b = (_a = user === null || user === void 0 ? void 0 : user.additionalData) === null || _a === void 0 ? void 0 : _a.ideSettings) === null || _b === void 0 ? void 0 : _b.defaultIde) !== "undefined" ||
63
+ typeof ((_d = (_c = user === null || user === void 0 ? void 0 : user.additionalData) === null || _c === void 0 ? void 0 : _c.ideSettings) === null || _d === void 0 ? void 0 : _d.useLatestVersion) !== "undefined");
64
+ }
65
+ User.hasPreferredIde = hasPreferredIde;
66
+ function isOnboardingUser(user) {
67
+ return !hasPreferredIde(user);
68
+ }
69
+ User.isOnboardingUser = isOnboardingUser;
70
+ function migrationIDESettings(user) {
71
+ var _a;
72
+ if (!((_a = user === null || user === void 0 ? void 0 : user.additionalData) === null || _a === void 0 ? void 0 : _a.ideSettings) ||
73
+ Object.keys(user.additionalData.ideSettings).length === 0 ||
74
+ user.additionalData.ideSettings.settingVersion === "2.0") {
75
+ return;
76
+ }
77
+ const newIDESettings = {
78
+ settingVersion: "2.0",
79
+ };
80
+ const ideSettings = user.additionalData.ideSettings;
81
+ if (ideSettings.useDesktopIde) {
82
+ if (ideSettings.defaultDesktopIde === "code-desktop") {
83
+ newIDESettings.defaultIde = "code-desktop";
84
+ }
85
+ else if (ideSettings.defaultDesktopIde === "code-desktop-insiders") {
86
+ newIDESettings.defaultIde = "code-desktop";
87
+ newIDESettings.useLatestVersion = true;
88
+ }
89
+ else {
90
+ newIDESettings.defaultIde = ideSettings.defaultDesktopIde;
91
+ newIDESettings.useLatestVersion = ideSettings.useLatestVersion;
92
+ }
93
+ }
94
+ else {
95
+ const useLatest = ideSettings.defaultIde === "code-latest";
96
+ newIDESettings.defaultIde = "code";
97
+ newIDESettings.useLatestVersion = useLatest;
98
+ }
99
+ user.additionalData.ideSettings = newIDESettings;
100
+ }
101
+ User.migrationIDESettings = migrationIDESettings;
105
102
  })(User = exports.User || (exports.User = {}));
106
103
  /**
107
104
  * The values of this type MUST MATCH enum values in WorkspaceFeatureFlag from ws-manager/client/core_pb.d.ts
108
105
  * If they don't we'll break things during workspace startup.
109
106
  */
110
- exports.WorkspaceFeatureFlags = { "registry_facade": undefined, "full_workspace_backup": undefined, "fixed_resources": undefined, "user_namespace": undefined };
107
+ exports.WorkspaceFeatureFlags = {
108
+ full_workspace_backup: undefined,
109
+ fixed_resources: undefined,
110
+ persistent_volume_claim: undefined,
111
+ };
111
112
  var UserEnvVar;
112
113
  (function (UserEnvVar) {
114
+ /**
115
+ * @param variable
116
+ * @returns Either a string containing an error message or undefined.
117
+ */
118
+ function validate(variable) {
119
+ const name = variable.name;
120
+ const pattern = variable.repositoryPattern;
121
+ if (name.trim() === "") {
122
+ return "Name must not be empty.";
123
+ }
124
+ if (name.length > 255) {
125
+ return "Name too long. Maximum name length is 255 characters.";
126
+ }
127
+ if (!/^[a-zA-Z_]+[a-zA-Z0-9_]*$/.test(name)) {
128
+ return "Name must match /^[a-zA-Z_]+[a-zA-Z0-9_]*$/.";
129
+ }
130
+ if (variable.value.trim() === "") {
131
+ return "Value must not be empty.";
132
+ }
133
+ if (variable.value.length > 32767) {
134
+ return "Value too long. Maximum value length is 32767 characters.";
135
+ }
136
+ if (pattern.trim() === "") {
137
+ return "Scope must not be empty.";
138
+ }
139
+ const split = pattern.split("/");
140
+ if (split.length < 2) {
141
+ return "A scope must use the form 'organization/repo'.";
142
+ }
143
+ for (const name of split) {
144
+ if (name !== "*") {
145
+ if (!/^[a-zA-Z0-9_\-.\*]+$/.test(name)) {
146
+ return "Invalid scope segment. Only ASCII characters, numbers, -, _, . or * are allowed.";
147
+ }
148
+ }
149
+ }
150
+ return undefined;
151
+ }
152
+ UserEnvVar.validate = validate;
153
+ // DEPRECATED: Use ProjectEnvVar instead of repositoryPattern - https://github.com/gitpod-com/gitpod/issues/5322
113
154
  function normalizeRepoPattern(pattern) {
114
155
  return pattern.toLocaleLowerCase();
115
156
  }
116
157
  UserEnvVar.normalizeRepoPattern = normalizeRepoPattern;
158
+ // DEPRECATED: Use ProjectEnvVar instead of repositoryPattern - https://github.com/gitpod-com/gitpod/issues/5322
159
+ function score(value) {
160
+ // We use a score to enforce precedence:
161
+ // value/value = 0
162
+ // value/* = 1
163
+ // */value = 2
164
+ // */* = 3
165
+ // #/# = 4 (used for env vars passed through the URL)
166
+ // the lower the score, the higher the precedence.
167
+ const [ownerPattern, repoPattern] = splitRepositoryPattern(value.repositoryPattern);
168
+ let score = 0;
169
+ if (repoPattern == "*") {
170
+ score += 1;
171
+ }
172
+ if (ownerPattern == "*") {
173
+ score += 2;
174
+ }
175
+ if (ownerPattern == "#" || repoPattern == "#") {
176
+ score = 4;
177
+ }
178
+ return score;
179
+ }
180
+ UserEnvVar.score = score;
181
+ // DEPRECATED: Use ProjectEnvVar instead of repositoryPattern - https://github.com/gitpod-com/gitpod/issues/5322
117
182
  function filter(vars, owner, repo) {
118
- var e_2, _a, e_3, _b;
119
- var result = vars.filter(function (e) {
120
- var _a = __read(splitRepositoryPattern(e.repositoryPattern), 2), ownerPattern = _a[0], repoPattern = _a[1];
121
- if (ownerPattern !== '*' && ownerPattern !== '#' && (!!owner && ownerPattern !== owner.toLocaleLowerCase())) {
183
+ let result = vars.filter((e) => {
184
+ const [ownerPattern, repoPattern] = splitRepositoryPattern(e.repositoryPattern);
185
+ if (ownerPattern !== "*" && ownerPattern !== "#" && !!owner && ownerPattern !== owner.toLocaleLowerCase()) {
122
186
  return false;
123
187
  }
124
- if (repoPattern !== '*' && repoPattern !== '#' && (!!repo && repoPattern !== repo.toLocaleLowerCase())) {
188
+ if (repoPattern !== "*" && repoPattern !== "#" && !!repo && repoPattern !== repo.toLocaleLowerCase()) {
125
189
  return false;
126
190
  }
127
191
  return true;
128
192
  });
129
- var resmap = new Map();
130
- result.forEach(function (e) {
131
- var l = (resmap.get(e.name) || []);
193
+ const resmap = new Map();
194
+ result.forEach((e) => {
195
+ const l = resmap.get(e.name) || [];
132
196
  l.push(e);
133
197
  resmap.set(e.name, l);
134
198
  });
135
199
  result = [];
136
- try {
137
- for (var _c = __values(resmap.keys()), _d = _c.next(); !_d.done; _d = _c.next()) {
138
- var name_1 = _d.value;
139
- var candidates = resmap.get(name_1);
140
- if (!candidates) {
141
- // not sure how this can happen, but so be it
142
- continue;
143
- }
144
- if (candidates.length == 1) {
145
- result.push(candidates[0]);
146
- continue;
147
- }
148
- var minscore = 10;
149
- var bestCandidate = void 0;
150
- try {
151
- for (var candidates_1 = (e_3 = void 0, __values(candidates)), candidates_1_1 = candidates_1.next(); !candidates_1_1.done; candidates_1_1 = candidates_1.next()) {
152
- var e = candidates_1_1.value;
153
- // We use a score to enforce precedence:
154
- // value/value = 0
155
- // value/* = 1
156
- // */value = 2
157
- // */* = 3
158
- // #/# = 4 (used for env vars passed through the URL)
159
- // the lower the score, the higher the precedence.
160
- var _e = __read(splitRepositoryPattern(e.repositoryPattern), 2), ownerPattern = _e[0], repoPattern = _e[1];
161
- var score = 0;
162
- if (repoPattern == "*") {
163
- score += 1;
164
- }
165
- if (ownerPattern == '*') {
166
- score += 2;
167
- }
168
- if (ownerPattern == "#" || repoPattern == "#") {
169
- score = 4;
170
- }
171
- if (!bestCandidate || score < minscore) {
172
- minscore = score;
173
- bestCandidate = e;
174
- }
175
- }
176
- }
177
- catch (e_3_1) { e_3 = { error: e_3_1 }; }
178
- finally {
179
- try {
180
- if (candidates_1_1 && !candidates_1_1.done && (_b = candidates_1.return)) _b.call(candidates_1);
181
- }
182
- finally { if (e_3) throw e_3.error; }
183
- }
184
- result.push(bestCandidate);
200
+ for (const name of resmap.keys()) {
201
+ const candidates = resmap.get(name);
202
+ if (!candidates) {
203
+ // not sure how this can happen, but so be it
204
+ continue;
185
205
  }
186
- }
187
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
188
- finally {
189
- try {
190
- if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
206
+ if (candidates.length == 1) {
207
+ result.push(candidates[0]);
208
+ continue;
209
+ }
210
+ let minscore = 10;
211
+ let bestCandidate;
212
+ for (const e of candidates) {
213
+ const score = UserEnvVar.score(e);
214
+ if (!bestCandidate || score < minscore) {
215
+ minscore = score;
216
+ bestCandidate = e;
217
+ }
191
218
  }
192
- finally { if (e_2) throw e_2.error; }
219
+ result.push(bestCandidate);
193
220
  }
194
221
  return result;
195
222
  }
196
223
  UserEnvVar.filter = filter;
224
+ // DEPRECATED: Use ProjectEnvVar instead of repositoryPattern - https://github.com/gitpod-com/gitpod/issues/5322
197
225
  function splitRepositoryPattern(repositoryPattern) {
198
- var patterns = repositoryPattern.split('/');
199
- var repoPattern = patterns.pop() || "";
200
- var ownerPattern = patterns.join('/');
226
+ const patterns = repositoryPattern.split("/");
227
+ const repoPattern = patterns.slice(1).join("/");
228
+ const ownerPattern = patterns[0];
201
229
  return [ownerPattern, repoPattern];
202
230
  }
231
+ UserEnvVar.splitRepositoryPattern = splitRepositoryPattern;
203
232
  })(UserEnvVar = exports.UserEnvVar || (exports.UserEnvVar = {}));
204
233
  var GitpodTokenType;
205
234
  (function (GitpodTokenType) {
@@ -209,14 +238,11 @@ var GitpodTokenType;
209
238
  var Identity;
210
239
  (function (Identity) {
211
240
  function is(data) {
212
- return data.hasOwnProperty('authProviderId')
213
- && data.hasOwnProperty('authId')
214
- && data.hasOwnProperty('authName');
241
+ return (data.hasOwnProperty("authProviderId") && data.hasOwnProperty("authId") && data.hasOwnProperty("authName"));
215
242
  }
216
243
  Identity.is = is;
217
244
  function equals(id1, id2) {
218
- return id1.authProviderId === id2.authProviderId
219
- && id1.authId === id2.authId;
245
+ return id1.authProviderId === id2.authProviderId && id1.authId === id2.authId;
220
246
  }
221
247
  Identity.equals = equals;
222
248
  })(Identity = exports.Identity || (exports.Identity = {}));
@@ -224,14 +250,14 @@ var Workspace;
224
250
  (function (Workspace) {
225
251
  function getFullRepositoryName(ws) {
226
252
  if (CommitContext.is(ws.context)) {
227
- return ws.context.repository.owner + '/' + ws.context.repository.name;
253
+ return ws.context.repository.owner + "/" + ws.context.repository.name;
228
254
  }
229
255
  return undefined;
230
256
  }
231
257
  Workspace.getFullRepositoryName = getFullRepositoryName;
232
258
  function getFullRepositoryUrl(ws) {
233
259
  if (CommitContext.is(ws.context)) {
234
- return "https://" + ws.context.repository.host + "/" + getFullRepositoryName(ws);
260
+ return `https://${ws.context.repository.host}/${getFullRepositoryName(ws)}`;
235
261
  }
236
262
  return undefined;
237
263
  }
@@ -268,30 +294,28 @@ var Workspace;
268
294
  var GithubAppPrebuildConfig;
269
295
  (function (GithubAppPrebuildConfig) {
270
296
  function is(obj) {
271
- return !(typeof obj === 'boolean');
297
+ return !(typeof obj === "boolean");
272
298
  }
273
299
  GithubAppPrebuildConfig.is = is;
274
300
  })(GithubAppPrebuildConfig = exports.GithubAppPrebuildConfig || (exports.GithubAppPrebuildConfig = {}));
275
301
  var WorkspaceImageSourceDocker;
276
302
  (function (WorkspaceImageSourceDocker) {
277
303
  function is(obj) {
278
- return 'dockerFileHash' in obj
279
- && 'dockerFileSource' in obj
280
- && 'dockerFilePath' in obj;
304
+ return "dockerFileHash" in obj && "dockerFilePath" in obj;
281
305
  }
282
306
  WorkspaceImageSourceDocker.is = is;
283
307
  })(WorkspaceImageSourceDocker = exports.WorkspaceImageSourceDocker || (exports.WorkspaceImageSourceDocker = {}));
284
308
  var WorkspaceImageSourceReference;
285
309
  (function (WorkspaceImageSourceReference) {
286
310
  function is(obj) {
287
- return 'baseImageResolved' in obj;
311
+ return "baseImageResolved" in obj;
288
312
  }
289
313
  WorkspaceImageSourceReference.is = is;
290
314
  })(WorkspaceImageSourceReference = exports.WorkspaceImageSourceReference || (exports.WorkspaceImageSourceReference = {}));
291
315
  var PrebuiltWorkspace;
292
316
  (function (PrebuiltWorkspace) {
293
317
  function isDone(pws) {
294
- return pws.state === "available" || pws.state === "timeout" || pws.state === 'aborted';
318
+ return (pws.state === "available" || pws.state === "timeout" || pws.state === "aborted" || pws.state === "failed");
295
319
  }
296
320
  PrebuiltWorkspace.isDone = isDone;
297
321
  function isAvailable(pws) {
@@ -306,129 +330,130 @@ var PrebuiltWorkspace;
306
330
  var PortConfig;
307
331
  (function (PortConfig) {
308
332
  function is(config) {
309
- return config && ('port' in config) && (typeof config.port === 'number');
333
+ return config && "port" in config && typeof config.port === "number";
310
334
  }
311
335
  PortConfig.is = is;
312
336
  })(PortConfig = exports.PortConfig || (exports.PortConfig = {}));
313
337
  var PortRangeConfig;
314
338
  (function (PortRangeConfig) {
315
339
  function is(config) {
316
- return config && ('port' in config) && (typeof config.port === 'string' || config.port instanceof String);
340
+ return config && "port" in config && (typeof config.port === "string" || config.port instanceof String);
317
341
  }
318
342
  PortRangeConfig.is = is;
319
343
  })(PortRangeConfig = exports.PortRangeConfig || (exports.PortRangeConfig = {}));
320
344
  var TaskConfig;
321
345
  (function (TaskConfig) {
322
346
  function is(config) {
323
- return config
324
- && ('command' in config || 'init' in config || 'before' in config);
347
+ return config && ("command" in config || "init" in config || "before" in config);
325
348
  }
326
349
  TaskConfig.is = is;
327
350
  })(TaskConfig = exports.TaskConfig || (exports.TaskConfig = {}));
328
351
  var WorkspaceImageBuild;
329
352
  (function (WorkspaceImageBuild) {
330
- var LogLine;
353
+ let LogLine;
331
354
  (function (LogLine) {
332
- LogLine.DELIMITER = '\r\n';
355
+ LogLine.DELIMITER = "\r\n";
333
356
  LogLine.DELIMITER_REGEX = /\r?\n/;
334
357
  })(LogLine = WorkspaceImageBuild.LogLine || (WorkspaceImageBuild.LogLine = {}));
335
358
  })(WorkspaceImageBuild = exports.WorkspaceImageBuild || (exports.WorkspaceImageBuild = {}));
336
359
  var ImageConfigString;
337
360
  (function (ImageConfigString) {
338
361
  function is(config) {
339
- return typeof config === 'string';
362
+ return typeof config === "string";
340
363
  }
341
364
  ImageConfigString.is = is;
342
365
  })(ImageConfigString = exports.ImageConfigString || (exports.ImageConfigString = {}));
343
366
  var ImageConfigFile;
344
367
  (function (ImageConfigFile) {
345
368
  function is(config) {
346
- return typeof config === 'object'
347
- && 'file' in config;
369
+ return typeof config === "object" && "file" in config;
348
370
  }
349
371
  ImageConfigFile.is = is;
350
372
  })(ImageConfigFile = exports.ImageConfigFile || (exports.ImageConfigFile = {}));
351
373
  var ExternalImageConfigFile;
352
374
  (function (ExternalImageConfigFile) {
353
375
  function is(config) {
354
- return typeof config === 'object'
355
- && 'file' in config
356
- && 'externalSource' in config;
376
+ return typeof config === "object" && "file" in config && "externalSource" in config;
357
377
  }
358
378
  ExternalImageConfigFile.is = is;
359
379
  })(ExternalImageConfigFile = exports.ExternalImageConfigFile || (exports.ExternalImageConfigFile = {}));
360
380
  var WorkspaceContext;
361
381
  (function (WorkspaceContext) {
362
382
  function is(context) {
363
- return context
364
- && 'title' in context;
383
+ return context && "title" in context;
365
384
  }
366
385
  WorkspaceContext.is = is;
367
386
  })(WorkspaceContext = exports.WorkspaceContext || (exports.WorkspaceContext = {}));
368
387
  var WithSnapshot;
369
388
  (function (WithSnapshot) {
370
389
  function is(context) {
371
- return context
372
- && 'snapshotBucketId' in context;
390
+ return context && "snapshotBucketId" in context;
373
391
  }
374
392
  WithSnapshot.is = is;
375
393
  })(WithSnapshot = exports.WithSnapshot || (exports.WithSnapshot = {}));
376
394
  var WithPrebuild;
377
395
  (function (WithPrebuild) {
378
396
  function is(context) {
379
- return context
380
- && 'snapshotBucketId' in context
381
- && 'prebuildWorkspaceId' in context
382
- && 'wasPrebuilt' in context;
397
+ return context && WithSnapshot.is(context) && "prebuildWorkspaceId" in context && "wasPrebuilt" in context;
383
398
  }
384
399
  WithPrebuild.is = is;
385
400
  })(WithPrebuild = exports.WithPrebuild || (exports.WithPrebuild = {}));
401
+ var WithDefaultConfig;
402
+ (function (WithDefaultConfig) {
403
+ function is(context) {
404
+ return context && "withDefaultConfig" in context && context.withDefaultConfig;
405
+ }
406
+ WithDefaultConfig.is = is;
407
+ function mark(ctx) {
408
+ return Object.assign(Object.assign({}, ctx), { withDefaultConfig: true });
409
+ }
410
+ WithDefaultConfig.mark = mark;
411
+ })(WithDefaultConfig = exports.WithDefaultConfig || (exports.WithDefaultConfig = {}));
386
412
  var SnapshotContext;
387
413
  (function (SnapshotContext) {
388
414
  function is(context) {
389
- return context
390
- && WithSnapshot.is(context)
391
- && 'snapshotId' in context;
415
+ return context && WithSnapshot.is(context) && "snapshotId" in context;
392
416
  }
393
417
  SnapshotContext.is = is;
394
418
  })(SnapshotContext = exports.SnapshotContext || (exports.SnapshotContext = {}));
395
419
  var StartPrebuildContext;
396
420
  (function (StartPrebuildContext) {
397
421
  function is(context) {
398
- return context
399
- && 'actual' in context;
422
+ return context && "actual" in context;
400
423
  }
401
424
  StartPrebuildContext.is = is;
402
425
  })(StartPrebuildContext = exports.StartPrebuildContext || (exports.StartPrebuildContext = {}));
403
426
  var PrebuiltWorkspaceContext;
404
427
  (function (PrebuiltWorkspaceContext) {
405
428
  function is(context) {
406
- return context
407
- && 'originalContext' in context
408
- && 'prebuiltWorkspace' in context;
429
+ return context && "originalContext" in context && "prebuiltWorkspace" in context;
409
430
  }
410
431
  PrebuiltWorkspaceContext.is = is;
411
432
  })(PrebuiltWorkspaceContext = exports.PrebuiltWorkspaceContext || (exports.PrebuiltWorkspaceContext = {}));
433
+ var WithReferrerContext;
434
+ (function (WithReferrerContext) {
435
+ function is(context) {
436
+ return context && "referrer" in context;
437
+ }
438
+ WithReferrerContext.is = is;
439
+ })(WithReferrerContext = exports.WithReferrerContext || (exports.WithReferrerContext = {}));
412
440
  var WithEnvvarsContext;
413
441
  (function (WithEnvvarsContext) {
414
442
  function is(context) {
415
- return context
416
- && 'envvars' in context;
443
+ return context && "envvars" in context;
417
444
  }
418
445
  WithEnvvarsContext.is = is;
419
446
  })(WithEnvvarsContext = exports.WithEnvvarsContext || (exports.WithEnvvarsContext = {}));
420
447
  var WorkspaceProbeContext;
421
448
  (function (WorkspaceProbeContext) {
422
449
  function is(context) {
423
- return context
424
- && 'responseURL' in context
425
- && 'responseToken' in context;
450
+ return context && "responseURL" in context && "responseToken" in context;
426
451
  }
427
452
  WorkspaceProbeContext.is = is;
428
453
  })(WorkspaceProbeContext = exports.WorkspaceProbeContext || (exports.WorkspaceProbeContext = {}));
429
454
  var RefType;
430
455
  (function (RefType) {
431
- RefType.getRefType = function (commit) {
456
+ RefType.getRefType = (commit) => {
432
457
  if (!commit.ref) {
433
458
  return "revision";
434
459
  }
@@ -436,48 +461,71 @@ var RefType;
436
461
  return commit.refType || "branch";
437
462
  };
438
463
  })(RefType = exports.RefType || (exports.RefType = {}));
464
+ var AdditionalContentContext;
465
+ (function (AdditionalContentContext) {
466
+ function is(ctx) {
467
+ return "additionalFiles" in ctx;
468
+ }
469
+ AdditionalContentContext.is = is;
470
+ function hasDockerConfig(ctx, config) {
471
+ return is(ctx) && ImageConfigFile.is(config.image) && !!ctx.additionalFiles[config.image.file];
472
+ }
473
+ AdditionalContentContext.hasDockerConfig = hasDockerConfig;
474
+ })(AdditionalContentContext = exports.AdditionalContentContext || (exports.AdditionalContentContext = {}));
439
475
  var CommitContext;
476
+ (function (CommitContext) {
477
+ /**
478
+ * Creates a hash for all the commits of the CommitContext and all sub-repo commit infos.
479
+ * The hash is max 255 chars long.
480
+ * @param commitContext
481
+ * @returns hash for commitcontext
482
+ */
483
+ function computeHash(commitContext) {
484
+ // for single commits we use the revision to be backward compatible.
485
+ if (!commitContext.additionalRepositoryCheckoutInfo ||
486
+ commitContext.additionalRepositoryCheckoutInfo.length === 0) {
487
+ return commitContext.revision;
488
+ }
489
+ const hasher = (0, crypto_1.createHash)("sha256");
490
+ hasher.update(commitContext.revision);
491
+ for (const info of commitContext.additionalRepositoryCheckoutInfo) {
492
+ hasher.update(info.revision);
493
+ }
494
+ return hasher.digest("hex");
495
+ }
496
+ CommitContext.computeHash = computeHash;
497
+ })(CommitContext = exports.CommitContext || (exports.CommitContext = {}));
440
498
  (function (CommitContext) {
441
499
  function is(commit) {
442
- return WorkspaceContext.is(commit)
443
- && 'repository' in commit
444
- && 'revision' in commit;
500
+ return WorkspaceContext.is(commit) && "repository" in commit && "revision" in commit;
445
501
  }
446
502
  CommitContext.is = is;
447
503
  })(CommitContext = exports.CommitContext || (exports.CommitContext = {}));
448
504
  var PullRequestContext;
449
505
  (function (PullRequestContext) {
450
506
  function is(ctx) {
451
- return CommitContext.is(ctx)
452
- && 'nr' in ctx
453
- && 'ref' in ctx
454
- && 'base' in ctx;
507
+ return CommitContext.is(ctx) && "nr" in ctx && "ref" in ctx && "base" in ctx;
455
508
  }
456
509
  PullRequestContext.is = is;
457
510
  })(PullRequestContext = exports.PullRequestContext || (exports.PullRequestContext = {}));
458
511
  var IssueContext;
459
512
  (function (IssueContext) {
460
513
  function is(ctx) {
461
- return CommitContext.is(ctx)
462
- && 'nr' in ctx
463
- && 'ref' in ctx
464
- && 'localBranch' in ctx;
514
+ return CommitContext.is(ctx) && "nr" in ctx && "ref" in ctx && "localBranch" in ctx;
465
515
  }
466
516
  IssueContext.is = is;
467
517
  })(IssueContext = exports.IssueContext || (exports.IssueContext = {}));
468
518
  var NavigatorContext;
469
519
  (function (NavigatorContext) {
470
520
  function is(ctx) {
471
- return CommitContext.is(ctx)
472
- && 'path' in ctx
473
- && 'isFile' in ctx;
521
+ return CommitContext.is(ctx) && "path" in ctx && "isFile" in ctx;
474
522
  }
475
523
  NavigatorContext.is = is;
476
524
  })(NavigatorContext = exports.NavigatorContext || (exports.NavigatorContext = {}));
477
525
  var Repository;
478
526
  (function (Repository) {
479
527
  function fullRepoName(repo) {
480
- return repo.host + "/" + repo.owner + "/" + repo.name;
528
+ return `${repo.host}/${repo.owner}/${repo.name}`;
481
529
  }
482
530
  Repository.fullRepoName = fullRepoName;
483
531
  })(Repository = exports.Repository || (exports.Repository = {}));
@@ -488,6 +536,14 @@ var WorkspaceInstancePortsChangedEvent;
488
536
  }
489
537
  WorkspaceInstancePortsChangedEvent.is = is;
490
538
  })(WorkspaceInstancePortsChangedEvent = exports.WorkspaceInstancePortsChangedEvent || (exports.WorkspaceInstancePortsChangedEvent = {}));
539
+ var WorkspaceInfo;
540
+ (function (WorkspaceInfo) {
541
+ function lastActiveISODate(info) {
542
+ var _a;
543
+ return ((_a = info.latestInstance) === null || _a === void 0 ? void 0 : _a.creationTime) || info.workspace.creationTime;
544
+ }
545
+ WorkspaceInfo.lastActiveISODate = lastActiveISODate;
546
+ })(WorkspaceInfo = exports.WorkspaceInfo || (exports.WorkspaceInfo = {}));
491
547
  var CreateWorkspaceMode;
492
548
  (function (CreateWorkspaceMode) {
493
549
  // Default returns a running prebuild if there is any, otherwise creates a new workspace (using a prebuild if one is available)
@@ -502,16 +558,24 @@ var CreateWorkspaceMode;
502
558
  var WorkspaceCreationResult;
503
559
  (function (WorkspaceCreationResult) {
504
560
  function is(data) {
505
- return data && ('createdWorkspaceId' in data
506
- || 'existingWorkspaces' in data
507
- || 'runningWorkspacePrebuild' in data
508
- || 'runningPrebuildWorkspaceID' in data);
561
+ return (data &&
562
+ ("createdWorkspaceId" in data ||
563
+ "existingWorkspaces" in data ||
564
+ "runningWorkspacePrebuild" in data ||
565
+ "runningPrebuildWorkspaceID" in data));
509
566
  }
510
567
  WorkspaceCreationResult.is = is;
511
568
  })(WorkspaceCreationResult = exports.WorkspaceCreationResult || (exports.WorkspaceCreationResult = {}));
569
+ var AuthProviderEntry;
570
+ (function (AuthProviderEntry) {
571
+ function redact(entry) {
572
+ return Object.assign(Object.assign({}, entry), { oauth: Object.assign(Object.assign({}, entry.oauth), { clientSecret: "redacted" }) });
573
+ }
574
+ AuthProviderEntry.redact = redact;
575
+ })(AuthProviderEntry = exports.AuthProviderEntry || (exports.AuthProviderEntry = {}));
512
576
  var TheiaPlugin;
513
577
  (function (TheiaPlugin) {
514
- var State;
578
+ let State;
515
579
  (function (State) {
516
580
  State["Uploading"] = "uploading";
517
581
  State["Uploaded"] = "uploaded";