@gitpod/gitpod-protocol 0.1.5-me-image.2 → 0.1.5-me-test10.3

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 (268) hide show
  1. package/data/gitpod-schema.json +163 -2
  2. package/lib/accounting-protocol.d.ts +10 -10
  3. package/lib/accounting-protocol.d.ts.map +1 -1
  4. package/lib/accounting-protocol.js +22 -31
  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.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 +23 -26
  46. package/lib/gitpod-service.d.ts.map +1 -1
  47. package/lib/gitpod-service.js +32 -26
  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.map +1 -1
  61. package/lib/license-protocol.js.map +1 -1
  62. package/lib/messaging/browser/connection.d.ts +1 -1
  63. package/lib/messaging/browser/connection.d.ts.map +1 -1
  64. package/lib/messaging/browser/connection.js +19 -19
  65. package/lib/messaging/browser/connection.js.map +1 -1
  66. package/lib/messaging/browser/window-connection.d.ts +4 -4
  67. package/lib/messaging/browser/window-connection.d.ts.map +1 -1
  68. package/lib/messaging/browser/window-connection.js +9 -6
  69. package/lib/messaging/browser/window-connection.js.map +1 -1
  70. package/lib/messaging/client-call-metrics.d.ts +2 -2
  71. package/lib/messaging/client-call-metrics.d.ts.map +1 -1
  72. package/lib/messaging/client-call-metrics.js +20 -20
  73. package/lib/messaging/client-call-metrics.js.map +1 -1
  74. package/lib/messaging/error.d.ts +1 -0
  75. package/lib/messaging/error.d.ts.map +1 -1
  76. package/lib/messaging/error.js +2 -0
  77. package/lib/messaging/error.js.map +1 -1
  78. package/lib/messaging/handler.d.ts.map +1 -1
  79. package/lib/messaging/handler.js +1 -1
  80. package/lib/messaging/node/connection.js +8 -8
  81. package/lib/messaging/node/connection.js.map +1 -1
  82. package/lib/messaging/proxy-factory.d.ts +1 -1
  83. package/lib/messaging/proxy-factory.d.ts.map +1 -1
  84. package/lib/messaging/proxy-factory.js +7 -9
  85. package/lib/messaging/proxy-factory.js.map +1 -1
  86. package/lib/payment-protocol.d.ts.map +1 -1
  87. package/lib/payment-protocol.js +1 -1
  88. package/lib/payment-protocol.js.map +1 -1
  89. package/lib/permission.d.ts +2 -2
  90. package/lib/permission.d.ts.map +1 -1
  91. package/lib/permission.js +12 -23
  92. package/lib/permission.js.map +1 -1
  93. package/lib/plans.d.ts +3 -3
  94. package/lib/plans.d.ts.map +1 -1
  95. package/lib/plans.js +206 -171
  96. package/lib/plans.js.map +1 -1
  97. package/lib/protocol.d.ts +74 -36
  98. package/lib/protocol.d.ts.map +1 -1
  99. package/lib/protocol.js +117 -87
  100. package/lib/protocol.js.map +1 -1
  101. package/lib/snapshot-url.spec.js.map +1 -1
  102. package/lib/team-subscription-protocol.d.ts +5 -3
  103. package/lib/team-subscription-protocol.d.ts.map +1 -1
  104. package/lib/team-subscription-protocol.js +4 -4
  105. package/lib/team-subscription-protocol.js.map +1 -1
  106. package/lib/teams-projects-protocol.d.ts +7 -3
  107. package/lib/teams-projects-protocol.d.ts.map +1 -1
  108. package/lib/teams-projects-protocol.js +1 -1
  109. package/lib/teams-projects-protocol.js.map +1 -1
  110. package/lib/typings/globals.d.ts +2 -2
  111. package/lib/typings/globals.d.ts.map +1 -1
  112. package/lib/util/analytics.d.ts.map +1 -1
  113. package/lib/util/analytics.js +12 -3
  114. package/lib/util/analytics.js.map +1 -1
  115. package/lib/util/async-iterator.d.ts.map +1 -1
  116. package/lib/util/async-iterator.js +3 -3
  117. package/lib/util/async-iterator.js.map +1 -1
  118. package/lib/util/cancelable.js.map +1 -1
  119. package/lib/util/date-time.js +6 -6
  120. package/lib/util/date-time.js.map +1 -1
  121. package/lib/util/deferred.js.map +1 -1
  122. package/lib/util/disposable.d.ts.map +1 -1
  123. package/lib/util/disposable.js +2 -2
  124. package/lib/util/disposable.js.map +1 -1
  125. package/lib/util/event.d.ts.map +1 -1
  126. package/lib/util/event.js +5 -3
  127. package/lib/util/event.js.map +1 -1
  128. package/lib/util/garbage-collected-cache.d.ts.map +1 -1
  129. package/lib/util/garbage-collected-cache.js +1 -1
  130. package/lib/util/garbage-collected-cache.js.map +1 -1
  131. package/lib/util/generate-workspace-id.d.ts +5 -0
  132. package/lib/util/generate-workspace-id.d.ts.map +1 -1
  133. package/lib/util/generate-workspace-id.js +446 -442
  134. package/lib/util/generate-workspace-id.js.map +1 -1
  135. package/lib/util/generate-workspace-id.spec.js +18 -7
  136. package/lib/util/generate-workspace-id.spec.js.map +1 -1
  137. package/lib/util/gitpod-cookie.d.ts +1 -1
  138. package/lib/util/gitpod-cookie.d.ts.map +1 -1
  139. package/lib/util/gitpod-cookie.js +0 -3
  140. package/lib/util/gitpod-cookie.js.map +1 -1
  141. package/lib/util/gitpod-host-url.d.ts.map +1 -1
  142. package/lib/util/gitpod-host-url.js +31 -29
  143. package/lib/util/gitpod-host-url.js.map +1 -1
  144. package/lib/util/gitpod-host-url.spec.d.ts.map +1 -1
  145. package/lib/util/gitpod-host-url.spec.js +15 -5
  146. package/lib/util/gitpod-host-url.spec.js.map +1 -1
  147. package/lib/util/grpc.d.ts.map +1 -1
  148. package/lib/util/grpc.js.map +1 -1
  149. package/lib/util/jaeger-client-types.d.ts.map +1 -1
  150. package/lib/util/logging.d.ts +1 -1
  151. package/lib/util/logging.d.ts.map +1 -1
  152. package/lib/util/logging.js +23 -24
  153. package/lib/util/logging.js.map +1 -1
  154. package/lib/util/make-link.js +5 -5
  155. package/lib/util/make-link.js.map +1 -1
  156. package/lib/util/parse-workspace-id.d.ts.map +1 -1
  157. package/lib/util/parse-workspace-id.js +1 -2
  158. package/lib/util/parse-workspace-id.js.map +1 -1
  159. package/lib/util/parse-workspace-id.spec.d.ts.map +1 -1
  160. package/lib/util/parse-workspace-id.spec.js.map +1 -1
  161. package/lib/util/queue.spec.js +9 -6
  162. package/lib/util/queue.spec.js.map +1 -1
  163. package/lib/util/semaphore.d.ts.map +1 -1
  164. package/lib/util/semaphore.js.map +1 -1
  165. package/lib/util/skip-if.d.ts.map +1 -1
  166. package/lib/util/skip-if.js.map +1 -1
  167. package/lib/util/timeutil.d.ts.map +1 -1
  168. package/lib/util/timeutil.js +2 -2
  169. package/lib/util/timeutil.js.map +1 -1
  170. package/lib/util/timeutil.spec.d.ts.map +1 -1
  171. package/lib/util/timeutil.spec.js.map +1 -1
  172. package/lib/util/tracing.d.ts +6 -6
  173. package/lib/util/tracing.d.ts.map +1 -1
  174. package/lib/util/tracing.js +14 -16
  175. package/lib/util/tracing.js.map +1 -1
  176. package/lib/util/tracing.spec.js +3 -3
  177. package/lib/util/tracing.spec.js.map +1 -1
  178. package/lib/util/workspace-port-authentication.d.ts +7 -7
  179. package/lib/util/workspace-port-authentication.d.ts.map +1 -1
  180. package/lib/util/workspace-port-authentication.js +8 -11
  181. package/lib/util/workspace-port-authentication.js.map +1 -1
  182. package/lib/workspace-cluster.d.ts +1 -1
  183. package/lib/workspace-cluster.d.ts.map +1 -1
  184. package/lib/workspace-cluster.js +2 -4
  185. package/lib/workspace-cluster.js.map +1 -1
  186. package/lib/workspace-instance.d.ts +7 -2
  187. package/lib/workspace-instance.d.ts.map +1 -1
  188. package/lib/wsready.d.ts +1 -1
  189. package/lib/wsready.d.ts.map +1 -1
  190. package/lib/wsready.js +2 -2
  191. package/package.json +1 -1
  192. package/pkg-yarn.lock +1 -1
  193. package/provenance-bundle.jsonl +1 -1
  194. package/src/accounting-protocol.ts +53 -51
  195. package/src/admin-protocol.ts +25 -21
  196. package/src/analytics.ts +21 -21
  197. package/src/auth.ts +2 -2
  198. package/src/context-url.spec.ts +25 -11
  199. package/src/context-url.ts +80 -78
  200. package/src/email-protocol.ts +5 -6
  201. package/src/encryption/container-module.ts +2 -3
  202. package/src/encryption/encryption-engine.spec.ts +9 -8
  203. package/src/encryption/encryption-engine.ts +14 -14
  204. package/src/encryption/encryption-service.ts +4 -5
  205. package/src/encryption/key-provider.ts +16 -19
  206. package/src/env.ts +0 -22
  207. package/src/gitpod-file-parser.spec.ts +55 -61
  208. package/src/gitpod-file-parser.ts +16 -17
  209. package/src/gitpod-service.ts +130 -104
  210. package/src/headless-workspace-log.ts +6 -4
  211. package/src/ide-frontend-service.ts +2 -2
  212. package/src/ide-protocol.ts +8 -8
  213. package/src/index.ts +16 -16
  214. package/src/installation-admin-protocol.ts +8 -8
  215. package/src/license-protocol.ts +5 -6
  216. package/src/messaging/browser/connection.ts +45 -47
  217. package/src/messaging/browser/window-connection.ts +39 -29
  218. package/src/messaging/client-call-metrics.ts +70 -71
  219. package/src/messaging/error.ts +4 -3
  220. package/src/messaging/handler.ts +6 -6
  221. package/src/messaging/node/connection.ts +8 -8
  222. package/src/messaging/proxy-factory.ts +23 -30
  223. package/src/oss-allowlist.ts +3 -3
  224. package/src/payment-protocol.ts +2 -2
  225. package/src/permission.ts +20 -31
  226. package/src/plans.ts +236 -189
  227. package/src/protocol.ts +290 -239
  228. package/src/snapshot-url.spec.ts +9 -7
  229. package/src/team-subscription-protocol.ts +33 -23
  230. package/src/teams-projects-protocol.ts +13 -8
  231. package/src/typings/globals.ts +4 -4
  232. package/src/util/analytics.ts +46 -24
  233. package/src/util/async-iterator.ts +4 -5
  234. package/src/util/cancelable.ts +3 -3
  235. package/src/util/date-time.ts +8 -8
  236. package/src/util/deferred.ts +6 -6
  237. package/src/util/disposable.ts +3 -6
  238. package/src/util/event.ts +9 -11
  239. package/src/util/garbage-collected-cache.ts +3 -6
  240. package/src/util/generate-workspace-id.spec.ts +26 -16
  241. package/src/util/generate-workspace-id.ts +460 -454
  242. package/src/util/gitpod-cookie.ts +8 -9
  243. package/src/util/gitpod-host-url.spec.ts +40 -13
  244. package/src/util/gitpod-host-url.ts +37 -34
  245. package/src/util/grpc.ts +1 -1
  246. package/src/util/jaeger-client-types.ts +2 -2
  247. package/src/util/logging.ts +49 -40
  248. package/src/util/make-link.ts +6 -7
  249. package/src/util/parse-workspace-id.spec.ts +17 -8
  250. package/src/util/parse-workspace-id.ts +5 -6
  251. package/src/util/queue.spec.ts +27 -25
  252. package/src/util/repeat.ts +1 -1
  253. package/src/util/semaphore.ts +4 -6
  254. package/src/util/skip-if.ts +9 -6
  255. package/src/util/timeutil.spec.ts +14 -15
  256. package/src/util/timeutil.ts +15 -11
  257. package/src/util/tracing.spec.ts +28 -23
  258. package/src/util/tracing.ts +54 -51
  259. package/src/util/workspace-port-authentication.ts +10 -13
  260. package/src/workspace-cluster.ts +15 -12
  261. package/src/workspace-instance.ts +35 -23
  262. package/src/wsready.ts +3 -3
  263. package/data/builtin-theia-plugins.json +0 -372
  264. package/lib/theia-plugins.d.ts +0 -11
  265. package/lib/theia-plugins.d.ts.map +0 -1
  266. package/lib/theia-plugins.js +0 -8
  267. package/lib/theia-plugins.js.map +0 -1
  268. package/src/theia-plugins.ts +0 -11
