@gitpod/gitpod-protocol 0.1.5-mp-docs-wsp-phase.0 → 0.1.5-mp-fmt-protocol.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (251) hide show
  1. package/lib/accounting-protocol.d.ts +10 -10
  2. package/lib/accounting-protocol.d.ts.map +1 -1
  3. package/lib/accounting-protocol.js +22 -31
  4. package/lib/accounting-protocol.js.map +1 -1
  5. package/lib/admin-protocol.d.ts.map +1 -1
  6. package/lib/admin-protocol.js.map +1 -1
  7. package/lib/analytics.d.ts.map +1 -1
  8. package/lib/analytics.js.map +1 -1
  9. package/lib/auth.d.ts.map +1 -1
  10. package/lib/context-url.d.ts.map +1 -1
  11. package/lib/context-url.js +3 -3
  12. package/lib/context-url.js.map +1 -1
  13. package/lib/context-url.spec.d.ts.map +1 -1
  14. package/lib/context-url.spec.js +20 -5
  15. package/lib/context-url.spec.js.map +1 -1
  16. package/lib/email-protocol.d.ts +1 -1
  17. package/lib/email-protocol.d.ts.map +1 -1
  18. package/lib/email-protocol.js.map +1 -1
  19. package/lib/encryption/container-module.d.ts.map +1 -1
  20. package/lib/encryption/container-module.js +1 -1
  21. package/lib/encryption/container-module.js.map +1 -1
  22. package/lib/encryption/encryption-engine.d.ts.map +1 -1
  23. package/lib/encryption/encryption-engine.js +7 -7
  24. package/lib/encryption/encryption-engine.js.map +1 -1
  25. package/lib/encryption/encryption-engine.spec.d.ts.map +1 -1
  26. package/lib/encryption/encryption-engine.spec.js +2 -3
  27. package/lib/encryption/encryption-engine.spec.js.map +1 -1
  28. package/lib/encryption/encryption-service.d.ts.map +1 -1
  29. package/lib/encryption/encryption-service.js +1 -1
  30. package/lib/encryption/encryption-service.js.map +1 -1
  31. package/lib/encryption/key-provider.d.ts.map +1 -1
  32. package/lib/encryption/key-provider.js +7 -9
  33. package/lib/encryption/key-provider.js.map +1 -1
  34. package/lib/env.d.ts +1 -1
  35. package/lib/env.d.ts.map +1 -1
  36. package/lib/env.js +5 -5
  37. package/lib/env.js.map +1 -1
  38. package/lib/gitpod-file-parser.d.ts.map +1 -1
  39. package/lib/gitpod-file-parser.js +6 -6
  40. package/lib/gitpod-file-parser.js.map +1 -1
  41. package/lib/gitpod-file-parser.spec.js +42 -39
  42. package/lib/gitpod-file-parser.spec.js.map +1 -1
  43. package/lib/gitpod-service.d.ts +16 -16
  44. package/lib/gitpod-service.d.ts.map +1 -1
  45. package/lib/gitpod-service.js +21 -24
  46. package/lib/gitpod-service.js.map +1 -1
  47. package/lib/headless-workspace-log.d.ts.map +1 -1
  48. package/lib/headless-workspace-log.js +1 -1
  49. package/lib/headless-workspace-log.js.map +1 -1
  50. package/lib/ide-frontend-service.d.ts +1 -1
  51. package/lib/ide-protocol.d.ts +6 -6
  52. package/lib/ide-protocol.d.ts.map +1 -1
  53. package/lib/index.d.ts +16 -16
  54. package/lib/installation-admin-protocol.d.ts.map +1 -1
  55. package/lib/installation-admin-protocol.js +2 -2
  56. package/lib/installation-admin-protocol.js.map +1 -1
  57. package/lib/license-protocol.d.ts.map +1 -1
  58. package/lib/license-protocol.js.map +1 -1
  59. package/lib/messaging/browser/connection.d.ts +1 -1
  60. package/lib/messaging/browser/connection.d.ts.map +1 -1
  61. package/lib/messaging/browser/connection.js +19 -19
  62. package/lib/messaging/browser/connection.js.map +1 -1
  63. package/lib/messaging/browser/window-connection.d.ts +4 -4
  64. package/lib/messaging/browser/window-connection.d.ts.map +1 -1
  65. package/lib/messaging/browser/window-connection.js +9 -6
  66. package/lib/messaging/browser/window-connection.js.map +1 -1
  67. package/lib/messaging/client-call-metrics.d.ts +2 -2
  68. package/lib/messaging/client-call-metrics.d.ts.map +1 -1
  69. package/lib/messaging/client-call-metrics.js +20 -20
  70. package/lib/messaging/client-call-metrics.js.map +1 -1
  71. package/lib/messaging/error.d.ts.map +1 -1
  72. package/lib/messaging/error.js.map +1 -1
  73. package/lib/messaging/handler.d.ts.map +1 -1
  74. package/lib/messaging/handler.js +1 -1
  75. package/lib/messaging/node/connection.js +8 -8
  76. package/lib/messaging/node/connection.js.map +1 -1
  77. package/lib/messaging/proxy-factory.d.ts +1 -1
  78. package/lib/messaging/proxy-factory.d.ts.map +1 -1
  79. package/lib/messaging/proxy-factory.js +7 -9
  80. package/lib/messaging/proxy-factory.js.map +1 -1
  81. package/lib/payment-protocol.d.ts.map +1 -1
  82. package/lib/payment-protocol.js +1 -1
  83. package/lib/payment-protocol.js.map +1 -1
  84. package/lib/permission.d.ts +2 -2
  85. package/lib/permission.d.ts.map +1 -1
  86. package/lib/permission.js +12 -23
  87. package/lib/permission.js.map +1 -1
  88. package/lib/plans.d.ts +3 -3
  89. package/lib/plans.d.ts.map +1 -1
  90. package/lib/plans.js +206 -171
  91. package/lib/plans.js.map +1 -1
  92. package/lib/protocol.d.ts +10 -10
  93. package/lib/protocol.d.ts.map +1 -1
  94. package/lib/protocol.js +54 -88
  95. package/lib/protocol.js.map +1 -1
  96. package/lib/snapshot-url.spec.js.map +1 -1
  97. package/lib/team-subscription-protocol.d.ts +3 -3
  98. package/lib/team-subscription-protocol.d.ts.map +1 -1
  99. package/lib/team-subscription-protocol.js +4 -4
  100. package/lib/team-subscription-protocol.js.map +1 -1
  101. package/lib/teams-projects-protocol.d.ts +3 -3
  102. package/lib/teams-projects-protocol.d.ts.map +1 -1
  103. package/lib/teams-projects-protocol.js +1 -1
  104. package/lib/teams-projects-protocol.js.map +1 -1
  105. package/lib/typings/globals.d.ts +2 -2
  106. package/lib/typings/globals.d.ts.map +1 -1
  107. package/lib/util/analytics.d.ts.map +1 -1
  108. package/lib/util/analytics.js +6 -6
  109. package/lib/util/analytics.js.map +1 -1
  110. package/lib/util/async-iterator.d.ts.map +1 -1
  111. package/lib/util/async-iterator.js +3 -3
  112. package/lib/util/async-iterator.js.map +1 -1
  113. package/lib/util/cancelable.js.map +1 -1
  114. package/lib/util/date-time.js +6 -6
  115. package/lib/util/date-time.js.map +1 -1
  116. package/lib/util/deferred.js.map +1 -1
  117. package/lib/util/disposable.d.ts.map +1 -1
  118. package/lib/util/disposable.js +2 -2
  119. package/lib/util/disposable.js.map +1 -1
  120. package/lib/util/event.d.ts.map +1 -1
  121. package/lib/util/event.js +5 -3
  122. package/lib/util/event.js.map +1 -1
  123. package/lib/util/garbage-collected-cache.d.ts.map +1 -1
  124. package/lib/util/garbage-collected-cache.js +1 -1
  125. package/lib/util/garbage-collected-cache.js.map +1 -1
  126. package/lib/util/generate-workspace-id.d.ts.map +1 -1
  127. package/lib/util/generate-workspace-id.js +435 -435
  128. package/lib/util/generate-workspace-id.js.map +1 -1
  129. package/lib/util/generate-workspace-id.spec.js +10 -6
  130. package/lib/util/generate-workspace-id.spec.js.map +1 -1
  131. package/lib/util/gitpod-cookie.d.ts +1 -1
  132. package/lib/util/gitpod-cookie.d.ts.map +1 -1
  133. package/lib/util/gitpod-cookie.js +0 -3
  134. package/lib/util/gitpod-cookie.js.map +1 -1
  135. package/lib/util/gitpod-host-url.d.ts.map +1 -1
  136. package/lib/util/gitpod-host-url.js +31 -29
  137. package/lib/util/gitpod-host-url.js.map +1 -1
  138. package/lib/util/gitpod-host-url.spec.d.ts.map +1 -1
  139. package/lib/util/gitpod-host-url.spec.js +15 -5
  140. package/lib/util/gitpod-host-url.spec.js.map +1 -1
  141. package/lib/util/grpc.d.ts.map +1 -1
  142. package/lib/util/grpc.js.map +1 -1
  143. package/lib/util/jaeger-client-types.d.ts.map +1 -1
  144. package/lib/util/logging.d.ts +1 -1
  145. package/lib/util/logging.d.ts.map +1 -1
  146. package/lib/util/logging.js +22 -23
  147. package/lib/util/logging.js.map +1 -1
  148. package/lib/util/make-link.js +5 -5
  149. package/lib/util/make-link.js.map +1 -1
  150. package/lib/util/parse-workspace-id.d.ts.map +1 -1
  151. package/lib/util/parse-workspace-id.js +1 -2
  152. package/lib/util/parse-workspace-id.js.map +1 -1
  153. package/lib/util/parse-workspace-id.spec.d.ts.map +1 -1
  154. package/lib/util/parse-workspace-id.spec.js.map +1 -1
  155. package/lib/util/queue.spec.js +9 -6
  156. package/lib/util/queue.spec.js.map +1 -1
  157. package/lib/util/semaphore.d.ts.map +1 -1
  158. package/lib/util/semaphore.js.map +1 -1
  159. package/lib/util/skip-if.d.ts.map +1 -1
  160. package/lib/util/skip-if.js.map +1 -1
  161. package/lib/util/timeutil.d.ts.map +1 -1
  162. package/lib/util/timeutil.js +2 -2
  163. package/lib/util/timeutil.js.map +1 -1
  164. package/lib/util/timeutil.spec.d.ts.map +1 -1
  165. package/lib/util/timeutil.spec.js.map +1 -1
  166. package/lib/util/tracing.d.ts +6 -6
  167. package/lib/util/tracing.d.ts.map +1 -1
  168. package/lib/util/tracing.js +6 -6
  169. package/lib/util/tracing.js.map +1 -1
  170. package/lib/util/tracing.spec.js +3 -3
  171. package/lib/util/tracing.spec.js.map +1 -1
  172. package/lib/util/workspace-port-authentication.d.ts +7 -7
  173. package/lib/util/workspace-port-authentication.d.ts.map +1 -1
  174. package/lib/util/workspace-port-authentication.js +8 -11
  175. package/lib/util/workspace-port-authentication.js.map +1 -1
  176. package/lib/workspace-cluster.d.ts +1 -1
  177. package/lib/workspace-cluster.d.ts.map +1 -1
  178. package/lib/workspace-cluster.js +2 -4
  179. package/lib/workspace-cluster.js.map +1 -1
  180. package/lib/wsready.d.ts.map +1 -1
  181. package/package.json +1 -1
  182. package/pkg-yarn.lock +1 -1
  183. package/provenance-bundle.jsonl +1 -1
  184. package/src/accounting-protocol.ts +53 -51
  185. package/src/admin-protocol.ts +22 -20
  186. package/src/analytics.ts +21 -21
  187. package/src/auth.ts +2 -2
  188. package/src/context-url.spec.ts +25 -11
  189. package/src/context-url.ts +80 -78
  190. package/src/email-protocol.ts +5 -6
  191. package/src/encryption/container-module.ts +2 -3
  192. package/src/encryption/encryption-engine.spec.ts +9 -8
  193. package/src/encryption/encryption-engine.ts +14 -14
  194. package/src/encryption/encryption-service.ts +4 -5
  195. package/src/encryption/key-provider.ts +16 -19
  196. package/src/env.ts +9 -9
  197. package/src/gitpod-file-parser.spec.ts +55 -61
  198. package/src/gitpod-file-parser.ts +16 -17
  199. package/src/gitpod-service.ts +117 -92
  200. package/src/headless-workspace-log.ts +5 -4
  201. package/src/ide-frontend-service.ts +2 -2
  202. package/src/ide-protocol.ts +8 -8
  203. package/src/index.ts +16 -16
  204. package/src/installation-admin-protocol.ts +8 -8
  205. package/src/license-protocol.ts +5 -6
  206. package/src/messaging/browser/connection.ts +45 -47
  207. package/src/messaging/browser/window-connection.ts +39 -29
  208. package/src/messaging/client-call-metrics.ts +70 -71
  209. package/src/messaging/error.ts +1 -3
  210. package/src/messaging/handler.ts +6 -6
  211. package/src/messaging/node/connection.ts +8 -8
  212. package/src/messaging/proxy-factory.ts +23 -30
  213. package/src/oss-allowlist.ts +3 -3
  214. package/src/payment-protocol.ts +2 -2
  215. package/src/permission.ts +20 -31
  216. package/src/plans.ts +236 -189
  217. package/src/protocol.ts +174 -210
  218. package/src/snapshot-url.spec.ts +9 -7
  219. package/src/team-subscription-protocol.ts +31 -23
  220. package/src/teams-projects-protocol.ts +8 -8
  221. package/src/typings/globals.ts +4 -4
  222. package/src/util/analytics.ts +46 -42
  223. package/src/util/async-iterator.ts +4 -5
  224. package/src/util/cancelable.ts +3 -3
  225. package/src/util/date-time.ts +8 -8
  226. package/src/util/deferred.ts +6 -6
  227. package/src/util/disposable.ts +3 -6
  228. package/src/util/event.ts +9 -11
  229. package/src/util/garbage-collected-cache.ts +3 -6
  230. package/src/util/generate-workspace-id.spec.ts +18 -15
  231. package/src/util/generate-workspace-id.ts +453 -453
  232. package/src/util/gitpod-cookie.ts +8 -9
  233. package/src/util/gitpod-host-url.spec.ts +40 -13
  234. package/src/util/gitpod-host-url.ts +37 -34
  235. package/src/util/grpc.ts +1 -1
  236. package/src/util/jaeger-client-types.ts +2 -2
  237. package/src/util/logging.ts +49 -39
  238. package/src/util/make-link.ts +6 -7
  239. package/src/util/parse-workspace-id.spec.ts +17 -8
  240. package/src/util/parse-workspace-id.ts +5 -6
  241. package/src/util/queue.spec.ts +27 -25
  242. package/src/util/repeat.ts +1 -1
  243. package/src/util/semaphore.ts +4 -6
  244. package/src/util/skip-if.ts +9 -6
  245. package/src/util/timeutil.spec.ts +14 -15
  246. package/src/util/timeutil.ts +15 -11
  247. package/src/util/tracing.spec.ts +28 -23
  248. package/src/util/tracing.ts +46 -41
  249. package/src/util/workspace-port-authentication.ts +10 -13
  250. package/src/workspace-cluster.ts +15 -12
  251. package/src/wsready.ts +1 -1
