@gitpod/gitpod-protocol 0.1.5-wth-test.80 → 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 (270) hide show
  1. package/data/gitpod-schema.json +181 -4
  2. package/lib/accounting-protocol.d.ts +17 -10
  3. package/lib/accounting-protocol.d.ts.map +1 -1
  4. package/lib/accounting-protocol.js +30 -32
  5. package/lib/accounting-protocol.js.map +1 -1
  6. package/lib/admin-protocol.d.ts +1 -0
  7. package/lib/admin-protocol.d.ts.map +1 -1
  8. package/lib/admin-protocol.js.map +1 -1
  9. package/lib/analytics.d.ts.map +1 -1
  10. package/lib/analytics.js.map +1 -1
  11. package/lib/auth.d.ts.map +1 -1
  12. package/lib/context-url.d.ts.map +1 -1
  13. package/lib/context-url.js +3 -3
  14. package/lib/context-url.js.map +1 -1
  15. package/lib/context-url.spec.d.ts.map +1 -1
  16. package/lib/context-url.spec.js +20 -5
  17. package/lib/context-url.spec.js.map +1 -1
  18. package/lib/email-protocol.d.ts +1 -1
  19. package/lib/email-protocol.d.ts.map +1 -1
  20. package/lib/email-protocol.js.map +1 -1
  21. package/lib/encryption/container-module.d.ts.map +1 -1
  22. package/lib/encryption/container-module.js +1 -1
  23. package/lib/encryption/container-module.js.map +1 -1
  24. package/lib/encryption/encryption-engine.d.ts.map +1 -1
  25. package/lib/encryption/encryption-engine.js +7 -7
  26. package/lib/encryption/encryption-engine.js.map +1 -1
  27. package/lib/encryption/encryption-engine.spec.d.ts.map +1 -1
  28. package/lib/encryption/encryption-engine.spec.js +2 -3
  29. package/lib/encryption/encryption-engine.spec.js.map +1 -1
  30. package/lib/encryption/encryption-service.d.ts.map +1 -1
  31. package/lib/encryption/encryption-service.js +1 -1
  32. package/lib/encryption/encryption-service.js.map +1 -1
  33. package/lib/encryption/key-provider.d.ts.map +1 -1
  34. package/lib/encryption/key-provider.js +7 -9
  35. package/lib/encryption/key-provider.js.map +1 -1
  36. package/lib/env.d.ts +0 -5
  37. package/lib/env.d.ts.map +1 -1
  38. package/lib/env.js +1 -20
  39. package/lib/env.js.map +1 -1
  40. package/lib/gitpod-file-parser.d.ts.map +1 -1
  41. package/lib/gitpod-file-parser.js +6 -6
  42. package/lib/gitpod-file-parser.js.map +1 -1
  43. package/lib/gitpod-file-parser.spec.js +42 -39
  44. package/lib/gitpod-file-parser.spec.js.map +1 -1
  45. package/lib/gitpod-service.d.ts +32 -26
  46. package/lib/gitpod-service.d.ts.map +1 -1
  47. package/lib/gitpod-service.js +39 -32
  48. package/lib/gitpod-service.js.map +1 -1
  49. package/lib/headless-workspace-log.d.ts +1 -0
  50. package/lib/headless-workspace-log.d.ts.map +1 -1
  51. package/lib/headless-workspace-log.js +2 -1
  52. package/lib/headless-workspace-log.js.map +1 -1
  53. package/lib/ide-frontend-service.d.ts +1 -1
  54. package/lib/ide-protocol.d.ts +6 -6
  55. package/lib/ide-protocol.d.ts.map +1 -1
  56. package/lib/index.d.ts +16 -16
  57. package/lib/installation-admin-protocol.d.ts.map +1 -1
  58. package/lib/installation-admin-protocol.js +2 -2
  59. package/lib/installation-admin-protocol.js.map +1 -1
  60. package/lib/license-protocol.d.ts +7 -0
  61. package/lib/license-protocol.d.ts.map +1 -1
  62. package/lib/license-protocol.js.map +1 -1
  63. package/lib/messaging/browser/connection.d.ts +1 -1
  64. package/lib/messaging/browser/connection.d.ts.map +1 -1
  65. package/lib/messaging/browser/connection.js +19 -19
  66. package/lib/messaging/browser/connection.js.map +1 -1
  67. package/lib/messaging/browser/window-connection.d.ts +4 -4
  68. package/lib/messaging/browser/window-connection.d.ts.map +1 -1
  69. package/lib/messaging/browser/window-connection.js +9 -6
  70. package/lib/messaging/browser/window-connection.js.map +1 -1
  71. package/lib/messaging/client-call-metrics.d.ts +2 -2
  72. package/lib/messaging/client-call-metrics.d.ts.map +1 -1
  73. package/lib/messaging/client-call-metrics.js +20 -20
  74. package/lib/messaging/client-call-metrics.js.map +1 -1
  75. package/lib/messaging/error.d.ts +2 -0
  76. package/lib/messaging/error.d.ts.map +1 -1
  77. package/lib/messaging/error.js +4 -0
  78. package/lib/messaging/error.js.map +1 -1
  79. package/lib/messaging/handler.d.ts.map +1 -1
  80. package/lib/messaging/handler.js +1 -1
  81. package/lib/messaging/node/connection.js +8 -8
  82. package/lib/messaging/node/connection.js.map +1 -1
  83. package/lib/messaging/proxy-factory.d.ts +1 -1
  84. package/lib/messaging/proxy-factory.d.ts.map +1 -1
  85. package/lib/messaging/proxy-factory.js +7 -9
  86. package/lib/messaging/proxy-factory.js.map +1 -1
  87. package/lib/payment-protocol.d.ts.map +1 -1
  88. package/lib/payment-protocol.js +1 -1
  89. package/lib/payment-protocol.js.map +1 -1
  90. package/lib/permission.d.ts +2 -2
  91. package/lib/permission.d.ts.map +1 -1
  92. package/lib/permission.js +12 -23
  93. package/lib/permission.js.map +1 -1
  94. package/lib/plans.d.ts +3 -3
  95. package/lib/plans.d.ts.map +1 -1
  96. package/lib/plans.js +206 -171
  97. package/lib/plans.js.map +1 -1
  98. package/lib/protocol.d.ts +83 -36
  99. package/lib/protocol.d.ts.map +1 -1
  100. package/lib/protocol.js +165 -87
  101. package/lib/protocol.js.map +1 -1
  102. package/lib/snapshot-url.spec.js.map +1 -1
  103. package/lib/team-subscription-protocol.d.ts +21 -3
  104. package/lib/team-subscription-protocol.d.ts.map +1 -1
  105. package/lib/team-subscription-protocol.js +16 -5
  106. package/lib/team-subscription-protocol.js.map +1 -1
  107. package/lib/teams-projects-protocol.d.ts +8 -3
  108. package/lib/teams-projects-protocol.d.ts.map +1 -1
  109. package/lib/teams-projects-protocol.js +1 -1
  110. package/lib/teams-projects-protocol.js.map +1 -1
  111. package/lib/typings/globals.d.ts +2 -2
  112. package/lib/typings/globals.d.ts.map +1 -1
  113. package/lib/util/analytics.d.ts.map +1 -1
  114. package/lib/util/analytics.js +6 -6
  115. package/lib/util/analytics.js.map +1 -1
  116. package/lib/util/async-iterator.d.ts.map +1 -1
  117. package/lib/util/async-iterator.js +3 -3
  118. package/lib/util/async-iterator.js.map +1 -1
  119. package/lib/util/cancelable.js.map +1 -1
  120. package/lib/util/date-time.js +6 -6
  121. package/lib/util/date-time.js.map +1 -1
  122. package/lib/util/deferred.js.map +1 -1
  123. package/lib/util/disposable.d.ts.map +1 -1
  124. package/lib/util/disposable.js +2 -2
  125. package/lib/util/disposable.js.map +1 -1
  126. package/lib/util/event.d.ts.map +1 -1
  127. package/lib/util/event.js +5 -3
  128. package/lib/util/event.js.map +1 -1
  129. package/lib/util/garbage-collected-cache.d.ts.map +1 -1
  130. package/lib/util/garbage-collected-cache.js +1 -1
  131. package/lib/util/garbage-collected-cache.js.map +1 -1
  132. package/lib/util/generate-workspace-id.d.ts +5 -0
  133. package/lib/util/generate-workspace-id.d.ts.map +1 -1
  134. package/lib/util/generate-workspace-id.js +446 -442
  135. package/lib/util/generate-workspace-id.js.map +1 -1
  136. package/lib/util/generate-workspace-id.spec.js +18 -7
  137. package/lib/util/generate-workspace-id.spec.js.map +1 -1
  138. package/lib/util/gitpod-cookie.d.ts +1 -1
  139. package/lib/util/gitpod-cookie.d.ts.map +1 -1
  140. package/lib/util/gitpod-cookie.js +0 -3
  141. package/lib/util/gitpod-cookie.js.map +1 -1
  142. package/lib/util/gitpod-host-url.d.ts.map +1 -1
  143. package/lib/util/gitpod-host-url.js +31 -29
  144. package/lib/util/gitpod-host-url.js.map +1 -1
  145. package/lib/util/gitpod-host-url.spec.d.ts.map +1 -1
  146. package/lib/util/gitpod-host-url.spec.js +15 -5
  147. package/lib/util/gitpod-host-url.spec.js.map +1 -1
  148. package/lib/util/grpc.d.ts.map +1 -1
  149. package/lib/util/grpc.js.map +1 -1
  150. package/lib/util/jaeger-client-types.d.ts.map +1 -1
  151. package/lib/util/logging.d.ts +1 -1
  152. package/lib/util/logging.d.ts.map +1 -1
  153. package/lib/util/logging.js +23 -24
  154. package/lib/util/logging.js.map +1 -1
  155. package/lib/util/make-link.js +5 -5
  156. package/lib/util/make-link.js.map +1 -1
  157. package/lib/util/parse-workspace-id.d.ts.map +1 -1
  158. package/lib/util/parse-workspace-id.js +1 -2
  159. package/lib/util/parse-workspace-id.js.map +1 -1
  160. package/lib/util/parse-workspace-id.spec.d.ts.map +1 -1
  161. package/lib/util/parse-workspace-id.spec.js.map +1 -1
  162. package/lib/util/queue.spec.js +9 -6
  163. package/lib/util/queue.spec.js.map +1 -1
  164. package/lib/util/semaphore.d.ts.map +1 -1
  165. package/lib/util/semaphore.js.map +1 -1
  166. package/lib/util/skip-if.d.ts.map +1 -1
  167. package/lib/util/skip-if.js.map +1 -1
  168. package/lib/util/timeutil.d.ts +1 -0
  169. package/lib/util/timeutil.d.ts.map +1 -1
  170. package/lib/util/timeutil.js +9 -3
  171. package/lib/util/timeutil.js.map +1 -1
  172. package/lib/util/timeutil.spec.d.ts.map +1 -1
  173. package/lib/util/timeutil.spec.js.map +1 -1
  174. package/lib/util/tracing.d.ts +6 -6
  175. package/lib/util/tracing.d.ts.map +1 -1
  176. package/lib/util/tracing.js +14 -16
  177. package/lib/util/tracing.js.map +1 -1
  178. package/lib/util/tracing.spec.js +3 -3
  179. package/lib/util/tracing.spec.js.map +1 -1
  180. package/lib/util/workspace-port-authentication.d.ts +7 -7
  181. package/lib/util/workspace-port-authentication.d.ts.map +1 -1
  182. package/lib/util/workspace-port-authentication.js +8 -11
  183. package/lib/util/workspace-port-authentication.js.map +1 -1
  184. package/lib/workspace-cluster.d.ts +1 -1
  185. package/lib/workspace-cluster.d.ts.map +1 -1
  186. package/lib/workspace-cluster.js +2 -4
  187. package/lib/workspace-cluster.js.map +1 -1
  188. package/lib/workspace-instance.d.ts +19 -3
  189. package/lib/workspace-instance.d.ts.map +1 -1
  190. package/lib/wsready.d.ts +1 -1
  191. package/lib/wsready.d.ts.map +1 -1
  192. package/lib/wsready.js +2 -2
  193. package/package.json +6 -6
  194. package/pkg-yarn.lock +5 -5
  195. package/provenance-bundle.jsonl +1 -1
  196. package/src/accounting-protocol.ts +63 -51
  197. package/src/admin-protocol.ts +23 -20
  198. package/src/analytics.ts +21 -21
  199. package/src/auth.ts +2 -2
  200. package/src/context-url.spec.ts +25 -11
  201. package/src/context-url.ts +80 -78
  202. package/src/email-protocol.ts +5 -6
  203. package/src/encryption/container-module.ts +2 -3
  204. package/src/encryption/encryption-engine.spec.ts +9 -8
  205. package/src/encryption/encryption-engine.ts +14 -14
  206. package/src/encryption/encryption-service.ts +4 -5
  207. package/src/encryption/key-provider.ts +16 -19
  208. package/src/env.ts +0 -22
  209. package/src/gitpod-file-parser.spec.ts +55 -61
  210. package/src/gitpod-file-parser.ts +16 -17
  211. package/src/gitpod-service.ts +152 -110
  212. package/src/headless-workspace-log.ts +6 -4
  213. package/src/ide-frontend-service.ts +2 -2
  214. package/src/ide-protocol.ts +8 -8
  215. package/src/index.ts +16 -16
  216. package/src/installation-admin-protocol.ts +8 -8
  217. package/src/license-protocol.ts +12 -6
  218. package/src/messaging/browser/connection.ts +45 -47
  219. package/src/messaging/browser/window-connection.ts +39 -29
  220. package/src/messaging/client-call-metrics.ts +70 -71
  221. package/src/messaging/error.ts +7 -3
  222. package/src/messaging/handler.ts +6 -6
  223. package/src/messaging/node/connection.ts +8 -8
  224. package/src/messaging/proxy-factory.ts +23 -30
  225. package/src/oss-allowlist.ts +3 -3
  226. package/src/payment-protocol.ts +2 -2
  227. package/src/permission.ts +20 -31
  228. package/src/plans.ts +236 -189
  229. package/src/protocol.ts +346 -239
  230. package/src/snapshot-url.spec.ts +9 -7
  231. package/src/team-subscription-protocol.ts +57 -23
  232. package/src/teams-projects-protocol.ts +14 -8
  233. package/src/typings/globals.ts +4 -4
  234. package/src/util/analytics.ts +46 -42
  235. package/src/util/async-iterator.ts +4 -5
  236. package/src/util/cancelable.ts +3 -3
  237. package/src/util/date-time.ts +8 -8
  238. package/src/util/deferred.ts +6 -6
  239. package/src/util/disposable.ts +3 -6
  240. package/src/util/event.ts +9 -11
  241. package/src/util/garbage-collected-cache.ts +3 -6
  242. package/src/util/generate-workspace-id.spec.ts +26 -16
  243. package/src/util/generate-workspace-id.ts +460 -454
  244. package/src/util/gitpod-cookie.ts +8 -9
  245. package/src/util/gitpod-host-url.spec.ts +40 -13
  246. package/src/util/gitpod-host-url.ts +37 -34
  247. package/src/util/grpc.ts +1 -1
  248. package/src/util/jaeger-client-types.ts +2 -2
  249. package/src/util/logging.ts +49 -40
  250. package/src/util/make-link.ts +6 -7
  251. package/src/util/parse-workspace-id.spec.ts +17 -8
  252. package/src/util/parse-workspace-id.ts +5 -6
  253. package/src/util/queue.spec.ts +27 -25
  254. package/src/util/repeat.ts +1 -1
  255. package/src/util/semaphore.ts +4 -6
  256. package/src/util/skip-if.ts +9 -6
  257. package/src/util/timeutil.spec.ts +14 -15
  258. package/src/util/timeutil.ts +21 -11
  259. package/src/util/tracing.spec.ts +28 -23
  260. package/src/util/tracing.ts +54 -51
  261. package/src/util/workspace-port-authentication.ts +10 -13
  262. package/src/workspace-cluster.ts +15 -12
  263. package/src/workspace-instance.ts +53 -24
  264. package/src/wsready.ts +3 -3
  265. package/data/builtin-theia-plugins.json +0 -372
  266. package/lib/theia-plugins.d.ts +0 -11
  267. package/lib/theia-plugins.d.ts.map +0 -1
  268. package/lib/theia-plugins.js +0 -8
  269. package/lib/theia-plugins.js.map +0 -1
  270. package/src/theia-plugins.ts +0 -11
