@gitpod/gitpod-protocol 0.1.5-tar-sh-active-users.37 → 0.1.5-tar-sh-active-users-new.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/data/gitpod-schema.json +8 -0
  2. package/lib/attribution.d.ts +3 -0
  3. package/lib/attribution.d.ts.map +1 -1
  4. package/lib/attribution.js +10 -0
  5. package/lib/attribution.js.map +1 -1
  6. package/lib/encryption/encryption-engine.d.ts.map +1 -1
  7. package/lib/encryption/encryption-engine.js +3 -3
  8. package/lib/encryption/encryption-engine.js.map +1 -1
  9. package/lib/encryption/encryption-engine.spec.js +1 -1
  10. package/lib/encryption/encryption-engine.spec.js.map +1 -1
  11. package/lib/encryption/key-provider.js +1 -1
  12. package/lib/encryption/key-provider.js.map +1 -1
  13. package/lib/experiments/configcat.d.ts +1 -0
  14. package/lib/experiments/configcat.d.ts.map +1 -1
  15. package/lib/experiments/configcat.js +5 -1
  16. package/lib/experiments/configcat.js.map +1 -1
  17. package/lib/experiments/types.d.ts +2 -1
  18. package/lib/experiments/types.d.ts.map +1 -1
  19. package/lib/gitpod-service.d.ts +1 -11
  20. package/lib/gitpod-service.d.ts.map +1 -1
  21. package/lib/gitpod-service.js.map +1 -1
  22. package/lib/index.d.ts +0 -1
  23. package/lib/index.d.ts.map +1 -1
  24. package/lib/index.js +0 -1
  25. package/lib/index.js.map +1 -1
  26. package/lib/messaging/error.d.ts +1 -0
  27. package/lib/messaging/error.d.ts.map +1 -1
  28. package/lib/messaging/error.js +2 -0
  29. package/lib/messaging/error.js.map +1 -1
  30. package/lib/plans.js +2 -2
  31. package/lib/plans.js.map +1 -1
  32. package/lib/protocol.d.ts +13 -14
  33. package/lib/protocol.d.ts.map +1 -1
  34. package/lib/protocol.js +1 -8
  35. package/lib/protocol.js.map +1 -1
  36. package/lib/util/nice-grpc.d.ts +9 -0
  37. package/lib/util/nice-grpc.d.ts.map +1 -0
  38. package/lib/util/nice-grpc.js +119 -0
  39. package/lib/util/nice-grpc.js.map +1 -0
  40. package/lib/wsready.d.ts +3 -3
  41. package/lib/wsready.d.ts.map +1 -1
  42. package/lib/wsready.js +2 -0
  43. package/lib/wsready.js.map +1 -1
  44. package/package.json +3 -1
  45. package/pkg-yarn.lock +3 -1
  46. package/provenance-bundle.jsonl +1 -1
  47. package/src/attribution.ts +11 -0
  48. package/src/encryption/encryption-engine.spec.ts +1 -1
  49. package/src/encryption/encryption-engine.ts +7 -3
  50. package/src/encryption/key-provider.ts +1 -1
  51. package/src/experiments/configcat.ts +4 -0
  52. package/src/experiments/types.ts +4 -1
  53. package/src/gitpod-service.ts +1 -13
  54. package/src/index.ts +0 -1
  55. package/src/messaging/error.ts +3 -0
  56. package/src/plans.ts +2 -2
  57. package/src/protocol.ts +13 -21
  58. package/src/util/nice-grpc.ts +93 -0
  59. package/src/wsready.ts +4 -5
  60. package/lib/email-protocol.d.ts +0 -49
  61. package/lib/email-protocol.d.ts.map +0 -1
  62. package/lib/email-protocol.js +0 -28
  63. package/lib/email-protocol.js.map +0 -1
  64. package/src/email-protocol.ts +0 -65
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.
@@ -637,6 +639,7 @@ export interface PendingGithubEvent {
637
639
  creationDate: Date;
638
640
  type: string;
639
641
  event: string;
642
+ deleted: boolean;
640
643
  }
641
644
 
642
645
  export interface Snapshot {
@@ -645,7 +648,6 @@ export interface Snapshot {
645
648
  availableTime?: string;
646
649
  originalWorkspaceId: string;
647
650
  bucketId: string;
648
- layoutData?: string;
649
651
  state: SnapshotState;
650
652
  message?: string;
651
653
  }
@@ -659,12 +661,6 @@ export interface VolumeSnapshot {
659
661
 
660
662
  export type SnapshotState = "pending" | "available" | "error";
661
663
 
662
- export interface LayoutData {
663
- workspaceId: string;
664
- lastUpdatedTime: string;
665
- layoutData: string;
666
- }
667
-
668
664
  export interface Workspace {
669
665
  id: string;
670
666
  creationTime: string;
@@ -726,7 +722,7 @@ export interface Workspace {
726
722
 
727
723
  export type WorkspaceSoftDeletion = "user" | "gc";
728
724
 
729
- export type WorkspaceType = "regular" | "prebuild" | "probe"; // TODO(gpl) Removed prove here
725
+ export type WorkspaceType = "regular" | "prebuild";
730
726
 
731
727
  export namespace Workspace {
732
728
  export function getFullRepositoryName(ws: Workspace): string | undefined {
@@ -799,6 +795,8 @@ export interface JetBrainsConfig {
799
795
  goland?: JetBrainsProductConfig;
800
796
  pycharm?: JetBrainsProductConfig;
801
797
  phpstorm?: JetBrainsProductConfig;
798
+ rubymine?: JetBrainsProductConfig;
799
+ webstorm?: JetBrainsProductConfig;
802
800
  }
803
801
  export interface JetBrainsProductConfig {
804
802
  prebuilds?: JetBrainsPrebuilds;
@@ -815,8 +813,8 @@ export interface RepositoryCloneInformation {
815
813
 
816
814
  export interface CoreDumpConfig {
817
815
  enabled?: boolean;
818
- softLimit?: number;
819
- hardLimit?: number;
816
+ softLimit?: number;
817
+ hardLimit?: number;
820
818
  }
821
819
 
822
820
  export interface WorkspaceConfig {
@@ -1163,17 +1161,6 @@ export namespace WithEnvvarsContext {
1163
1161
  }
1164
1162
  }
1165
1163
 
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
1164
  export type RefType = "branch" | "tag" | "revision";
1178
1165
  export namespace RefType {
1179
1166
  export const getRefType = (commit: Commit): RefType => {
@@ -1520,6 +1507,11 @@ export interface Terms {
1520
1507
  readonly formElements?: object;
1521
1508
  }
1522
1509
 
1510
+ export interface StripeConfig {
1511
+ individualUsagePriceIds: { [currency: string]: string };
1512
+ teamUsagePriceIds: { [currency: string]: string };
1513
+ }
1514
+
1523
1515
  export type BillingStrategy = "other" | "stripe";
1524
1516
  export interface CostCenter {
1525
1517
  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/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-07-21 07:41:48.081573085 +0000 UTC m=+0.009109470
7
+ // generated using github.com/32leaves/bel on 2022-09-26 00:48:43.566671023 +0000 UTC m=+0.008587770
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
+ }
@@ -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"}
@@ -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"}
@@ -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
- }