@gitpod/gitpod-protocol 0.1.5-prs-dazzlev2-test.3 → 0.1.5-prs-prebuilds.16
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.
- package/data/gitpod-schema.json +163 -2
- package/lib/accounting-protocol.d.ts +10 -10
- package/lib/accounting-protocol.d.ts.map +1 -1
- package/lib/accounting-protocol.js +22 -31
- package/lib/accounting-protocol.js.map +1 -1
- package/lib/admin-protocol.d.ts +9 -0
- package/lib/admin-protocol.d.ts.map +1 -1
- package/lib/admin-protocol.js.map +1 -1
- package/lib/analytics.d.ts +4 -5
- package/lib/analytics.d.ts.map +1 -1
- package/lib/analytics.js.map +1 -1
- package/lib/auth.d.ts.map +1 -1
- package/lib/context-url.d.ts +17 -5
- package/lib/context-url.d.ts.map +1 -1
- package/lib/context-url.js +57 -6
- package/lib/context-url.js.map +1 -1
- package/lib/context-url.spec.d.ts +2 -0
- package/lib/context-url.spec.d.ts.map +1 -1
- package/lib/context-url.spec.js +40 -4
- package/lib/context-url.spec.js.map +1 -1
- package/lib/email-protocol.d.ts +1 -1
- package/lib/email-protocol.d.ts.map +1 -1
- package/lib/email-protocol.js.map +1 -1
- package/lib/encryption/container-module.d.ts.map +1 -1
- package/lib/encryption/container-module.js +1 -1
- package/lib/encryption/container-module.js.map +1 -1
- package/lib/encryption/encryption-engine.d.ts.map +1 -1
- package/lib/encryption/encryption-engine.js +7 -7
- package/lib/encryption/encryption-engine.js.map +1 -1
- package/lib/encryption/encryption-engine.spec.d.ts.map +1 -1
- package/lib/encryption/encryption-engine.spec.js +2 -3
- package/lib/encryption/encryption-engine.spec.js.map +1 -1
- package/lib/encryption/encryption-service.d.ts.map +1 -1
- package/lib/encryption/encryption-service.js +1 -1
- package/lib/encryption/encryption-service.js.map +1 -1
- package/lib/encryption/key-provider.d.ts.map +1 -1
- package/lib/encryption/key-provider.js +7 -9
- package/lib/encryption/key-provider.js.map +1 -1
- package/lib/env.d.ts +0 -5
- package/lib/env.d.ts.map +1 -1
- package/lib/env.js +1 -20
- package/lib/env.js.map +1 -1
- package/lib/gitpod-file-parser.d.ts.map +1 -1
- package/lib/gitpod-file-parser.js +6 -6
- package/lib/gitpod-file-parser.js.map +1 -1
- package/lib/gitpod-file-parser.spec.js +42 -39
- package/lib/gitpod-file-parser.spec.js.map +1 -1
- package/lib/gitpod-service.d.ts +33 -26
- package/lib/gitpod-service.d.ts.map +1 -1
- package/lib/gitpod-service.js +39 -32
- package/lib/gitpod-service.js.map +1 -1
- package/lib/headless-workspace-log.d.ts +1 -0
- package/lib/headless-workspace-log.d.ts.map +1 -1
- package/lib/headless-workspace-log.js +2 -1
- package/lib/headless-workspace-log.js.map +1 -1
- package/lib/ide-frontend-service.d.ts +1 -1
- package/lib/ide-protocol.d.ts +10 -6
- package/lib/ide-protocol.d.ts.map +1 -1
- package/lib/index.d.ts +16 -16
- package/lib/installation-admin-protocol.d.ts +6 -0
- package/lib/installation-admin-protocol.d.ts.map +1 -1
- package/lib/installation-admin-protocol.js +2 -2
- package/lib/installation-admin-protocol.js.map +1 -1
- package/lib/license-protocol.d.ts.map +1 -1
- package/lib/license-protocol.js.map +1 -1
- package/lib/messaging/browser/connection.d.ts +1 -1
- package/lib/messaging/browser/connection.d.ts.map +1 -1
- package/lib/messaging/browser/connection.js +19 -19
- package/lib/messaging/browser/connection.js.map +1 -1
- package/lib/messaging/browser/window-connection.d.ts +4 -4
- package/lib/messaging/browser/window-connection.d.ts.map +1 -1
- package/lib/messaging/browser/window-connection.js +9 -6
- package/lib/messaging/browser/window-connection.js.map +1 -1
- package/lib/messaging/client-call-metrics.d.ts +2 -2
- package/lib/messaging/client-call-metrics.d.ts.map +1 -1
- package/lib/messaging/client-call-metrics.js +20 -20
- package/lib/messaging/client-call-metrics.js.map +1 -1
- package/lib/messaging/error.d.ts +2 -0
- package/lib/messaging/error.d.ts.map +1 -1
- package/lib/messaging/error.js +4 -0
- package/lib/messaging/error.js.map +1 -1
- package/lib/messaging/handler.d.ts.map +1 -1
- package/lib/messaging/handler.js +1 -1
- package/lib/messaging/node/connection.js +8 -8
- package/lib/messaging/node/connection.js.map +1 -1
- package/lib/messaging/proxy-factory.d.ts +1 -1
- package/lib/messaging/proxy-factory.d.ts.map +1 -1
- package/lib/messaging/proxy-factory.js +7 -9
- package/lib/messaging/proxy-factory.js.map +1 -1
- package/lib/payment-protocol.d.ts.map +1 -1
- package/lib/payment-protocol.js +1 -1
- package/lib/payment-protocol.js.map +1 -1
- package/lib/permission.d.ts +9 -3
- package/lib/permission.d.ts.map +1 -1
- package/lib/permission.js +34 -25
- package/lib/permission.js.map +1 -1
- package/lib/plans.d.ts +3 -3
- package/lib/plans.d.ts.map +1 -1
- package/lib/plans.js +206 -171
- package/lib/plans.js.map +1 -1
- package/lib/protocol.d.ts +79 -38
- package/lib/protocol.d.ts.map +1 -1
- package/lib/protocol.js +160 -88
- package/lib/protocol.js.map +1 -1
- package/lib/snapshot-url.spec.js.map +1 -1
- package/lib/team-subscription-protocol.d.ts +5 -3
- package/lib/team-subscription-protocol.d.ts.map +1 -1
- package/lib/team-subscription-protocol.js +4 -4
- package/lib/team-subscription-protocol.js.map +1 -1
- package/lib/teams-projects-protocol.d.ts +10 -3
- package/lib/teams-projects-protocol.d.ts.map +1 -1
- package/lib/teams-projects-protocol.js +8 -1
- package/lib/teams-projects-protocol.js.map +1 -1
- package/lib/typings/globals.d.ts +2 -2
- package/lib/typings/globals.d.ts.map +1 -1
- package/lib/util/analytics.d.ts.map +1 -1
- package/lib/util/analytics.js +12 -3
- package/lib/util/analytics.js.map +1 -1
- package/lib/util/async-iterator.d.ts.map +1 -1
- package/lib/util/async-iterator.js +3 -3
- package/lib/util/async-iterator.js.map +1 -1
- package/lib/util/cancelable.js.map +1 -1
- package/lib/util/date-time.js +6 -6
- package/lib/util/date-time.js.map +1 -1
- package/lib/util/deferred.js.map +1 -1
- package/lib/util/disposable.d.ts.map +1 -1
- package/lib/util/disposable.js +2 -2
- package/lib/util/disposable.js.map +1 -1
- package/lib/util/event.d.ts.map +1 -1
- package/lib/util/event.js +5 -3
- package/lib/util/event.js.map +1 -1
- package/lib/util/garbage-collected-cache.d.ts.map +1 -1
- package/lib/util/garbage-collected-cache.js +1 -1
- package/lib/util/garbage-collected-cache.js.map +1 -1
- package/lib/util/generate-workspace-id.d.ts +5 -0
- package/lib/util/generate-workspace-id.d.ts.map +1 -1
- package/lib/util/generate-workspace-id.js +446 -442
- package/lib/util/generate-workspace-id.js.map +1 -1
- package/lib/util/generate-workspace-id.spec.js +18 -7
- package/lib/util/generate-workspace-id.spec.js.map +1 -1
- package/lib/util/gitpod-cookie.d.ts +1 -1
- package/lib/util/gitpod-cookie.d.ts.map +1 -1
- package/lib/util/gitpod-cookie.js +0 -3
- package/lib/util/gitpod-cookie.js.map +1 -1
- package/lib/util/gitpod-host-url.d.ts.map +1 -1
- package/lib/util/gitpod-host-url.js +31 -29
- package/lib/util/gitpod-host-url.js.map +1 -1
- package/lib/util/gitpod-host-url.spec.d.ts.map +1 -1
- package/lib/util/gitpod-host-url.spec.js +15 -5
- package/lib/util/gitpod-host-url.spec.js.map +1 -1
- package/lib/util/grpc.d.ts.map +1 -1
- package/lib/util/grpc.js.map +1 -1
- package/lib/util/jaeger-client-types.d.ts.map +1 -1
- package/lib/util/logging.d.ts +1 -1
- package/lib/util/logging.d.ts.map +1 -1
- package/lib/util/logging.js +23 -24
- package/lib/util/logging.js.map +1 -1
- package/lib/util/make-link.js +5 -5
- package/lib/util/make-link.js.map +1 -1
- package/lib/util/parse-workspace-id.d.ts.map +1 -1
- package/lib/util/parse-workspace-id.js +1 -2
- package/lib/util/parse-workspace-id.js.map +1 -1
- package/lib/util/parse-workspace-id.spec.d.ts.map +1 -1
- package/lib/util/parse-workspace-id.spec.js.map +1 -1
- package/lib/util/queue.spec.js +9 -6
- package/lib/util/queue.spec.js.map +1 -1
- package/lib/util/semaphore.d.ts.map +1 -1
- package/lib/util/semaphore.js.map +1 -1
- package/lib/util/skip-if.d.ts.map +1 -1
- package/lib/util/skip-if.js.map +1 -1
- package/lib/util/timeutil.d.ts.map +1 -1
- package/lib/util/timeutil.js +2 -2
- package/lib/util/timeutil.js.map +1 -1
- package/lib/util/timeutil.spec.d.ts.map +1 -1
- package/lib/util/timeutil.spec.js.map +1 -1
- package/lib/util/tracing.d.ts +8 -8
- package/lib/util/tracing.d.ts.map +1 -1
- package/lib/util/tracing.js +19 -20
- package/lib/util/tracing.js.map +1 -1
- package/lib/util/tracing.spec.js +3 -3
- package/lib/util/tracing.spec.js.map +1 -1
- package/lib/util/workspace-port-authentication.d.ts +7 -7
- package/lib/util/workspace-port-authentication.d.ts.map +1 -1
- package/lib/util/workspace-port-authentication.js +8 -11
- package/lib/util/workspace-port-authentication.js.map +1 -1
- package/lib/workspace-cluster.d.ts +10 -8
- package/lib/workspace-cluster.d.ts.map +1 -1
- package/lib/workspace-cluster.js +16 -1
- package/lib/workspace-cluster.js.map +1 -1
- package/lib/workspace-instance.d.ts +27 -3
- package/lib/workspace-instance.d.ts.map +1 -1
- package/lib/wsready.d.ts +1 -1
- package/lib/wsready.d.ts.map +1 -1
- package/lib/wsready.js +2 -2
- package/package.json +2 -2
- package/pkg-yarn.lock +2 -2
- package/provenance-bundle.jsonl +1 -1
- package/src/accounting-protocol.ts +53 -51
- package/src/admin-protocol.ts +33 -20
- package/src/analytics.ts +26 -28
- package/src/auth.ts +2 -2
- package/src/context-url.spec.ts +37 -9
- package/src/context-url.ts +96 -40
- package/src/email-protocol.ts +5 -6
- package/src/encryption/container-module.ts +2 -3
- package/src/encryption/encryption-engine.spec.ts +9 -8
- package/src/encryption/encryption-engine.ts +14 -14
- package/src/encryption/encryption-service.ts +4 -5
- package/src/encryption/key-provider.ts +16 -19
- package/src/env.ts +0 -22
- package/src/gitpod-file-parser.spec.ts +55 -61
- package/src/gitpod-file-parser.ts +16 -17
- package/src/gitpod-service.ts +147 -108
- package/src/headless-workspace-log.ts +6 -4
- package/src/ide-frontend-service.ts +2 -2
- package/src/ide-protocol.ts +13 -8
- package/src/index.ts +16 -16
- package/src/installation-admin-protocol.ts +11 -4
- package/src/license-protocol.ts +5 -6
- package/src/messaging/browser/connection.ts +45 -47
- package/src/messaging/browser/window-connection.ts +39 -29
- package/src/messaging/client-call-metrics.ts +70 -71
- package/src/messaging/error.ts +7 -3
- package/src/messaging/handler.ts +6 -6
- package/src/messaging/node/connection.ts +8 -8
- package/src/messaging/proxy-factory.ts +23 -30
- package/src/oss-allowlist.ts +3 -3
- package/src/payment-protocol.ts +2 -2
- package/src/permission.ts +40 -32
- package/src/plans.ts +236 -189
- package/src/protocol.ts +333 -241
- package/src/snapshot-url.spec.ts +9 -7
- package/src/team-subscription-protocol.ts +33 -23
- package/src/teams-projects-protocol.ts +20 -9
- package/src/typings/globals.ts +4 -4
- package/src/util/analytics.ts +46 -24
- package/src/util/async-iterator.ts +4 -5
- package/src/util/cancelable.ts +3 -3
- package/src/util/date-time.ts +8 -8
- package/src/util/deferred.ts +6 -6
- package/src/util/disposable.ts +3 -6
- package/src/util/event.ts +9 -11
- package/src/util/garbage-collected-cache.ts +3 -6
- package/src/util/generate-workspace-id.spec.ts +26 -16
- package/src/util/generate-workspace-id.ts +460 -454
- package/src/util/gitpod-cookie.ts +8 -9
- package/src/util/gitpod-host-url.spec.ts +40 -13
- package/src/util/gitpod-host-url.ts +37 -34
- package/src/util/grpc.ts +1 -1
- package/src/util/jaeger-client-types.ts +2 -2
- package/src/util/logging.ts +49 -40
- package/src/util/make-link.ts +6 -7
- package/src/util/parse-workspace-id.spec.ts +17 -8
- package/src/util/parse-workspace-id.ts +5 -6
- package/src/util/queue.spec.ts +27 -25
- package/src/util/repeat.ts +1 -1
- package/src/util/semaphore.ts +4 -6
- package/src/util/skip-if.ts +9 -6
- package/src/util/timeutil.spec.ts +14 -15
- package/src/util/timeutil.ts +15 -11
- package/src/util/tracing.spec.ts +28 -23
- package/src/util/tracing.ts +58 -54
- package/src/util/workspace-port-authentication.ts +10 -13
- package/src/workspace-cluster.ts +26 -15
- package/src/workspace-instance.ts +56 -20
- package/src/wsready.ts +3 -3
- package/data/builtin-theia-plugins.json +0 -372
- package/lib/messaging/connection-error-handler.d.ts +0 -27
- package/lib/messaging/connection-error-handler.d.ts.map +0 -1
- package/lib/messaging/connection-error-handler.js +0 -34
- package/lib/messaging/connection-error-handler.js.map +0 -1
- package/lib/theia-plugins.d.ts +0 -11
- package/lib/theia-plugins.d.ts.map +0 -1
- package/lib/theia-plugins.js +0 -8
- package/lib/theia-plugins.js.map +0 -1
- package/lib/util/safe-promise.d.ts +0 -11
- package/lib/util/safe-promise.d.ts.map +0 -1
- package/lib/util/safe-promise.js +0 -31
- package/lib/util/safe-promise.js.map +0 -1
- package/src/messaging/connection-error-handler.ts +0 -62
- package/src/theia-plugins.ts +0 -11
- package/src/util/safe-promise.ts +0 -26
package/src/gitpod-service.ts
CHANGED
|
@@ -5,32 +5,52 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import {
|
|
8
|
-
User,
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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,
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
import {
|
|
25
|
-
import {
|
|
26
|
-
import {
|
|
27
|
-
import {
|
|
28
|
-
import {
|
|
29
|
-
import {
|
|
30
|
-
import {
|
|
31
|
-
import {
|
|
32
|
-
import {
|
|
33
|
-
import {
|
|
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(
|
|
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>;
|
|
@@ -72,6 +92,7 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
|
|
|
72
92
|
getWorkspaceOwner(workspaceId: string): Promise<UserInfo | undefined>;
|
|
73
93
|
getWorkspaceUsers(workspaceId: string): Promise<WorkspaceInstanceUser[]>;
|
|
74
94
|
getFeaturedRepositories(): Promise<WhitelistedRepository[]>;
|
|
95
|
+
getSuggestedContextURLs(): Promise<string[]>;
|
|
75
96
|
/**
|
|
76
97
|
* **Security:**
|
|
77
98
|
* Sensitive information like an owner token is erased, since it allows access for all team members.
|
|
@@ -135,6 +156,7 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
|
|
|
135
156
|
// Admin Settings
|
|
136
157
|
adminGetSettings(): Promise<InstallationAdminSettings>;
|
|
137
158
|
adminUpdateSettings(settings: InstallationAdminSettings): Promise<void>;
|
|
159
|
+
adminGetTelemetryData(): Promise<TelemetryData>;
|
|
138
160
|
|
|
139
161
|
// Projects
|
|
140
162
|
getProviderRepositoriesForUser(params: GetProviderRepositoriesParams): Promise<ProviderRepository[]>;
|
|
@@ -157,8 +179,8 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
|
|
|
157
179
|
deleteProjectEnvironmentVariable(variableId: string): Promise<void>;
|
|
158
180
|
|
|
159
181
|
// content service
|
|
160
|
-
getContentBlobUploadUrl(name: string): Promise<string
|
|
161
|
-
getContentBlobDownloadUrl(name: string): Promise<string
|
|
182
|
+
getContentBlobUploadUrl(name: string): Promise<string>;
|
|
183
|
+
getContentBlobDownloadUrl(name: string): Promise<string>;
|
|
162
184
|
|
|
163
185
|
// Gitpod token
|
|
164
186
|
getGitpodTokens(): Promise<GitpodToken[]>;
|
|
@@ -167,6 +189,7 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
|
|
|
167
189
|
|
|
168
190
|
// misc
|
|
169
191
|
sendFeedback(feedback: string): Promise<string | undefined>;
|
|
192
|
+
isGitHubAppEnabled(): Promise<boolean>;
|
|
170
193
|
registerGithubApp(installationId: string): Promise<void>;
|
|
171
194
|
|
|
172
195
|
/**
|
|
@@ -195,15 +218,6 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
|
|
|
195
218
|
*/
|
|
196
219
|
getLayout(workspaceId: string): Promise<string | undefined>;
|
|
197
220
|
|
|
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
221
|
guessGitTokenScopes(params: GuessGitTokenScopesParams): Promise<GuessedGitTokenScopes>;
|
|
208
222
|
|
|
209
223
|
/**
|
|
@@ -235,9 +249,13 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
|
|
|
235
249
|
|
|
236
250
|
tsGet(): Promise<TeamSubscription[]>;
|
|
237
251
|
tsGetSlots(): Promise<TeamSubscriptionSlotResolved[]>;
|
|
238
|
-
tsGetUnassignedSlot(teamSubscriptionId: string): Promise<TeamSubscriptionSlot | undefined
|
|
252
|
+
tsGetUnassignedSlot(teamSubscriptionId: string): Promise<TeamSubscriptionSlot | undefined>;
|
|
239
253
|
tsAddSlots(teamSubscriptionId: string, quantity: number): Promise<void>;
|
|
240
|
-
tsAssignSlot(
|
|
254
|
+
tsAssignSlot(
|
|
255
|
+
teamSubscriptionId: string,
|
|
256
|
+
teamSubscriptionSlotId: string,
|
|
257
|
+
identityStr: string | undefined,
|
|
258
|
+
): Promise<void>;
|
|
241
259
|
tsReassignSlot(teamSubscriptionId: string, teamSubscriptionSlotId: string, newIdentityStr: string): Promise<void>;
|
|
242
260
|
tsDeactivateSlot(teamSubscriptionId: string, teamSubscriptionSlotId: string): Promise<void>;
|
|
243
261
|
tsReactivateSlot(teamSubscriptionId: string, teamSubscriptionSlotId: string): Promise<void>;
|
|
@@ -252,6 +270,16 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
|
|
|
252
270
|
identifyUser(event: RemoteIdentifyMessage): Promise<void>;
|
|
253
271
|
}
|
|
254
272
|
|
|
273
|
+
export interface RateLimiterError {
|
|
274
|
+
method?: string;
|
|
275
|
+
|
|
276
|
+
/**
|
|
277
|
+
* Retry after this many seconds, earliest.
|
|
278
|
+
* cmp.: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After
|
|
279
|
+
*/
|
|
280
|
+
retryAfter: number;
|
|
281
|
+
}
|
|
282
|
+
|
|
255
283
|
export interface CreateProjectParams {
|
|
256
284
|
name: string;
|
|
257
285
|
slug?: string;
|
|
@@ -280,7 +308,7 @@ export interface ProviderRepository {
|
|
|
280
308
|
account: string;
|
|
281
309
|
accountAvatarUrl: string;
|
|
282
310
|
cloneUrl: string;
|
|
283
|
-
updatedAt
|
|
311
|
+
updatedAt?: string;
|
|
284
312
|
installationId?: number;
|
|
285
313
|
installationUpdatedAt?: string;
|
|
286
314
|
|
|
@@ -294,15 +322,28 @@ export interface ClientHeaderFields {
|
|
|
294
322
|
clientRegion?: string;
|
|
295
323
|
}
|
|
296
324
|
|
|
297
|
-
export const
|
|
298
|
-
|
|
299
|
-
export const
|
|
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> {
|
|
300
339
|
return new GitpodServiceImpl<C, S>(createServerMock(methods));
|
|
301
|
-
}
|
|
340
|
+
};
|
|
302
341
|
|
|
303
|
-
export const createServerMock = function <C extends GitpodClient, S extends GitpodServer>(
|
|
304
|
-
methods
|
|
305
|
-
|
|
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 || (() => {});
|
|
306
347
|
return new Proxy<JsonRpcProxy<S>>(methods as any as JsonRpcProxy<S>, {
|
|
307
348
|
// @ts-ignore
|
|
308
349
|
get: (target: S, property: keyof S) => {
|
|
@@ -311,25 +352,25 @@ export const createServerMock = function <C extends GitpodClient, S extends Gitp
|
|
|
311
352
|
throw new Error(`Method ${property} not implemented`);
|
|
312
353
|
}
|
|
313
354
|
return result;
|
|
314
|
-
}
|
|
355
|
+
},
|
|
315
356
|
});
|
|
316
|
-
}
|
|
357
|
+
};
|
|
317
358
|
|
|
318
359
|
type WorkspaceTimeoutDurationTuple = typeof WorkspaceTimeoutValues;
|
|
319
360
|
export type WorkspaceTimeoutDuration = WorkspaceTimeoutDurationTuple[number];
|
|
320
361
|
|
|
321
362
|
export interface SetWorkspaceTimeoutResult {
|
|
322
|
-
resetTimeoutOnWorkspaces: string[]
|
|
363
|
+
resetTimeoutOnWorkspaces: string[];
|
|
323
364
|
}
|
|
324
365
|
|
|
325
366
|
export interface GetWorkspaceTimeoutResult {
|
|
326
|
-
duration: WorkspaceTimeoutDuration
|
|
327
|
-
canChange: boolean
|
|
367
|
+
duration: WorkspaceTimeoutDuration;
|
|
368
|
+
canChange: boolean;
|
|
328
369
|
}
|
|
329
370
|
|
|
330
371
|
export interface StartWorkspaceResult {
|
|
331
|
-
instanceID: string
|
|
332
|
-
workspaceURL?: string
|
|
372
|
+
instanceID: string;
|
|
373
|
+
workspaceURL?: string;
|
|
333
374
|
}
|
|
334
375
|
|
|
335
376
|
export namespace GitpodServer {
|
|
@@ -373,23 +414,23 @@ export namespace GitpodServer {
|
|
|
373
414
|
readonly roundTripTime?: number;
|
|
374
415
|
}
|
|
375
416
|
export interface UpdateOwnAuthProviderParams {
|
|
376
|
-
readonly entry: AuthProviderEntry.UpdateEntry | AuthProviderEntry.NewEntry
|
|
417
|
+
readonly entry: AuthProviderEntry.UpdateEntry | AuthProviderEntry.NewEntry;
|
|
377
418
|
}
|
|
378
419
|
export interface DeleteOwnAuthProviderParams {
|
|
379
|
-
readonly id: string
|
|
420
|
+
readonly id: string;
|
|
380
421
|
}
|
|
381
422
|
export type AdmissionLevel = "owner" | "everyone";
|
|
382
423
|
export type PinAction = "pin" | "unpin" | "toggle";
|
|
383
424
|
export interface GenerateNewGitpodTokenOptions {
|
|
384
|
-
name?: string
|
|
385
|
-
type: GitpodTokenType
|
|
386
|
-
scopes?: string[]
|
|
425
|
+
name?: string;
|
|
426
|
+
type: GitpodTokenType;
|
|
427
|
+
scopes?: string[];
|
|
387
428
|
}
|
|
388
429
|
}
|
|
389
430
|
|
|
390
|
-
export const GitpodServerPath =
|
|
431
|
+
export const GitpodServerPath = "/gitpod";
|
|
391
432
|
|
|
392
|
-
export const GitpodServerProxy = Symbol(
|
|
433
|
+
export const GitpodServerProxy = Symbol("GitpodServerProxy");
|
|
393
434
|
export type GitpodServerProxy<S extends GitpodServer> = JsonRpcProxy<S>;
|
|
394
435
|
|
|
395
436
|
export class GitpodCompositeClient<Client extends GitpodClient> implements GitpodClient {
|
|
@@ -403,8 +444,8 @@ export class GitpodCompositeClient<Client extends GitpodClient> implements Gitpo
|
|
|
403
444
|
if (index > -1) {
|
|
404
445
|
this.clients.splice(index, 1);
|
|
405
446
|
}
|
|
406
|
-
}
|
|
407
|
-
}
|
|
447
|
+
},
|
|
448
|
+
};
|
|
408
449
|
}
|
|
409
450
|
|
|
410
451
|
onInstanceUpdate(instance: WorkspaceInstance): void {
|
|
@@ -413,7 +454,7 @@ export class GitpodCompositeClient<Client extends GitpodClient> implements Gitpo
|
|
|
413
454
|
try {
|
|
414
455
|
client.onInstanceUpdate(instance);
|
|
415
456
|
} catch (error) {
|
|
416
|
-
console.error(error)
|
|
457
|
+
console.error(error);
|
|
417
458
|
}
|
|
418
459
|
}
|
|
419
460
|
}
|
|
@@ -425,19 +466,22 @@ export class GitpodCompositeClient<Client extends GitpodClient> implements Gitpo
|
|
|
425
466
|
try {
|
|
426
467
|
client.onPrebuildUpdate(update);
|
|
427
468
|
} catch (error) {
|
|
428
|
-
console.error(error)
|
|
469
|
+
console.error(error);
|
|
429
470
|
}
|
|
430
471
|
}
|
|
431
472
|
}
|
|
432
473
|
}
|
|
433
474
|
|
|
434
|
-
onWorkspaceImageBuildLogs(
|
|
475
|
+
onWorkspaceImageBuildLogs(
|
|
476
|
+
info: WorkspaceImageBuild.StateInfo,
|
|
477
|
+
content: WorkspaceImageBuild.LogContent | undefined,
|
|
478
|
+
): void {
|
|
435
479
|
for (const client of this.clients) {
|
|
436
480
|
if (client.onWorkspaceImageBuildLogs) {
|
|
437
481
|
try {
|
|
438
482
|
client.onWorkspaceImageBuildLogs(info, content);
|
|
439
483
|
} catch (error) {
|
|
440
|
-
console.error(error)
|
|
484
|
+
console.error(error);
|
|
441
485
|
}
|
|
442
486
|
}
|
|
443
487
|
}
|
|
@@ -449,7 +493,7 @@ export class GitpodCompositeClient<Client extends GitpodClient> implements Gitpo
|
|
|
449
493
|
try {
|
|
450
494
|
client.notifyDidOpenConnection();
|
|
451
495
|
} catch (error) {
|
|
452
|
-
console.error(error)
|
|
496
|
+
console.error(error);
|
|
453
497
|
}
|
|
454
498
|
}
|
|
455
499
|
}
|
|
@@ -461,7 +505,7 @@ export class GitpodCompositeClient<Client extends GitpodClient> implements Gitpo
|
|
|
461
505
|
try {
|
|
462
506
|
client.notifyDidCloseConnection();
|
|
463
507
|
} catch (error) {
|
|
464
|
-
console.error(error)
|
|
508
|
+
console.error(error);
|
|
465
509
|
}
|
|
466
510
|
}
|
|
467
511
|
}
|
|
@@ -473,64 +517,61 @@ export class GitpodCompositeClient<Client extends GitpodClient> implements Gitpo
|
|
|
473
517
|
try {
|
|
474
518
|
client.onCreditAlert(creditAlert);
|
|
475
519
|
} catch (error) {
|
|
476
|
-
console.error(error)
|
|
520
|
+
console.error(error);
|
|
477
521
|
}
|
|
478
522
|
}
|
|
479
523
|
}
|
|
480
524
|
}
|
|
481
|
-
|
|
482
525
|
}
|
|
483
526
|
|
|
484
527
|
export type GitpodService = GitpodServiceImpl<GitpodClient, GitpodServer>;
|
|
485
528
|
|
|
486
|
-
const hasWindow =
|
|
529
|
+
const hasWindow = typeof window !== "undefined";
|
|
487
530
|
const phasesOrder: Record<WorkspaceInstancePhase, number> = {
|
|
488
531
|
unknown: 0,
|
|
489
532
|
preparing: 1,
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
533
|
+
building: 2,
|
|
534
|
+
pending: 3,
|
|
535
|
+
creating: 4,
|
|
536
|
+
initializing: 5,
|
|
537
|
+
running: 6,
|
|
538
|
+
interrupted: 7,
|
|
539
|
+
stopping: 8,
|
|
540
|
+
stopped: 9,
|
|
497
541
|
};
|
|
498
542
|
export class WorkspaceInstanceUpdateListener {
|
|
499
543
|
private readonly onDidChangeEmitter = new Emitter<void>();
|
|
500
544
|
readonly onDidChange = this.onDidChangeEmitter.event;
|
|
501
545
|
|
|
502
|
-
private source:
|
|
546
|
+
private source: "sync" | "update" = "sync";
|
|
503
547
|
|
|
504
548
|
get info(): WorkspaceInfo {
|
|
505
549
|
return this._info;
|
|
506
550
|
}
|
|
507
551
|
|
|
508
|
-
constructor(
|
|
509
|
-
private readonly service: GitpodService,
|
|
510
|
-
private _info: WorkspaceInfo
|
|
511
|
-
) {
|
|
552
|
+
constructor(private readonly service: GitpodService, private _info: WorkspaceInfo) {
|
|
512
553
|
service.registerClient({
|
|
513
|
-
onInstanceUpdate: instance => {
|
|
554
|
+
onInstanceUpdate: (instance) => {
|
|
514
555
|
if (this.isOutOfOrder(instance)) {
|
|
515
556
|
return;
|
|
516
557
|
}
|
|
517
558
|
this.cancelSync();
|
|
518
559
|
this._info.latestInstance = instance;
|
|
519
|
-
this.source =
|
|
560
|
+
this.source = "update";
|
|
520
561
|
this.onDidChangeEmitter.fire(undefined);
|
|
521
562
|
},
|
|
522
563
|
notifyDidOpenConnection: () => {
|
|
523
564
|
this.sync();
|
|
524
|
-
}
|
|
565
|
+
},
|
|
525
566
|
});
|
|
526
567
|
if (hasWindow) {
|
|
527
568
|
// learn about page lifecycle here: https://developers.google.com/web/updates/2018/07/page-lifecycle-api
|
|
528
|
-
window.document.addEventListener(
|
|
529
|
-
if (window.document.visibilityState ===
|
|
569
|
+
window.document.addEventListener("visibilitychange", async () => {
|
|
570
|
+
if (window.document.visibilityState === "visible") {
|
|
530
571
|
this.sync();
|
|
531
572
|
}
|
|
532
573
|
});
|
|
533
|
-
window.addEventListener(
|
|
574
|
+
window.addEventListener("pageshow", (e) => {
|
|
534
575
|
if (e.persisted) {
|
|
535
576
|
this.sync();
|
|
536
577
|
}
|
|
@@ -558,12 +599,12 @@ export class WorkspaceInstanceUpdateListener {
|
|
|
558
599
|
return;
|
|
559
600
|
}
|
|
560
601
|
this._info = info;
|
|
561
|
-
this.source =
|
|
602
|
+
this.source = "sync";
|
|
562
603
|
this.onDidChangeEmitter.fire(undefined);
|
|
563
604
|
} catch (e) {
|
|
564
|
-
console.error(
|
|
605
|
+
console.error("failed to sync workspace instance:", e);
|
|
565
606
|
}
|
|
566
|
-
})
|
|
607
|
+
});
|
|
567
608
|
}
|
|
568
609
|
private cancelSync(): void {
|
|
569
610
|
if (this.syncTokenSource) {
|
|
@@ -580,7 +621,7 @@ export class WorkspaceInstanceUpdateListener {
|
|
|
580
621
|
if (instance.workspaceId !== this._info.workspace.id) {
|
|
581
622
|
return true;
|
|
582
623
|
}
|
|
583
|
-
if (this.source ===
|
|
624
|
+
if (this.source === "update") {
|
|
584
625
|
return false;
|
|
585
626
|
}
|
|
586
627
|
if (instance.id !== this.info.latestInstance?.id) {
|
|
@@ -588,15 +629,13 @@ export class WorkspaceInstanceUpdateListener {
|
|
|
588
629
|
}
|
|
589
630
|
return phasesOrder[instance.status.phase] < phasesOrder[this.info.latestInstance.status.phase];
|
|
590
631
|
}
|
|
591
|
-
|
|
592
632
|
}
|
|
593
633
|
|
|
594
634
|
export interface GitpodServiceOptions {
|
|
595
|
-
onReconnect?: () =>
|
|
635
|
+
onReconnect?: () => void | Promise<void>;
|
|
596
636
|
}
|
|
597
637
|
|
|
598
638
|
export class GitpodServiceImpl<Client extends GitpodClient, Server extends GitpodServer> {
|
|
599
|
-
|
|
600
639
|
private readonly compositeClient = new GitpodCompositeClient<Client>();
|
|
601
640
|
|
|
602
641
|
constructor(public readonly server: JsonRpcProxy<Server>, private options?: GitpodServiceOptions) {
|
|
@@ -611,7 +650,8 @@ export class GitpodServiceImpl<Client extends GitpodClient, Server extends Gitpo
|
|
|
611
650
|
|
|
612
651
|
private readonly instanceListeners = new Map<string, Promise<WorkspaceInstanceUpdateListener>>();
|
|
613
652
|
listenToInstance(workspaceId: string): Promise<WorkspaceInstanceUpdateListener> {
|
|
614
|
-
const listener =
|
|
653
|
+
const listener =
|
|
654
|
+
this.instanceListeners.get(workspaceId) ||
|
|
615
655
|
(async () => {
|
|
616
656
|
const info = await this.server.getWorkspace(workspaceId);
|
|
617
657
|
return new WorkspaceInstanceUpdateListener(this, info);
|
|
@@ -627,26 +667,25 @@ export class GitpodServiceImpl<Client extends GitpodClient, Server extends Gitpo
|
|
|
627
667
|
}
|
|
628
668
|
}
|
|
629
669
|
|
|
630
|
-
export function createGitpodService<C extends GitpodClient, S extends GitpodServer>(
|
|
670
|
+
export function createGitpodService<C extends GitpodClient, S extends GitpodServer>(
|
|
671
|
+
serverUrl: string | Promise<string>,
|
|
672
|
+
) {
|
|
631
673
|
const toWsUrl = (serverUrl: string) => {
|
|
632
|
-
return new GitpodHostUrl(serverUrl)
|
|
633
|
-
.asWebsocket()
|
|
634
|
-
.withApi({ pathname: GitpodServerPath })
|
|
635
|
-
.toString();
|
|
674
|
+
return new GitpodHostUrl(serverUrl).asWebsocket().withApi({ pathname: GitpodServerPath }).toString();
|
|
636
675
|
};
|
|
637
676
|
let url: string | Promise<string>;
|
|
638
677
|
if (typeof serverUrl === "string") {
|
|
639
678
|
url = toWsUrl(serverUrl);
|
|
640
679
|
} else {
|
|
641
|
-
url = serverUrl.then(url => toWsUrl(url));
|
|
680
|
+
url = serverUrl.then((url) => toWsUrl(url));
|
|
642
681
|
}
|
|
643
682
|
|
|
644
683
|
const connectionProvider = new WebSocketConnectionProvider();
|
|
645
|
-
let onReconnect = () => {
|
|
684
|
+
let onReconnect = () => {};
|
|
646
685
|
const gitpodServer = connectionProvider.createProxy<S>(url, undefined, {
|
|
647
|
-
onListening: socket => {
|
|
686
|
+
onListening: (socket) => {
|
|
648
687
|
onReconnect = () => socket.reconnect();
|
|
649
|
-
}
|
|
688
|
+
},
|
|
650
689
|
});
|
|
651
690
|
return new GitpodServiceImpl<C, S>(gitpodServer, { onReconnect });
|
|
652
|
-
}
|
|
691
|
+
}
|
|
@@ -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
|
-
|
|
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
|
|
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 =
|
|
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
|
+
}
|
package/src/ide-protocol.ts
CHANGED
|
@@ -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:
|
|
70
|
+
type: "browser" | "desktop";
|
|
71
71
|
|
|
72
72
|
/**
|
|
73
|
-
|
|
74
|
-
|
|
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
|
-
|
|
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,19 @@
|
|
|
4
4
|
* See License-AGPL.txt in the project root for license information.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
export * from
|
|
8
|
-
export * from
|
|
9
|
-
export * from
|
|
10
|
-
export * from
|
|
11
|
-
export * from
|
|
12
|
-
export * from
|
|
13
|
-
export * from
|
|
14
|
-
export * from
|
|
15
|
-
export * from
|
|
16
|
-
export * from
|
|
17
|
-
export * from
|
|
18
|
-
export * from
|
|
19
|
-
export * from
|
|
20
|
-
export * from
|
|
21
|
-
export * from
|
|
22
|
-
export * from
|
|
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";
|