@webda/gcp 4.0.0-beta.2 → 4.0.0-beta.4

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 (68) hide show
  1. package/README.md +54 -4
  2. package/lib/index.d.ts +4 -4
  3. package/lib/index.d.ts.map +1 -1
  4. package/lib/index.js +4 -4
  5. package/lib/index.js.map +1 -1
  6. package/lib/services/firestore.service.d.ts +237 -0
  7. package/lib/services/firestore.service.d.ts.map +1 -0
  8. package/lib/services/firestore.service.js +693 -0
  9. package/lib/services/firestore.service.js.map +1 -0
  10. package/lib/services/index.d.ts +1 -1
  11. package/lib/services/index.d.ts.map +1 -1
  12. package/lib/services/index.js +1 -1
  13. package/lib/services/index.js.map +1 -1
  14. package/lib/services/{kms.d.ts → kms.service.d.ts} +14 -15
  15. package/lib/services/kms.service.d.ts.map +1 -0
  16. package/lib/services/{kms.js → kms.service.js} +18 -16
  17. package/lib/services/kms.service.js.map +1 -0
  18. package/lib/services/{pubsub.d.ts → pubsub.service.d.ts} +23 -4
  19. package/lib/services/pubsub.service.d.ts.map +1 -0
  20. package/lib/services/{pubsub.js → pubsub.service.js} +36 -10
  21. package/lib/services/pubsub.service.js.map +1 -0
  22. package/lib/services/{queue.d.ts → queue.service.d.ts} +32 -16
  23. package/lib/services/queue.service.d.ts.map +1 -0
  24. package/lib/services/{queue.js → queue.service.js} +63 -32
  25. package/lib/services/queue.service.js.map +1 -0
  26. package/lib/services/storage.service.d.ts +268 -0
  27. package/lib/services/storage.service.d.ts.map +1 -0
  28. package/lib/services/{storage.js → storage.service.js} +116 -69
  29. package/lib/services/storage.service.js.map +1 -0
  30. package/package.json +33 -43
  31. package/webda.module.json +1122 -1440
  32. package/lib/index.spec.d.ts +0 -5
  33. package/lib/index.spec.d.ts.map +0 -1
  34. package/lib/index.spec.js +0 -7
  35. package/lib/index.spec.js.map +0 -1
  36. package/lib/services/firestore.d.ts +0 -135
  37. package/lib/services/firestore.d.ts.map +0 -1
  38. package/lib/services/firestore.js +0 -423
  39. package/lib/services/firestore.js.map +0 -1
  40. package/lib/services/firestore.spec.d.ts +0 -2
  41. package/lib/services/firestore.spec.d.ts.map +0 -1
  42. package/lib/services/firestore.spec.js +0 -187
  43. package/lib/services/firestore.spec.js.map +0 -1
  44. package/lib/services/kms.d.ts.map +0 -1
  45. package/lib/services/kms.js.map +0 -1
  46. package/lib/services/kms.spec.d.ts +0 -2
  47. package/lib/services/kms.spec.d.ts.map +0 -1
  48. package/lib/services/kms.spec.js +0 -53
  49. package/lib/services/kms.spec.js.map +0 -1
  50. package/lib/services/pubsub.d.ts.map +0 -1
  51. package/lib/services/pubsub.js.map +0 -1
  52. package/lib/services/pubsub.spec.d.ts +0 -2
  53. package/lib/services/pubsub.spec.d.ts.map +0 -1
  54. package/lib/services/pubsub.spec.js +0 -95
  55. package/lib/services/pubsub.spec.js.map +0 -1
  56. package/lib/services/queue.d.ts.map +0 -1
  57. package/lib/services/queue.js.map +0 -1
  58. package/lib/services/queue.spec.d.ts +0 -2
  59. package/lib/services/queue.spec.d.ts.map +0 -1
  60. package/lib/services/queue.spec.js +0 -117
  61. package/lib/services/queue.spec.js.map +0 -1
  62. package/lib/services/storage.d.ts +0 -215
  63. package/lib/services/storage.d.ts.map +0 -1
  64. package/lib/services/storage.js.map +0 -1
  65. package/lib/services/storage.spec.d.ts +0 -2
  66. package/lib/services/storage.spec.d.ts.map +0 -1
  67. package/lib/services/storage.spec.js +0 -224
  68. package/lib/services/storage.spec.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"firestore.service.js","sourceRoot":"","sources":["../../src/services/firestore.service.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export * from "./storage.js";
1
+ export * from "./storage.service.js";
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
@@ -1,2 +1,2 @@
1
- export * from "./storage.js";
1
+ export * from "./storage.service.js";
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
@@ -1,5 +1,4 @@
1
- import { KeyManagementServiceClient } from "@google-cloud/kms";
2
- import { DeepPartial, Service, ServiceParameters } from "@webda/core";
1
+ import { Service, ServiceParameters } from "@webda/core";
3
2
  /**
4
3
  * Parameters for the KMS Service
5
4
  */
@@ -9,31 +8,31 @@ export declare class KMSServiceParameters extends ServiceParameters {
9
8
  * @default WEBDA_GCP_KMS_KEY env variable
10
9
  */
11
10
  defaultKey?: string;
12
- constructor(params: any);
11
+ /**
12
+ * @override
13
+ * @param params - the input parameters
14
+ * @returns this
15
+ */
16
+ load(params?: any): this;
13
17
  }
14
18
  /**
15
19
  * Expose KMS Service
16
20
  *
17
21
  * @WebdaModda GoogleCloudKMS
18
22
  */
19
- export declare class GCPKMSService<T extends KMSServiceParameters> extends Service<T> {
20
- client: KeyManagementServiceClient;
21
- /**
22
- * @override
23
- */
24
- loadParameters(params: DeepPartial<ServiceParameters>): ServiceParameters;
23
+ export declare class GCPKMSService<T extends KMSServiceParameters = KMSServiceParameters> extends Service<T> {
25
24
  /**
26
25
  * Encrypt a data with GCP KMS given key or defaultKey
27
- * @param data
28
- * @param key
29
- * @returns
26
+ * @param data - the data to encrypt
27
+ * @param key - the KMS key name, defaults to `defaultKey`
28
+ * @returns the encrypted data prefixed with the key information
30
29
  */
31
30
  encrypt(data: string, key?: string): Promise<string>;
32
31
  /**
33
32
  * Decrypt a data previously encrypted with this service
34
- * @param data
35
- * @returns
33
+ * @param data - the data returned by {@link encrypt}
34
+ * @returns the decrypted data
36
35
  */
37
36
  decrypt(data: string): Promise<string>;
38
37
  }
39
- //# sourceMappingURL=kms.d.ts.map
38
+ //# sourceMappingURL=kms.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kms.service.d.ts","sourceRoot":"","sources":["../../src/services/kms.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAgDxE;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,iBAAiB;IACzD;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,IAAI,CAAC,MAAM,GAAE,GAAQ,GAAG,IAAI,CAI3B;CACF;AAED;;;;GAIG;AACH,qBAAa,aAAa,CAAC,CAAC,SAAS,oBAAoB,GAAG,oBAAoB,CAAE,SAAQ,OAAO,CAAC,CAAC,CAAC;IAClG;;;;;OAKG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEnD;IAED;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAErC;CACF"}
@@ -26,10 +26,12 @@ const encrypter = {
26
26
  throw new Error("Invalid KMS encryption");
27
27
  }
28
28
  const client = new KeyManagementServiceClient();
29
- return (await client.decrypt({
29
+ const [result] = await client.decrypt({
30
30
  name: `projects/${infos[0]}/locations/${infos[1]}/keyRings/${infos[2]}/cryptoKeys/${infos[3]}`,
31
31
  ciphertext: Buffer.from(data.substring(data.indexOf(":") + 1), "base64")
32
- }))[0].plaintext;
32
+ });
33
+ // plaintext is a Uint8Array (or a string): always return a string
34
+ return Buffer.from(result.plaintext).toString();
33
35
  }
34
36
  };