@@ -5,32 +5,52 @@
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 { TeamSubscription, TeamSubscriptionSlot, TeamSubscriptionSlotResolved } from "./team-subscription-protocol";
51
+ import { RemotePageMessage, RemoteTrackMessage, RemoteIdentifyMessage } from "./analytics";
52
+ import { IDEServer } from "./ide-protocol";
53
+ import { InstallationAdminSettings, TelemetryData } from "./installation-admin-protocol";
34
54
 
35
55
  export interface GitpodClient {
36
56
  onInstanceUpdate(instance: WorkspaceInstance): void;
@@ -46,7 +66,7 @@ export interface GitpodClient {
46
66
  //#endregion
47
67
  }
48
68
 
49
- export const GitpodServer = Symbol('GitpodServer');
69
+ export const GitpodServer = Symbol("GitpodServer");
50
70
  export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer, LicenseService, IDEServer {
51
71
  // User related API
52
72
  getLoggedInUser(): Promise<User>;
@@ -159,8 +179,8 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
159
179
  deleteProjectEnvironmentVariable(variableId: string): Promise<void>;
160
180
 
161
181
  // content service
162
- getContentBlobUploadUrl(name: string): Promise<string>
163
- getContentBlobDownloadUrl(name: string): Promise<string>
182
+ getContentBlobUploadUrl(name: string): Promise<string>;
183
+ getContentBlobDownloadUrl(name: string): Promise<string>;
164
184
 
165
185
  // Gitpod token
166
186
  getGitpodTokens(): Promise<GitpodToken[]>;
@@ -169,6 +189,7 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
169
189
 
170
190
  // misc
171
191
  sendFeedback(feedback: string): Promise<string | undefined>;
192
+ isGitHubAppEnabled(): Promise<boolean>;
172
193
  registerGithubApp(installationId: string): Promise<void>;
173
194
 
174
195
  /**
@@ -197,15 +218,6 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
197
218
  */
198
219
  getLayout(workspaceId: string): Promise<string | undefined>;
199
220
 
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
221
  guessGitTokenScopes(params: GuessGitTokenScopesParams): Promise<GuessedGitTokenScopes>;
210
222
 
211
223
  /**
@@ -237,9 +249,13 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
237
249
 
238
250
  tsGet(): Promise<TeamSubscription[]>;
239
251
  tsGetSlots(): Promise<TeamSubscriptionSlotResolved[]>;
240
- tsGetUnassignedSlot(teamSubscriptionId: string): Promise<TeamSubscriptionSlot | undefined>
252
+ tsGetUnassignedSlot(teamSubscriptionId: string): Promise<TeamSubscriptionSlot | undefined>;
241
253
  tsAddSlots(teamSubscriptionId: string, quantity: number): Promise<void>;
242
- tsAssignSlot(teamSubscriptionId: string, teamSubscriptionSlotId: string, identityStr: string | undefined): Promise<void>
254
+ tsAssignSlot(
255
+ teamSubscriptionId: string,
256
+ teamSubscriptionSlotId: string,
257
+ identityStr: string | undefined,
258
+ ): Promise<void>;
243
259
  tsReassignSlot(teamSubscriptionId: string, teamSubscriptionSlotId: string, newIdentityStr: string): Promise<void>;
244
260
  tsDeactivateSlot(teamSubscriptionId: string, teamSubscriptionSlotId: string): Promise<void>;
245
261
  tsReactivateSlot(teamSubscriptionId: string, teamSubscriptionSlotId: string): Promise<void>;
@@ -255,13 +271,13 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
255
271
  }
256
272
 
257
273
  export interface RateLimiterError {
258
- method?: string,
274
+ method?: string;
259
275
 
260
276
  /**
261
277
  * Retry after this many seconds, earliest.
262
278
  * cmp.: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After
263
279
  */
264
- retryAfter: number,
280
+ retryAfter: number;
265
281
  }
266
282
 
267
283
  export interface CreateProjectParams {
@@ -292,7 +308,7 @@ export interface ProviderRepository {
292
308
  account: string;
293
309
  accountAvatarUrl: string;
294
310
  cloneUrl: string;
295
- updatedAt: string;
311
+ updatedAt?: string;
296
312
  installationId?: number;
297
313
  installationUpdatedAt?: string;
298
314
 
@@ -306,15 +322,28 @@ export interface ClientHeaderFields {
306
322
  clientRegion?: string;
307
323
  }
308
324
 
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> {
325
+ export const WORKSPACE_TIMEOUT_DEFAULT_SHORT = "short";
326
+ export const WORKSPACE_TIMEOUT_DEFAULT_LONG = "long";
327
+ export const WORKSPACE_TIMEOUT_EXTENDED = "extended";
328
+ export const WORKSPACE_TIMEOUT_EXTENDED_ALT = "180m"; // for backwards compatibility since the IDE uses this
329
+ export const WorkspaceTimeoutValues = [
330
+ WORKSPACE_TIMEOUT_DEFAULT_SHORT,
331
+ WORKSPACE_TIMEOUT_DEFAULT_LONG,
332
+ WORKSPACE_TIMEOUT_EXTENDED,
333
+ WORKSPACE_TIMEOUT_EXTENDED_ALT,
334
+ ] as const;
335
+
336
+ export const createServiceMock = function <C extends GitpodClient, S extends GitpodServer>(
337
+ methods: Partial<JsonRpcProxy<S>>,
338
+ ): GitpodServiceImpl<C, S> {
312
339
  return new GitpodServiceImpl<C, S>(createServerMock(methods));
313
- }
340
+ };
314
341
 
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 || (() => { });
342
+ export const createServerMock = function <C extends GitpodClient, S extends GitpodServer>(
343
+ methods: Partial<JsonRpcProxy<S>>,
344
+ ): JsonRpcProxy<S> {
345
+ methods.setClient = methods.setClient || (() => {});
346
+ methods.dispose = methods.dispose || (() => {});
318
347
  return new Proxy<JsonRpcProxy<S>>(methods as any as JsonRpcProxy<S>, {
319
348
  // @ts-ignore
320
349
  get: (target: S, property: keyof S) => {
@@ -323,25 +352,25 @@ export const createServerMock = function <C extends GitpodClient, S extends Gitp
323
352
  throw new Error(`Method ${property} not implemented`);
324
353
  }
325
354
  return result;
326
- }
355
+ },
327
356
  });
328
- }
357
+ };
329
358
 