@@ -5,32 +5,58 @@
5
5
  */
6
6
 
7
7
  import {
8
- User, WorkspaceInfo, WorkspaceCreationResult, WorkspaceInstanceUser,
9
- WhitelistedRepository, WorkspaceImageBuild, AuthProviderInfo, CreateWorkspaceMode,
10
- Token, UserEnvVarValue, ResolvePluginsParams, PreparePluginUploadParams, Terms,
11
- ResolvedPlugins, Configuration, InstallPluginsParams, UninstallPluginParams, UserInfo, GitpodTokenType,
12
- GitpodToken, AuthProviderEntry, GuessGitTokenScopesParams, GuessedGitTokenScopes, ProjectEnvVar
13
- } from './protocol';
8
+ User,
9
+ WorkspaceInfo,
10
+ WorkspaceCreationResult,
11
+ WorkspaceInstanceUser,
12
+ WhitelistedRepository,
13
+ WorkspaceImageBuild,
14
+ AuthProviderInfo,
15
+ CreateWorkspaceMode,
16
+ Token,
17
+ UserEnvVarValue,
18
+ Terms,
19
+ Configuration,
20
+ UserInfo,
21
+ GitpodTokenType,
22
+ GitpodToken,
23
+ AuthProviderEntry,
24
+ GuessGitTokenScopesParams,
25
+ GuessedGitTokenScopes,
26
+ ProjectEnvVar,
27
+ } from "./protocol";
14
28
  import {
15
- Team, TeamMemberInfo,
16
- TeamMembershipInvite, Project, TeamMemberRole, PrebuildWithStatus, StartPrebuildResult, PartialProject
17
- } from './teams-projects-protocol';
18
- import { JsonRpcProxy, JsonRpcServer } from './messaging/proxy-factory';
19
- import { Disposable, CancellationTokenSource } from 'vscode-jsonrpc';
20
- import { HeadlessLogUrls } from './headless-workspace-log';
21
- import { WorkspaceInstance, WorkspaceInstancePort, WorkspaceInstancePhase } from './workspace-instance';
22
- import { AdminServer } from './admin-protocol';
23
- import { GitpodHostUrl } from './util/gitpod-host-url';
24
- import { WebSocketConnectionProvider } from './messaging/browser/connection';
25
- import { PermissionName } from './permission';
26
- import { LicenseService } from './license-protocol';
27
- import { Emitter } from './util/event';
28
- import { AccountStatement, CreditAlert } from './accounting-protocol';
29
- import { GithubUpgradeURL, PlanCoupon } from './payment-protocol';
30
- import { TeamSubscription, TeamSubscriptionSlot, TeamSubscriptionSlotResolved } from './team-subscription-protocol';
31
- import { RemotePageMessage, RemoteTrackMessage, RemoteIdentifyMessage } from './analytics';
32
- import { IDEServer } from './ide-protocol';
33
- import { InstallationAdminSettings, TelemetryData } from './installation-admin-protocol';
29
+ Team,
30
+ TeamMemberInfo,
31
+ TeamMembershipInvite,
32
+ Project,
33
+ TeamMemberRole,
34
+ PrebuildWithStatus,
35
+ StartPrebuildResult,
36
+ PartialProject,
37
+ } from "./teams-projects-protocol";
38
+ import { JsonRpcProxy, JsonRpcServer } from "./messaging/proxy-factory";
39
+ import { Disposable, CancellationTokenSource } from "vscode-jsonrpc";
40
+ import { HeadlessLogUrls } from "./headless-workspace-log";
41
+ import { WorkspaceInstance, WorkspaceInstancePort, WorkspaceInstancePhase } from "./workspace-instance";
42
+ import { AdminServer } from "./admin-protocol";
43
+ import { GitpodHostUrl } from "./util/gitpod-host-url";
44
+ import { WebSocketConnectionProvider } from "./messaging/browser/connection";
45
+ import { PermissionName } from "./permission";
46
+ import { LicenseService } from "./license-protocol";
47
+ import { Emitter } from "./util/event";
48
+ import { AccountStatement, CreditAlert } from "./accounting-protocol";
49
+ import { GithubUpgradeURL, PlanCoupon } from "./payment-protocol";
50
+ import {
51
+ TeamSubscription,
52
+ TeamSubscription2,
53
+ TeamSubscriptionSlot,
54
+ TeamSubscriptionSlotResolved,
55
+ } from "./team-subscription-protocol";
56
+ import { RemotePageMessage, RemoteTrackMessage, RemoteIdentifyMessage } from "./analytics";
57
+ import { IDEServer } from "./ide-protocol";
58
+ import { InstallationAdminSettings, TelemetryData } from "./installation-admin-protocol";
59
+ import { Currency } from "./plans";
34
60
 