35
37
  /**
@@ -40,9 +42,15 @@ CryptoService.registerEncrypter("gcp", encrypter);
40
42
  * Parameters for the KMS Service
41
43
  */
42
44
  export class KMSServiceParameters extends ServiceParameters {
43
- constructor(params) {
44
- super(params);
45
+ /**
46
+ * @override
47
+ * @param params - the input parameters
48
+ * @returns this
49
+ */
50
+ load(params = {}) {
51
+ super.load(params);
45
52
  this.defaultKey ?? (this.defaultKey = process.env.WEBDA_GCP_KMS_KEY);
53
+ return this;
46
54
  }
47
55
  }
48
56
  /**
@@ -51,28 +59,22 @@ export class KMSServiceParameters extends ServiceParameters {
51
59
  * @WebdaModda GoogleCloudKMS
52
60
  */
53
61
  export class GCPKMSService extends Service {
54
- /**
55
- * @override
56
- */
57
- loadParameters(params) {
58
- return new KMSServiceParameters(params);
59
- }
60
62
  /**
61
63
  * Encrypt a data with GCP KMS given key or defaultKey
62
- * @param data
63
- * @param key
64
- * @returns
64
+ * @param data - the data to encrypt
65
+ * @param key - the KMS key name, defaults to `defaultKey`
66
+ * @returns the encrypted data prefixed with the key information
65
67
  */
66
68
  encrypt(data, key) {
67
69
  return encrypter.encrypt(data, key || this.parameters.defaultKey);
68
70
  }
69
71
  /**
70
72
  * Decrypt a data previously encrypted with this service
71
- * @param data
72
- * @returns
73
+ * @param data - the data returned by {@link encrypt}
74
+ * @returns the decrypted data
73
75
  */
74
76
  decrypt(data) {
75
77
  return encrypter.decrypt(data);
76
78
  }
77
79
  }
78
- //# sourceMappingURL=kms.js.map
80
+ //# sourceMappingURL=kms.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kms.service.js","sourceRoot":"","sources":["../../src/services/kms.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAExE;;GAEG;AACH,MAAM,SAAS,GAAG;IAChB,OAAO,EAAE,KAAK,EAAE,IAAY,EAAE,GAAY,EAAmB,EAAE;QAC7D,GAAG,KAAH,GAAG,GAAK,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAC;QACtC,oCAAoC;QACpC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,IAAI,0BAA0B,EAAE,CAAC;QAChD,6BAA6B;QAC7B,6CAA6C;QAC7C,OAAO,CACL,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC/C,GAAG;YACH,MAAM,CAAC,IAAI,CACT,CACE,MAAM,MAAM,CAAC,OAAO,CAAC;gBACnB,IAAI,EAAE,GAAG;gBACT,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;aAC7B,CAAC,CACH,CAAC,CAAC,CAAC,CAAC,UAAU,CAChB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACrB,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAY,EAAmB,EAAE;QAC/C,eAAe;QACf,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QAClD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,0BAA0B,EAAE,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;YACpC,IAAI,EAAE,YAAY,KAAK,CAAC,CAAC,CAAC,cAAc,KAAK,CAAC,CAAC,CAAC,aAAa,KAAK,CAAC,CAAC,CAAC,eAAe,KAAK,CAAC,CAAC,CAAC,EAAE;YAC9F,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC;SACzE,CAAC,CAAC;QACH,kEAAkE;QAClE,OAAO,MAAM,CAAC,IAAI,CAAM,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC;IACvD,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,aAAa,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AAElD;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,iBAAiB;IAOzD;;;;OAIG;IACH,IAAI,CAAC,MAAM,GAAQ,EAAE;QACnB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnB,IAAI,CAAC,UAAU,KAAf,IAAI,CAAC,UAAU,GAAK,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAC;QAClD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,aAAqE,SAAQ,OAAU;IAClG;;;;;OAKG;IACH,OAAO,CAAC,IAAY,EAAE,GAAY;QAChC,OAAO,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACpE,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAC,IAAY;QAClB,OAAO,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;CACF"}
@@ -1,5 +1,9 @@
1
1
  import { CreateSubscriptionOptions, PubSub, Subscription } from "@google-cloud/pubsub";
2
- import { CancelablePromise, PubSubService, ServiceParameters } from "@webda/core";
2
+ import { PubSubService, ServiceParameters } from "@webda/core";
3
+ import { CancelablePromise } from "@webda/utils";
4
+ /**
5
+ * Configuration for {@link GCPPubSubService}
6
+ */
3
7
  export declare class GCPPubSubParameters extends ServiceParameters {
4
8
  /**
5
9
  * Topic to use on GCP
@@ -10,7 +14,7 @@ export declare class GCPPubSubParameters extends ServiceParameters {
10
14
  */
11
15
  subscriptionOptions?: CreateSubscriptionOptions;
12
16
  }
13
- /***
17
+ /**
14
18
  * Implement GCP Pub/Sub
15
19
  *
16
20
  * Can also act as queue
@@ -21,22 +25,37 @@ export default class GCPPubSubService<T = any, K extends GCPPubSubParameters = G
21
25
  pubsub: PubSub;
22
26
  /**
23
27
  * @override
28
+ * @returns this service
24
29
  */
25
30
  init(): Promise<this>;
31
+ /**
32
+ * Close the Pub/Sub client
33
+ * @override
34
+ */
35
+ stop(): Promise<void>;
26
36
  /**
27
37
  * @override
38
+ * @param event - the event to publish
28
39
  */
29
40
  sendMessage(event: T): Promise<void>;
41
+ /**
42
+ * The size is not available on a GCP subscription
43
+ * @returns 0
44
+ */
30
45
  size(): Promise<number>;
31
46
  /**
32
47
  * Get the subscription name
33
- * @returns
48
+ * @returns the subscription name, unique per machine
34
49
  */
35
50
  getSubscriptionName(): string;
36
51
  /**
37
52
  * @override
53
+ * @param callback - invoked with each event received
54
+ * @param eventPrototype - optional class to rehydrate JSON into
55
+ * @param onBind - invoked once the subscription is bound
56
+ * @returns a cancelable subscription handle
38
57
  */
39
58
  consume(callback: (event: T) => Promise<void>, eventPrototype?: new () => T, onBind?: (subscription: Subscription) => void): CancelablePromise<void>;
40
59
  }
