@gitpod/gitpod-protocol 0.1.5-me-image.3 → 0.1.5-me-test3.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.
- 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 +4 -2
- package/lib/admin-protocol.d.ts.map +1 -1
- package/lib/admin-protocol.js.map +1 -1
- 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.map +1 -1
- package/lib/context-url.js +3 -3
- package/lib/context-url.js.map +1 -1
- package/lib/context-url.spec.d.ts.map +1 -1
- package/lib/context-url.spec.js +20 -5
- 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 +23 -26
- package/lib/gitpod-service.d.ts.map +1 -1
- package/lib/gitpod-service.js +32 -26
- 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 +6 -6
- package/lib/ide-protocol.d.ts.map +1 -1
- package/lib/index.d.ts +16 -16
- 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 +1 -0
- package/lib/messaging/error.d.ts.map +1 -1
- package/lib/messaging/error.js +2 -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 +2 -2
- package/lib/permission.d.ts.map +1 -1
- package/lib/permission.js +12 -23
- 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 +74 -36
- package/lib/protocol.d.ts.map +1 -1
- package/lib/protocol.js +117 -87
- 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 +7 -3
- package/lib/teams-projects-protocol.d.ts.map +1 -1
- package/lib/teams-projects-protocol.js +1 -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 +6 -6
- package/lib/util/tracing.d.ts.map +1 -1
- package/lib/util/tracing.js +14 -16
- 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 +1 -1
- package/lib/workspace-cluster.d.ts.map +1 -1
- package/lib/workspace-cluster.js +2 -4
- package/lib/workspace-cluster.js.map +1 -1
- package/lib/workspace-instance.d.ts +7 -2
- 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 +1 -1
- package/pkg-yarn.lock +1 -1
- package/provenance-bundle.jsonl +1 -1
- package/src/accounting-protocol.ts +53 -51
- package/src/admin-protocol.ts +25 -21
- package/src/analytics.ts +21 -21
- package/src/auth.ts +2 -2
- package/src/context-url.spec.ts +25 -11
- package/src/context-url.ts +80 -78
- 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 +130 -104
- package/src/headless-workspace-log.ts +6 -4
- package/src/ide-frontend-service.ts +2 -2
- package/src/ide-protocol.ts +8 -8
- package/src/index.ts +16 -16
- package/src/installation-admin-protocol.ts +8 -8
- 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 +4 -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 +20 -31
- package/src/plans.ts +236 -189
- package/src/protocol.ts +290 -239
- package/src/snapshot-url.spec.ts +9 -7
- package/src/team-subscription-protocol.ts +33 -23
- package/src/teams-projects-protocol.ts +13 -8
- 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 +54 -51
- package/src/util/workspace-port-authentication.ts +10 -13
- package/src/workspace-cluster.ts +15 -12
- package/src/workspace-instance.ts +35 -23
- package/src/wsready.ts +3 -3
- package/data/builtin-theia-plugins.json +0 -372
- 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/src/theia-plugins.ts +0 -11
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>;
|
|
@@ -159,8 +179,8 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
|
|
|
159
179
|
deleteProjectEnvironmentVariable(variableId: string): Promise<void>;
|
|
160
180
|
|
|
161
181
|
// content service
|
|
162
|
-
getContentBlobUploadUrl(name: string): Promise<string
|
|
163
|
-
getContentBlobDownloadUrl(name: string): Promise<string
|
|
182
|
+
getContentBlobUploadUrl(name: string): Promise<string>;
|
|
183
|
+
getContentBlobDownloadUrl(name: string): Promise<string>;
|
|
164
184
|
|
|
165
185
|
// Gitpod token
|
|
166
186
|
getGitpodTokens(): Promise<GitpodToken[]>;
|
|
@@ -169,6 +189,7 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
|
|
|
169
189
|
|
|
170
190
|
// misc
|
|
171
191
|
sendFeedback(feedback: string): Promise<string | undefined>;
|
|
192
|
+
isGitHubAppEnabled(): Promise<boolean>;
|
|
172
193
|
registerGithubApp(installationId: string): Promise<void>;
|
|
173
194
|
|
|
174
195
|
/**
|
|
@@ -197,15 +218,6 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
|
|
|
197
218
|
*/
|
|
198
219
|
getLayout(workspaceId: string): Promise<string | undefined>;
|
|
199
220
|
|
|
200
|
-
/**
|
|
201
|
-
* @param params
|
|
202
|
-
* @returns promise resolves to an URL to be used for the upload
|
|
203
|
-
*/
|
|
204
|
-
preparePluginUpload(params: PreparePluginUploadParams): Promise<string>
|
|
205
|
-
resolvePlugins(workspaceId: string, params: ResolvePluginsParams): Promise<ResolvedPlugins>;
|
|
206
|
-
installUserPlugins(params: InstallPluginsParams): Promise<boolean>;
|
|
207
|
-
uninstallUserPlugin(params: UninstallPluginParams): Promise<boolean>;
|
|
208
|
-
|
|
209
221
|
guessGitTokenScopes(params: GuessGitTokenScopesParams): Promise<GuessedGitTokenScopes>;
|
|
210
222
|
|
|
211
223
|
/**
|
|
@@ -237,9 +249,13 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
|
|
|
237
249
|
|
|
238
250
|
tsGet(): Promise<TeamSubscription[]>;
|
|
239
251
|
tsGetSlots(): Promise<TeamSubscriptionSlotResolved[]>;
|
|
240
|
-
tsGetUnassignedSlot(teamSubscriptionId: string): Promise<TeamSubscriptionSlot | undefined
|
|
252
|
+
tsGetUnassignedSlot(teamSubscriptionId: string): Promise<TeamSubscriptionSlot | undefined>;
|
|
241
253
|
tsAddSlots(teamSubscriptionId: string, quantity: number): Promise<void>;
|
|
242
|
-
tsAssignSlot(
|
|
254
|
+
tsAssignSlot(
|
|
255
|
+
teamSubscriptionId: string,
|
|
256
|
+
teamSubscriptionSlotId: string,
|
|
257
|
+
identityStr: string | undefined,
|
|
258
|
+
): Promise<void>;
|
|
243
259
|
tsReassignSlot(teamSubscriptionId: string, teamSubscriptionSlotId: string, newIdentityStr: string): Promise<void>;
|
|
244
260
|
tsDeactivateSlot(teamSubscriptionId: string, teamSubscriptionSlotId: string): Promise<void>;
|
|
245
261
|
tsReactivateSlot(teamSubscriptionId: string, teamSubscriptionSlotId: string): Promise<void>;
|
|
@@ -255,13 +271,13 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
|
|
|
255
271
|
}
|
|
256
272
|
|
|
257
273
|
export interface RateLimiterError {
|
|
258
|
-
method?: string
|
|
274
|
+
method?: string;
|
|
259
275
|
|
|
260
276
|
/**
|
|
261
277
|
* Retry after this many seconds, earliest.
|
|
262
278
|
* cmp.: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After
|
|
263
279
|
*/
|
|
264
|
-
retryAfter: number
|
|
280
|
+
retryAfter: number;
|
|
265
281
|
}
|
|
266
282
|
|
|
267
283
|
export interface CreateProjectParams {
|
|
@@ -292,7 +308,7 @@ export interface ProviderRepository {
|
|
|
292
308
|
account: string;
|
|
293
309
|
accountAvatarUrl: string;
|
|
294
310
|
cloneUrl: string;
|
|
295
|
-
updatedAt
|
|
311
|
+
updatedAt?: string;
|
|
296
312
|
installationId?: number;
|
|
297
313
|
installationUpdatedAt?: string;
|
|
298
314
|
|
|
@@ -306,15 +322,28 @@ export interface ClientHeaderFields {
|
|
|
306
322
|
clientRegion?: string;
|
|
307
323
|
}
|
|
308
324
|
|
|
309
|
-
export const
|
|
310
|
-
|
|
311
|
-
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> {
|
|
312
339
|
return new GitpodServiceImpl<C, S>(createServerMock(methods));
|
|
313
|
-
}
|
|
340
|
+
};
|
|
314
341
|
|
|
315
|
-
export const createServerMock = function <C extends GitpodClient, S extends GitpodServer>(
|
|
316
|
-
methods
|
|
317
|
-
|
|
342
|
+
export const createServerMock = function <C extends GitpodClient, S extends GitpodServer>(
|
|
343
|
+
methods: Partial<JsonRpcProxy<S>>,
|
|
344
|
+
): JsonRpcProxy<S> {
|
|
345
|
+
methods.setClient = methods.setClient || (() => {});
|
|
346
|
+
methods.dispose = methods.dispose || (() => {});
|
|
318
347
|
return new Proxy<JsonRpcProxy<S>>(methods as any as JsonRpcProxy<S>, {
|
|
319
348
|
// @ts-ignore
|
|
320
349
|
get: (target: S, property: keyof S) => {
|
|
@@ -323,25 +352,25 @@ export const createServerMock = function <C extends GitpodClient, S extends Gitp
|
|
|
323
352
|
throw new Error(`Method ${property} not implemented`);
|
|
324
353
|
}
|
|
325
354
|
return result;
|
|
326
|
-
}
|
|
355
|
+
},
|
|
327
356
|
});
|
|
328
|
-
}
|
|
357
|
+
};
|
|
329
358
|
|
|
330
359
|
type WorkspaceTimeoutDurationTuple = typeof WorkspaceTimeoutValues;
|
|
331
360
|
export type WorkspaceTimeoutDuration = WorkspaceTimeoutDurationTuple[number];
|
|
332
361
|
|
|
333
362
|
export interface SetWorkspaceTimeoutResult {
|
|
334
|
-
resetTimeoutOnWorkspaces: string[]
|
|
363
|
+
resetTimeoutOnWorkspaces: string[];
|
|
335
364
|
}
|
|
336
365
|
|
|
337
366
|
export interface GetWorkspaceTimeoutResult {
|
|
338
|
-
duration: WorkspaceTimeoutDuration
|
|
339
|
-
canChange: boolean
|
|
367
|
+
duration: WorkspaceTimeoutDuration;
|
|
368
|
+
canChange: boolean;
|
|
340
369
|
}
|
|
341
370
|
|
|
342
371
|
export interface StartWorkspaceResult {
|
|
343
|
-
instanceID: string
|
|
344
|
-
workspaceURL?: string
|
|
372
|
+
instanceID: string;
|
|
373
|
+
workspaceURL?: string;
|
|
345
374
|
}
|
|
346
375
|
|
|
347
376
|
export namespace GitpodServer {
|
|
@@ -385,23 +414,23 @@ export namespace GitpodServer {
|
|
|
385
414
|
readonly roundTripTime?: number;
|
|
386
415
|
}
|
|
387
416
|
export interface UpdateOwnAuthProviderParams {
|
|
388
|
-
readonly entry: AuthProviderEntry.UpdateEntry | AuthProviderEntry.NewEntry
|
|
417
|
+
readonly entry: AuthProviderEntry.UpdateEntry | AuthProviderEntry.NewEntry;
|
|
389
418
|
}
|
|
390
419
|
export interface DeleteOwnAuthProviderParams {
|
|
391
|
-
readonly id: string
|
|
420
|
+
readonly id: string;
|
|
392
421
|
}
|
|
393
422
|
export type AdmissionLevel = "owner" | "everyone";
|
|
394
423
|
export type PinAction = "pin" | "unpin" | "toggle";
|
|
395
424
|
export interface GenerateNewGitpodTokenOptions {
|
|
396
|
-
name?: string
|
|
397
|
-
type: GitpodTokenType
|
|
398
|
-
scopes?: string[]
|
|
425
|
+
name?: string;
|
|
426
|
+
type: GitpodTokenType;
|
|
427
|
+
scopes?: string[];
|
|
399
428
|
}
|
|
400
429
|
}
|
|
401
430
|
|
|
402
|
-
export const GitpodServerPath =
|
|
431
|
+
export const GitpodServerPath = "/gitpod";
|
|
403
432
|
|
|
404
|
-
export const GitpodServerProxy = Symbol(
|
|
433
|
+
export const GitpodServerProxy = Symbol("GitpodServerProxy");
|
|
405
434
|
export type GitpodServerProxy<S extends GitpodServer> = JsonRpcProxy<S>;
|
|
406
435
|
|
|
407
436
|
export class GitpodCompositeClient<Client extends GitpodClient> implements GitpodClient {
|
|
@@ -415,8 +444,8 @@ export class GitpodCompositeClient<Client extends GitpodClient> implements Gitpo
|
|
|
415
444
|
if (index > -1) {
|
|
416
445
|
this.clients.splice(index, 1);
|
|
417
446
|
}
|
|
418
|
-
}
|
|
419
|
-
}
|
|
447
|
+
},
|
|
448
|
+
};
|
|
420
449
|
}
|
|
421
450
|
|
|
422
451
|
onInstanceUpdate(instance: WorkspaceInstance): void {
|
|
@@ -425,7 +454,7 @@ export class GitpodCompositeClient<Client extends GitpodClient> implements Gitpo
|
|
|
425
454
|
try {
|
|
426
455
|
client.onInstanceUpdate(instance);
|
|
427
456
|
} catch (error) {
|
|
428
|
-
console.error(error)
|
|
457
|
+
console.error(error);
|
|
429
458
|
}
|
|
430
459
|
}
|
|
431
460
|
}
|
|
@@ -437,19 +466,22 @@ export class GitpodCompositeClient<Client extends GitpodClient> implements Gitpo
|
|
|
437
466
|
try {
|
|
438
467
|
client.onPrebuildUpdate(update);
|
|
439
468
|
} catch (error) {
|
|
440
|
-
console.error(error)
|
|
469
|
+
console.error(error);
|
|
441
470
|
}
|
|
442
471
|
}
|
|
443
472
|
}
|
|
444
473
|
}
|
|
445
474
|
|
|
446
|
-
onWorkspaceImageBuildLogs(
|
|
475
|
+
onWorkspaceImageBuildLogs(
|
|
476
|
+
info: WorkspaceImageBuild.StateInfo,
|
|
477
|
+
content: WorkspaceImageBuild.LogContent | undefined,
|
|
478
|
+
): void {
|
|
447
479
|
for (const client of this.clients) {
|
|
448
480
|
if (client.onWorkspaceImageBuildLogs) {
|
|
449
481
|
try {
|
|
450
482
|
client.onWorkspaceImageBuildLogs(info, content);
|
|
451
483
|
} catch (error) {
|
|
452
|
-
console.error(error)
|
|
484
|
+
console.error(error);
|
|
453
485
|
}
|
|
454
486
|
}
|
|
455
487
|
}
|
|
@@ -461,7 +493,7 @@ export class GitpodCompositeClient<Client extends GitpodClient> implements Gitpo
|
|
|
461
493
|
try {
|
|
462
494
|
client.notifyDidOpenConnection();
|
|
463
495
|
} catch (error) {
|
|
464
|
-
console.error(error)
|
|
496
|
+
console.error(error);
|
|
465
497
|
}
|
|
466
498
|
}
|
|
467
499
|
}
|
|
@@ -473,7 +505,7 @@ export class GitpodCompositeClient<Client extends GitpodClient> implements Gitpo
|
|
|
473
505
|
try {
|
|
474
506
|
client.notifyDidCloseConnection();
|
|
475
507
|
} catch (error) {
|
|
476
|
-
console.error(error)
|
|
508
|
+
console.error(error);
|
|
477
509
|
}
|
|
478
510
|
}
|
|
479
511
|
}
|
|
@@ -485,17 +517,16 @@ export class GitpodCompositeClient<Client extends GitpodClient> implements Gitpo
|
|
|
485
517
|
try {
|
|
486
518
|
client.onCreditAlert(creditAlert);
|
|
487
519
|
} catch (error) {
|
|
488
|
-
console.error(error)
|
|
520
|
+
console.error(error);
|
|
489
521
|
}
|
|
490
522
|
}
|
|
491
523
|
}
|
|
492
524
|
}
|
|
493
|
-
|
|
494
525
|
}
|
|
495
526
|
|
|
496
527
|
export type GitpodService = GitpodServiceImpl<GitpodClient, GitpodServer>;
|
|
497
528
|
|
|
498
|
-
const hasWindow =
|
|
529
|
+
const hasWindow = typeof window !== "undefined";
|
|
499
530
|
const phasesOrder: Record<WorkspaceInstancePhase, number> = {
|
|
500
531
|
unknown: 0,
|
|
501
532
|
preparing: 1,
|
|
@@ -505,44 +536,41 @@ const phasesOrder: Record<WorkspaceInstancePhase, number> = {
|
|
|
505
536
|
running: 5,
|
|
506
537
|
interrupted: 6,
|
|
507
538
|
stopping: 7,
|
|
508
|
-
stopped: 8
|
|
539
|
+
stopped: 8,
|
|
509
540
|
};
|
|
510
541
|
export class WorkspaceInstanceUpdateListener {
|
|
511
542
|
private readonly onDidChangeEmitter = new Emitter<void>();
|
|
512
543
|
readonly onDidChange = this.onDidChangeEmitter.event;
|
|
513
544
|
|
|
514
|
-
private source:
|
|
545
|
+
private source: "sync" | "update" = "sync";
|
|
515
546
|
|
|
516
547
|
get info(): WorkspaceInfo {
|
|
517
548
|
return this._info;
|
|
518
549
|
}
|
|
519
550
|
|
|
520
|
-
constructor(
|
|
521
|
-
private readonly service: GitpodService,
|
|
522
|
-
private _info: WorkspaceInfo
|
|
523
|
-
) {
|
|
551
|
+
constructor(private readonly service: GitpodService, private _info: WorkspaceInfo) {
|
|
524
552
|
service.registerClient({
|
|
525
|
-
onInstanceUpdate: instance => {
|
|
553
|
+
onInstanceUpdate: (instance) => {
|
|
526
554
|
if (this.isOutOfOrder(instance)) {
|
|
527
555
|
return;
|
|
528
556
|
}
|
|
529
557
|
this.cancelSync();
|
|
530
558
|
this._info.latestInstance = instance;
|
|
531
|
-
this.source =
|
|
559
|
+
this.source = "update";
|
|
532
560
|
this.onDidChangeEmitter.fire(undefined);
|
|
533
561
|
},
|
|
534
562
|
notifyDidOpenConnection: () => {
|
|
535
563
|
this.sync();
|
|
536
|
-
}
|
|
564
|
+
},
|
|
537
565
|
});
|
|
538
566
|
if (hasWindow) {
|
|
539
567
|
// learn about page lifecycle here: https://developers.google.com/web/updates/2018/07/page-lifecycle-api
|
|
540
|
-
window.document.addEventListener(
|
|
541
|
-
if (window.document.visibilityState ===
|
|
568
|
+
window.document.addEventListener("visibilitychange", async () => {
|
|
569
|
+
if (window.document.visibilityState === "visible") {
|
|
542
570
|
this.sync();
|
|
543
571
|
}
|
|
544
572
|
});
|
|
545
|
-
window.addEventListener(
|
|
573
|
+
window.addEventListener("pageshow", (e) => {
|
|
546
574
|
if (e.persisted) {
|
|
547
575
|
this.sync();
|
|
548
576
|
}
|
|
@@ -570,12 +598,12 @@ export class WorkspaceInstanceUpdateListener {
|
|
|
570
598
|
return;
|
|
571
599
|
}
|
|
572
600
|
this._info = info;
|
|
573
|
-
this.source =
|
|
601
|
+
this.source = "sync";
|
|
574
602
|
this.onDidChangeEmitter.fire(undefined);
|
|
575
603
|
} catch (e) {
|
|
576
|
-
console.error(
|
|
604
|
+
console.error("failed to sync workspace instance:", e);
|
|
577
605
|
}
|
|
578
|
-
})
|
|
606
|
+
});
|
|
579
607
|
}
|
|
580
608
|
private cancelSync(): void {
|
|
581
609
|
if (this.syncTokenSource) {
|
|
@@ -592,7 +620,7 @@ export class WorkspaceInstanceUpdateListener {
|
|
|
592
620
|
if (instance.workspaceId !== this._info.workspace.id) {
|
|
593
621
|
return true;
|
|
594
622
|
}
|
|
595
|
-
if (this.source ===
|
|
623
|
+
if (this.source === "update") {
|
|
596
624
|
return false;
|
|
597
625
|
}
|
|
598
626
|
if (instance.id !== this.info.latestInstance?.id) {
|
|
@@ -600,15 +628,13 @@ export class WorkspaceInstanceUpdateListener {
|
|
|
600
628
|
}
|
|
601
629
|
return phasesOrder[instance.status.phase] < phasesOrder[this.info.latestInstance.status.phase];
|
|
602
630
|
}
|
|
603
|
-
|
|
604
631
|
}
|
|
605
632
|
|
|
606
633
|
export interface GitpodServiceOptions {
|
|
607
|
-
onReconnect?: () =>
|
|
634
|
+
onReconnect?: () => void | Promise<void>;
|
|
608
635
|
}
|
|
609
636
|
|
|
610
637
|
export class GitpodServiceImpl<Client extends GitpodClient, Server extends GitpodServer> {
|
|
611
|
-
|
|
612
638
|
private readonly compositeClient = new GitpodCompositeClient<Client>();
|
|
613
639
|
|
|
614
640
|
constructor(public readonly server: JsonRpcProxy<Server>, private options?: GitpodServiceOptions) {
|
|
@@ -623,7 +649,8 @@ export class GitpodServiceImpl<Client extends GitpodClient, Server extends Gitpo
|
|
|
623
649
|
|
|
624
650
|
private readonly instanceListeners = new Map<string, Promise<WorkspaceInstanceUpdateListener>>();
|
|
625
651
|
listenToInstance(workspaceId: string): Promise<WorkspaceInstanceUpdateListener> {
|
|
626
|
-
const listener =
|
|
652
|
+
const listener =
|
|
653
|
+
this.instanceListeners.get(workspaceId) ||
|
|
627
654
|
(async () => {
|
|
628
655
|
const info = await this.server.getWorkspace(workspaceId);
|
|
629
656
|
return new WorkspaceInstanceUpdateListener(this, info);
|
|
@@ -639,26 +666,25 @@ export class GitpodServiceImpl<Client extends GitpodClient, Server extends Gitpo
|
|
|
639
666
|
}
|
|
640
667
|
}
|
|
641
668
|
|
|
642
|
-
export function createGitpodService<C extends GitpodClient, S extends GitpodServer>(
|
|
669
|
+
export function createGitpodService<C extends GitpodClient, S extends GitpodServer>(
|
|
670
|
+
serverUrl: string | Promise<string>,
|
|
671
|
+
) {
|
|
643
672
|
const toWsUrl = (serverUrl: string) => {
|
|
644
|
-
return new GitpodHostUrl(serverUrl)
|
|
645
|
-
.asWebsocket()
|
|
646
|
-
.withApi({ pathname: GitpodServerPath })
|
|
647
|
-
.toString();
|
|
673
|
+
return new GitpodHostUrl(serverUrl).asWebsocket().withApi({ pathname: GitpodServerPath }).toString();
|
|
648
674
|
};
|
|
649
675
|
let url: string | Promise<string>;
|
|
650
676
|
if (typeof serverUrl === "string") {
|
|
651
677
|
url = toWsUrl(serverUrl);
|
|
652
678
|
} else {
|
|
653
|
-
url = serverUrl.then(url => toWsUrl(url));
|
|
679
|
+
url = serverUrl.then((url) => toWsUrl(url));
|
|
654
680
|
}
|
|
655
681
|
|
|
656
682
|
const connectionProvider = new WebSocketConnectionProvider();
|
|
657
|
-
let onReconnect = () => {
|
|
683
|
+
let onReconnect = () => {};
|
|
658
684
|
const gitpodServer = connectionProvider.createProxy<S>(url, undefined, {
|
|
659
|
-
onListening: socket => {
|
|
685
|
+
onListening: (socket) => {
|
|
660
686
|
onReconnect = () => socket.reconnect();
|
|
661
|
-
}
|
|
687
|
+
},
|
|
662
688
|
});
|
|
663
689
|
return new GitpodServiceImpl<C, S>(gitpodServer, { onReconnect });
|
|
664
|
-
}
|
|
690
|
+
}
|
|
@@ -4,21 +4,23 @@
|
|
|
4
4
|
* See License-AGPL.txt in the project root for license information.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
|
|
8
7
|
export enum HeadlessWorkspaceEventType {
|
|
9
8
|
LogOutput = "log-output",
|
|
10
9
|
FinishedSuccessfully = "finish-success",
|
|
11
10
|
FinishedButFailed = "finish-fail",
|
|
12
11
|
AbortedTimedOut = "aborted-timeout",
|
|
13
12
|
Aborted = "aborted",
|
|
14
|
-
|
|
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
|
/**
|
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";
|
|
@@ -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
|
|
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
|
}
|