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