41
60
  export { GCPPubSubService };
42
- //# sourceMappingURL=pubsub.d.ts.map
61
+ //# sourceMappingURL=pubsub.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pubsub.service.d.ts","sourceRoot":"","sources":["../../src/services/pubsub.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAW,MAAM,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAChG,OAAO,EAAgB,aAAa,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAa,MAAM,cAAc,CAAC;AAE5D;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,iBAAiB;IACxD;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,mBAAmB,CAAC,EAAE,yBAAyB,CAAC;CACjD;AAED;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAgB,CACnC,CAAC,GAAG,GAAG,EACP,CAAC,SAAS,mBAAmB,GAAG,mBAAmB,CACnD,SAAQ,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAI1B;IAED;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAS1B;IAED;;;OAGG;IACG,WAAW,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAGzC;IAED;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAE5B;IAED;;;OAGG;IACH,mBAAmB,IAAI,MAAM,CAE5B;IAED;;;;;;OAMG;IACH,OAAO,CACL,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,EACrC,cAAc,CAAC,EAAE,UAAU,CAAC,EAC5B,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,YAAY,KAAK,IAAI,GAC5C,iBAAiB,CAAC,IAAI,CAAC,CAiDzB;CACF;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
@@ -1,8 +1,12 @@
1
1
  import { PubSub } from "@google-cloud/pubsub";