330
359
  type WorkspaceTimeoutDurationTuple = typeof WorkspaceTimeoutValues;
331
360
  export type WorkspaceTimeoutDuration = WorkspaceTimeoutDurationTuple[number];
332
361
 
333
362
  export interface SetWorkspaceTimeoutResult {
334
- resetTimeoutOnWorkspaces: string[]
363
+ resetTimeoutOnWorkspaces: string[];
335
364
  }
336
365
 
337
366
  export interface GetWorkspaceTimeoutResult {
338
- duration: WorkspaceTimeoutDuration
339
- canChange: boolean
367
+ duration: WorkspaceTimeoutDuration;
368
+ canChange: boolean;
340
369
  }
341
370
 
342
371
  export interface StartWorkspaceResult {
343
- instanceID: string
344
- workspaceURL?: string
372
+ instanceID: string;
373
+ workspaceURL?: string;
345
374
  }
346
375
 
347
376
  export namespace GitpodServer {
@@ -385,23 +414,23 @@ export namespace GitpodServer {
385
414
  readonly roundTripTime?: number;
386
415
  }
387
416
  export interface UpdateOwnAuthProviderParams {
388
- readonly entry: AuthProviderEntry.UpdateEntry | AuthProviderEntry.NewEntry
417
+ readonly entry: AuthProviderEntry.UpdateEntry | AuthProviderEntry.NewEntry;
389
418
  }
390
419
  export interface DeleteOwnAuthProviderParams {
391
- readonly id: string
420
+ readonly id: string;
392
421
  }
393
422
  export type AdmissionLevel = "owner" | "everyone";
394
423
  export type PinAction = "pin" | "unpin" | "toggle";
395
424
  export interface GenerateNewGitpodTokenOptions {
396
- name?: string
397
- type: GitpodTokenType
398
- scopes?: string[]
425
+ name?: string;
426
+ type: GitpodTokenType;
427
+ scopes?: string[];
399
428
  }
400
429
  }
