@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.
- package/README.md +54 -4
- package/lib/index.d.ts +4 -4
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +4 -4
- package/lib/index.js.map +1 -1
- package/lib/services/firestore.service.d.ts +237 -0
- package/lib/services/firestore.service.d.ts.map +1 -0
- package/lib/services/firestore.service.js +693 -0
- package/lib/services/firestore.service.js.map +1 -0
- package/lib/services/index.d.ts +1 -1
- package/lib/services/index.d.ts.map +1 -1
- package/lib/services/index.js +1 -1
- package/lib/services/index.js.map +1 -1
- package/lib/services/{kms.d.ts → kms.service.d.ts} +14 -15
- package/lib/services/kms.service.d.ts.map +1 -0
- package/lib/services/{kms.js → kms.service.js} +18 -16
- package/lib/services/kms.service.js.map +1 -0
- package/lib/services/{pubsub.d.ts → pubsub.service.d.ts} +23 -4
- package/lib/services/pubsub.service.d.ts.map +1 -0
- package/lib/services/{pubsub.js → pubsub.service.js} +36 -10
- package/lib/services/pubsub.service.js.map +1 -0
- package/lib/services/{queue.d.ts → queue.service.d.ts} +32 -16
- package/lib/services/queue.service.d.ts.map +1 -0
- package/lib/services/{queue.js → queue.service.js} +63 -32
- package/lib/services/queue.service.js.map +1 -0
- package/lib/services/storage.service.d.ts +268 -0
- package/lib/services/storage.service.d.ts.map +1 -0
- package/lib/services/{storage.js → storage.service.js} +116 -69
- package/lib/services/storage.service.js.map +1 -0
- package/package.json +33 -43
- package/webda.module.json +1122 -1440
- package/lib/index.spec.d.ts +0 -5
- package/lib/index.spec.d.ts.map +0 -1
- package/lib/index.spec.js +0 -7
- package/lib/index.spec.js.map +0 -1
- package/lib/services/firestore.d.ts +0 -135
- package/lib/services/firestore.d.ts.map +0 -1
- package/lib/services/firestore.js +0 -423
- package/lib/services/firestore.js.map +0 -1
- package/lib/services/firestore.spec.d.ts +0 -2
- package/lib/services/firestore.spec.d.ts.map +0 -1
- package/lib/services/firestore.spec.js +0 -187
- package/lib/services/firestore.spec.js.map +0 -1
- package/lib/services/kms.d.ts.map +0 -1
- package/lib/services/kms.js.map +0 -1
- package/lib/services/kms.spec.d.ts +0 -2
- package/lib/services/kms.spec.d.ts.map +0 -1
- package/lib/services/kms.spec.js +0 -53
- package/lib/services/kms.spec.js.map +0 -1
- package/lib/services/pubsub.d.ts.map +0 -1
- package/lib/services/pubsub.js.map +0 -1
- package/lib/services/pubsub.spec.d.ts +0 -2
- package/lib/services/pubsub.spec.d.ts.map +0 -1
- package/lib/services/pubsub.spec.js +0 -95
- package/lib/services/pubsub.spec.js.map +0 -1
- package/lib/services/queue.d.ts.map +0 -1
- package/lib/services/queue.js.map +0 -1
- package/lib/services/queue.spec.d.ts +0 -2
- package/lib/services/queue.spec.d.ts.map +0 -1
- package/lib/services/queue.spec.js +0 -117
- package/lib/services/queue.spec.js.map +0 -1
- package/lib/services/storage.d.ts +0 -215
- package/lib/services/storage.d.ts.map +0 -1
- package/lib/services/storage.js.map +0 -1
- package/lib/services/storage.spec.d.ts +0 -2
- package/lib/services/storage.spec.d.ts.map +0 -1
- package/lib/services/storage.spec.js +0 -224
- 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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"}
|
package/lib/services/index.d.ts
CHANGED
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
|
package/lib/services/index.js
CHANGED
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
})
|
|
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
|
-
|
|
44
|
-
|
|
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 {
|
|
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 {
|
|
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(
|
|
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()}-${
|
|
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
|
-
|
|
101
|
+
this.log("ERROR", `${this.getName()} subscription error`, error);
|
|
74
102
|
reject(error);
|
|
75
103
|
});
|
|
76
|
-
|
|
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 {
|
|
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
|
|
28
|
-
|
|
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
|
-
|
|
69
|
+
init(): Promise<this>;
|
|
61
70
|
/**
|
|
71
|
+
* Close the subscription and the Pub/Sub client
|
|
62
72
|
* @override
|
|
63
73
|
*/
|
|
64
|
-
|
|
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<
|
|
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
|
|
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 {
|
|
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
|
-
|
|
8
|
-
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
87
|
-
this.
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|