2
- import { CancelablePromise, Core, PubSubService, ServiceParameters } from "@webda/core";
2
+ import { getMachineId, PubSubService, ServiceParameters } from "@webda/core";
3
+ import { CancelablePromise, JSONUtils } from "@webda/utils";
4
+ /**
5
+ * Configuration for {@link GCPPubSubService}
6
+ */
3
7
  export class GCPPubSubParameters extends ServiceParameters {
4
8
  }
5
- /***
9
+ /**
6
10
  * Implement GCP Pub/Sub
7
11
  *
8
12
  * Can also act as queue
@@ -12,31 +16,55 @@ export class GCPPubSubParameters extends ServiceParameters {
12
16
  export default class GCPPubSubService extends PubSubService {
13
17
  /**
14
18
  * @override
19
+ * @returns this service
15
20
  */
16
21
  async init() {
17
22
  await super.init();
18
23
  this.pubsub = new PubSub();
19
24
  return this;
20
25
  }
26
+ /**
27
+ * Close the Pub/Sub client
28
+ * @override
29
+ */
30
+ async stop() {
31
+ if (this.pubsub) {
32
+ const pubsub = this.pubsub;
33
+ this.pubsub = undefined;
34
+ await pubsub.close().catch(() => {
35
+ /* already closed */
36
+ });
37
+ }
38
+ await super.stop();
39
+ }
21
40
  /**
22
41
  * @override
42
+ * @param event - the event to publish
23
43
  */