401
430
 
402
- export const GitpodServerPath = '/gitpod';
431
+ export const GitpodServerPath = "/gitpod";
403
432
 
404
- export const GitpodServerProxy = Symbol('GitpodServerProxy');
433
+ export const GitpodServerProxy = Symbol("GitpodServerProxy");
405
434
  export type GitpodServerProxy<S extends GitpodServer> = JsonRpcProxy<S>;
406
435
 
407
436
  export class GitpodCompositeClient<Client extends GitpodClient> implements GitpodClient {
@@ -415,8 +444,8 @@ export class GitpodCompositeClient<Client extends GitpodClient> implements Gitpo
415
444
  if (index > -1) {
416
445
  this.clients.splice(index, 1);
417
446
  }
418
- }
419
- }
447
+ },
448
+ };
420
449
  }
421
450
 
422
451
  onInstanceUpdate(instance: WorkspaceInstance): void {
@@ -425,7 +454,7 @@ export class GitpodCompositeClient<Client extends GitpodClient> implements Gitpo
425
454
  try {
426
455
  client.onInstanceUpdate(instance);
427
456
  } catch (error) {
428
- console.error(error)
457
+ console.error(error);
429
458
  }
430
459
  }
431
460
  }
@@ -437,19 +466,22 @@ export class GitpodCompositeClient<Client extends GitpodClient> implements Gitpo
437
466
  try {
438
467
  client.onPrebuildUpdate(update);
439
468
  } catch (error) {
440
- console.error(error)
469
+ console.error(error);
441
470
  }