@@ -5,32 +5,52 @@
5
5
  */
6
6
 
7
7
  import {
8
- User, WorkspaceInfo, WorkspaceCreationResult, WorkspaceInstanceUser,
9
- WhitelistedRepository, WorkspaceImageBuild, AuthProviderInfo, CreateWorkspaceMode,
10
- Token, UserEnvVarValue, Terms,
11
- Configuration, 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[]>;
@@ -228,9 +248,13 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
228
248
 
229
249
  tsGet(): Promise<TeamSubscription[]>;
230
250
  tsGetSlots(): Promise<TeamSubscriptionSlotResolved[]>;
231
- tsGetUnassignedSlot(teamSubscriptionId: string): Promise<TeamSubscriptionSlot | undefined>
251
+ tsGetUnassignedSlot(teamSubscriptionId: string): Promise<TeamSubscriptionSlot | undefined>;
232
252
  tsAddSlots(teamSubscriptionId: string, quantity: number): Promise<void>;
233
- tsAssignSlot(teamSubscriptionId: string, teamSubscriptionSlotId: string, identityStr: string | undefined): Promise<void>
253
+ tsAssignSlot(
254
+ teamSubscriptionId: string,
255
+ teamSubscriptionSlotId: string,
256
+ identityStr: string | undefined,
257
+ ): Promise<void>;
234
258
  tsReassignSlot(teamSubscriptionId: string, teamSubscriptionSlotId: string, newIdentityStr: string): Promise<void>;
235
259
  tsDeactivateSlot(teamSubscriptionId: string, teamSubscriptionSlotId: string): Promise<void>;
236
260
  tsReactivateSlot(teamSubscriptionId: string, teamSubscriptionSlotId: string): Promise<void>;
@@ -246,13 +270,13 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
246
270
  }