24
44
  async sendMessage(event) {
25
45
  this.metrics.messages_sent.inc();
26
- await this.pubsub.topic(this.parameters.topic).publishMessage({ data: Buffer.from(JSON.stringify(event)) });
46
+ await this.pubsub.topic(this.parameters.topic).publishMessage({ data: Buffer.from(JSONUtils.stringify(event)) });
27
47
  }
48
+ /**
49
+ * The size is not available on a GCP subscription
50
+ * @returns 0
51
+ */
28
52
  async size() {
29
53
  return 0;
30
54
  }
31
55
  /**
32
56
  * Get the subscription name
33
- * @returns
57
+ * @returns the subscription name, unique per machine
34
58
  */
35
59
  getSubscriptionName() {
36
- return `${this.getName()}-${Core.getMachineId()}`;
60
+ return `${this.getName()}-${getMachineId()}`;
37
61
  }
38
62
  /**
39
63
  * @override
64
+ * @param callback - invoked with each event received
65
+ * @param eventPrototype - optional class to rehydrate JSON into
66
+ * @param onBind - invoked once the subscription is bound
67
+ * @returns a cancelable subscription handle
40
68
  */
41
69
  consume(callback, eventPrototype, onBind) {
42
70
  const subscriptionName = this.getSubscriptionName();
@@ -70,12 +98,10 @@ export default class GCPPubSubService extends PubSubService {
70
98
  subscription.on("message", messageHandler);
71
99
  // Receive callbacks for errors on the subscription
72
100
  subscription.on("error", error => {
73
- console.error("Received error:", error);
101
+ this.log("ERROR", `${this.getName()} subscription error`, error);
74
102
  reject(error);
75
103
  });
76
- if (onBind) {
77
- onBind(subscription);
78
- }
104
+ onBind?.(subscription);
79
105
  }
80
106
  catch (err) {
81
107
  this.log("ERROR", `${this.getName()} consume error`, err);
@@ -90,4 +116,4 @@ export default class GCPPubSubService extends PubSubService {
90
116
  }
91
117
  }
92
118
  export { GCPPubSubService };
93
- //# sourceMappingURL=pubsub.js.map
119
+ //# sourceMappingURL=pubsub.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pubsub.service.js","sourceRoot":"","sources":["../../src/services/pubsub.service.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { Message, PubSub, Subscription } from "@google-cloud/pubsub";
2
- import { CancelablePromise, DeepPartial, MessageReceipt, Queue, QueueParameters } from "@webda/core";
2
+ import { MessageReceipt, Queue, QueueParameters } from "@webda/core";
3
+ import { CancelablePromise } from "@webda/utils";
3
4
  /**
4
5
  * GCPQueue Parameters
5
6
  */
@@ -23,9 +24,16 @@ export declare class GCPQueueParameters extends QueueParameters {
23
24
  /**
24
25
  * If receiver, the usage is to call receiveMessage and deleteMessage manually
25
26
  * If consumer, the usage is to call consume, the normal flow is used in parallel
27
+ *
28
+ * @default "consumer"
26
29
  */
27
- mode: "consumer" | "receiver";
28
- constructor(params: DeepPartial<GCPQueueParameters>);
30
+ mode?: "consumer" | "receiver";
31
+ /**
32
+ * @override
33
+ * @param params - the input parameters
34
+ * @returns this
35
+ */
36
+ load(params?: any): this;
29
37
  }
30
38
  /**
31
39
  * GCP Queue implementation on top of Pub/Sub
@@ -49,50 +57,58 @@ export default class GCPQueue<T = any, K extends GCPQueueParameters = GCPQueuePa
49
57
  private receiverPromise?;
50
58
  private receiverResolve?;
51
59
  /**
52
- *
60
+ * Messages received and not yet acknowledged, indexed by ackId
53
61
  */
54
62
  messages: {
55
63
  [key: string]: Message;
56
64
  };
57
65
  /**
58
66
  * @override
67
+ * @returns this service
59
68
  */
60
- loadParameters(params: DeepPartial<K>): GCPQueueParameters;
69
+ init(): Promise<this>;
61
70
  /**
71
+ * Close the subscription and the Pub/Sub client
62
72
  * @override
63
73
  */
64
- init(): Promise<this>;
74
+ stop(): Promise<void>;
65
75
  /**
66
76
  * The queue size is not available within this service
67
77
  *
68
- * @returns
78
+ * @returns 0
69
79
  */
70
- size(): Promise<0>;
80
+ size(): Promise<number>;
71
81
  /**
72
82
  * Acknowledge a message
73
- * @param id
83
+ * @param id - the ackId returned by {@link receiveMessage}
74
84
  */
75
85
  deleteMessage(id: string): Promise<void>;
76
86
  /**
77
87
  * Send a message to the queue
78
- * @param msg
88
+ * @param msg - the message to send
79
89
  */
80
90
  sendMessage(msg: T): Promise<void>;
91
+ /**
92
+ * Prepare the next receiver promise
93
+ * @returns the resolver of the current pending promise
94
+ */
95
+ private nextReceiver;
81
96
  /**
82
97
  * Retrieve just one message from the queue
83
- * @param proto
84
- * @returns
98
+ * @param proto - optional prototype to rehydrate the payload into
99
+ * @returns the received messages, empty if the timeout expired
85
100
  */
86
101
  receiveMessage<L>(proto?: new () => L): Promise<MessageReceipt<L>[]>;
87
102
  /**
88
103
  * Work a queue calling the callback with every Event received
89
- * If the callback is called without exception the `deleteMessage` is called
90
- * @param callback
91
- * @param eventPrototype
104
+ * If the callback is called without exception the message is acknowledged
105
+ * @param callback - invoked with each event received
106
+ * @param eventPrototype - optional class to rehydrate JSON into
107
+ * @returns a cancelable consumer handle
92
108
  */
93
109
  consume(callback: (event: T) => Promise<void>, eventPrototype?: {
94
110
  new (): T;
95
111
  }): CancelablePromise;
96
112
  }