442
471
  }
443
472
  }
444
473
  }
445
474
 
446
- onWorkspaceImageBuildLogs(info: WorkspaceImageBuild.StateInfo, content: WorkspaceImageBuild.LogContent | undefined): void {
475
+ onWorkspaceImageBuildLogs(
476
+ info: WorkspaceImageBuild.StateInfo,
477
+ content: WorkspaceImageBuild.LogContent | undefined,
478
+ ): void {
447
479
  for (const client of this.clients) {
448
480
  if (client.onWorkspaceImageBuildLogs) {
449
481
  try {
450
482
  client.onWorkspaceImageBuildLogs(info, content);
451
483
  } catch (error) {
452
- console.error(error)
484
+ console.error(error);
453
485
  }
454
486
  }
455
487
  }
@@ -461,7 +493,7 @@ export class GitpodCompositeClient<Client extends GitpodClient> implements Gitpo
461
493
  try {
462
494
  client.notifyDidOpenConnection();
463
495
  } catch (error) {
464
- console.error(error)
496
+ console.error(error);
465
497
  }
466
498
  }
467
499
  }
@@ -473,7 +505,7 @@ export class GitpodCompositeClient<Client extends GitpodClient> implements Gitpo
473
505
  try {
474
506
  client.notifyDidCloseConnection();
475
507
  } catch (error) {
476
- console.error(error)
508
+ console.error(error);
477
509
  }