35
61
  export interface GitpodClient {
36
62
  onInstanceUpdate(instance: WorkspaceInstance): void;
@@ -46,7 +72,7 @@ export interface GitpodClient {
46
72
  //#endregion
47
73
  }
48
74
 
49
- export const GitpodServer = Symbol('GitpodServer');
75
+ export const GitpodServer = Symbol("GitpodServer");
50
76
  export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer, LicenseService, IDEServer {
51
77
  // User related API
52
78
  getLoggedInUser(): Promise<User>;
@@ -159,8 +185,8 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
159
185
  deleteProjectEnvironmentVariable(variableId: string): Promise<void>;
160
186
 
161
187
  // content service
162
- getContentBlobUploadUrl(name: string): Promise<string>
163
- getContentBlobDownloadUrl(name: string): Promise<string>
188
+ getContentBlobUploadUrl(name: string): Promise<string>;
189
+ getContentBlobDownloadUrl(name: string): Promise<string>;
164
190
 
165
191
  // Gitpod token
166
192
  getGitpodTokens(): Promise<GitpodToken[]>;
@@ -169,6 +195,7 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
169
195
 
170
196
  // misc
171
197
  sendFeedback(feedback: string): Promise<string | undefined>;
198
+ isGitHubAppEnabled(): Promise<boolean>;
172
199
  registerGithubApp(installationId: string): Promise<void>;
173
200
 
174
201
  /**
@@ -197,15 +224,6 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
197
224
  */
198
225
  getLayout(workspaceId: string): Promise<string | undefined>;
199
226
 
200
- /**
201
- * @param params
202
- * @returns promise resolves to an URL to be used for the upload
203
- */
204
- preparePluginUpload(params: PreparePluginUploadParams): Promise<string>
205
- resolvePlugins(workspaceId: string, params: ResolvePluginsParams): Promise<ResolvedPlugins>;
206
- installUserPlugins(params: InstallPluginsParams): Promise<boolean>;
207
- uninstallUserPlugin(params: UninstallPluginParams): Promise<boolean>;
208
-
209
227
  guessGitTokenScopes(params: GuessGitTokenScopesParams): Promise<GuessedGitTokenScopes>;
210
228
 
211
229
  /**
@@ -223,7 +241,9 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
223
241
  */
224
242
  getChargebeeSiteId(): Promise<string>;
225
243
  createPortalSession(): Promise<{}>;
244
+ createTeamPortalSession(teamId: string): Promise<{}>;
226
245
  checkout(planId: string, planQuantity?: number): Promise<{}>;
246
+ teamCheckout(teamId: string, planId: string): Promise<{}>;
227
247
  getAvailableCoupons(): Promise<PlanCoupon[]>;
228
248
  getAppliedCoupons(): Promise<PlanCoupon[]>;
229
249
 
@@ -235,17 +255,28 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
235
255
  subscriptionCancel(subscriptionId: string): Promise<void>;
236
256
  subscriptionCancelDowngrade(subscriptionId: string): Promise<void>;
237
257
 
258
+ getTeamSubscription(teamId: string): Promise<TeamSubscription2 | undefined>;
238
259
  tsGet(): Promise<TeamSubscription[]>;
239
260
  tsGetSlots(): Promise<TeamSubscriptionSlotResolved[]>;
240
- tsGetUnassignedSlot(teamSubscriptionId: string): Promise<TeamSubscriptionSlot | undefined>
261
+ tsGetUnassignedSlot(teamSubscriptionId: string): Promise<TeamSubscriptionSlot | undefined>;
241
262
  tsAddSlots(teamSubscriptionId: string, quantity: number): Promise<void>;
242
- tsAssignSlot(teamSubscriptionId: string, teamSubscriptionSlotId: string, identityStr: string | undefined): Promise<void>
263
+ tsAssignSlot(
264
+ teamSubscriptionId: string,
265
+ teamSubscriptionSlotId: string,
266
+ identityStr: string | undefined,
267
+ ): Promise<void>;
243
268
  tsReassignSlot(teamSubscriptionId: string, teamSubscriptionSlotId: string, newIdentityStr: string): Promise<void>;
244
269
  tsDeactivateSlot(teamSubscriptionId: string, teamSubscriptionSlotId: string): Promise<void>;
245
270
  tsReactivateSlot(teamSubscriptionId: string, teamSubscriptionSlotId: string): Promise<void>;
246
271
 
247
272
  getGithubUpgradeUrls(): Promise<GithubUpgradeURL[]>;
248
273
 
274
+ getStripePublishableKey(): Promise<string>;
275
+ getStripeSetupIntentClientSecret(): Promise<string>;
276
+ findStripeCustomerIdForTeam(teamId: string): Promise<string | undefined>;
277
+ subscribeTeamToStripe(teamId: string, setupIntentId: string, currency: Currency): Promise<void>;
278
+ getStripePortalUrlForTeam(teamId: string): Promise<string>;
279
+
249
280
  /**
250
281
  * Analytics
251
282
  */
@@ -255,13 +286,13 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
255
286
  }
256
287
 
257
288
  export interface RateLimiterError {
258
- method?: string,
289
+ method?: string;
259
290
 
260
291
  /**
261
292
  * Retry after this many seconds, earliest.
262
293
  * cmp.: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After
263
294
  */
264
- retryAfter: number,
295
+ retryAfter: number;
265
296
  }
266
297
 
267
298
  export interface CreateProjectParams {
@@ -292,7 +323,7 @@ export interface ProviderRepository {
292
323
  account: string;
293
324
  accountAvatarUrl: string;
294
325
  cloneUrl: string;
295
- updatedAt: string;
326
+ updatedAt?: string;
296
327
  installationId?: number;
297
328
  installationUpdatedAt?: string;
298
329
 
@@ -306,15 +337,28 @@ export interface ClientHeaderFields {
306
337
  clientRegion?: string;
307
338
  }
308
339
 
309
- export const WorkspaceTimeoutValues = ["30m", "60m", "180m"] as const;
310
-
311
- export const createServiceMock = function <C extends GitpodClient, S extends GitpodServer>(methods: Partial<JsonRpcProxy<S>>): GitpodServiceImpl<C, S> {
340
+ export const WORKSPACE_TIMEOUT_DEFAULT_SHORT = "short";
341
+ export const WORKSPACE_TIMEOUT_DEFAULT_LONG = "long";
342
+ export const WORKSPACE_TIMEOUT_EXTENDED = "extended";
343
+ export const WORKSPACE_TIMEOUT_EXTENDED_ALT = "180m"; // for backwards compatibility since the IDE uses this
344
+ export const WorkspaceTimeoutValues = [
345
+ WORKSPACE_TIMEOUT_DEFAULT_SHORT,
346
+ WORKSPACE_TIMEOUT_DEFAULT_LONG,
347
+ WORKSPACE_TIMEOUT_EXTENDED,
348
+ WORKSPACE_TIMEOUT_EXTENDED_ALT,
349
+ ] as const;
350
+
351
+ export const createServiceMock = function <C extends GitpodClient, S extends GitpodServer>(
352
+ methods: Partial<JsonRpcProxy<S>>,
353
+ ): GitpodServiceImpl<C, S> {
312
354
  return new GitpodServiceImpl<C, S>(createServerMock(methods));
313
- }
355
+ };
314
356
 
315
- export const createServerMock = function <C extends GitpodClient, S extends GitpodServer>(methods: Partial<JsonRpcProxy<S>>): JsonRpcProxy<S> {
316
- methods.setClient = methods.setClient || (() => { });
317
- methods.dispose = methods.dispose || (() => { });
357
+ export const createServerMock = function <C extends GitpodClient, S extends GitpodServer>(
358
+ methods: Partial<JsonRpcProxy<S>>,
359
+ ): JsonRpcProxy<S> {
360
+ methods.setClient = methods.setClient || (() => {});
361
+ methods.dispose = methods.dispose || (() => {});
318
362
  return new Proxy<JsonRpcProxy<S>>(methods as any as JsonRpcProxy<S>, {
319
363
  // @ts-ignore
320
364
  get: (target: S, property: keyof S) => {
@@ -323,25 +367,25 @@ export const createServerMock = function <C extends GitpodClient, S extends Gitp
323
367
  throw new Error(`Method ${property} not implemented`);
324
368
  }
325
369
  return result;
326
- }
370
+ },
327
371
  });
328
- }
372
+ };
329
373
 
330
374
  type WorkspaceTimeoutDurationTuple = typeof WorkspaceTimeoutValues;
331
375
  export type WorkspaceTimeoutDuration = WorkspaceTimeoutDurationTuple[number];
332
376
 
333
377
  export interface SetWorkspaceTimeoutResult {
334
- resetTimeoutOnWorkspaces: string[]
378
+ resetTimeoutOnWorkspaces: string[];
335
379
  }
336
380
 
337
381
  export interface GetWorkspaceTimeoutResult {
338
- duration: WorkspaceTimeoutDuration
339
- canChange: boolean
382
+ duration: WorkspaceTimeoutDuration;
383
+ canChange: boolean;
340
384
  }
341
385
 
342
386
  export interface StartWorkspaceResult {
343
- instanceID: string
344
- workspaceURL?: string
387
+ instanceID: string;
388
+ workspaceURL?: string;
345
389
  }
346
390
 
347
391
  export namespace GitpodServer {
@@ -385,23 +429,23 @@ export namespace GitpodServer {
385
429
  readonly roundTripTime?: number;
386
430
  }
387
431
  export interface UpdateOwnAuthProviderParams {
388
- readonly entry: AuthProviderEntry.UpdateEntry | AuthProviderEntry.NewEntry
432
+ readonly entry: AuthProviderEntry.UpdateEntry | AuthProviderEntry.NewEntry;
389
433
  }
390
434
  export interface DeleteOwnAuthProviderParams {
391
- readonly id: string
435
+ readonly id: string;
392
436
  }
393
437
  export type AdmissionLevel = "owner" | "everyone";
394
438
  export type PinAction = "pin" | "unpin" | "toggle";
395
439
  export interface GenerateNewGitpodTokenOptions {
396
- name?: string
397
- type: GitpodTokenType
398
- scopes?: string[]
440
+ name?: string;
441
+ type: GitpodTokenType;
442
+ scopes?: string[];
399
443
  }
400
444
  }
401
445
 
402
- export const GitpodServerPath = '/gitpod';
446
+ export const GitpodServerPath = "/gitpod";
403
447
 
404
- export const GitpodServerProxy = Symbol('GitpodServerProxy');
448
+ export const GitpodServerProxy = Symbol("GitpodServerProxy");
405
449
  export type GitpodServerProxy<S extends GitpodServer> = JsonRpcProxy<S>;
406
450
 
407
451
  export class GitpodCompositeClient<Client extends GitpodClient> implements GitpodClient {
@@ -415,8 +459,8 @@ export class GitpodCompositeClient<Client extends GitpodClient> implements Gitpo
415
459
  if (index > -1) {
416
460
  this.clients.splice(index, 1);
417
461
  }
418
- }
419
- }
462
+ },
463
+ };
420
464
  }
