@gitpod/gitpod-protocol 0.1.5-update-ovsx.0 → 0.1.5-update-yarnlock.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (455) hide show
  1. package/data/gitpod-schema.json +159 -25
  2. package/lib/accounting-protocol.d.ts +165 -0
  3. package/lib/accounting-protocol.d.ts.map +1 -0
  4. package/lib/accounting-protocol.js +120 -0
  5. package/lib/accounting-protocol.js.map +1 -0
  6. package/lib/admin-protocol.d.ts +51 -6
  7. package/lib/admin-protocol.d.ts.map +1 -1
  8. package/lib/admin-protocol.js +17 -2
  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 +25 -0
  15. package/lib/attribution.d.ts.map +1 -0
  16. package/lib/attribution.js +58 -0
  17. package/lib/attribution.js.map +1 -0
  18. package/lib/auth.d.ts +25 -0
  19. package/lib/auth.d.ts.map +1 -0
  20. package/lib/auth.js +16 -0
  21. package/lib/auth.js.map +1 -0
  22. package/lib/billing-mode.d.ts +45 -0
  23. package/lib/billing-mode.d.ts.map +1 -0
  24. package/lib/billing-mode.js +44 -0
  25. package/lib/billing-mode.js.map +1 -0
  26. package/lib/blocked-repositories-protocol.d.ts +13 -0
  27. package/lib/blocked-repositories-protocol.d.ts.map +1 -0
  28. package/lib/blocked-repositories-protocol.js +8 -0
  29. package/lib/blocked-repositories-protocol.js.map +1 -0
  30. package/lib/context-url.d.ts +30 -0
  31. package/lib/context-url.d.ts.map +1 -0
  32. package/lib/context-url.js +100 -0
  33. package/lib/context-url.js.map +1 -0
  34. package/lib/context-url.spec.d.ts +12 -0
  35. package/lib/context-url.spec.d.ts.map +1 -0
  36. package/lib/context-url.spec.js +81 -0
  37. package/lib/context-url.spec.js.map +1 -0
  38. package/lib/encryption/container-module.d.ts +2 -2
  39. package/lib/encryption/container-module.d.ts.map +1 -1
  40. package/lib/encryption/container-module.js +8 -6
  41. package/lib/encryption/container-module.js.map +1 -1
  42. package/lib/encryption/encryption-engine.d.ts +2 -2
  43. package/lib/encryption/encryption-engine.d.ts.map +1 -1
  44. package/lib/encryption/encryption-engine.js +28 -28
  45. package/lib/encryption/encryption-engine.js.map +1 -1
  46. package/lib/encryption/encryption-engine.spec.d.ts +3 -3
  47. package/lib/encryption/encryption-engine.spec.d.ts.map +1 -1
  48. package/lib/encryption/encryption-engine.spec.js +32 -39
  49. package/lib/encryption/encryption-engine.spec.js.map +1 -1
  50. package/lib/encryption/encryption-service.d.ts +2 -2
  51. package/lib/encryption/encryption-service.d.ts.map +1 -1
  52. package/lib/encryption/encryption-service.js +33 -46
  53. package/lib/encryption/encryption-service.js.map +1 -1
  54. package/lib/encryption/key-provider.d.ts +3 -3
  55. package/lib/encryption/key-provider.d.ts.map +1 -1
  56. package/lib/encryption/key-provider.js +34 -40
  57. package/lib/encryption/key-provider.js.map +1 -1
  58. package/lib/env.d.ts +2 -8
  59. package/lib/env.d.ts.map +1 -1
  60. package/lib/env.js +10 -29
  61. package/lib/env.js.map +1 -1
  62. package/lib/experiments/always-default.d.ts +8 -0
  63. package/lib/experiments/always-default.d.ts.map +1 -0
  64. package/lib/experiments/always-default.js +20 -0
  65. package/lib/experiments/always-default.js.map +1 -0
  66. package/lib/experiments/configcat-server.d.ts +10 -0
  67. package/lib/experiments/configcat-server.d.ts.map +1 -0
  68. package/lib/experiments/configcat-server.js +37 -0
  69. package/lib/experiments/configcat-server.js.map +1 -0
  70. package/lib/experiments/configcat.d.ts +21 -0
  71. package/lib/experiments/configcat.d.ts.map +1 -0
  72. package/lib/experiments/configcat.js +51 -0
  73. package/lib/experiments/configcat.js.map +1 -0
  74. package/lib/experiments/types.d.ts +22 -0
  75. package/lib/experiments/types.d.ts.map +1 -0
  76. package/lib/experiments/types.js +10 -0
  77. package/lib/experiments/types.js.map +1 -0
  78. package/lib/frontend-dashboard-service.d.ts +99 -0
  79. package/lib/frontend-dashboard-service.d.ts.map +1 -0
  80. package/lib/frontend-dashboard-service.js +55 -0
  81. package/lib/frontend-dashboard-service.js.map +1 -0
  82. package/lib/gitpod-file-parser.d.ts +2 -2
  83. package/lib/gitpod-file-parser.d.ts.map +1 -1
  84. package/lib/gitpod-file-parser.js +29 -44
  85. package/lib/gitpod-file-parser.js.map +1 -1
  86. package/lib/gitpod-file-parser.spec.d.ts +2 -2
  87. package/lib/gitpod-file-parser.spec.js +147 -144
  88. package/lib/gitpod-file-parser.spec.js.map +1 -1
  89. package/lib/gitpod-service.d.ts +290 -50
  90. package/lib/gitpod-service.d.ts.map +1 -1
  91. package/lib/gitpod-service.js +288 -123
  92. package/lib/gitpod-service.js.map +1 -1
  93. package/lib/headless-workspace-log.d.ts +11 -13
  94. package/lib/headless-workspace-log.d.ts.map +1 -1
  95. package/lib/headless-workspace-log.js +8 -9
  96. package/lib/headless-workspace-log.js.map +1 -1
  97. package/lib/ide-frontend-service.d.ts +26 -0
  98. package/lib/ide-frontend-service.d.ts.map +1 -0
  99. package/lib/ide-frontend-service.js +8 -0
  100. package/lib/ide-frontend-service.js.map +1 -0
  101. package/lib/ide-protocol.d.ts +126 -0
  102. package/lib/ide-protocol.d.ts.map +1 -0
  103. package/lib/ide-protocol.js +18 -0
  104. package/lib/ide-protocol.js.map +1 -0
  105. package/lib/index.d.ts +18 -12
  106. package/lib/index.d.ts.map +1 -1
  107. package/lib/index.js +28 -13
  108. package/lib/index.js.map +1 -1
  109. package/lib/installation-admin-protocol.d.ts +30 -0
  110. package/lib/installation-admin-protocol.d.ts.map +1 -0
  111. package/lib/installation-admin-protocol.js +31 -0
  112. package/lib/installation-admin-protocol.js.map +1 -0
  113. package/lib/license-protocol.d.ts +9 -2
  114. package/lib/license-protocol.d.ts.map +1 -1
  115. package/lib/license-protocol.js +3 -2
  116. package/lib/license-protocol.js.map +1 -1
  117. package/lib/messaging/browser/connection.d.ts +6 -4
  118. package/lib/messaging/browser/connection.d.ts.map +1 -1
  119. package/lib/messaging/browser/connection.js +188 -48
  120. package/lib/messaging/browser/connection.js.map +1 -1
  121. package/lib/messaging/browser/window-connection.d.ts +9 -4
  122. package/lib/messaging/browser/window-connection.d.ts.map +1 -1
  123. package/lib/messaging/browser/window-connection.js +48 -59
  124. package/lib/messaging/browser/window-connection.js.map +1 -1
  125. package/lib/messaging/client-call-metrics.d.ts +21 -0
  126. package/lib/messaging/client-call-metrics.d.ts.map +1 -0
  127. package/lib/messaging/client-call-metrics.js +95 -0
  128. package/lib/messaging/client-call-metrics.js.map +1 -0
  129. package/lib/messaging/error.d.ts +18 -4
  130. package/lib/messaging/error.d.ts.map +1 -1
  131. package/lib/messaging/error.js +38 -7
  132. package/lib/messaging/error.js.map +1 -1
  133. package/lib/messaging/handler.d.ts +10 -0
  134. package/lib/messaging/handler.d.ts.map +1 -1
  135. package/lib/messaging/handler.js +2 -1
  136. package/lib/messaging/handler.js.map +1 -1
  137. package/lib/messaging/node/connection.d.ts +1 -17
  138. package/lib/messaging/node/connection.d.ts.map +1 -1
  139. package/lib/messaging/node/connection.js +24 -59
  140. package/lib/messaging/node/connection.js.map +1 -1
  141. package/lib/messaging/proxy-factory.d.ts +3 -1
  142. package/lib/messaging/proxy-factory.d.ts.map +1 -1
  143. package/lib/messaging/proxy-factory.js +76 -162
  144. package/lib/messaging/proxy-factory.js.map +1 -1
  145. package/lib/oss-allowlist.d.ts +14 -0
  146. package/lib/oss-allowlist.d.ts.map +1 -0
  147. package/lib/oss-allowlist.js +8 -0
  148. package/lib/oss-allowlist.js.map +1 -0
  149. package/lib/payment-protocol.d.ts +18 -0
  150. package/lib/payment-protocol.d.ts.map +1 -0
  151. package/lib/payment-protocol.js +13 -0
  152. package/lib/payment-protocol.js.map +1 -0
  153. package/lib/permission.d.ts +26 -15
  154. package/lib/permission.d.ts.map +1 -1
  155. package/lib/permission.js +50 -36
  156. package/lib/permission.js.map +1 -1
  157. package/lib/plans.d.ts +213 -0
  158. package/lib/plans.d.ts.map +1 -0
  159. package/lib/plans.js +625 -0
  160. package/lib/plans.js.map +1 -0
  161. package/lib/protocol.d.ts +338 -111
  162. package/lib/protocol.d.ts.map +1 -1
  163. package/lib/protocol.js +422 -201
  164. package/lib/protocol.js.map +1 -1
  165. package/lib/protocol.spec.d.ts +7 -0
  166. package/lib/protocol.spec.d.ts.map +1 -0
  167. package/lib/protocol.spec.js +127 -0
  168. package/lib/protocol.spec.js.map +1 -0
  169. package/lib/snapshot-url.d.ts +14 -0
  170. package/lib/snapshot-url.d.ts.map +1 -0
  171. package/lib/snapshot-url.js +26 -0
  172. package/lib/snapshot-url.js.map +1 -0
  173. package/lib/snapshot-url.spec.d.ts +7 -0
  174. package/lib/snapshot-url.spec.d.ts.map +1 -0
  175. package/lib/snapshot-url.spec.js +41 -0
  176. package/lib/snapshot-url.spec.js.map +1 -0
  177. package/lib/team-subscription-protocol.d.ts +93 -0
  178. package/lib/team-subscription-protocol.d.ts.map +1 -0
  179. package/lib/team-subscription-protocol.js +82 -0
  180. package/lib/team-subscription-protocol.js.map +1 -0
  181. package/lib/teams-projects-protocol.d.ts +136 -0
  182. package/lib/teams-projects-protocol.d.ts.map +1 -0
  183. package/lib/teams-projects-protocol.js +41 -0
  184. package/lib/teams-projects-protocol.js.map +1 -0
  185. package/lib/typings/globals.d.ts +8 -3
  186. package/lib/typings/globals.d.ts.map +1 -1
  187. package/lib/typings/globals.js +2 -2
  188. package/lib/usage.d.ts +73 -0
  189. package/lib/usage.d.ts.map +1 -0
  190. package/lib/usage.js +20 -0
  191. package/lib/usage.js.map +1 -0
  192. package/lib/util/analytics.d.ts +8 -0
  193. package/lib/util/analytics.d.ts.map +1 -0
  194. package/lib/util/analytics.js +88 -0
  195. package/lib/util/analytics.js.map +1 -0
  196. package/lib/util/async-iterator.d.ts +2 -2
  197. package/lib/util/async-iterator.d.ts.map +1 -1
  198. package/lib/util/async-iterator.js +60 -137
  199. package/lib/util/async-iterator.js.map +1 -1
  200. package/lib/util/cancelable.d.ts +2 -2
  201. package/lib/util/cancelable.js +20 -61
  202. package/lib/util/cancelable.js.map +1 -1
  203. package/lib/util/date-time.d.ts +2 -2
  204. package/lib/util/date-time.js +14 -13
  205. package/lib/util/date-time.js.map +1 -1
  206. package/lib/util/debug-app.d.ts +25 -0
  207. package/lib/util/debug-app.d.ts.map +1 -0
  208. package/lib/util/debug-app.js +100 -0
  209. package/lib/util/debug-app.js.map +1 -0
  210. package/lib/util/deep-partial.d.ts +2 -2
  211. package/lib/util/deep-partial.js +2 -2
  212. package/lib/util/deferred.d.ts +2 -2
  213. package/lib/util/deferred.js +13 -14
  214. package/lib/util/deferred.js.map +1 -1
  215. package/lib/util/disposable.d.ts +2 -2
  216. package/lib/util/disposable.d.ts.map +1 -1
  217. package/lib/util/disposable.js +28 -40
  218. package/lib/util/disposable.js.map +1 -1
  219. package/lib/util/event.d.ts +1 -1
  220. package/lib/util/event.d.ts.map +1 -1
  221. package/lib/util/event.js +64 -77
  222. package/lib/util/event.js.map +1 -1
  223. package/lib/util/garbage-collected-cache.d.ts +3 -2
  224. package/lib/util/garbage-collected-cache.d.ts.map +1 -1
  225. package/lib/util/garbage-collected-cache.js +35 -49
  226. package/lib/util/garbage-collected-cache.js.map +1 -1
  227. package/lib/util/generate-workspace-id.d.ts +9 -0
  228. package/lib/util/generate-workspace-id.d.ts.map +1 -0
  229. package/lib/util/generate-workspace-id.js +491 -0
  230. package/lib/util/generate-workspace-id.js.map +1 -0
  231. package/lib/util/generate-workspace-id.spec.d.ts +7 -0
  232. package/lib/util/generate-workspace-id.spec.d.ts.map +1 -0
  233. package/lib/util/generate-workspace-id.spec.js +98 -0
  234. package/lib/util/generate-workspace-id.spec.js.map +1 -0
  235. package/lib/util/gitpod-cookie.d.ts +20 -0
  236. package/lib/util/gitpod-cookie.d.ts.map +1 -0
  237. package/lib/util/gitpod-cookie.js +41 -0
  238. package/lib/util/gitpod-cookie.js.map +1 -0
  239. package/lib/util/gitpod-host-url.d.ts +20 -8
  240. package/lib/util/gitpod-host-url.d.ts.map +1 -1
  241. package/lib/util/gitpod-host-url.js +143 -85
  242. package/lib/util/gitpod-host-url.js.map +1 -1
  243. package/lib/util/gitpod-host-url.spec.d.ts +16 -0
  244. package/lib/util/gitpod-host-url.spec.d.ts.map +1 -0
  245. package/lib/util/gitpod-host-url.spec.js +134 -0
  246. package/lib/util/gitpod-host-url.spec.js.map +1 -0
  247. package/lib/util/grpc.d.ts +35 -0
  248. package/lib/util/grpc.d.ts.map +1 -0
  249. package/lib/util/grpc.js +90 -0
  250. package/lib/util/grpc.js.map +1 -0
  251. package/lib/util/jaeger-client-types.d.ts +68 -0
  252. package/lib/util/jaeger-client-types.d.ts.map +1 -0
  253. package/lib/util/jaeger-client-types.js +8 -0
  254. package/lib/util/jaeger-client-types.js.map +1 -0
  255. package/lib/util/logging.d.ts +58 -35
  256. package/lib/util/logging.d.ts.map +1 -1
  257. package/lib/util/logging.js +144 -129
  258. package/lib/util/logging.js.map +1 -1
  259. package/lib/util/logging.spec.d.ts +7 -0
  260. package/lib/util/logging.spec.d.ts.map +1 -0
  261. package/lib/util/logging.spec.js +52 -0
  262. package/lib/util/logging.spec.js.map +1 -0
  263. package/lib/util/make-link.d.ts +2 -2
  264. package/lib/util/make-link.js +8 -7
  265. package/lib/util/make-link.js.map +1 -1
  266. package/lib/util/nice-grpc.d.ts +9 -0
  267. package/lib/util/nice-grpc.d.ts.map +1 -0
  268. package/lib/util/nice-grpc.js +121 -0
  269. package/lib/util/nice-grpc.js.map +1 -0
  270. package/lib/util/parse-workspace-id.d.ts +15 -5
  271. package/lib/util/parse-workspace-id.d.ts.map +1 -1
  272. package/lib/util/parse-workspace-id.js +39 -9
  273. package/lib/util/parse-workspace-id.js.map +1 -1
  274. package/lib/util/parse-workspace-id.spec.d.ts +10 -2
  275. package/lib/util/parse-workspace-id.spec.d.ts.map +1 -1
  276. package/lib/util/parse-workspace-id.spec.js +130 -49
  277. package/lib/util/parse-workspace-id.spec.js.map +1 -1
  278. package/lib/util/queue.d.ts +2 -2
  279. package/lib/util/queue.js +19 -57
  280. package/lib/util/queue.js.map +1 -1
  281. package/lib/util/queue.spec.d.ts +2 -2
  282. package/lib/util/queue.spec.js +149 -288
  283. package/lib/util/queue.spec.js.map +1 -1
  284. package/lib/util/repeat.d.ts +15 -0
  285. package/lib/util/repeat.d.ts.map +1 -0
  286. package/lib/util/repeat.js +55 -0
  287. package/lib/util/repeat.js.map +1 -0
  288. package/lib/util/semaphore.d.ts +2 -2
  289. package/lib/util/semaphore.d.ts.map +1 -1
  290. package/lib/util/semaphore.js +18 -48
  291. package/lib/util/semaphore.js.map +1 -1
  292. package/lib/util/skip-if.d.ts +2 -2
  293. package/lib/util/skip-if.d.ts.map +1 -1
  294. package/lib/util/skip-if.js +9 -8
  295. package/lib/util/skip-if.js.map +1 -1
  296. package/lib/util/timeutil.d.ts +4 -2
  297. package/lib/util/timeutil.d.ts.map +1 -1
  298. package/lib/util/timeutil.js +43 -18
  299. package/lib/util/timeutil.js.map +1 -1
  300. package/lib/util/timeutil.spec.d.ts +4 -2
  301. package/lib/util/timeutil.spec.d.ts.map +1 -1
  302. package/lib/util/timeutil.spec.js +57 -25
  303. package/lib/util/timeutil.spec.js.map +1 -1
  304. package/lib/util/tracing.d.ts +55 -8
  305. package/lib/util/tracing.d.ts.map +1 -1
  306. package/lib/util/tracing.js +210 -66
  307. package/lib/util/tracing.js.map +1 -1
  308. package/lib/util/tracing.spec.d.ts +7 -0
  309. package/lib/util/tracing.spec.d.ts.map +1 -0
  310. package/lib/util/tracing.spec.js +121 -0
  311. package/lib/util/tracing.spec.js.map +1 -0
  312. package/lib/util/workspace-port-authentication.d.ts +9 -9
  313. package/lib/util/workspace-port-authentication.d.ts.map +1 -1
  314. package/lib/util/workspace-port-authentication.js +13 -14
  315. package/lib/util/workspace-port-authentication.js.map +1 -1
  316. package/lib/webhook-event.d.ts +44 -0
  317. package/lib/webhook-event.d.ts.map +1 -0
  318. package/lib/webhook-event.js +8 -0
  319. package/lib/webhook-event.js.map +1 -0
  320. package/lib/workspace-class.d.ts +14 -0
  321. package/lib/workspace-class.d.ts.map +1 -0
  322. package/lib/workspace-class.js +8 -0
  323. package/lib/workspace-class.js.map +1 -0
  324. package/lib/workspace-cluster.d.ts +80 -0
  325. package/lib/workspace-cluster.d.ts.map +1 -0
  326. package/lib/workspace-cluster.js +36 -0
  327. package/lib/workspace-cluster.js.map +1 -0
  328. package/lib/workspace-instance.d.ts +51 -8
  329. package/lib/workspace-instance.d.ts.map +1 -1
  330. package/lib/workspace-instance.js +2 -2
  331. package/lib/wsready.d.ts +8 -2
  332. package/lib/wsready.d.ts.map +1 -1
  333. package/lib/wsready.js +4 -3
  334. package/lib/wsready.js.map +1 -1
  335. package/package.json +42 -18
  336. package/pkg-yarn.lock +24 -10
  337. package/provenance-bundle.jsonl +2 -0
  338. package/src/accounting-protocol.ts +253 -0
  339. package/src/admin-protocol.ts +96 -21
  340. package/src/analytics.ts +52 -0
  341. package/src/attribution.ts +67 -0
  342. package/src/auth.ts +27 -0
  343. package/src/billing-mode.ts +84 -0
  344. package/src/blocked-repositories-protocol.ts +13 -0
  345. package/src/context-url.spec.ts +49 -0
  346. package/src/context-url.ts +107 -0
  347. package/src/encryption/container-module.ts +4 -5
  348. package/src/encryption/encryption-engine.spec.ts +11 -10
  349. package/src/encryption/encryption-engine.ts +22 -18
  350. package/src/encryption/encryption-service.ts +6 -7
  351. package/src/encryption/key-provider.ts +18 -21
  352. package/src/env.ts +3 -26
  353. package/src/experiments/always-default.ts +24 -0
  354. package/src/experiments/configcat-server.ts +42 -0
  355. package/src/experiments/configcat.ts +56 -0
  356. package/src/experiments/types.ts +34 -0
  357. package/src/frontend-dashboard-service.ts +148 -0
  358. package/src/gitpod-file-parser.spec.ts +57 -63
  359. package/src/gitpod-file-parser.ts +18 -19
  360. package/src/gitpod-service.ts +602 -99
  361. package/src/headless-workspace-log.ts +14 -16
  362. package/src/ide-frontend-service.ts +28 -0
  363. package/src/ide-protocol.ts +147 -0
  364. package/src/index.ts +18 -12
  365. package/src/installation-admin-protocol.ts +45 -0
  366. package/src/license-protocol.ts +14 -8
  367. package/src/messaging/browser/connection.ts +202 -26
  368. package/src/messaging/browser/window-connection.ts +45 -29
  369. package/src/messaging/client-call-metrics.ts +94 -0
  370. package/src/messaging/error.ts +51 -10
  371. package/src/messaging/handler.ts +13 -1
  372. package/src/messaging/node/connection.ts +23 -70
  373. package/src/messaging/proxy-factory.ts +35 -34
  374. package/src/oss-allowlist.ts +15 -0
  375. package/src/payment-protocol.ts +20 -0
  376. package/src/permission.ts +53 -40
  377. package/src/plans.ts +699 -0
  378. package/src/protocol.spec.ts +97 -0
  379. package/src/protocol.ts +790 -302
  380. package/src/snapshot-url.spec.ts +27 -0
  381. package/src/snapshot-url.ts +27 -0
  382. package/src/team-subscription-protocol.ts +153 -0
  383. package/src/teams-projects-protocol.ts +180 -0
  384. package/src/typings/globals.ts +13 -5
  385. package/src/usage.ts +85 -0
  386. package/src/util/analytics.ts +109 -0
  387. package/src/util/async-iterator.ts +6 -7
  388. package/src/util/cancelable.ts +5 -5
  389. package/src/util/date-time.ts +10 -10
  390. package/src/util/debug-app.ts +81 -0
  391. package/src/util/deep-partial.ts +2 -2
  392. package/src/util/deferred.ts +8 -8
  393. package/src/util/disposable.ts +3 -6
  394. package/src/util/event.ts +9 -11
  395. package/src/util/garbage-collected-cache.ts +18 -10
  396. package/src/util/generate-workspace-id.spec.ts +58 -0
  397. package/src/util/generate-workspace-id.ts +481 -0
  398. package/src/util/gitpod-cookie.ts +38 -0
  399. package/src/util/gitpod-host-url.spec.ts +76 -0
  400. package/src/util/gitpod-host-url.ts +119 -40
  401. package/src/util/grpc.ts +107 -0
  402. package/src/util/jaeger-client-types.ts +102 -0
  403. package/src/util/logging.spec.ts +23 -0
  404. package/src/util/logging.ts +163 -73
  405. package/src/util/make-link.ts +8 -9
  406. package/src/util/nice-grpc.ts +96 -0
  407. package/src/util/parse-workspace-id.spec.ts +62 -12
  408. package/src/util/parse-workspace-id.ts +40 -10
  409. package/src/util/queue.spec.ts +30 -28
  410. package/src/util/queue.ts +2 -2
  411. package/src/util/repeat.ts +45 -0
  412. package/src/util/semaphore.ts +8 -10
  413. package/src/util/skip-if.ts +12 -9
  414. package/src/util/timeutil.spec.ts +42 -16
  415. package/src/util/timeutil.ts +33 -17
  416. package/src/util/tracing.spec.ts +88 -0
  417. package/src/util/tracing.ts +211 -33
  418. package/src/util/workspace-port-authentication.ts +12 -15
  419. package/src/webhook-event.ts +55 -0
  420. package/src/workspace-class.ts +14 -0
  421. package/src/workspace-cluster.ts +121 -0
  422. package/src/workspace-instance.ts +120 -36
  423. package/src/wsready.ts +11 -4
  424. package/data/builtin-theia-plugins.json +0 -362
  425. package/lib/email-protocol.d.ts +0 -49
  426. package/lib/email-protocol.d.ts.map +0 -1
  427. package/lib/email-protocol.js +0 -27
  428. package/lib/email-protocol.js.map +0 -1
  429. package/lib/messaging/connection-error-handler.d.ts +0 -27
  430. package/lib/messaging/connection-error-handler.d.ts.map +0 -1
  431. package/lib/messaging/connection-error-handler.js +0 -45
  432. package/lib/messaging/connection-error-handler.js.map +0 -1
  433. package/lib/theia-plugins.d.ts +0 -11
  434. package/lib/theia-plugins.d.ts.map +0 -1
  435. package/lib/theia-plugins.js +0 -8
  436. package/lib/theia-plugins.js.map +0 -1
  437. package/lib/util/repeater.d.ts +0 -22
  438. package/lib/util/repeater.d.ts.map +0 -1
  439. package/lib/util/repeater.js +0 -117
  440. package/lib/util/repeater.js.map +0 -1
  441. package/lib/util/safe-promise.d.ts +0 -11
  442. package/lib/util/safe-promise.d.ts.map +0 -1
  443. package/lib/util/safe-promise.js +0 -33
  444. package/lib/util/safe-promise.js.map +0 -1
  445. package/lib/util/without.d.ts +0 -7
  446. package/lib/util/without.d.ts.map +0 -1
  447. package/lib/util/without.js +0 -8
  448. package/lib/util/without.js.map +0 -1
  449. package/src/email-protocol.ts +0 -67
  450. package/src/messaging/connection-error-handler.ts +0 -62
  451. package/src/theia-plugins.ts +0 -11
  452. package/src/util/jaeger-client.d.ts +0 -105
  453. package/src/util/repeater.ts +0 -49
  454. package/src/util/safe-promise.ts +0 -26
  455. package/src/util/without.ts +0 -8