97
113
  export { GCPQueue };
98
- //# sourceMappingURL=queue.d.ts.map
114
+ //# sourceMappingURL=queue.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue.service.d.ts","sourceRoot":"","sources":["../../src/services/queue.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAa,MAAM,cAAc,CAAC;AAE5D;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,eAAe;IACrD;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;IAE/B;;;;OAIG;IACH,IAAI,CAAC,MAAM,GAAE,GAAQ,GAAG,IAAI,CAI3B;CACF;AAED;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,QAAQ,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,SAAS,kBAAkB,GAAG,kBAAkB,CAAE,SAAQ,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IAC3G;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,YAAY,EAAE,YAAY,CAAC;IAC3B;;;;OAIG;IACH,OAAO,CAAC,eAAe,CAAC,CAAiC;IACzD,OAAO,CAAC,eAAe,CAAC,CAAyC;IACjE;;OAEG;IACH,QAAQ,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAM;IAE1C;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAI1B;IAED;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAgB1B;IAED;;;;OAIG;IACG,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAE5B;IAED;;;OAGG;IACG,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG7C;IAED;;;OAGG;IACG,WAAW,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAGvC;IAED;;;OAGG;IACH,OAAO,CAAC,YAAY;IAQpB;;;;OAIG;IACG,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,UAAU,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAoDzE;IAED;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC,EAAE;QAAE,QAAQ,CAAC,CAAA;KAAE,GAAG,iBAAiB,CAwBhG;CACF;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
@@ -1,12 +1,19 @@
1
1
  import { PubSub } from "@google-cloud/pubsub";