421
465
 
422
466
  onInstanceUpdate(instance: WorkspaceInstance): void {
@@ -425,7 +469,7 @@ export class GitpodCompositeClient<Client extends GitpodClient> implements Gitpo
425
469
  try {
426
470
  client.onInstanceUpdate(instance);
427
471
  } catch (error) {
428
- console.error(error)
472
+ console.error(error);
429
473
  }
430
474
  }
431
475
  }
@@ -437,19 +481,22 @@ export class GitpodCompositeClient<Client extends GitpodClient> implements Gitpo
437
481
  try {
438
482
  client.onPrebuildUpdate(update);
439
483
  } catch (error) {
440
- console.error(error)
484
+ console.error(error);
441
485
  }
442
486
  }
443
487
  }
444
488
  }
445
489
 
446
- onWorkspaceImageBuildLogs(info: WorkspaceImageBuild.StateInfo, content: WorkspaceImageBuild.LogContent | undefined): void {
490
+ onWorkspaceImageBuildLogs(
491
+ info: WorkspaceImageBuild.StateInfo,
492
+ content: WorkspaceImageBuild.LogContent | undefined,
493
+ ): void {
447
494
  for (const client of this.clients) {
448
495
  if (client.onWorkspaceImageBuildLogs) {
449
496
  try {
450
497
  client.onWorkspaceImageBuildLogs(info, content);
451
498
  } catch (error) {
452
- console.error(error)
499
+ console.error(error);
453
500
  }
454
501
  }
455
502
  }
@@ -461,7 +508,7 @@ export class GitpodCompositeClient<Client extends GitpodClient> implements Gitpo
461
508
  try {
462
509
  client.notifyDidOpenConnection();
463
510
  } catch (error) {
464
- console.error(error)
511
+ console.error(error);
465
512
  }
466
513
  }
467
514
  }