package/lib/protocol.d.ts CHANGED
@@ -1,16 +1,20 @@
1
1
  /**
2
- * Copyright (c) 2020 TypeFox GmbH. All rights reserved.
2
+ * Copyright (c) 2020 Gitpod GmbH. All rights reserved.
3
3
  * Licensed under the GNU Affero General Public License (AGPL).
4
- * See License-AGPL.txt in the project root for license information.
4
+ * See License.AGPL.txt in the project root for license information.
5
5
  */
6
6
  import { WorkspaceInstance, PortVisibility } from "./workspace-instance";
7
7
  import { RoleOrPermission } from "./permission";
8
+ import { Project } from "./teams-projects-protocol";
9
+ import { AttributionId } from "./attribution";
8
10
  export interface UserInfo {
9
11
  name?: string;
10
12
  }
11
13
  export interface User {
12
14
  /** The user id */
13
15
  id: string;
16
+ /** The ID of the Organization this user is owned by. If undefined, the user is owned by the installation */
17
+ organizationId?: string;
14
18
  /** The timestamp when the user entry was created */
15
19
  creationDate: string;
16
20
  avatarUrl?: string;
@@ -18,16 +22,11 @@ export interface User {
18
22
  /** Optional for backwards compatibility */
19
23
  fullName?: string;
20
24
  identities: Identity[];
21
- allowsMarketingCommunication: boolean;
22
25
  /**
23
26
  * Whether the user has been blocked to use our service, because of TOS violation for example.
24
27
  * Optional for backwards compatibility.
25
28
  */
26
29
  blocked?: boolean;
27
- /**
28
- * whether this user can run workspaces in privileged mode
29
- */
30
- privileged?: boolean;
31
30
  /** A map of random settings that alter the behaviour of Gitpod on a per-user basis */
32
31
  featureFlags?: UserFeatureSettings;
33
32
  /** The permissions and/or roles the user has */
@@ -35,19 +34,97 @@ export interface User {
35
34
  /** Whether the user is logical deleted. This flag is respected by all queries in UserDB */
36
35
  markedDeleted?: boolean;
37
36
  additionalData?: AdditionalUserData;
37
+ usageAttributionId?: string;
38
+ lastVerificationTime?: string;
39
+ verificationPhoneNumber?: string;
38
40
  }
39
41
  export declare namespace User {
40
42
  function is(data: any): data is User;
41
43
  function getIdentity(user: User, authProviderId: string): Identity | undefined;
42
- function getPrimaryEmail(user: User): string;
44
+ function censor(user: User): User;
45
+ /**
46
+ * Returns the stored email or if it doesn't exist returns the primaryEmail of the first identity this user signed up with.
47
+ * @param user
48
+ * @returns A primaryEmail, or undefined if there is none.
49
+ */
50
+ function getPrimaryEmail(user: User): string | undefined;
43
51
  function getName(user: User): string | undefined;
52
+ function hasPreferredIde(user: User): boolean;
53
+ function isOnboardingUser(user: User): boolean;
54
+ function migrationIDESettings(user: User): void;
55
+ function getProfile(user: User): Profile;
56
+ function setProfile(user: User, profile: Profile): User;
57
+ function getDefaultAttributionId(user: User): AttributionId;
58
+ interface Profile {
59
+ name: string;
60
+ email: string;
61
+ company?: string;
62
+ avatarURL?: string;
63
+ companyWebsite?: string;
64
+ jobRole?: string;
65
+ jobRoleOther?: string;
66
+ explorationReasons?: string[];
67
+ signupGoals?: string[];
68
+ signupGoalsOther?: string;
69
+ onboardedTimestamp?: string;
70
+ companySize?: string;
71
+ }
72
+ namespace Profile {
73
+ function hasChanges(before: Profile, after: Profile): boolean;
74
+ }
44
75
  }
45
- export interface AdditionalUserData {
76
+ export interface WorkspaceTimeoutSetting {
77
+ workspaceTimeout: string;
78
+ disabledClosedTimeout: boolean;
79
+ }
80
+ export interface AdditionalUserData extends Partial<WorkspaceTimeoutSetting> {
46
81
  platforms?: UserPlatform[];
47
82
  emailNotificationSettings?: EmailNotificationSettings;
83
+ featurePreview?: boolean;
84
+ ideSettings?: IDESettings;
85
+ whatsNewSeen?: {
86
+ [key: string]: string;
87
+ };
88
+ oauthClientsApproved?: {
89
+ [key: string]: string;
90
+ };
91
+ knownGitHubOrgs?: string[];
92
+ dotfileRepo?: string;
93
+ workspaceClasses?: WorkspaceClasses;
94
+ profile?: ProfileDetails;
95
+ isMigratedToTeamOnlyAttribution?: boolean;
96
+ }
97
+ export declare namespace AdditionalUserData {
98
+ function set(user: User, partialData: Partial<AdditionalUserData>): User;
99
+ }
100
+ export interface ProfileDetails {
101
+ lastUpdatedDetailsNudge?: string;
102
+ companyName?: string;
103
+ emailAddress?: string;
104
+ companyWebsite?: string;
105
+ jobRole?: string;
106
+ jobRoleOther?: string;
107
+ explorationReasons?: string[];
108
+ signupGoals?: string[];
109
+ signupGoalsOther?: string;
110
+ onboardedTimestamp?: string;
111
+ companySize?: string;
48
112
  }
49
113
  export interface EmailNotificationSettings {
50
- disallowTransactionalEmails?: boolean;
114
+ allowsChangelogMail?: boolean;
115
+ allowsDevXMail?: boolean;
116
+ allowsOnboardingMail?: boolean;
117
+ }
118
+ export declare type IDESettings = {
119
+ settingVersion?: string;
120
+ defaultIde?: string;
121
+ useDesktopIde?: boolean;
122
+ defaultDesktopIde?: string;
123
+ useLatestVersion?: boolean;
124
+ };
125
+ export interface WorkspaceClasses {
126
+ regular?: string;
127
+ prebuild?: string;
51
128
  }
52
129
  export interface UserPlatform {
53
130
  uid: string;
@@ -66,44 +143,81 @@ export interface UserPlatform {
66
143
  browserExtensionUninstalledSince?: string;
67
144
  }
68
145
  export interface UserFeatureSettings {
69
- /**
70
- * This field is used as marker to grant users a free trial for using private repositories,
71
- * independent of any subscription or Chargebee.
72
- * - it is set when the user uses their first private repo
73
- * - whether the trial is expired or not is juged by the UserService
74
- */
75
- privateRepoTrialStartDate?: string;
76
146
  /**
77
147
  * Permanent feature flags are added to each and every workspace instance
78
148
  * this user starts.
79
149
  */
80
150
  permanentWSFeatureFlags?: NamedWorkspaceFeatureFlag[];
81
151
  }
152
+ export declare type BillingTier = "paid" | "free";
82
153
  /**
83
154
  * The values of this type MUST MATCH enum values in WorkspaceFeatureFlag from ws-manager/client/core_pb.d.ts
84
155
  * If they don't we'll break things during workspace startup.
85
156
  */
86
157
  export declare const WorkspaceFeatureFlags: {
87
- "privileged": undefined;
88
- "registry_facade": undefined;
89
- "full_workspace_backup": undefined;
90
- "fixed_resources": undefined;
158
+ full_workspace_backup: undefined;
159
+ workspace_class_limiting: undefined;
160
+ workspace_connection_limiting: undefined;
161
+ workspace_psi: undefined;
91
162
  };
92
- export declare type NamedWorkspaceFeatureFlag = keyof (typeof WorkspaceFeatureFlags);
93
- export interface UserEnvVarValue {
94
- id?: string;
163
+ export declare type NamedWorkspaceFeatureFlag = keyof typeof WorkspaceFeatureFlags;
164
+ export declare namespace NamedWorkspaceFeatureFlag {
165
+ const WORKSPACE_PERSISTED_FEATTURE_FLAGS: NamedWorkspaceFeatureFlag[];
166
+ function isWorkspacePersisted(ff: NamedWorkspaceFeatureFlag): boolean;
167
+ }
168
+ export declare type EnvVar = UserEnvVar | ProjectEnvVarWithValue | EnvVarWithValue;
169
+ export interface EnvVarWithValue {
95
170
  name: string;
96
- repositoryPattern: string;
97
171
  value: string;
98
172
  }
173
+ export interface ProjectEnvVarWithValue extends EnvVarWithValue {
174
+ id: string;
175
+ projectId: string;
176
+ censored: boolean;
177
+ }
178
+ export declare type ProjectEnvVar = Omit<ProjectEnvVarWithValue, "value">;
179
+ export interface UserEnvVarValue extends EnvVarWithValue {
180
+ id?: string;
181
+ repositoryPattern: string;
182
+ }
99
183
  export interface UserEnvVar extends UserEnvVarValue {
100
184
  id: string;
101
185
  userId: string;
102
186
  deleted?: boolean;
103
187
  }
104
188
  export declare namespace UserEnvVar {
189
+ /**
190
+ * @param variable
191
+ * @returns Either a string containing an error message or undefined.
192
+ */
193
+ function validate(variable: UserEnvVarValue): string | undefined;
105
194
  function normalizeRepoPattern(pattern: string): string;
195
+ function score(value: UserEnvVarValue): number;
106
196
  function filter<T extends UserEnvVarValue>(vars: T[], owner: string, repo: string): T[];
197
+ function splitRepositoryPattern(repositoryPattern: string): string[];
198
+ }
199
+ export interface SSHPublicKeyValue {
200
+ name: string;
201
+ key: string;
202
+ }
203
+ export interface UserSSHPublicKey extends SSHPublicKeyValue {
204
+ id: string;
205
+ key: string;
206
+ userId: string;
207
+ fingerprint: string;
208
+ creationTime: string;
209
+ lastUsedTime?: string;
210
+ }
211
+ export declare type UserSSHPublicKeyValue = Omit<UserSSHPublicKey, "userId">;
212
+ export declare namespace SSHPublicKeyValue {
213
+ function validate(value: SSHPublicKeyValue): string | undefined;
214
+ function getData(value: SSHPublicKeyValue): {
215
+ type: string;
216
+ key: string;
217
+ email: string | undefined;
218
+ };
219
+ function getFingerprint(value: SSHPublicKeyValue): string;
220
+ const MAXIMUM_KEY_LENGTH = 5;
107
221
  }
108
222
  export interface GitpodToken {
109
223
  /** Hash value (SHA256) of the token (primary key). */
@@ -196,25 +310,29 @@ export interface PendingGithubEvent {
196
310
  creationDate: Date;
197
311
  type: string;
198
312
  event: string;
313
+ deleted: boolean;
199
314
  }
200
315
  export interface Snapshot {
201
316
  id: string;
202
317
  creationTime: string;
318
+ availableTime?: string;
203
319
  originalWorkspaceId: string;
204
320
  bucketId: string;
205
- layoutData?: string;
206
- }
207
- export interface LayoutData {
208
- workspaceId: string;
209
- lastUpdatedTime: string;
210
- layoutData: string;
321
+ state: SnapshotState;
322
+ message?: string;
211
323
  }
324
+ export declare type SnapshotState = "pending" | "available" | "error";
212
325
  export interface Workspace {
213
326
  id: string;
214
327
  creationTime: string;
328
+ /**
329
+ * undefined means it is owned by the user (legacy mode, soon to be removed)
330
+ */
331
+ organizationId?: string;
215
332
  contextURL: string;
216
333
  description: string;
217
334
  ownerId: string;
335
+ projectId?: string;
218
336
  context: WorkspaceContext;
219
337
  config: WorkspaceConfig;
220
338
  /**
@@ -255,7 +373,7 @@ export interface Workspace {
255
373
  basedOnSnapshotId?: string;
256
374
  }
257
375
  export declare type WorkspaceSoftDeletion = "user" | "gc";
258
- export declare type WorkspaceType = "regular" | "prebuild" | "probe";
376
+ export declare type WorkspaceType = "regular" | "prebuild";
259
377
  export declare namespace Workspace {
260
378
  function getFullRepositoryName(ws: Workspace): string | undefined;
261
379
  function getFullRepositoryUrl(ws: Workspace): string | undefined;
@@ -264,53 +382,78 @@ export declare namespace Workspace {
264
382
  function getBranchName(ws: Workspace): string | undefined;
265
383
  function getCommit(ws: Workspace): string | undefined;
266
384
  }
267
- export interface PreparePluginUploadParams {
268
- fullPluginName: string;
385
+ export interface GuessGitTokenScopesParams {
386
+ host: string;
387
+ repoUrl: string;
388
+ gitCommand: string;
389
+ currentToken: GitToken;
269
390
  }
270
- export interface ResolvePluginsParams {
271
- config?: WorkspaceConfig;
272
- builtins?: ResolvedPlugins;
391
+ export interface GitToken {
392
+ token: string;
393
+ user: string;
394
+ scopes: string[];
273
395
  }
274
- export interface InstallPluginsParams {
275
- pluginIds: string[];
396
+ export interface GuessedGitTokenScopes {
397
+ message?: string;
398
+ scopes?: string[];
276
399
  }
277
- export interface UninstallPluginParams {
278
- pluginId: string;
400
+ export interface VSCodeConfig {
401
+ extensions?: string[];
279
402
  }
280
- export declare type ResolvedPluginKind = 'user' | 'workspace' | 'builtin';
281
- export interface ResolvedPlugins {
282
- [pluginId: string]: ResolvedPlugin | undefined;
403
+ export interface JetBrainsConfig {
404
+ intellij?: JetBrainsProductConfig;
405
+ goland?: JetBrainsProductConfig;
406
+ pycharm?: JetBrainsProductConfig;
407
+ phpstorm?: JetBrainsProductConfig;
408
+ rubymine?: JetBrainsProductConfig;
409
+ webstorm?: JetBrainsProductConfig;
410
+ rider?: JetBrainsProductConfig;
411
+ clion?: JetBrainsProductConfig;
283
412
  }
284
- export interface ResolvedPlugin {
285
- fullPluginName: string;
413
+ export interface JetBrainsProductConfig {
414
+ prebuilds?: JetBrainsPrebuilds;
415
+ vmoptions?: string;
416
+ }
417
+ export interface JetBrainsPrebuilds {
418
+ version?: "stable" | "latest" | "both";
419
+ }
420
+ export interface RepositoryCloneInformation {
286
421
  url: string;
287
- kind: ResolvedPluginKind;
422
+ checkoutLocation?: string;
288
423
  }
289
- export interface VSCodeConfig {
290
- extensions?: string[];
424
+ export interface CoreDumpConfig {
425
+ enabled?: boolean;
426
+ softLimit?: number;
427
+ hardLimit?: number;
291
428
  }
292
429
  export interface WorkspaceConfig {
430
+ mainConfiguration?: string;
431
+ additionalRepositories?: RepositoryCloneInformation[];
293
432
  image?: ImageConfig;
294
433
  ports?: PortConfig[];
295
434
  tasks?: TaskConfig[];
296
435
  checkoutLocation?: string;
297
436
  workspaceLocation?: string;
298
- privileged?: boolean;
299
437
  gitConfig?: {
300
438
  [config: string]: string;
301
439
  };
302
440
  github?: GithubAppConfig;
303
441
  vscode?: VSCodeConfig;
304
- ide?: 'theia' | 'code' | string;
442
+ jetbrains?: JetBrainsConfig;
443
+ coreDump?: CoreDumpConfig;
444
+ ideCredentials?: string;
445
+ /** deprecated. Enabled by default **/
446
+ experimentalNetwork?: boolean;
305
447
  /**
306
448
  * Where the config object originates from.
307
449
  *
308
450
  * repo - from the repository
309
451
  * definitly-gp - from github.com/gitpod-io/definitely-gp
310
452
  * derived - computed based on analyzing the repository
453
+ * additional-content - config comes from additional content, usually provided through the project's configuration
311
454
  * default - our static catch-all default config
312
455
  */
313
- _origin?: 'repo' | 'definitely-gp' | 'derived' | 'default';
456
+ _origin?: "repo" | "definitely-gp" | "derived" | "additional-content" | "default";
314
457
  /**
315
458
  * Set of automatically infered feature flags. That's not something the user can set, but
316
459
  * that is set by gitpod at workspace creation time.
@@ -325,7 +468,7 @@ export interface GithubAppPrebuildConfig {
325
468
  branches?: boolean;
326
469
  pullRequests?: boolean;
327
470
  pullRequestsFromForks?: boolean;
328
- addCheck?: boolean;
471
+ addCheck?: boolean | "prevent-merge-on-error";
329
472
  addBadge?: boolean;
330
473
  addLabel?: boolean | string;
331
474
  addComment?: boolean;
@@ -335,9 +478,9 @@ export declare namespace GithubAppPrebuildConfig {
335
478
  }
336
479
  export declare type WorkspaceImageSource = WorkspaceImageSourceDocker | WorkspaceImageSourceReference;
337
480
  export interface WorkspaceImageSourceDocker {
338
- dockerFileHash: string;
339
- dockerFileSource: Commit;
340
481
  dockerFilePath: string;
482
+ dockerFileHash: string;
483
+ dockerFileSource?: Commit;
341
484
  }
342
485
  export declare namespace WorkspaceImageSourceDocker {
343
486
  function is(obj: object): obj is WorkspaceImageSourceDocker;
@@ -349,18 +492,22 @@ export interface WorkspaceImageSourceReference {
349
492
  export declare namespace WorkspaceImageSourceReference {
350
493
  function is(obj: object): obj is WorkspaceImageSourceReference;
351
494
  }
352
- export declare type PrebuiltWorkspaceState = "queued" | "building" | "aborted" | "timeout" | "available";
495
+ export declare type PrebuiltWorkspaceState = "queued" | "building" | "aborted" | "timeout" | "available" | "failed";
353
496
  export interface PrebuiltWorkspace {
354
497
  id: string;
355
498
  cloneURL: string;
499
+ branch?: string;
500
+ projectId?: string;
356
501
  commit: string;
357
502
  buildWorkspaceId: string;
358
503
  creationTime: string;
359
504
  state: PrebuiltWorkspaceState;
505
+ statusVersion: number;
360
506
  error?: string;
361
507
  snapshot?: string;
362
508
  }
363
509
  export declare namespace PrebuiltWorkspace {
510
+ function isDone(pws: PrebuiltWorkspace): boolean;
364
511
  function isAvailable(pws: PrebuiltWorkspace): boolean;
365
512
  function buildDidSucceed(pws: PrebuiltWorkspace): boolean;
366
513
  }
@@ -371,6 +518,10 @@ export interface PrebuiltWorkspaceUpdatable {
371
518
  repo: string;
372
519
  isResolved: boolean;
373
520
  installationId: string;
521
+ /**
522
+ * the commitSHA of the commit that triggered the prebuild
523
+ */
524
+ commitSHA?: string;
374
525
  issue?: string;
375
526
  contextUrl?: string;
376
527
  }
@@ -380,11 +531,13 @@ export interface WhitelistedRepository {
380
531
  description?: string;
381
532
  avatar?: string;
382
533
  }
383
- export declare type PortOnOpen = 'open-browser' | 'open-preview' | 'notify' | 'ignore';
534
+ export declare type PortOnOpen = "open-browser" | "open-preview" | "notify" | "ignore";
384
535
  export interface PortConfig {
385
536
  port: number;
386
537
  onOpen?: PortOnOpen;
387
538
  visibility?: PortVisibility;
539
+ description?: string;
540
+ name?: string;
388
541
  }
389
542
  export declare namespace PortConfig {
390
543
  function is(config: any): config is PortConfig;
@@ -403,16 +556,16 @@ export interface TaskConfig {
403
556
  prebuild?: string;
404
557
  command?: string;
405
558
  env?: {
406
- [env: string]: string;
559
+ [env: string]: any;
407
560
  };
408
- openIn?: 'bottom' | 'main' | 'left' | 'right';
409
- openMode?: 'split-top' | 'split-left' | 'split-right' | 'split-bottom' | 'tab-before' | 'tab-after';
561
+ openIn?: "bottom" | "main" | "left" | "right";
562
+ openMode?: "split-top" | "split-left" | "split-right" | "split-bottom" | "tab-before" | "tab-after";
410
563
  }
411
564
  export declare namespace TaskConfig {
412
565
  function is(config: any): config is TaskConfig;
413
566
  }
414
567
  export declare namespace WorkspaceImageBuild {
415
- type Phase = 'BaseImage' | 'GitpodLayer' | 'Error' | 'Done';
568
+ type Phase = "BaseImage" | "GitpodLayer" | "Error" | "Done";
416
569
  interface StateInfo {
417
570
  phase: Phase;
418
571
  currentStep?: number;
@@ -449,8 +602,11 @@ export declare namespace ExternalImageConfigFile {
449
602
  }
450
603
  export interface WorkspaceContext {
451
604
  title: string;
605
+ ref?: string;
606
+ /** This contains the URL portion of the contextURL (which might contain other modifiers as well). It's optional because it's not set for older workspaces. */
452
607
  normalizedContextURL?: string;
453
608
  forceCreateNewWorkspace?: boolean;
609
+ forceImageBuild?: boolean;
454
610
  }
455
611
  export declare namespace WorkspaceContext {
456
612
  function is(context: any): context is WorkspaceContext;
@@ -461,22 +617,41 @@ export interface WithSnapshot {
461
617
  export declare namespace WithSnapshot {
462
618
  function is(context: any): context is WithSnapshot;
463
619
  }
464
- export interface WithPrebuild {
465
- snapshotBucketId: string;
620
+ export interface WithPrebuild extends WithSnapshot {
466
621
  prebuildWorkspaceId: string;
467
622
  wasPrebuilt: true;
468
623
  }
469
624
  export declare namespace WithPrebuild {
470
625
  function is(context: any): context is WithPrebuild;
471
626
  }
627
+ /**
628
+ * WithDefaultConfig contexts disable the download of the gitpod.yml from the repository
629
+ * and fall back to the built-in configuration.
630
+ */
631
+ export interface WithDefaultConfig {
632
+ withDefaultConfig: true;
633
+ }
634
+ export declare namespace WithDefaultConfig {
635
+ function is(context: any): context is WithDefaultConfig;
636
+ function mark(ctx: WorkspaceContext): WorkspaceContext & WithDefaultConfig;
637
+ }
472
638
  export interface SnapshotContext extends WorkspaceContext, WithSnapshot {
473
639
  snapshotId: string;
474
640
  }
475
641
  export declare namespace SnapshotContext {
476
642
  function is(context: any): context is SnapshotContext;
477
643
  }
478
- export interface StartPrebuildContext extends WorkspaceContext {
644
+ export interface WithCommitHistory {
645
+ commitHistory?: string[];
646
+ additionalRepositoryCommitHistories?: {
647
+ cloneUrl: string;
648
+ commitHistory: string[];
649
+ }[];
650
+ }
651
+ export interface StartPrebuildContext extends WorkspaceContext, WithCommitHistory {
479
652
  actual: WorkspaceContext;
653
+ project: Project;
654
+ branch?: string;
480
655
  }
481
656
  export declare namespace StartPrebuildContext {
482
657
  function is(context: any): context is StartPrebuildContext;
@@ -489,19 +664,19 @@ export interface PrebuiltWorkspaceContext extends WorkspaceContext {
489
664
  export declare namespace PrebuiltWorkspaceContext {
490
665
  function is(context: any): context is PrebuiltWorkspaceContext;
491
666
  }
667
+ export interface WithReferrerContext extends WorkspaceContext {
668
+ referrer: string;
669
+ referrerIde?: string;
670
+ }
671
+ export declare namespace WithReferrerContext {
672
+ function is(context: any): context is WithReferrerContext;
673
+ }
492
674
  export interface WithEnvvarsContext extends WorkspaceContext {
493
- envvars: UserEnvVarValue[];
675
+ envvars: EnvVarWithValue[];
494
676
  }
495
677
  export declare namespace WithEnvvarsContext {
496
678
  function is(context: any): context is WithEnvvarsContext;
497
679
  }
498
- export interface WorkspaceProbeContext extends WorkspaceContext {
499
- responseURL: string;
500
- responseToken: string;
501
- }
502
- export declare namespace WorkspaceProbeContext {
503
- function is(context: any): context is WorkspaceProbeContext;
504
- }
505
680
  export declare type RefType = "branch" | "tag" | "revision";
506
681
  export declare namespace RefType {
507
682
  const getRefType: (commit: Commit) => RefType;
@@ -512,9 +687,45 @@ export interface Commit {
512
687
  ref?: string;
513
688
  refType?: RefType;
514
689
  }
515
- export interface CommitContext extends WorkspaceContext, Commit {
690
+ export interface AdditionalContentContext extends WorkspaceContext {
691
+ /**
692
+ * utf-8 encoded contents that will be copied on top of the workspace's filesystem
693
+ */
694
+ additionalFiles: {
695
+ [filePath: string]: string;
696
+ };
697
+ }
698
+ export declare namespace AdditionalContentContext {
699
+ function is(ctx: any): ctx is AdditionalContentContext;
700
+ function hasDockerConfig(ctx: any, config: WorkspaceConfig): boolean;
701
+ }
702
+ export interface OpenPrebuildContext extends WorkspaceContext {
703
+ openPrebuildID: string;
704
+ }
705
+ export declare namespace OpenPrebuildContext {
706
+ function is(ctx: any): ctx is OpenPrebuildContext;
707
+ }
708
+ export interface CommitContext extends WorkspaceContext, GitCheckoutInfo {
516
709
  /** @deprecated Moved to .repository.cloneUrl, left here for backwards-compatibility for old workspace contextes in the DB */
517
710
  cloneUrl?: string;
711
+ /**
712
+ * The clone and checkout information for additional repositories in case of multi-repo projects.
713
+ */
714
+ additionalRepositoryCheckoutInfo?: GitCheckoutInfo[];
715
+ }
716
+ export declare namespace CommitContext {
717
+ /**
718
+ * Creates a hash for all the commits of the CommitContext and all sub-repo commit infos.
719
+ * The hash is max 255 chars long.
720
+ * @param commitContext
721
+ * @returns hash for commitcontext
722
+ */
723
+ function computeHash(commitContext: CommitContext): string;
724
+ }
725
+ export interface GitCheckoutInfo extends Commit {
726
+ checkoutLocation?: string;
727
+ upstreamRemoteURI?: string;
728
+ localBranch?: string;
518
729
  }
519
730
  export declare namespace CommitContext {
520
731
  function is(commit: any): commit is CommitContext;
@@ -550,6 +761,7 @@ export interface Repository {
550
761
  owner: string;
551
762
  name: string;
552
763
  cloneUrl: string;
764
+ repoKind?: string;
553
765
  description?: string;
554
766
  avatarUrl?: string;
555
767
  webUrl?: string;
@@ -560,6 +772,18 @@ export interface Repository {
560
772
  parent: Repository;
561
773
  };
562
774
  }
775
+ export interface Branch {
776
+ name: string;
777
+ commit: CommitInfo;
778
+ htmlUrl: string;
779
+ }
780
+ export interface CommitInfo {
781
+ author: string;
782
+ sha: string;
783
+ commitMessage: string;
784
+ authorAvatarUrl?: string;
785
+ authorDate?: string;
786
+ }
563
787
  export declare namespace Repository {
564
788
  function fullRepoName(repo: Repository): string;
565
789
  }
@@ -576,6 +800,9 @@ export interface WorkspaceInfo {
576
800
  workspace: Workspace;
577
801
  latestInstance?: WorkspaceInstance;
578
802
  }
803
+ export declare namespace WorkspaceInfo {
804
+ function lastActiveISODate(info: WorkspaceInfo): string;
805
+ }
579
806
  export declare type RunningWorkspaceInfo = WorkspaceInfo & {
580
807
  latestInstance: WorkspaceInstance;
581
808
  };
@@ -586,18 +813,13 @@ export interface WorkspaceCreationResult {
586
813
  runningWorkspacePrebuild?: {
587
814
  prebuildID: string;
588
815
  workspaceID: string;
816
+ instanceID: string;
589
817
  starting: RunningWorkspacePrebuildStarting;
590
818
  sameCluster: boolean;
591
819
  };
592
820
  runningPrebuildWorkspaceID?: string;
593
821
  }
594
- export declare type RunningWorkspacePrebuildStarting = 'queued' | 'starting' | 'running';
595
- export declare enum CreateWorkspaceMode {
596
- Default = "default",
597
- ForceNew = "force-new",
598
- UsePrebuild = "use-prebuild",
599
- SelectIfRunning = "select-if-running"
600
- }
822
+ export declare type RunningWorkspacePrebuildStarting = "queued" | "starting" | "running";
601
823
  export declare namespace WorkspaceCreationResult {
602
824
  function is(data: any): data is WorkspaceCreationResult;
603
825
  }
@@ -616,6 +838,7 @@ export interface AuthProviderInfo {
616
838
  readonly authProviderType: string;
617
839
  readonly host: string;
618
840
  readonly ownerId?: string;
841
+ readonly organizationId?: string;
619
842
  readonly verified: boolean;
620
843
  readonly isReadonly?: boolean;
621
844
  readonly hiddenOnDashboard?: boolean;
@@ -636,8 +859,11 @@ export interface AuthProviderEntry {
636
859
  readonly type: AuthProviderEntry.Type;
637
860
  readonly host: string;
638
861
  readonly ownerId: string;
862
+ readonly organizationId?: string;
639
863
  readonly status: AuthProviderEntry.Status;
640
864
  readonly oauth: OAuth2Config;
865
+ /** A random string that is to change whenever oauth changes (enforced on DB level) */
866
+ readonly oauthRevision?: string;
641
867
  }
642
868
  export interface OAuth2Config {
643
869
  readonly clientId: string;
@@ -656,40 +882,20 @@ export interface OAuth2Config {
656
882
  export declare namespace AuthProviderEntry {
657
883
  type Type = "GitHub" | "GitLab" | string;
658
884
  type Status = "pending" | "verified";
659
- type NewEntry = Pick<AuthProviderEntry, "ownerId" | "host" | "type">;
885
+ type NewEntry = Pick<AuthProviderEntry, "ownerId" | "host" | "type"> & {
886
+ clientId?: string;
887
+ clientSecret?: string;
888
+ };
660
889
  type UpdateEntry = Pick<AuthProviderEntry, "id" | "ownerId"> & Pick<OAuth2Config, "clientId" | "clientSecret">;
661
- }
662
- export interface Branding {
663
- readonly name: string;
664
- readonly favicon?: string;
665
- /** Either including domain OR absolute path (interpreted relative to host URL) */
666
- readonly logo: string;
667
- readonly startupLogo: string;
668
- readonly showProductivityTips: boolean;
669
- readonly redirectUrlIfNotAuthenticated?: string;
670
- readonly redirectUrlAfterLogout?: string;
671
- readonly homepage: string;
672
- readonly ide?: {
673
- readonly logo: string;
674
- readonly showReleaseNotes: boolean;
675
- readonly helpMenu: Branding.Link[];
890
+ type NewOrgEntry = NewEntry & {
891
+ organizationId: string;
676
892
  };
677
- readonly links: {
678
- readonly header: Branding.Link[];
679
- readonly footer: Branding.Link[];
680
- readonly social: Branding.SocialLink[];
681
- readonly legal: Branding.Link[];
893
+ type UpdateOrgEntry = Pick<AuthProviderEntry, "id"> & {
894
+ clientId: string;
895
+ clientSecret: string;
896
+ organizationId: string;
682
897
  };
683
- }
684
- export declare namespace Branding {
685
- interface Link {
686
- readonly name: string;
687
- readonly url: string;
688
- }
689
- interface SocialLink {
690
- readonly type: string;
691
- readonly url: string;
692
- }
898
+ function redact(entry: AuthProviderEntry): AuthProviderEntry;
693
899
  }
694
900
  export interface Configuration {
695
901
  readonly daysBeforeGarbageCollection: number;
@@ -715,4 +921,25 @@ export declare namespace TheiaPlugin {
715
921
  CheckinFailed = "checkin-failed"
716
922
  }
717
923
  }
924
+ export interface TermsAcceptanceEntry {
925
+ readonly userId: string;
926
+ readonly termsRevision: string;
927
+ readonly acceptionTime: string;
928
+ }
929
+ export interface Terms {
930
+ readonly revision: string;
931
+ readonly activeSince: string;
932
+ readonly adminOnlyTerms: boolean;
933
+ readonly updateMessage: string;
934
+ readonly content: string;
935
+ readonly formElements?: object;
936
+ }
937
+ export interface StripeConfig {
938
+ individualUsagePriceIds: {
939
+ [currency: string]: string;
940
+ };
941
+ teamUsagePriceIds: {
942
+ [currency: string]: string;
943
+ };
944
+ }
718
945
  //# sourceMappingURL=protocol.d.ts.map