247
271
 
248
272
  export interface RateLimiterError {
249
- method?: string,
273
+ method?: string;
250
274
 
251
275
  /**
252
276
  * Retry after this many seconds, earliest.
253
277
  * cmp.: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After
254
278
  */
255
- retryAfter: number,
279
+ retryAfter: number;
256
280
  }
257
281
 
258
282
  export interface CreateProjectParams {
@@ -299,13 +323,17 @@ export interface ClientHeaderFields {
299
323
 
300
324
  export const WorkspaceTimeoutValues = ["30m", "60m", "180m"] as const;
301
325
 
302
- export const createServiceMock = function <C extends GitpodClient, S extends GitpodServer>(methods: Partial<JsonRpcProxy<S>>): GitpodServiceImpl<C, S> {
326
+ export const createServiceMock = function <C extends GitpodClient, S extends GitpodServer>(
327
+ methods: Partial<JsonRpcProxy<S>>,
328
+ ): GitpodServiceImpl<C, S> {
303
329
  return new GitpodServiceImpl<C, S>(createServerMock(methods));
304
- }
330
+ };
305
331
 
306
- export const createServerMock = function <C extends GitpodClient, S extends GitpodServer>(methods: Partial<JsonRpcProxy<S>>): JsonRpcProxy<S> {
307
- methods.setClient = methods.setClient || (() => { });
308
- methods.dispose = methods.dispose || (() => { });
332
+ export const createServerMock = function <C extends GitpodClient, S extends GitpodServer>(
333
+ methods: Partial<JsonRpcProxy<S>>,
334
+ ): JsonRpcProxy<S> {
335
+ methods.setClient = methods.setClient || (() => {});
336
+ methods.dispose = methods.dispose || (() => {});
309
337
  return new Proxy<JsonRpcProxy<S>>(methods as any as JsonRpcProxy<S>, {
310
338
  // @ts-ignore
311
339
  get: (target: S, property: keyof S) => {
@@ -314,25 +342,25 @@ export const createServerMock = function <C extends GitpodClient, S extends Gitp
314
342
  throw new Error(`Method ${property} not implemented`);
315
343
  }
316
344
  return result;
317
- }
345
+ },
318
346
  });
319
- }
347
+ };
320
348
 