2
- import { CancelablePromise, Queue, QueueParameters } from "@webda/core";
2
+ import { Queue, QueueParameters } from "@webda/core";
3
+ import { CancelablePromise, JSONUtils } from "@webda/utils";
3
4
  /**
4
5
  * GCPQueue Parameters
5
6
  */
6
7
  export class GCPQueueParameters extends QueueParameters {
7
- constructor(params) {
8
- super(params);
8
+ /**
9
+ * @override
10
+ * @param params - the input parameters
11
+ * @returns this
12
+ */
13
+ load(params = {}) {
14
+ super.load(params);
9
15
  this.mode ?? (this.mode = "consumer");
16
+ return this;
10
17
  }
11
18
  }
12
19
  /**
@@ -18,35 +25,51 @@ export default class GCPQueue extends Queue {
18
25
  constructor() {
19
26
  super(...arguments);
20
27
  /**
21
- *
28
+ * Messages received and not yet acknowledged, indexed by ackId
22
29
  */
23
30
  this.messages = {};
24
31
  }
25
32
  /**
26
33
  * @override
27
- */
28
- loadParameters(params) {
29
- return new GCPQueueParameters(params);
30
- }
31
- /**
32
- * @override
34
+ * @returns this service
33
35
  */
34
36
  async init() {
35
37
  await super.init();
36
38
  this.pubsub = new PubSub();
37
39
  return this;
38
40
  }
41
+ /**
42
+ * Close the subscription and the Pub/Sub client
43
+ * @override
44
+ */
45
+ async stop() {
46
+ if (this.subscription) {
47
+ this.subscription.removeAllListeners();
48
+ await this.subscription.close().catch(() => {
49
+ /* already closed */
50
+ });
51
+ this.subscription = undefined;
52
+ }
53
+ if (this.pubsub) {
54
+ const pubsub = this.pubsub;
55
+ this.pubsub = undefined;
56
+ await pubsub.close().catch(() => {
57
+ /* already closed */
58
+ });
59
+ }
60
+ await super.stop();
61
+ }
39
62
  /**
40
63
  * The queue size is not available within this service
41
64
  *
42
- * @returns
65
+ * @returns 0
43
66
  */
44
67
  async size() {
45
68
  return 0;
46
69
  }
47
70
  /**
48
71
  * Acknowledge a message
49
- * @param id
72
+ * @param id - the ackId returned by {@link receiveMessage}
50
73
  */