@@ -473,7 +520,7 @@ export class GitpodCompositeClient<Client extends GitpodClient> implements Gitpo
473
520
  try {
474
521
  client.notifyDidCloseConnection();
475
522
  } catch (error) {
476
- console.error(error)
523
+ console.error(error);
477
524
  }
478
525
  }
479
526
  }
@@ -485,64 +532,61 @@ export class GitpodCompositeClient<Client extends GitpodClient> implements Gitpo
485
532
  try {
486
533
  client.onCreditAlert(creditAlert);
487
534
  } catch (error) {
488
- console.error(error)
535
+ console.error(error);
489
536
  }
490
537
  }
491
538
  }
492
539
  }
493
-
494
540
  }
495
541
 
496
542
  export type GitpodService = GitpodServiceImpl<GitpodClient, GitpodServer>;
497
543
 
498
- const hasWindow = (typeof window !== 'undefined');
544
+ const hasWindow = typeof window !== "undefined";
499
545
  const phasesOrder: Record<WorkspaceInstancePhase, number> = {
500
546
  unknown: 0,
501
547
  preparing: 1,
502
- pending: 2,
503
- creating: 3,
504
- initializing: 4,
505
- running: 5,
506
- interrupted: 6,
507
- stopping: 7,
508
- stopped: 8
548
+ building: 2,
549
+ pending: 3,
550
+ creating: 4,
551
+ initializing: 5,
552
+ running: 6,
553
+ interrupted: 7,
554
+ stopping: 8,
555
+ stopped: 9,
509
556
  };