321
349
  type WorkspaceTimeoutDurationTuple = typeof WorkspaceTimeoutValues;
322
350
  export type WorkspaceTimeoutDuration = WorkspaceTimeoutDurationTuple[number];
323
351
 
324
352
  export interface SetWorkspaceTimeoutResult {
325
- resetTimeoutOnWorkspaces: string[]
353
+ resetTimeoutOnWorkspaces: string[];
326
354
  }
327
355
 
328
356
  export interface GetWorkspaceTimeoutResult {
329
- duration: WorkspaceTimeoutDuration
330
- canChange: boolean
357
+ duration: WorkspaceTimeoutDuration;
358
+ canChange: boolean;
331
359
  }
332
360
 
333
361
  export interface StartWorkspaceResult {
334
- instanceID: string
335
- workspaceURL?: string
362
+ instanceID: string;
363
+ workspaceURL?: string;
336
364
  }
337
365
 
338
366
  export namespace GitpodServer {
@@ -376,23 +404,23 @@ export namespace GitpodServer {
376
404
  readonly roundTripTime?: number;
377
405
  }
378
406
  export interface UpdateOwnAuthProviderParams {
379
- readonly entry: AuthProviderEntry.UpdateEntry | AuthProviderEntry.NewEntry
407
+ readonly entry: AuthProviderEntry.UpdateEntry | AuthProviderEntry.NewEntry;
380
408
  }
381
409
  export interface DeleteOwnAuthProviderParams {
382
- readonly id: string
410
+ readonly id: string;
383
411
  }
384
412
  export type AdmissionLevel = "owner" | "everyone";
385
413
  export type PinAction = "pin" | "unpin" | "toggle";
386
414
  export interface GenerateNewGitpodTokenOptions {
387
- name?: string
388
- type: GitpodTokenType
389
- scopes?: string[]
415
+ name?: string;
416
+ type: GitpodTokenType;
417
+ scopes?: string[];
390
418
  }
391
419
  }