478
510
  }
479
511
  }
@@ -485,17 +517,16 @@ export class GitpodCompositeClient<Client extends GitpodClient> implements Gitpo
485
517
  try {
486
518
  client.onCreditAlert(creditAlert);
487
519
  } catch (error) {
488
- console.error(error)
520
+ console.error(error);
489
521
  }
490
522
  }
491
523
  }
492
524
  }
493
-
494
525
  }
495
526
 
496
527
  export type GitpodService = GitpodServiceImpl<GitpodClient, GitpodServer>;
497
528
 
498
- const hasWindow = (typeof window !== 'undefined');
529
+ const hasWindow = typeof window !== "undefined";
499
530
  const phasesOrder: Record<WorkspaceInstancePhase, number> = {
500
531
  unknown: 0,
501
532
  preparing: 1,
@@ -505,44 +536,41 @@ const phasesOrder: Record<WorkspaceInstancePhase, number> = {
505
536
  running: 5,
506
537
  interrupted: 6,
507
538
  stopping: 7,
508
- stopped: 8
539
+ stopped: 8,
509
540
  };
510
541
  export class WorkspaceInstanceUpdateListener {
511
542
  private readonly onDidChangeEmitter = new Emitter<void>();
512
543
  readonly onDidChange = this.onDidChangeEmitter.event;
513
544
 
514
- private source: 'sync' | 'update' = 'sync';
545
+ private source: "sync" | "update" = "sync";
515
546
 
516
547
  get info(): WorkspaceInfo {
517
548
  return this._info;
518
549
  }
519
550
 
520
- constructor(
521
- private readonly service: GitpodService,
522
- private _info: WorkspaceInfo
523
- ) {
551
+ constructor(private readonly service: GitpodService, private _info: WorkspaceInfo) {
524
552
  service.registerClient({
525
- onInstanceUpdate: instance => {
553
+ onInstanceUpdate: (instance) => {
526
554
  if (this.isOutOfOrder(instance)) {
527
555
  return;
528
556
  }
529
557
  this.cancelSync();
530
558
  this._info.latestInstance = instance;
531
- this.source = 'update';
559
+ this.source = "update";
532
560
  this.onDidChangeEmitter.fire(undefined);
533
561
  },
534
562
  notifyDidOpenConnection: () => {
535
563
  this.sync();
536
- }
564
+ },
537
565
  });
538
566
  if (hasWindow) {
539
567
  // 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') {
568
+ window.document.addEventListener("visibilitychange", async () => {
569
+ if (window.document.visibilityState === "visible") {
542
570
  this.sync();
543
571
  }
544
572
  });
545
- window.addEventListener('pageshow', e => {
573
+ window.addEventListener("pageshow", (e) => {
546
574
  if (e.persisted) {
547
575
  this.sync();
548
576
  }
@@ -570,12 +598,12 @@ export class WorkspaceInstanceUpdateListener {
570
598
  return;
571
599
  }
572
600
  this._info = info;
573
- this.source = 'sync';
601
+ this.source = "sync";
574
602
  this.onDidChangeEmitter.fire(undefined);
575
603
  } catch (e) {
576
- console.error('failed to sync workspace instance:', e)
604
+ console.error("failed to sync workspace instance:", e);
577
605
  }
578
- })
606
+ });
579
607
  }
580
608
  private cancelSync(): void {
581
609
  if (this.syncTokenSource) {
@@ -592,7 +620,7 @@ export class WorkspaceInstanceUpdateListener {
592
620
  if (instance.workspaceId !== this._info.workspace.id) {
593
621
  return true;
594
622
  }
595
- if (this.source === 'update') {
623
+ if (this.source === "update") {
596
624
  return false;
597
625
  }
598
626
  if (instance.id !== this.info.latestInstance?.id) {
@@ -600,15 +628,13 @@ export class WorkspaceInstanceUpdateListener {
600
628
  }
601
629
  return phasesOrder[instance.status.phase] < phasesOrder[this.info.latestInstance.status.phase];
602
630
  }
603
-
604
631
  }
605
632
 
606
633
  export interface GitpodServiceOptions {
607
- onReconnect?: () => (void | Promise<void>)
634
+ onReconnect?: () => void | Promise<void>;
608
635
  }
609
636
 
610
637
  export class GitpodServiceImpl<Client extends GitpodClient, Server extends GitpodServer> {
611
-
612
638
  private readonly compositeClient = new GitpodCompositeClient<Client>();
613
639
 
614
640
  constructor(public readonly server: JsonRpcProxy<Server>, private options?: GitpodServiceOptions) {
@@ -623,7 +649,8 @@ export class GitpodServiceImpl<Client extends GitpodClient, Server extends Gitpo
623
649
 
624
650
  private readonly instanceListeners = new Map<string, Promise<WorkspaceInstanceUpdateListener>>();
625
651
  listenToInstance(workspaceId: string): Promise<WorkspaceInstanceUpdateListener> {
626
- const listener = this.instanceListeners.get(workspaceId) ||
652
+ const listener =
653
+ this.instanceListeners.get(workspaceId) ||
627
654
  (async () => {
628
655
  const info = await this.server.getWorkspace(workspaceId);
629
656
  return new WorkspaceInstanceUpdateListener(this, info);
@@ -639,26 +666,25 @@ export class GitpodServiceImpl<Client extends GitpodClient, Server extends Gitpo
639
666
  }
640
667
  }
641
668
 
642
- export function createGitpodService<C extends GitpodClient, S extends GitpodServer>(serverUrl: string | Promise<string>) {
669
+ export function createGitpodService<C extends GitpodClient, S extends GitpodServer>(
670
+ serverUrl: string | Promise<string>,
671
+ ) {
643
672
  const toWsUrl = (serverUrl: string) => {
644
- return new GitpodHostUrl(serverUrl)
645
- .asWebsocket()
646
- .withApi({ pathname: GitpodServerPath })
647
- .toString();
673
+ return new GitpodHostUrl(serverUrl).asWebsocket().withApi({ pathname: GitpodServerPath }).toString();
648
674
  };
649
675
  let url: string | Promise<string>;
650
676
  if (typeof serverUrl === "string") {
651
677
  url = toWsUrl(serverUrl);
652
678
  } else {
653
- url = serverUrl.then(url => toWsUrl(url));
679
+ url = serverUrl.then((url) => toWsUrl(url));
654
680
  }
655
681
 
656
682
  const connectionProvider = new WebSocketConnectionProvider();
657
- let onReconnect = () => { };
683
+ let onReconnect = () => {};
658
684
  const gitpodServer = connectionProvider.createProxy<S>(url, undefined, {
659
- onListening: socket => {
685
+ onListening: (socket) => {
660
686
  onReconnect = () => socket.reconnect();
661
- }
687
+ },
662
688
  });
663
689
  return new GitpodServiceImpl<C, S>(gitpodServer, { onReconnect });
664
- }
690
+ }
@@ -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";
@@ -4,11 +4,11 @@
4
4
  * See License-AGPL.txt in the project root for license information.
5
5
  */
6
6
 
7
- import { v4 as uuidv4 } from 'uuid';
7
+ import { v4 as uuidv4 } from "uuid";
8
8
 
9
9
  const InstallationAdminSettingsPrototype = {
10
- sendTelemetry: true
11
- }
10
+ sendTelemetry: true,
11
+ };
12
12
 
13
13
  export type InstallationAdminSettings = typeof InstallationAdminSettingsPrototype;
14
14
 
@@ -24,10 +24,10 @@ export interface InstallationAdmin {
24
24
  }
25
25
 
26
26
  export interface TelemetryData {
27
- installationAdmin: InstallationAdmin
28
- totalUsers: number
29
- totalWorkspaces: number
30
- totalInstances: number
27
+ installationAdmin: InstallationAdmin;
28
+ totalUsers: number;
29
+ totalWorkspaces: number;
30
+ totalInstances: number;
31
31
  }
32
32
 
33
33
  export namespace InstallationAdmin {
@@ -36,7 +36,7 @@ export namespace InstallationAdmin {
36
36
  id: uuidv4(),
37
37
  settings: {
38
38
  ...InstallationAdminSettingsPrototype,
39
- }
39
+ },
40
40
  };
41
41
  }
42
42
  }