51
74
  async deleteMessage(id) {
52
75
  await this.messages[id].ackWithResponse();
@@ -54,15 +77,27 @@ export default class GCPQueue extends Queue {
54
77
  }
55
78
  /**
56
79
  * Send a message to the queue
57
- * @param msg
80
+ * @param msg - the message to send
58
81
  */
59
82
  async sendMessage(msg) {
60
- await this.pubsub.topic(this.parameters.topic).publishMessage({ data: Buffer.from(JSON.stringify(msg)) });
83
+ this.metrics.messages_sent.inc();
84
+ await this.pubsub.topic(this.parameters.topic).publishMessage({ data: Buffer.from(JSONUtils.stringify(msg)) });
85
+ }
86
+ /**
87
+ * Prepare the next receiver promise
88
+ * @returns the resolver of the current pending promise
89
+ */
90
+ nextReceiver() {
91
+ const resolve = this.receiverResolve;
92
+ this.receiverPromise ?? (this.receiverPromise = new Promise(res => {
93
+ this.receiverResolve = res;
94
+ }));
95
+ return resolve;
61
96
  }
62
97
  /**
63
98
  * Retrieve just one message from the queue
64
- * @param proto
65
- * @returns
99
+ * @param proto - optional prototype to rehydrate the payload into
100
+ * @returns the received messages, empty if the timeout expired
66
101
  */
67
102
  async receiveMessage(proto) {
68
103
  let timeoutId;
@@ -75,7 +110,7 @@ export default class GCPQueue extends Queue {
75
110
  allowExcessMessages: false
76
111
  }
77
112
  }));
78
- this.receiverPromise ?? (this.receiverPromise = new Promise((resolve, _) => {
113
+ this.receiverPromise ?? (this.receiverPromise = new Promise(resolve => {
79
114
  this.receiverResolve = resolve;
80
115
  }));
81
116
  const result = this.receiverPromise;
@@ -83,11 +118,8 @@ export default class GCPQueue extends Queue {
83
118
  if (this.subscription.listenerCount("message") === 0) {
84
119
  const msgHandler = (message) => {
85
120
  this.messages[message.ackId] = message;
86
- const resolve = this.receiverResolve;
87
- this.receiverPromise ?? (this.receiverPromise = new Promise((res, _) => {
88
- this.receiverResolve = res;
89
- }));
90
- resolve([
121
+ this.metrics.messages_received.inc();
122
+ this.nextReceiver()([
91
123
  {
92
124
  Message: message.data.toString(),
93
125
  ReceiptHandle: message.ackId
@@ -101,11 +133,7 @@ export default class GCPQueue extends Queue {
101
133
  }
102
134
  if (this.parameters.timeout) {
103
135
  timeoutId = setTimeout(() => {
104
- const resolve = this.receiverResolve;
105
- this.receiverPromise ?? (this.receiverPromise = new Promise((res, _) => {
106
- this.receiverResolve = res;
107
- }));
108
- resolve([]);
136
+ this.nextReceiver()([]);
109
137
  }, this.parameters.timeout);
110
138
  }
111
139
  return result
@@ -126,9 +154,10 @@ export default class GCPQueue extends Queue {
126
154
  }
127
155
  /**
128
156
  * Work a queue calling the callback with every Event received
129
- * If the callback is called without exception the `deleteMessage` is called
130
- * @param callback
131
- * @param eventPrototype
157
+ * If the callback is called without exception the message is acknowledged
158
+ * @param callback - invoked with each event received
159
+ * @param eventPrototype - optional class to rehydrate JSON into
160
+ * @returns a cancelable consumer handle
132
161
  */
133
162
  consume(callback, eventPrototype) {
134
163
  this.subscription ?? (this.subscription = this.pubsub.subscription(this.parameters.subscription, {
@@ -137,20 +166,22 @@ export default class GCPQueue extends Queue {
137
166
  }
138
167
  }));
139
168
  const msgHandler = async (message) => {
169
+ this.metrics.messages_received.inc();
140
170
  try {
141
171
  await callback(this.unserialize(message.data.toString(), eventPrototype));
142
172
  await message.ackWithResponse();
143
173
  }
144
174
  catch (err) {
175
+ this.metrics.errors.inc();
145
176
  this.log("ERROR", `Message ${message.ackId}`, err);
146
177
  }
147
178
  };
148
179
  return new CancelablePromise(async () => {
149
180
  this.subscription.on("message", msgHandler);
150
181
  }, async () => {
151
- this.subscription.removeListener("message", msgHandler);
182
+ this.subscription?.removeListener("message", msgHandler);
152
183
  });
153
184
  }
154
185
  }
155
186
  export { GCPQueue };
156
- //# sourceMappingURL=queue.js.map
187
+ //# sourceMappingURL=queue.service.js.map