@gitpod/gitpod-protocol 0.1.5-tar-sh-active-users.37 → 0.1.5-tar-sh-active-users-new.2
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 +8 -0
- package/lib/attribution.d.ts +4 -0
- package/lib/attribution.d.ts.map +1 -1
- package/lib/attribution.js +14 -0
- package/lib/attribution.js.map +1 -1
- package/lib/billing-mode.d.ts +2 -0
- package/lib/billing-mode.d.ts.map +1 -1
- package/lib/encryption/encryption-engine.d.ts.map +1 -1
- package/lib/encryption/encryption-engine.js +3 -3
- package/lib/encryption/encryption-engine.js.map +1 -1
- package/lib/encryption/encryption-engine.spec.js +1 -1
- package/lib/encryption/encryption-engine.spec.js.map +1 -1
- package/lib/encryption/key-provider.js +1 -1
- package/lib/encryption/key-provider.js.map +1 -1
- package/lib/experiments/configcat.d.ts +1 -2
- package/lib/experiments/configcat.d.ts.map +1 -1
- package/lib/experiments/configcat.js +4 -6
- package/lib/experiments/configcat.js.map +1 -1
- package/lib/experiments/types.d.ts +2 -3
- package/lib/experiments/types.d.ts.map +1 -1
- package/lib/experiments/types.js.map +1 -1
- package/lib/gitpod-service.d.ts +3 -12
- package/lib/gitpod-service.d.ts.map +1 -1
- package/lib/gitpod-service.js.map +1 -1
- package/lib/index.d.ts +0 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +0 -1
- package/lib/index.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/plans.js +2 -2
- package/lib/plans.js.map +1 -1
- package/lib/protocol.d.ts +26 -17
- package/lib/protocol.d.ts.map +1 -1
- package/lib/protocol.js +11 -8
- package/lib/protocol.js.map +1 -1
- package/lib/teams-projects-protocol.d.ts +1 -0
- package/lib/teams-projects-protocol.d.ts.map +1 -1
- package/lib/teams-projects-protocol.js.map +1 -1
- package/lib/util/nice-grpc.d.ts +9 -0
- package/lib/util/nice-grpc.d.ts.map +1 -0
- package/lib/util/nice-grpc.js +119 -0
- package/lib/util/nice-grpc.js.map +1 -0
- package/lib/workspace-cluster.d.ts +6 -5
- package/lib/workspace-cluster.d.ts.map +1 -1
- package/lib/workspace-cluster.js.map +1 -1
- package/lib/wsready.d.ts +3 -3
- package/lib/wsready.d.ts.map +1 -1
- package/lib/wsready.js +2 -0
- package/lib/wsready.js.map +1 -1
- package/package.json +3 -1
- package/pkg-yarn.lock +3 -1
- package/provenance-bundle.jsonl +1 -1
- package/src/attribution.ts +15 -0
- package/src/billing-mode.ts +4 -0
- package/src/encryption/encryption-engine.spec.ts +1 -1
- package/src/encryption/encryption-engine.ts +7 -3
- package/src/encryption/key-provider.ts +1 -1
- package/src/experiments/configcat.ts +3 -5
- package/src/experiments/types.ts +4 -5
- package/src/gitpod-service.ts +3 -14
- package/src/index.ts +0 -1
- package/src/messaging/error.ts +3 -0
- package/src/plans.ts +2 -2
- package/src/protocol.ts +31 -23
- package/src/teams-projects-protocol.ts +1 -0
- package/src/util/nice-grpc.ts +93 -0
- package/src/workspace-cluster.ts +11 -6
- package/src/wsready.ts +4 -5
- package/lib/email-protocol.d.ts +0 -49
- package/lib/email-protocol.d.ts.map +0 -1
- package/lib/email-protocol.js +0 -28
- package/lib/email-protocol.js.map +0 -1
- package/src/email-protocol.ts +0 -65
package/src/gitpod-service.ts
CHANGED
|
@@ -227,16 +227,6 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
|
|
|
227
227
|
*/
|
|
228
228
|
getSnapshots(workspaceID: string): Promise<string[]>;
|
|
229
229
|
|
|
230
|
-
/**
|
|
231
|
-
* stores/updates layout information for the given workspace
|
|
232
|
-
*/
|
|
233
|
-
storeLayout(workspaceId: string, layoutData: string): Promise<void>;
|
|
234
|
-
|
|
235
|
-
/**
|
|
236
|
-
* retrieves layout information for the given workspace
|
|
237
|
-
*/
|
|
238
|
-
getLayout(workspaceId: string): Promise<string | undefined>;
|
|
239
|
-
|
|
240
230
|
guessGitTokenScopes(params: GuessGitTokenScopesParams): Promise<GuessedGitTokenScopes>;
|
|
241
231
|
|
|
242
232
|
/**
|
|
@@ -287,9 +277,8 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
|
|
|
287
277
|
getStripePublishableKey(): Promise<string>;
|
|
288
278
|
getStripeSetupIntentClientSecret(): Promise<string>;
|
|
289
279
|
findStripeSubscriptionId(attributionId: string): Promise<string | undefined>;
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
subscribeToStripe(attributionId: string, setupIntentId: string): Promise<void>;
|
|
280
|
+
createStripeCustomerIfNeeded(attributionId: string, currency: string): Promise<void>;
|
|
281
|
+
subscribeToStripe(attributionId: string, setupIntentId: string, usageLimit: number): Promise<number | undefined>;
|
|
293
282
|
getStripePortalUrl(attributionId: string): Promise<string>;
|
|
294
283
|
getUsageLimit(attributionId: string): Promise<number | undefined>;
|
|
295
284
|
setUsageLimit(attributionId: string, usageLimit: number): Promise<void>;
|
|
@@ -297,6 +286,7 @@ export interface GitpodServer extends JsonRpcServer<GitpodClient>, AdminServer,
|
|
|
297
286
|
listUsage(req: ListUsageRequest): Promise<ListUsageResponse>;
|
|
298
287
|
|
|
299
288
|
setUsageAttribution(usageAttribution: string): Promise<void>;
|
|
289
|
+
listAvailableUsageAttributionIds(): Promise<string[]>;
|
|
300
290
|
|
|
301
291
|
getBillingModeForUser(): Promise<BillingMode>;
|
|
302
292
|
getBillingModeForTeam(teamId: string): Promise<BillingMode>;
|
|
@@ -439,7 +429,6 @@ export namespace GitpodServer {
|
|
|
439
429
|
}
|
|
440
430
|
export interface TakeSnapshotOptions {
|
|
441
431
|
workspaceId: string;
|
|
442
|
-
layoutData?: string;
|
|
443
432
|
/* this is here to enable backwards-compatibility and untangling rollout between workspace, IDE and meta */
|
|
444
433
|
dontWait?: boolean;
|
|
445
434
|
}
|
package/src/index.ts
CHANGED
|
@@ -13,7 +13,6 @@ export * from "./license-protocol";
|
|
|
13
13
|
export * from "./workspace-instance";
|
|
14
14
|
export * from "./permission";
|
|
15
15
|
export * from "./admin-protocol";
|
|
16
|
-
export * from "./email-protocol";
|
|
17
16
|
export * from "./headless-workspace-log";
|
|
18
17
|
export * from "./context-url";
|
|
19
18
|
export * from "./teams-projects-protocol";
|
package/src/messaging/error.ts
CHANGED
package/src/plans.ts
CHANGED
|
@@ -131,7 +131,7 @@ export namespace Plans {
|
|
|
131
131
|
githubPlanNumber: 1,
|
|
132
132
|
|
|
133
133
|
type: "free",
|
|
134
|
-
name: "
|
|
134
|
+
name: "Free",
|
|
135
135
|
currency: "USD",
|
|
136
136
|
pricePerMonth: 0,
|
|
137
137
|
hoursPerMonth: 100,
|
|
@@ -146,7 +146,7 @@ export namespace Plans {
|
|
|
146
146
|
githubPlanNumber: 5,
|
|
147
147
|
|
|
148
148
|
type: "free-50",
|
|
149
|
-
name: "
|
|
149
|
+
name: "Free",
|
|
150
150
|
currency: "USD",
|
|
151
151
|
pricePerMonth: 0,
|
|
152
152
|
hoursPerMonth: 50,
|
package/src/protocol.ts
CHANGED
|
@@ -286,6 +286,8 @@ export interface UserFeatureSettings {
|
|
|
286
286
|
permanentWSFeatureFlags?: NamedWorkspaceFeatureFlag[];
|
|
287
287
|
}
|
|
288
288
|
|
|
289
|
+
export type BillingTier = "paid" | "free";
|
|
290
|
+
|
|
289
291
|
/**
|
|
290
292
|
* The values of this type MUST MATCH enum values in WorkspaceFeatureFlag from ws-manager/client/core_pb.d.ts
|
|
291
293
|
* If they don't we'll break things during workspace startup.
|
|
@@ -296,6 +298,7 @@ export const WorkspaceFeatureFlags = {
|
|
|
296
298
|
protected_secrets: undefined,
|
|
297
299
|
workspace_class_limiting: undefined,
|
|
298
300
|
workspace_connection_limiting: undefined,
|
|
301
|
+
workspace_psi: undefined,
|
|
299
302
|
};
|
|
300
303
|
export type NamedWorkspaceFeatureFlag = keyof typeof WorkspaceFeatureFlags;
|
|
301
304
|
export namespace NamedWorkspaceFeatureFlag {
|
|
@@ -637,6 +640,7 @@ export interface PendingGithubEvent {
|
|
|
637
640
|
creationDate: Date;
|
|
638
641
|
type: string;
|
|
639
642
|
event: string;
|
|
643
|
+
deleted: boolean;
|
|
640
644
|
}
|
|
641
645
|
|
|
642
646
|
export interface Snapshot {
|
|
@@ -645,7 +649,6 @@ export interface Snapshot {
|
|
|
645
649
|
availableTime?: string;
|
|
646
650
|
originalWorkspaceId: string;
|
|
647
651
|
bucketId: string;
|
|
648
|
-
layoutData?: string;
|
|
649
652
|
state: SnapshotState;
|
|
650
653
|
message?: string;
|
|
651
654
|
}
|
|
@@ -659,12 +662,6 @@ export interface VolumeSnapshot {
|
|
|
659
662
|
|
|
660
663
|
export type SnapshotState = "pending" | "available" | "error";
|
|
661
664
|
|
|
662
|
-
export interface LayoutData {
|
|
663
|
-
workspaceId: string;
|
|
664
|
-
lastUpdatedTime: string;
|
|
665
|
-
layoutData: string;
|
|
666
|
-
}
|
|
667
|
-
|
|
668
665
|
export interface Workspace {
|
|
669
666
|
id: string;
|
|
670
667
|
creationTime: string;
|
|
@@ -726,7 +723,7 @@ export interface Workspace {
|
|
|
726
723
|
|
|
727
724
|
export type WorkspaceSoftDeletion = "user" | "gc";
|
|
728
725
|
|
|
729
|
-
export type WorkspaceType = "regular" | "prebuild"
|
|
726
|
+
export type WorkspaceType = "regular" | "prebuild";
|
|
730
727
|
|
|
731
728
|
export namespace Workspace {
|
|
732
729
|
export function getFullRepositoryName(ws: Workspace): string | undefined {
|
|
@@ -799,6 +796,8 @@ export interface JetBrainsConfig {
|
|
|
799
796
|
goland?: JetBrainsProductConfig;
|
|
800
797
|
pycharm?: JetBrainsProductConfig;
|
|
801
798
|
phpstorm?: JetBrainsProductConfig;
|
|
799
|
+
rubymine?: JetBrainsProductConfig;
|
|
800
|
+
webstorm?: JetBrainsProductConfig;
|
|
802
801
|
}
|
|
803
802
|
export interface JetBrainsProductConfig {
|
|
804
803
|
prebuilds?: JetBrainsPrebuilds;
|
|
@@ -815,8 +814,8 @@ export interface RepositoryCloneInformation {
|
|
|
815
814
|
|
|
816
815
|
export interface CoreDumpConfig {
|
|
817
816
|
enabled?: boolean;
|
|
818
|
-
|
|
819
|
-
|
|
817
|
+
softLimit?: number;
|
|
818
|
+
hardLimit?: number;
|
|
820
819
|
}
|
|
821
820
|
|
|
822
821
|
export interface WorkspaceConfig {
|
|
@@ -1113,13 +1112,16 @@ export namespace SnapshotContext {
|
|
|
1113
1112
|
}
|
|
1114
1113
|
}
|
|
1115
1114
|
|
|
1116
|
-
export interface
|
|
1117
|
-
actual: WorkspaceContext;
|
|
1115
|
+
export interface WithCommitHistory {
|
|
1118
1116
|
commitHistory?: string[];
|
|
1119
1117
|
additionalRepositoryCommitHistories?: {
|
|
1120
1118
|
cloneUrl: string;
|
|
1121
1119
|
commitHistory: string[];
|
|
1122
1120
|
}[];
|
|
1121
|
+
}
|
|
1122
|
+
|
|
1123
|
+
export interface StartPrebuildContext extends WorkspaceContext, WithCommitHistory {
|
|
1124
|
+
actual: WorkspaceContext;
|
|
1123
1125
|
project?: Project;
|
|
1124
1126
|
branch?: string;
|
|
1125
1127
|
}
|
|
@@ -1163,17 +1165,6 @@ export namespace WithEnvvarsContext {
|
|
|
1163
1165
|
}
|
|
1164
1166
|
}
|
|
1165
1167
|
|
|
1166
|
-
export interface WorkspaceProbeContext extends WorkspaceContext {
|
|
1167
|
-
responseURL: string;
|
|
1168
|
-
responseToken: string;
|
|
1169
|
-
}
|
|
1170
|
-
|
|
1171
|
-
export namespace WorkspaceProbeContext {
|
|
1172
|
-
export function is(context: any): context is WorkspaceProbeContext {
|
|
1173
|
-
return context && "responseURL" in context && "responseToken" in context;
|
|
1174
|
-
}
|
|
1175
|
-
}
|
|
1176
|
-
|
|
1177
1168
|
export type RefType = "branch" | "tag" | "revision";
|
|
1178
1169
|
export namespace RefType {
|
|
1179
1170
|
export const getRefType = (commit: Commit): RefType => {
|
|
@@ -1213,6 +1204,16 @@ export namespace AdditionalContentContext {
|
|
|
1213
1204
|
}
|
|
1214
1205
|
}
|
|
1215
1206
|
|
|
1207
|
+
export interface OpenPrebuildContext extends WorkspaceContext {
|
|
1208
|
+
openPrebuildID: string;
|
|
1209
|
+
}
|
|
1210
|
+
|
|
1211
|
+
export namespace OpenPrebuildContext {
|
|
1212
|
+
export function is(ctx: any): ctx is OpenPrebuildContext {
|
|
1213
|
+
return "openPrebuildID" in ctx;
|
|
1214
|
+
}
|
|
1215
|
+
}
|
|
1216
|
+
|
|
1216
1217
|
export interface CommitContext extends WorkspaceContext, GitCheckoutInfo {
|
|
1217
1218
|
/** @deprecated Moved to .repository.cloneUrl, left here for backwards-compatibility for old workspace contextes in the DB */
|
|
1218
1219
|
cloneUrl?: string;
|
|
@@ -1385,6 +1386,8 @@ export enum CreateWorkspaceMode {
|
|
|
1385
1386
|
UsePrebuild = "use-prebuild",
|
|
1386
1387
|
// SelectIfRunning returns a list of currently running workspaces for the context URL if there are any, otherwise falls back to Default mode
|
|
1387
1388
|
SelectIfRunning = "select-if-running",
|
|
1389
|
+
// UseLastSuccessfulPrebuild returns ...
|
|
1390
|
+
UseLastSuccessfulPrebuild = "use-last-successful-prebuild",
|
|
1388
1391
|
}
|
|
1389
1392
|
|
|
1390
1393
|
export namespace WorkspaceCreationResult {
|
|
@@ -1520,6 +1523,11 @@ export interface Terms {
|
|
|
1520
1523
|
readonly formElements?: object;
|
|
1521
1524
|
}
|
|
1522
1525
|
|
|
1526
|
+
export interface StripeConfig {
|
|
1527
|
+
individualUsagePriceIds: { [currency: string]: string };
|
|
1528
|
+
teamUsagePriceIds: { [currency: string]: string };
|
|
1529
|
+
}
|
|
1530
|
+
|
|
1523
1531
|
export type BillingStrategy = "other" | "stripe";
|
|
1524
1532
|
export interface CostCenter {
|
|
1525
1533
|
readonly id: AttributionId;
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2022 Gitpod GmbH. All rights reserved.
|
|
3
|
+
* Licensed under the GNU Affero General Public License (AGPL).
|
|
4
|
+
* See License-AGPL.txt in the project root for license information.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { isAbortError } from "abort-controller-x";
|
|
8
|
+
import {
|
|
9
|
+
CallOptions,
|
|
10
|
+
ClientError,
|
|
11
|
+
ClientMiddleware,
|
|
12
|
+
ClientMiddlewareCall,
|
|
13
|
+
Status,
|
|
14
|
+
MethodDescriptor,
|
|
15
|
+
} from "nice-grpc-common";
|
|
16
|
+
import { GrpcMethodType, IClientCallMetrics } from "./grpc";
|
|
17
|
+
|
|
18
|
+
function getLabels(method: MethodDescriptor) {
|
|
19
|
+
const callType = method.requestStream
|
|
20
|
+
? method.responseStream
|
|
21
|
+
? "bidi_stream"
|
|
22
|
+
: "client_stream"
|
|
23
|
+
: method.responseStream
|
|
24
|
+
? "server_stream"
|
|
25
|
+
: "unary";
|
|
26
|
+
const { path } = method;
|
|
27
|
+
const [serviceName, methodName] = path.split("/").slice(1);
|
|
28
|
+
|
|
29
|
+
return {
|
|
30
|
+
type: callType as GrpcMethodType,
|
|
31
|
+
service: serviceName,
|
|
32
|
+
method: methodName,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
async function* incrementStreamMessagesCounter<T>(iterable: AsyncIterable<T>, callback: () => void): AsyncIterable<T> {
|
|
37
|
+
for await (const item of iterable) {
|
|
38
|
+
callback();
|
|
39
|
+
yield item;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export function prometheusClientMiddleware(metrics: IClientCallMetrics): ClientMiddleware {
|
|
44
|
+
return async function* prometheusClientMiddlewareGenerator<Request, Response>(
|
|
45
|
+
call: ClientMiddlewareCall<Request, Response>,
|
|
46
|
+
options: CallOptions,
|
|
47
|
+
): AsyncGenerator<Response, Response | void, undefined> {
|
|
48
|
+
const labels = getLabels(call.method);
|
|
49
|
+
|
|
50
|
+
metrics.started(labels);
|
|
51
|
+
|
|
52
|
+
let settled = false;
|
|
53
|
+
let status: Status = Status.OK;
|
|
54
|
+
|
|
55
|
+
try {
|
|
56
|
+
let request;
|
|
57
|
+
|
|
58
|
+
if (!call.requestStream) {
|
|
59
|
+
request = call.request;
|
|
60
|
+
} else {
|
|
61
|
+
request = incrementStreamMessagesCounter(call.request, metrics.sent.bind(metrics, labels));
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
if (!call.responseStream) {
|
|
65
|
+
const response = yield* call.next(request, options);
|
|
66
|
+
settled = true;
|
|
67
|
+
return response;
|
|
68
|
+
} else {
|
|
69
|
+
yield* incrementStreamMessagesCounter(
|
|
70
|
+
call.next(request, options),
|
|
71
|
+
metrics.received.bind(metrics, labels),
|
|
72
|
+
);
|
|
73
|
+
settled = true;
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
} catch (err) {
|
|
77
|
+
settled = true;
|
|
78
|
+
if (err instanceof ClientError) {
|
|
79
|
+
status = err.code;
|
|
80
|
+
} else if (isAbortError(err)) {
|
|
81
|
+
status = Status.CANCELLED;
|
|
82
|
+
} else {
|
|
83
|
+
status = Status.UNKNOWN;
|
|
84
|
+
}
|
|
85
|
+
throw err;
|
|
86
|
+
} finally {
|
|
87
|
+
if (!settled) {
|
|
88
|
+
status = Status.CANCELLED;
|
|
89
|
+
}
|
|
90
|
+
metrics.handled({ ...labels, code: Status[status] });
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
}
|
package/src/workspace-cluster.ts
CHANGED
|
@@ -15,6 +15,10 @@ export interface WorkspaceCluster {
|
|
|
15
15
|
// Must be identical to the installationShortname of the cluster it represents!
|
|
16
16
|
name: string;
|
|
17
17
|
|
|
18
|
+
// The name of the application cluster to which this cluster should be registered.
|
|
19
|
+
// The name can be at most 60 characters.
|
|
20
|
+
applicationCluster: string;
|
|
21
|
+
|
|
18
22
|
// URL of the cluster's ws-manager API
|
|
19
23
|
url: string;
|
|
20
24
|
|
|
@@ -86,20 +90,21 @@ export interface WorkspaceClusterDB {
|
|
|
86
90
|
* Deletes the cluster identified by this name, if any.
|
|
87
91
|
* @param name
|
|
88
92
|
*/
|
|
89
|
-
deleteByName(name: string): Promise<void>;
|
|
93
|
+
deleteByName(name: string, applicationCluster: string): Promise<void>;
|
|
90
94
|
|
|
91
95
|
/**
|
|
92
96
|
* Finds a WorkspaceCluster with the given name. If there is none, `undefined` is returned.
|
|
93
97
|
* @param name
|
|
94
98
|
*/
|
|
95
|
-
findByName(name: string): Promise<WorkspaceCluster | undefined>;
|
|
99
|
+
findByName(name: string, applicationCluster: string): Promise<WorkspaceCluster | undefined>;
|
|
96
100
|
|
|
97
101
|
/**
|
|
98
102
|
* Lists all WorkspaceClusterWoTls for which the given predicate is true (does not return TLS for size/speed concerns)
|
|
99
103
|
* @param predicate
|
|
100
104
|
*/
|
|
101
|
-
findFiltered(predicate:
|
|
102
|
-
}
|
|
103
|
-
export interface WorkspaceClusterFilter extends Pick<WorkspaceCluster, "state" | "govern" | "url"> {
|
|
104
|
-
minScore: number;
|
|
105
|
+
findFiltered(predicate: WorkspaceClusterFilter): Promise<WorkspaceClusterWoTLS[]>;
|
|
105
106
|
}
|
|
107
|
+
|
|
108
|
+
export type WorkspaceClusterFilter = Pick<WorkspaceCluster, "applicationCluster"> &
|
|
109
|
+
DeepPartial<Pick<WorkspaceCluster, "name" | "state" | "govern" | "url">> &
|
|
110
|
+
Partial<{ minScore: number }>;
|
package/src/wsready.ts
CHANGED
|
@@ -4,15 +4,14 @@
|
|
|
4
4
|
* See License-AGPL.txt in the project root for license information.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
// generated using github.com/32leaves/bel on 2022-
|
|
7
|
+
// generated using github.com/32leaves/bel on 2022-10-10 21:41:56.018177383 +0000 UTC m=+0.010324839
|
|
8
8
|
// DO NOT MODIFY
|
|
9
9
|
|
|
10
|
-
export interface WorkspaceReadyMessage {
|
|
11
|
-
source: WorkspaceInitSource;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
10
|
export enum WorkspaceInitSource {
|
|
15
11
|
WorkspaceInitFromBackup = "from-backup",
|
|
16
12
|
WorkspaceInitFromPrebuild = "from-prebuild",
|
|
17
13
|
WorkspaceInitFromOther = "from-other",
|
|
18
14
|
}
|
|
15
|
+
export interface WorkspaceReadyMessage {
|
|
16
|
+
source: WorkspaceInitSource;
|
|
17
|
+
}
|
package/lib/email-protocol.d.ts
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) 2020 Gitpod GmbH. All rights reserved.
|
|
3
|
-
* Licensed under the GNU Affero General Public License (AGPL).
|
|
4
|
-
* See License-AGPL.txt in the project root for license information.
|
|
5
|
-
*/
|
|
6
|
-
export declare type EMailState = "scheduledInternal" | "scheduledSendgrid";
|
|
7
|
-
export interface EMailStatus {
|
|
8
|
-
/** The time the email entry was inserted into the DB */
|
|
9
|
-
scheduledInternalTime: string;
|
|
10
|
-
/** The time the email state transitioned to "scheduledSendgrid" */
|
|
11
|
-
scheduledSendgridTime?: string;
|
|
12
|
-
/** In case of any errors during sending with Sendgrid it gets noted here */
|
|
13
|
-
error?: string;
|
|
14
|
-
}
|
|
15
|
-
export declare namespace EMailStatus {
|
|
16
|
-
function getState(status: EMailStatus): EMailState;
|
|
17
|
-
}
|
|
18
|
-
export interface EmailAddress {
|
|
19
|
-
name?: string;
|
|
20
|
-
email: string;
|
|
21
|
-
}
|
|
22
|
-
export interface EMailParameters {
|
|
23
|
-
/** undefined means default from template */
|
|
24
|
-
subject?: string;
|
|
25
|
-
/** The sender address */
|
|
26
|
-
senderAddress: string | EmailAddress;
|
|
27
|
-
/** The replyTo address */
|
|
28
|
-
replyToAddress?: string | EmailAddress;
|
|
29
|
-
/** The SendGrid template id */
|
|
30
|
-
templateId: string;
|
|
31
|
-
/** The parameters for the SendGrid template */
|
|
32
|
-
templateParams: {};
|
|
33
|
-
}
|
|
34
|
-
export declare type EMail = {
|
|
35
|
-
/** The unique id of this email (uuid/v4 for now) */
|
|
36
|
-
uid: string;
|
|
37
|
-
/** The id of the user this email was sent to */
|
|
38
|
-
userId: string;
|
|
39
|
-
/** The address this email was sent to */
|
|
40
|
-
recipientAddress: string;
|
|
41
|
-
/** Which campaign scheduled this email */
|
|
42
|
-
campaignId: string;
|
|
43
|
-
/** The parameters this email was sent with (template id, template params, etc) */
|
|
44
|
-
params: EMailParameters;
|
|
45
|
-
} & EMailStatus;
|
|
46
|
-
export declare namespace EMail {
|
|
47
|
-
const create: (ts: Omit<EMail, "uid">) => EMail;
|
|
48
|
-
}
|
|
49
|
-
//# sourceMappingURL=email-protocol.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"email-protocol.d.ts","sourceRoot":"","sources":["../src/email-protocol.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,oBAAY,UAAU,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;AAEnE,MAAM,WAAW,WAAW;IACxB,wDAAwD;IACxD,qBAAqB,EAAE,MAAM,CAAC;IAC9B,mEAAmE;IACnE,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AACD,yBAAiB,WAAW,CAAC;IACzB,SAAgB,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,UAAU,CAKxD;CACJ;AAED,MAAM,WAAW,YAAY;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC5B,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yBAAyB;IACzB,aAAa,EAAE,MAAM,GAAG,YAAY,CAAC;IACrC,0BAA0B;IAC1B,cAAc,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IACvC,+BAA+B;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,cAAc,EAAE,EAAE,CAAC;CACtB;AAED,oBAAY,KAAK,GAAG;IAChB,oDAAoD;IACpD,GAAG,EAAE,MAAM,CAAC;IACZ,gDAAgD;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,yCAAyC;IACzC,gBAAgB,EAAE,MAAM,CAAC;IACzB,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,kFAAkF;IAClF,MAAM,EAAE,eAAe,CAAC;CAC3B,GAAG,WAAW,CAAC;AAEhB,yBAAiB,KAAK,CAAC;IACZ,MAAM,MAAM,OAAQ,KAAK,KAAK,EAAE,KAAK,CAAC,KAAG,KAI/C,CAAC;CACL"}
|
package/lib/email-protocol.js
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Copyright (c) 2020 Gitpod GmbH. All rights reserved.
|
|
4
|
-
* Licensed under the GNU Affero General Public License (AGPL).
|
|
5
|
-
* See License-AGPL.txt in the project root for license information.
|
|
6
|
-
*/
|
|
7
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.EMail = exports.EMailStatus = void 0;
|
|
9
|
-
const uuid_1 = require("uuid");
|
|
10
|
-
var EMailStatus;
|
|
11
|
-
(function (EMailStatus) {
|
|
12
|
-
function getState(status) {
|
|
13
|
-
if (status.scheduledSendgridTime) {
|
|
14
|
-
return "scheduledSendgrid";
|
|
15
|
-
}
|
|
16
|
-
return "scheduledInternal";
|
|
17
|
-
}
|
|
18
|
-
EMailStatus.getState = getState;
|
|
19
|
-
})(EMailStatus = exports.EMailStatus || (exports.EMailStatus = {}));
|
|
20
|
-
var EMail;
|
|
21
|
-
(function (EMail) {
|
|
22
|
-
EMail.create = (ts) => {
|
|
23
|
-
const withId = ts;
|
|
24
|
-
withId.uid = (0, uuid_1.v4)();
|
|
25
|
-
return withId;
|
|
26
|
-
};
|
|
27
|
-
})(EMail = exports.EMail || (exports.EMail = {}));
|
|
28
|
-
//# sourceMappingURL=email-protocol.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"email-protocol.js","sourceRoot":"","sources":["../src/email-protocol.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,+BAAoC;AAYpC,IAAiB,WAAW,CAO3B;AAPD,WAAiB,WAAW;IACxB,SAAgB,QAAQ,CAAC,MAAmB;QACxC,IAAI,MAAM,CAAC,qBAAqB,EAAE;YAC9B,OAAO,mBAAmB,CAAC;SAC9B;QACD,OAAO,mBAAmB,CAAC;IAC/B,CAAC;IALe,oBAAQ,WAKvB,CAAA;AACL,CAAC,EAPgB,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAO3B;AAiCD,IAAiB,KAAK,CAMrB;AAND,WAAiB,KAAK;IACL,YAAM,GAAG,CAAC,EAAsB,EAAS,EAAE;QACpD,MAAM,MAAM,GAAG,EAAW,CAAC;QAC3B,MAAM,CAAC,GAAG,GAAG,IAAA,SAAM,GAAE,CAAC;QACtB,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;AACN,CAAC,EANgB,KAAK,GAAL,aAAK,KAAL,aAAK,QAMrB"}
|
package/src/email-protocol.ts
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) 2020 Gitpod GmbH. All rights reserved.
|
|
3
|
-
* Licensed under the GNU Affero General Public License (AGPL).
|
|
4
|
-
* See License-AGPL.txt in the project root for license information.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import { v4 as uuidv4 } from "uuid";
|
|
8
|
-
|
|
9
|
-
export type EMailState = "scheduledInternal" | "scheduledSendgrid";
|
|
10
|
-
|
|
11
|
-
export interface EMailStatus {
|
|
12
|
-
/** The time the email entry was inserted into the DB */
|
|
13
|
-
scheduledInternalTime: string;
|
|
14
|
-
/** The time the email state transitioned to "scheduledSendgrid" */
|
|
15
|
-
scheduledSendgridTime?: string;
|
|
16
|
-
/** In case of any errors during sending with Sendgrid it gets noted here */
|
|
17
|
-
error?: string;
|
|
18
|
-
}
|
|
19
|
-
export namespace EMailStatus {
|
|
20
|
-
export function getState(status: EMailStatus): EMailState {
|
|
21
|
-
if (status.scheduledSendgridTime) {
|
|
22
|
-
return "scheduledSendgrid";
|
|
23
|
-
}
|
|
24
|
-
return "scheduledInternal";
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export interface EmailAddress {
|
|
29
|
-
name?: string;
|
|
30
|
-
email: string;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
export interface EMailParameters {
|
|
34
|
-
/** undefined means default from template */
|
|
35
|
-
subject?: string;
|
|
36
|
-
/** The sender address */
|
|
37
|
-
senderAddress: string | EmailAddress;
|
|
38
|
-
/** The replyTo address */
|
|
39
|
-
replyToAddress?: string | EmailAddress;
|
|
40
|
-
/** The SendGrid template id */
|
|
41
|
-
templateId: string;
|
|
42
|
-
/** The parameters for the SendGrid template */
|
|
43
|
-
templateParams: {};
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
export type EMail = {
|
|
47
|
-
/** The unique id of this email (uuid/v4 for now) */
|
|
48
|
-
uid: string;
|
|
49
|
-
/** The id of the user this email was sent to */
|
|
50
|
-
userId: string;
|
|
51
|
-
/** The address this email was sent to */
|
|
52
|
-
recipientAddress: string;
|
|
53
|
-
/** Which campaign scheduled this email */
|
|
54
|
-
campaignId: string;
|
|
55
|
-
/** The parameters this email was sent with (template id, template params, etc) */
|
|
56
|
-
params: EMailParameters;
|
|
57
|
-
} & EMailStatus;
|
|
58
|
-
|
|
59
|
-
export namespace EMail {
|
|
60
|
-
export const create = (ts: Omit<EMail, "uid">): EMail => {
|
|
61
|
-
const withId = ts as EMail;
|
|
62
|
-
withId.uid = uuidv4();
|
|
63
|
-
return withId;
|
|
64
|
-
};
|
|
65
|
-
}
|