392
420
 
393
- export const GitpodServerPath = '/gitpod';
421
+ export const GitpodServerPath = "/gitpod";
394
422
 
395
- export const GitpodServerProxy = Symbol('GitpodServerProxy');
423
+ export const GitpodServerProxy = Symbol("GitpodServerProxy");
396
424
  export type GitpodServerProxy<S extends GitpodServer> = JsonRpcProxy<S>;
397
425
 
398
426
  export class GitpodCompositeClient<Client extends GitpodClient> implements GitpodClient {
@@ -406,8 +434,8 @@ export class GitpodCompositeClient<Client extends GitpodClient> implements Gitpo
406
434
  if (index > -1) {
407
435
  this.clients.splice(index, 1);
408
436
  }
409
- }
410
- }
437
+ },
438
+ };
411
439
  }
412
440
 
413
441
  onInstanceUpdate(instance: WorkspaceInstance): void {
@@ -416,7 +444,7 @@ export class GitpodCompositeClient<Client extends GitpodClient> implements Gitpo
416
444
  try {
417
445
  client.onInstanceUpdate(instance);
418
446
  } catch (error) {
419
- console.error(error)
447
+ console.error(error);
420
448
  }
421
449
  }
422
450
  }
@@ -428,19 +456,22 @@ export class GitpodCompositeClient<Client extends GitpodClient> implements Gitpo
428
456
  try {
429
457
  client.onPrebuildUpdate(update);
430
458
  } catch (error) {
431
- console.error(error)
459
+ console.error(error);
432
460
  }
