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