510
557
  export class WorkspaceInstanceUpdateListener {
511
558
  private readonly onDidChangeEmitter = new Emitter<void>();
512
559
  readonly onDidChange = this.onDidChangeEmitter.event;
513
560
 
514
- private source: 'sync' | 'update' = 'sync';
561
+ private source: "sync" | "update" = "sync";
515
562
 
516
563
  get info(): WorkspaceInfo {
517
564
  return this._info;
518
565
  }
519
566
 
520
- constructor(
521
- private readonly service: GitpodService,
522
- private _info: WorkspaceInfo
523
- ) {
567
+ constructor(private readonly service: GitpodService, private _info: WorkspaceInfo) {
524
568
  service.registerClient({
525
- onInstanceUpdate: instance => {
569
+ onInstanceUpdate: (instance) => {
526
570
  if (this.isOutOfOrder(instance)) {
527
571
  return;
528
572
  }
529
573
  this.cancelSync();
530
574
  this._info.latestInstance = instance;
531
- this.source = 'update';
575
+ this.source = "update";
532
576
  this.onDidChangeEmitter.fire(undefined);
533
577
  },
534
578
  notifyDidOpenConnection: () => {
535
579
  this.sync();
536
- }
580
+ },
537
581
  });
538
582
  if (hasWindow) {
539
583
  // learn about page lifecycle here: https://developers.google.com/web/updates/2018/07/page-lifecycle-api
540
- window.document.addEventListener('visibilitychange', async () => {
541
- if (window.document.visibilityState === 'visible') {
584
+ window.document.addEventListener("visibilitychange", async () => {
585
+ if (window.document.visibilityState === "visible") {
542
586
  this.sync();
543
587
  }
544
588
  });
545
- window.addEventListener('pageshow', e => {
589
+ window.addEventListener("pageshow", (e) => {
546
590
  if (e.persisted) {
547
591
  this.sync();
548
592
  }
@@ -570,12 +614,12 @@ export class WorkspaceInstanceUpdateListener {
570
614
  return;
571
615
  }
572
616
  this._info = info;
573
- this.source = 'sync';
617
+ this.source = "sync";
574
618
  this.onDidChangeEmitter.fire(undefined);
575
619
  } catch (e) {
576
- console.error('failed to sync workspace instance:', e)
620
+ console.error("failed to sync workspace instance:", e);
577
621
  }
578
- })
622
+ });
579
623
  }
580
624
  private cancelSync(): void {
581
625
  if (this.syncTokenSource) {
@@ -592,7 +636,7 @@ export class WorkspaceInstanceUpdateListener {
592
636
  if (instance.workspaceId !== this._info.workspace.id) {
593
637
  return true;
594
638
  }
595
- if (this.source === 'update') {
639
+ if (this.source === "update") {
596
640
  return false;
597
641
  }
598
642
  if (instance.id !== this.info.latestInstance?.id) {
@@ -600,15 +644,13 @@ export class WorkspaceInstanceUpdateListener {
600
644
  }
601
645
  return phasesOrder[instance.status.phase] < phasesOrder[this.info.latestInstance.status.phase];
602
646
  }
603
-
604
647
  }
605
648
 
606
649
  export interface GitpodServiceOptions {
607
- onReconnect?: () => (void | Promise<void>)
650
+ onReconnect?: () => void | Promise<void>;
608
651
  }
609
652
 
610
653
  export class GitpodServiceImpl<Client extends GitpodClient, Server extends GitpodServer> {
611
-
612
654
  private readonly compositeClient = new GitpodCompositeClient<Client>();
613
655
 
614
656
  constructor(public readonly server: JsonRpcProxy<Server>, private options?: GitpodServiceOptions) {
@@ -623,7 +665,8 @@ export class GitpodServiceImpl<Client extends GitpodClient, Server extends Gitpo
623
665
 
624
666
  private readonly instanceListeners = new Map<string, Promise<WorkspaceInstanceUpdateListener>>();
625
667
  listenToInstance(workspaceId: string): Promise<WorkspaceInstanceUpdateListener> {
626
- const listener = this.instanceListeners.get(workspaceId) ||
668
+ const listener =
669
+ this.instanceListeners.get(workspaceId) ||
627
670
  (async () => {
628
671
  const info = await this.server.getWorkspace(workspaceId);
629
672
  return new WorkspaceInstanceUpdateListener(this, info);
@@ -639,26 +682,25 @@ export class GitpodServiceImpl<Client extends GitpodClient, Server extends Gitpo
639
682
  }
640
683
  }
641
684
 
642
- export function createGitpodService<C extends GitpodClient, S extends GitpodServer>(serverUrl: string | Promise<string>) {
685
+ export function createGitpodService<C extends GitpodClient, S extends GitpodServer>(
686
+ serverUrl: string | Promise<string>,
687
+ ) {
643
688
  const toWsUrl = (serverUrl: string) => {
644
- return new GitpodHostUrl(serverUrl)
645
- .asWebsocket()
646
- .withApi({ pathname: GitpodServerPath })
647
- .toString();
689
+ return new GitpodHostUrl(serverUrl).asWebsocket().withApi({ pathname: GitpodServerPath }).toString();
648
690
  };
649
691
  let url: string | Promise<string>;
650
692
  if (typeof serverUrl === "string") {
651
693
  url = toWsUrl(serverUrl);
652
694
  } else {
653
- url = serverUrl.then(url => toWsUrl(url));
695
+ url = serverUrl.then((url) => toWsUrl(url));
654
696
  }
655
697
 
656
698
  const connectionProvider = new WebSocketConnectionProvider();
657
- let onReconnect = () => { };
699
+ let onReconnect = () => {};
658
700
  const gitpodServer = connectionProvider.createProxy<S>(url, undefined, {
659
- onListening: socket => {
701
+ onListening: (socket) => {
660
702
  onReconnect = () => socket.reconnect();
661
- }
703
+ },
662
704
  });
663
705
  return new GitpodServiceImpl<C, S>(gitpodServer, { onReconnect });
664
- }
706
+ }
@@ -4,21 +4,23 @@
4
4
  * See License-AGPL.txt in the project root for license information.
5
5
  */
6
6
 
7
-
8
7
  export enum HeadlessWorkspaceEventType {
9
8
  LogOutput = "log-output",
10
9
  FinishedSuccessfully = "finish-success",
11
10
  FinishedButFailed = "finish-fail",
12
11
  AbortedTimedOut = "aborted-timeout",
13
12
  Aborted = "aborted",
14
- Started = "started"
13
+ Failed = "failed",
14
+ Started = "started",
15
15
  }
16
16
  export namespace HeadlessWorkspaceEventType {
17
17
  export function isRunning(t: HeadlessWorkspaceEventType) {
18
18
  return t === HeadlessWorkspaceEventType.LogOutput;
19
19
  }
20
20
  export function didFinish(t: HeadlessWorkspaceEventType) {
21
- return t === HeadlessWorkspaceEventType.FinishedButFailed || t === HeadlessWorkspaceEventType.FinishedSuccessfully;
21
+ return (
22
+ t === HeadlessWorkspaceEventType.FinishedButFailed || t === HeadlessWorkspaceEventType.FinishedSuccessfully
23
+ );
22
24
  }
23
25
  }
24
26
 
@@ -35,4 +37,4 @@ export interface HeadlessLogUrls {
35
37
 
36
38
  /** cmp. @const HEADLESS_LOG_STREAM_STATUS_CODE_REGEX */
37
39
  export const HEADLESS_LOG_STREAM_STATUS_CODE = "X-LogStream-StatusCode";
38
- export const HEADLESS_LOG_STREAM_STATUS_CODE_REGEX = /X-LogStream-StatusCode: ([0-9]{3})/;
40
+ export const HEADLESS_LOG_STREAM_STATUS_CODE_REGEX = /X-LogStream-StatusCode: ([0-9]{3})/;
@@ -7,7 +7,7 @@
7
7
  import { Event } from "./util/event";
8
8
  import { Disposable } from "./util/disposable";
9
9
 
10
- export type IDEFrontendState = 'init' | 'ready' | 'terminated';
10
+ export type IDEFrontendState = "init" | "ready" | "terminated";
11
11
 
12
12
  export interface IDEFrontendService {
13
13
  readonly state: IDEFrontendState;
@@ -25,4 +25,4 @@ export interface IDEFrontendService {
25
25
  * confirmation dialogs for stopped workspaces.
26
26
  */
27
27
  start(): Disposable;
28
- }
28
+ }
@@ -45,12 +45,12 @@ export interface IDEClient {
45
45
  /**
46
46
  * Desktop IDEs supported by the client.
47
47
  */
48
- desktopIDEs?: string[]
48
+ desktopIDEs?: string[];
49
49
 
50
50
  /**
51
51
  * Steps to install the client on user machine.
52
52
  */
53
- installationSteps?: string[]
53
+ installationSteps?: string[];
54
54
  }
55
55
 
56
56
  export interface IDEOption {
@@ -67,12 +67,12 @@ export interface IDEOption {
67
67
  /**
68
68
  * The type of the IDE, currently 'browser' or 'desktop'.
69
69
  */
70
- type: 'browser' | 'desktop';
70
+ type: "browser" | "desktop";
71
71
 
72
72
  /**
73
- * The logo for the IDE. That could be a key in (see
74
- * components/dashboard/src/images/ideLogos.ts) or a URL.
75
- */
73
+ * The logo for the IDE. That could be a key in (see
74
+ * components/dashboard/src/images/ideLogos.ts) or a URL.
75
+ */
76
76
  logo: string;
77
77
 
78
78
  /**
@@ -93,8 +93,8 @@ export interface IDEOption {
93
93
  notes?: string[];
94
94
 
95
95
  /**
96
- * If `true` this IDE option is not visible in the IDE preferences.
97
- */
96
+ * If `true` this IDE option is not visible in the IDE preferences.
97
+ */
98
98
  hidden?: boolean;
99
99
 
100
100
  /**
package/src/index.ts CHANGED
@@ -4,19 +4,19 @@
4
4
  * See License-AGPL.txt in the project root for license information.
5
5
  */
6
6
 
7
- export * from './protocol';
8
- export * from './gitpod-service';
9
- export * from './util/disposable';
10
- export * from './util/event';
11
- export * from './util/queue';
12
- export * from './license-protocol';
13
- export * from './workspace-instance';
14
- export * from './permission';
15
- export * from './admin-protocol';
16
- export * from './email-protocol';
17
- export * from './headless-workspace-log';
18
- export * from './context-url';
19
- export * from './teams-projects-protocol';
20
- export * from './snapshot-url';
21
- export * from './oss-allowlist';
22
- export * from './installation-admin-protocol';
7
+ export * from "./protocol";
8
+ export * from "./gitpod-service";
9
+ export * from "./util/disposable";
10
+ export * from "./util/event";
11
+ export * from "./util/queue";
12
+ export * from "./license-protocol";
13
+ export * from "./workspace-instance";
14
+ export * from "./permission";
15
+ export * from "./admin-protocol";
16
+ export * from "./email-protocol";
17
+ export * from "./headless-workspace-log";
18
+ export * from "./context-url";
19
+ export * from "./teams-projects-protocol";
20
+ export * from "./snapshot-url";
21
+ export * from "./oss-allowlist";
22
+ export * from "./installation-admin-protocol";