433
461
  }
434
462
  }
435
463
  }
436
464
 
437
- onWorkspaceImageBuildLogs(info: WorkspaceImageBuild.StateInfo, content: WorkspaceImageBuild.LogContent | undefined): void {
465
+ onWorkspaceImageBuildLogs(
466
+ info: WorkspaceImageBuild.StateInfo,
467
+ content: WorkspaceImageBuild.LogContent | undefined,
468
+ ): void {
438
469
  for (const client of this.clients) {
439
470
  if (client.onWorkspaceImageBuildLogs) {
440
471
  try {
441
472
  client.onWorkspaceImageBuildLogs(info, content);
442
473
  } catch (error) {
443
- console.error(error)
474
+ console.error(error);
444
475
  }
445
476
  }
446
477
  }
@@ -452,7 +483,7 @@ export class GitpodCompositeClient<Client extends GitpodClient> implements Gitpo
452
483
  try {
453
484
  client.notifyDidOpenConnection();
454
485
  } catch (error) {
455
- console.error(error)
486
+ console.error(error);
456
487
  }
457
488
  }
458
489
  }
@@ -464,7 +495,7 @@ export class GitpodCompositeClient<Client extends GitpodClient> implements Gitpo
464
495
  try {
465
496
  client.notifyDidCloseConnection();
466
497
  } catch (error) {
467
- console.error(error)
498
+ console.error(error);
468
499
  }
469
500
  }
470
501
  }
@@ -476,17 +507,16 @@ export class GitpodCompositeClient<Client extends GitpodClient> implements Gitpo
476
507
  try {
477
508
  client.onCreditAlert(creditAlert);
478
509
  } catch (error) {
479
- console.error(error)
510
+ console.error(error);
480
511
  }
481
512
  }
482
513
  }
483
514
  }
484
-
485
515
  }
486
516
 
487
517
  export type GitpodService = GitpodServiceImpl<GitpodClient, GitpodServer>;
488
518
 
489
- const hasWindow = (typeof window !== 'undefined');
519
+ const hasWindow = typeof window !== "undefined";
490
520
  const phasesOrder: Record<WorkspaceInstancePhase, number> = {
491
521
  unknown: 0,
492
522
  preparing: 1,
@@ -496,44 +526,41 @@ const phasesOrder: Record<WorkspaceInstancePhase, number> = {
496
526
  running: 5,
497
527
  interrupted: 6,
498
528
  stopping: 7,
499
- stopped: 8
529
+ stopped: 8,
500
530
  };
501
531
  export class WorkspaceInstanceUpdateListener {
502
532
  private readonly onDidChangeEmitter = new Emitter<void>();
503
533
  readonly onDidChange = this.onDidChangeEmitter.event;
504
534
 
505
- private source: 'sync' | 'update' = 'sync';
535
+ private source: "sync" | "update" = "sync";
506
536
 
507
537
  get info(): WorkspaceInfo {
508
538
  return this._info;
509
539
  }
510
540
 
511
- constructor(
512
- private readonly service: GitpodService,
513
- private _info: WorkspaceInfo
514
- ) {
541
+ constructor(private readonly service: GitpodService, private _info: WorkspaceInfo) {
515
542
  service.registerClient({
516
- onInstanceUpdate: instance => {
543
+ onInstanceUpdate: (instance) => {
517
544
  if (this.isOutOfOrder(instance)) {
518
545
  return;
519
546
  }
520
547
  this.cancelSync();
521
548
  this._info.latestInstance = instance;
522
- this.source = 'update';
549
+ this.source = "update";
523
550
  this.onDidChangeEmitter.fire(undefined);
524
551
  },
525
552
  notifyDidOpenConnection: () => {
526
553
  this.sync();
527
- }
554
+ },
528
555
  });
529
556
  if (hasWindow) {
530
557
  // learn about page lifecycle here: https://developers.google.com/web/updates/2018/07/page-lifecycle-api
531
- window.document.addEventListener('visibilitychange', async () => {
532
- if (window.document.visibilityState === 'visible') {
558
+ window.document.addEventListener("visibilitychange", async () => {
559
+ if (window.document.visibilityState === "visible") {
533
560
  this.sync();
534
561
  }
535
562
  });
536
- window.addEventListener('pageshow', e => {
563
+ window.addEventListener("pageshow", (e) => {
537
564
  if (e.persisted) {
538
565
  this.sync();
539
566
  }
@@ -561,12 +588,12 @@ export class WorkspaceInstanceUpdateListener {
561
588
  return;
562
589
  }
563
590
  this._info = info;
564
- this.source = 'sync';
591
+ this.source = "sync";
565
592
  this.onDidChangeEmitter.fire(undefined);
566
593
  } catch (e) {
567
- console.error('failed to sync workspace instance:', e)
594
+ console.error("failed to sync workspace instance:", e);
568
595
  }
569
- })
596
+ });
570
597
  }
571
598
  private cancelSync(): void {
572
599
  if (this.syncTokenSource) {
@@ -583,7 +610,7 @@ export class WorkspaceInstanceUpdateListener {
583
610
  if (instance.workspaceId !== this._info.workspace.id) {
584
611
  return true;
585
612
  }
586
- if (this.source === 'update') {
613
+ if (this.source === "update") {
587
614
  return false;
588
615
  }
589
616
  if (instance.id !== this.info.latestInstance?.id) {
@@ -591,15 +618,13 @@ export class WorkspaceInstanceUpdateListener {
591
618
  }
592
619
  return phasesOrder[instance.status.phase] < phasesOrder[this.info.latestInstance.status.phase];
593
620
  }
594
-
595
621
  }
596
622
 
597
623
  export interface GitpodServiceOptions {
598
- onReconnect?: () => (void | Promise<void>)
624
+ onReconnect?: () => void | Promise<void>;
599
625
  }
600
626
 
601
627
  export class GitpodServiceImpl<Client extends GitpodClient, Server extends GitpodServer> {
602
-
603
628
  private readonly compositeClient = new GitpodCompositeClient<Client>();
604
629
 
605
630
  constructor(public readonly server: JsonRpcProxy<Server>, private options?: GitpodServiceOptions) {
@@ -614,7 +639,8 @@ export class GitpodServiceImpl<Client extends GitpodClient, Server extends Gitpo
614
639
 
615
640
  private readonly instanceListeners = new Map<string, Promise<WorkspaceInstanceUpdateListener>>();
616
641
  listenToInstance(workspaceId: string): Promise<WorkspaceInstanceUpdateListener> {
617
- const listener = this.instanceListeners.get(workspaceId) ||
642
+ const listener =
643
+ this.instanceListeners.get(workspaceId) ||
618
644
  (async () => {
619
645
  const info = await this.server.getWorkspace(workspaceId);
620
646
  return new WorkspaceInstanceUpdateListener(this, info);
@@ -630,26 +656,25 @@ export class GitpodServiceImpl<Client extends GitpodClient, Server extends Gitpo
630
656
  }
631
657
  }
632
658
 
633
- export function createGitpodService<C extends GitpodClient, S extends GitpodServer>(serverUrl: string | Promise<string>) {
659
+ export function createGitpodService<C extends GitpodClient, S extends GitpodServer>(
660
+ serverUrl: string | Promise<string>,
661
+ ) {
634
662
  const toWsUrl = (serverUrl: string) => {
635
- return new GitpodHostUrl(serverUrl)
636
- .asWebsocket()
637
- .withApi({ pathname: GitpodServerPath })
638
- .toString();
663
+ return new GitpodHostUrl(serverUrl).asWebsocket().withApi({ pathname: GitpodServerPath }).toString();
639
664
  };
640
665
  let url: string | Promise<string>;
641
666
  if (typeof serverUrl === "string") {
642
667
  url = toWsUrl(serverUrl);
643
668
  } else {
644
- url = serverUrl.then(url => toWsUrl(url));
669
+ url = serverUrl.then((url) => toWsUrl(url));
645
670
  }
646
671
 
647
672
  const connectionProvider = new WebSocketConnectionProvider();
648
- let onReconnect = () => { };
673
+ let onReconnect = () => {};
649
674
  const gitpodServer = connectionProvider.createProxy<S>(url, undefined, {
650
- onListening: socket => {
675
+ onListening: (socket) => {
651
676
  onReconnect = () => socket.reconnect();
652
- }
677
+ },
653
678
  });
654
679
  return new GitpodServiceImpl<C, S>(gitpodServer, { onReconnect });
655
- }
680
+ }
@@ -4,7 +4,6 @@
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",
@@ -12,14 +11,16 @@ export enum HeadlessWorkspaceEventType {
12
11
  AbortedTimedOut = "aborted-timeout",
13
12
  Aborted = "aborted",
14
13
  Failed = "failed",
15
- Started = "started"
14
+ Started = "started",
16
15
  }
17
16
  export namespace HeadlessWorkspaceEventType {
18
17
  export function isRunning(t: HeadlessWorkspaceEventType) {
19
18
  return t === HeadlessWorkspaceEventType.LogOutput;
20
19
  }
21
20
  export function didFinish(t: HeadlessWorkspaceEventType) {
22
- return t === HeadlessWorkspaceEventType.FinishedButFailed || t === HeadlessWorkspaceEventType.FinishedSuccessfully;
21
+ return (
22
+ t === HeadlessWorkspaceEventType.FinishedButFailed || t === HeadlessWorkspaceEventType.FinishedSuccessfully
23
+ );
23
24
  }
24
25
  }
25
26
 
@@ -36,4 +37,4 @@ export interface HeadlessLogUrls {
36
37
 
37
38
  /** cmp. @const HEADLESS_LOG_STREAM_STATUS_CODE_REGEX */
38
39
  export const HEADLESS_LOG_STREAM_STATUS_CODE = "X-LogStream-StatusCode";
39
- 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
  }
@@ -4,11 +4,10 @@
4
4
  * See License-AGPL.txt in the project root for license information.
5
5
  */
6
6
 
7
-
8
7
  export interface LicenseValidationResult {
9
- valid: boolean
10
- msg?: string
11
- issue?: LicenseIssue
8
+ valid: boolean;
9
+ msg?: string;
10
+ issue?: LicenseIssue;
12
11
  }
13
12
 
14
13
  export type LicenseIssue = "seats-exhausted";
@@ -34,5 +33,5 @@ export enum LicenseFeature {
34
33
  export interface LicenseService {
35
34
  validateLicense(): Promise<LicenseValidationResult>;
36
35
  getLicenseInfo(): Promise<GetLicenseInfoResult>;
37
- licenseIncludesFeature(feature: LicenseFeature): Promise<boolean>
38
- }
36
+ licenseIncludesFeature(feature: LicenseFeature): Promise<boolean>;
37
+ }