@webda/gcp 4.0.0-beta.1 → 4.0.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/README.md +54 -4
  2. package/lib/index.d.ts +5 -4
  3. package/lib/index.d.ts.map +1 -0
  4. package/lib/index.js +4 -4
  5. package/lib/index.js.map +1 -1
  6. package/lib/services/firestore.service.d.ts +236 -0
  7. package/lib/services/firestore.service.d.ts.map +1 -0
  8. package/lib/services/firestore.service.js +692 -0
  9. package/lib/services/firestore.service.js.map +1 -0
  10. package/lib/services/index.d.ts +2 -1
  11. package/lib/services/index.d.ts.map +1 -0
  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 -14
  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 -3
  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 -14
  23. package/lib/services/queue.service.d.ts.map +1 -0
  24. package/lib/services/{queue.js → queue.service.js} +65 -38
  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} +125 -78
  29. package/lib/services/storage.service.js.map +1 -0
  30. package/package.json +34 -40
  31. package/webda.module.json +1120 -1462
  32. package/lib/index.spec.d.ts +0 -4
  33. package/lib/index.spec.js +0 -7
  34. package/lib/index.spec.js.map +0 -1
  35. package/lib/services/firestore.d.ts +0 -134
  36. package/lib/services/firestore.js +0 -424
  37. package/lib/services/firestore.js.map +0 -1
  38. package/lib/services/firestore.spec.d.ts +0 -1
  39. package/lib/services/firestore.spec.js +0 -194
  40. package/lib/services/firestore.spec.js.map +0 -1
  41. package/lib/services/kms.js.map +0 -1
  42. package/lib/services/kms.spec.d.ts +0 -1
  43. package/lib/services/kms.spec.js +0 -53
  44. package/lib/services/kms.spec.js.map +0 -1
  45. package/lib/services/pubsub.js.map +0 -1
  46. package/lib/services/pubsub.spec.d.ts +0 -1
  47. package/lib/services/pubsub.spec.js +0 -95
  48. package/lib/services/pubsub.spec.js.map +0 -1
  49. package/lib/services/queue.js.map +0 -1
  50. package/lib/services/queue.spec.d.ts +0 -1
  51. package/lib/services/queue.spec.js +0 -104
  52. package/lib/services/queue.spec.js.map +0 -1
  53. package/lib/services/storage.d.ts +0 -214
  54. package/lib/services/storage.js.map +0 -1
  55. package/lib/services/storage.spec.d.ts +0 -1
  56. package/lib/services/storage.spec.js +0 -220
  57. package/lib/services/storage.spec.js.map +0 -1
@@ -1,4 +0,0 @@
1
- import { WebdaTest } from "@webda/core/lib/test.js";
2
- export declare class WebdaGcpTest extends WebdaTest {
3
- before(): Promise<void>;
4
- }
package/lib/index.spec.js DELETED
@@ -1,7 +0,0 @@
1
- import { WebdaTest } from "@webda/core/lib/test.js";
2
- export class WebdaGcpTest extends WebdaTest {
3
- async before() {
4
- await super.before();
5
- }
6
- }
7
- //# sourceMappingURL=index.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.spec.js","sourceRoot":"","sources":["../src/index.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,MAAM,OAAO,YAAa,SAAQ,SAAS;IACzC,KAAK,CAAC,MAAM;QACV,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;CACF"}
@@ -1,134 +0,0 @@
1
- import { DocumentReference, Firestore } from "@google-cloud/firestore";
2
- import { CoreModel, DeepPartial, Store, StoreFindResult, StoreParameters } from "@webda/core";
3
- import * as WebdaQL from "@webda/ql";
4
- /**
5
- * Definition of a FireStore index
6
- */
7
- export type FireStoreIndex = {
8
- [key: string]: "asc" | "desc";
9
- };
10
- /**
11
- * Stored version of indexes
12
- */
13
- export type FireStoreIndexOrder = {
14
- [key: string]: Set<"asc" | "desc">;
15
- };
16
- /**
17
- * Firebase parameters
18
- */
19
- export declare class FireStoreParameters extends StoreParameters {
20
- /**
21
- * Collection to use
22
- */
23
- collection: string;
24
- /**
25
- * To allow efficient query on several fields
26
- *
27
- * @see https://firebase.google.com/docs/firestore/query-data/queries
28
- */
29
- compoundIndexes: FireStoreIndex[];
30
- constructor(params: DeepPartial<FireStoreParameters>, service: Store);
31
- }
32
- /**
33
- * Implement Firebase abstraction within Webda
34
- *
35
- * @WebdaModda GoogleCloudFireStore
36
- */
37
- export default class FireStore<T extends CoreModel = CoreModel, K extends FireStoreParameters = FireStoreParameters> extends Store<T, K> {
38
- firestore: Firestore;
39
- compoundIndexes: {
40
- [key: string]: FireStoreIndexOrder;
41
- };
42
- /**
43
- * @override
44
- */
45
- loadParameters(params: DeepPartial<K>): FireStoreParameters;
46
- /**
47
- * @override
48
- */
49
- init(): Promise<this>;
50
- /**
51
- * Get Document Reference
52
- * @param uuid
53
- * @param collection
54
- * @returns
55
- */
56
- getDocumentRef(uuid: string, collection?: string): DocumentReference;
57
- /**
58
- * @override
59
- *
60
- * Return all for now
61
- */
62
- find(parsedQuery: WebdaQL.Query): Promise<StoreFindResult<T>>;
63
- /**
64
- * Manage OrderBy complex condition on Firebase
65
- * @param query
66
- * @param orderBy
67
- * @param rangeAttribute
68
- * @param index
69
- */
70
- handleOrderBy(query: FirebaseFirestore.Query<FirebaseFirestore.DocumentData>, orderBy: WebdaQL.OrderBy[], rangeAttribute: string): FirebaseFirestore.Query<FirebaseFirestore.DocumentData>;
71
- /**
72
- * @override
73
- */
74
- _exists(uid: string): Promise<boolean>;
75
- /**
76
- * @override
77
- */
78
- _delete(uid: string, writeCondition?: any, itemWriteConditionField?: string): Promise<void>;
79
- /**
80
- * Recursively replace Timestamp by Date
81
- * @param doc
82
- * @returns
83
- */
84
- giveDatesBack(doc: any): any;
85
- /**
86
- * @override
87
- */
88
- _get(uid: string, raiseIfNotFound?: boolean): Promise<T>;
89
- /**
90
- * @override
91
- */
92
- getAll(list?: string[]): Promise<T[]>;
93
- /**
94
- * @override
95
- */
96
- _update(object: any, uid: string, itemWriteCondition?: any, itemWriteConditionField?: string): Promise<any>;
97
- protected checkCondition(uid: string, data: any, field: string, condition: any): void;
98
- /***
99
- * Internal function that implement both update and patch
100
- */
101
- protected _setDocument(merge: boolean, object: any, uid: string, itemWriteCondition?: any, itemWriteConditionField?: string): Promise<void>;
102
- /**
103
- * @override
104
- */
105
- _patch(object: any, uid: string, itemWriteCondition?: any, itemWriteConditionField?: string): Promise<any>;
106
- /**
107
- * @override
108
- */
109
- _removeAttribute(uuid: string, attribute: string, itemWriteCondition?: any, itemWriteConditionField?: string): Promise<void>;
110
- /**
111
- * @override
112
- */
113
- _save(object: T): Promise<any>;
114
- /**
115
- * @override
116
- */
117
- _incrementAttributes(uid: string, params: {
118
- property: string;
119
- value: number;
120
- }[], updateDate: Date): Promise<any>;
121
- /**
122
- * @override
123
- */
124
- _upsertItemToCollection(uid: string, prop: string, item: any, index: number, itemWriteCondition: any, itemWriteConditionField: string, updateDate: Date): Promise<any>;
125
- /**
126
- * @override
127
- */
128
- _deleteItemFromCollection(uid: string, prop: string, index: number, itemWriteCondition: any, itemWriteConditionField: string, updateDate: Date): Promise<any>;
129
- /**
130
- * @override
131
- */
132
- __clean(): Promise<void>;
133
- }
134
- export { FireStore };
@@ -1,424 +0,0 @@
1
- import { FieldValue, Firestore, Timestamp } from "@google-cloud/firestore";
2
- import { JSONUtils, Store, StoreNotFoundError, StoreParameters, UpdateConditionFailError } from "@webda/core";
3
- import * as WebdaQL from "@webda/ql";
4
- /**
5
- * Firebase parameters
6
- */
7
- export class FireStoreParameters extends StoreParameters {
8
- constructor(params, service) {
9
- super(params, service);
10
- // Default to empty compoundIndexes
11
- this.compoundIndexes ?? (this.compoundIndexes = []);
12
- }
13
- }
14
- /**
15
- * Implement Firebase abstraction within Webda
16
- *
17
- * @WebdaModda GoogleCloudFireStore
18
- */
19
- export default class FireStore extends Store {
20
- /**
21
- * @override
22
- */
23
- loadParameters(params) {
24
- return new FireStoreParameters(params, this);
25
- }
26
- /**
27
- * @override
28
- */
29
- async init() {
30
- await super.init();
31
- this.firestore = new Firestore();
32
- this.firestore.settings({ ignoreUndefinedProperties: true });
33
- this.compoundIndexes = {};
34
- this.parameters.compoundIndexes.forEach(a => {
35
- const key = Object.keys(a).join("/");
36
- // Should contain the array of accessible order
37
- this.compoundIndexes[key] = {};
38
- Object.keys(a).forEach(field => {
39
- var _a;
40
- (_a = this.compoundIndexes[key])[field] ?? (_a[field] = new Set());
41
- this.compoundIndexes[key][field].add(a[field]);
42
- });
43
- });
44
- return this;
45
- }
46
- /**
47
- * Get Document Reference
48
- * @param uuid
49
- * @param collection
50
- * @returns
51
- */
52
- getDocumentRef(uuid, collection = this.parameters.collection) {
53
- return this.firestore.doc(`${collection}/${uuid}`);
54
- }
55
- /**
56
- * @override
57
- *
58
- * Return all for now
59
- */
60
- async find(parsedQuery) {
61
- let offset = parseInt(parsedQuery.continuationToken || "0");
62
- let query = this.firestore.collection(this.parameters.collection);
63
- if (offset) {
64
- query = query.offset(offset);
65
- }
66
- let filter = new WebdaQL.AndExpression([]);
67
- let rangeAttribute;
68
- let toProcess;
69
- if (!(parsedQuery.filter instanceof WebdaQL.AndExpression)) {
70
- toProcess = new WebdaQL.AndExpression([parsedQuery.filter]);
71
- }
72
- else {
73
- toProcess = parsedQuery.filter;
74
- }
75
- const queryAttributes = new Set();
76
- let count = 0;
77
- let hasIn = false;
78
- let hasContains = false;
79
- toProcess.children.forEach((child) => {
80
- if (!(child instanceof WebdaQL.ComparisonExpression) || count) {
81
- // Do not manage OR yet
82
- filter.children.push(child);
83
- return;
84
- }
85
- if (child.operator === "LIKE") {
86
- this.log("WARN", "Firebase do not natively have 'LIKE'");
87
- // LIKE is not managed by Firestore
88
- filter.children.push(child);
89
- return;
90
- }
91
- let operator;
92
- let attribute = child.attribute.join(".");
93
- queryAttributes.add(attribute);
94
- // CONTAINS -> array_contains
95
- // Translate operators
96
- if (["=", "IN", "CONTAINS"].includes(child.operator)) {
97
- // = is permitted on every fields
98
- // if rangeQuery then need to check indexes
99
- if (child.operator === "=") {
100
- operator = "==";
101
- }
102
- else if (child.operator === "IN") {
103
- operator = "in";
104
- if (child.value.length > 10) {
105
- this.log("WARN", "Firebase cannot have more than 10 values for 'in'");
106
- filter.children.push(child);
107
- return;
108
- }
109
- if (hasIn) {
110
- this.log("WARN", "Firebase cannot have two 'in' (IN) clause");
111
- filter.children.push(child);
112
- return;
113
- }
114
- hasIn = true;
115
- }
116
- else if (child.operator === "CONTAINS") {
117
- operator = "array-contains";
118
- if (hasContains) {
119
- this.log("WARN", "Firebase cannot have two 'array-contains' (CONTAINS) clause");
120
- filter.children.push(child);
121
- return;
122
- }
123
- hasContains = true;
124
- }
125
- }
126
- else {
127
- // Requires compoundIndex
128
- if (queryAttributes.size > 1 && !this.compoundIndexes[[...queryAttributes.values()].sort().join("/")]) {
129
- this.log("WARN", "Compound index not defined");
130
- filter.children.push(child);
131
- return;
132
- }
133
- if (child.operator !== "!=") {
134
- // Check compoundIndex exist
135
- rangeAttribute ?? (rangeAttribute = attribute);
136
- // Range need to apply on only one attribute
137
- if (rangeAttribute !== attribute) {
138
- filter.children.push(child);
139
- return;
140
- }
141
- }
142
- operator = child.operator;
143
- }
144
- query = query.where(attribute, operator, child.value);
145
- });
146
- // OrderBy have quite some complexity with FireStore
147
- query = this.handleOrderBy(query, parsedQuery.orderBy, rangeAttribute);
148
- const res = await query.limit(parsedQuery.limit || 1000).get();
149
- return {
150
- results: res.docs.map(d => this.initModel(this.giveDatesBack(d.data()))),
151
- filter: filter.children.length ? filter : true,
152
- continuationToken: res.docs.length >= parsedQuery.limit ? (offset + parsedQuery.limit).toString() : undefined
153
- };
154
- }
155
- /**
156
- * Manage OrderBy complex condition on Firebase
157
- * @param query
158
- * @param orderBy
159
- * @param rangeAttribute
160
- * @param index
161
- */
162
- handleOrderBy(query, orderBy, rangeAttribute) {
163
- // Manage order if index
164
- if (!orderBy) {
165
- return query;
166
- }
167
- let requiredIndex = orderBy.map(order => order.field).sort();
168
- let orders;
169
- // Require index with multiple ORDER BY
170
- if (requiredIndex.length > 1) {
171
- orders = this.compoundIndexes[requiredIndex.join("/")];
172
- if (!orders) {
173
- this.log("WARN", "Skip orderBy as we are missing the index");
174
- return query;
175
- }
176
- }
177
- // Range must be the first orderBy
178
- if (rangeAttribute) {
179
- if (!orderBy.some(order => {
180
- // Need to check the permitted orderBy and direction
181
- if (order.field === rangeAttribute) {
182
- query = query.orderBy(order.field, order.direction.toLowerCase());
183
- return true;
184
- }
185
- })) {
186
- this.log("WARN", "Skip orderBy as the range attribute is not within ORDER BY expression");
187
- // If rangeAttribute is not in orderBy then skip the orderBy completely
188
- return query;
189
- }
190
- }
191
- // Add remaining orderBy from index
192
- orderBy
193
- .filter(order => order.field !== rangeAttribute)
194
- .forEach(order => {
195
- if (!orders || orders[order.field].has(order.direction.toLowerCase())) {
196
- query = query.orderBy(order.field, order.direction.toLowerCase());
197
- }
198
- else {
199
- this.log("WARN", "Skip orderBy as the direction does not match index");
200
- }
201
- });
202
- return query;
203
- }
204
- /**
205
- * @override
206
- */
207
- async _exists(uid) {
208
- return (await this.getDocumentRef(uid).get()).exists;
209
- }
210
- /**
211
- * @override
212
- */
213
- async _delete(uid, writeCondition, itemWriteConditionField) {
214
- await this.firestore.runTransaction(async (t) => {
215
- const docRef = this.getDocumentRef(uid);
216
- const doc = (await t.get(docRef)).data();
217
- if (writeCondition && doc[itemWriteConditionField] !== writeCondition) {
218
- throw new UpdateConditionFailError(uid, itemWriteConditionField, writeCondition);
219
- }
220
- t.delete(docRef);
221
- });
222
- }
223
- /**
224
- * Recursively replace Timestamp by Date
225
- * @param doc
226
- * @returns
227
- */
228
- giveDatesBack(doc) {
229
- if (doc instanceof Timestamp) {
230
- return doc.toDate();
231
- }
232
- else if (Array.isArray(doc)) {
233
- return doc.map(d => this.giveDatesBack(d));
234
- }
235
- else if (doc instanceof Object) {
236
- let res = {};
237
- Object.keys(doc).forEach(k => {
238
- res[k] = this.giveDatesBack(doc[k]);
239
- });
240
- return res;
241
- }
242
- else {
243
- return doc;
244
- }
245
- }
246
- /**
247
- * @override
248
- */
249
- async _get(uid, raiseIfNotFound) {
250
- let doc = (await this.getDocumentRef(uid).get()).data();
251
- if (!doc) {
252
- if (raiseIfNotFound) {
253
- throw new StoreNotFoundError(uid, this.getName());
254
- }
255
- return undefined;
256
- }
257
- return this.initModel(this.giveDatesBack(doc));
258
- }
259
- /**
260
- * @override
261
- */
262
- async getAll(list) {
263
- let res = [];
264
- if (list) {
265
- res = (await this.firestore.collection(this.parameters.collection).where("uuid", "in", list).get()).docs;
266
- }
267
- else {
268
- // Limit to 1M docs
269
- res = (await this.firestore.collection(this.parameters.collection).limit(1000000).get()).docs;
270
- }
271
- return res.map(doc => this.initModel(this.giveDatesBack(doc.data())));
272
- }
273
- /**
274
- * @override
275
- */
276
- async _update(object, uid, itemWriteCondition, itemWriteConditionField) {
277
- await this._setDocument(false, object, uid, itemWriteCondition, itemWriteConditionField);
278
- }
279
- checkCondition(uid, data, field, condition) {
280
- if (condition) {
281
- let current = data[field] instanceof Timestamp ? data[field].toDate().toISOString() : data[field];
282
- if (condition instanceof Date) {
283
- condition = condition.toISOString();
284
- }
285
- if (current !== condition) {
286
- throw new UpdateConditionFailError(uid, field, condition);
287
- }
288
- }
289
- }
290
- /***
291
- * Internal function that implement both update and patch
292
- */
293
- async _setDocument(merge, object, uid, itemWriteCondition, itemWriteConditionField) {
294
- let update = object;
295
- // Ensure we send pure prototype
296
- if (object.toStoredJSON && typeof object.toStoredJSON === "function") {
297
- update = object.toStoredJSON();
298
- }
299
- else {
300
- update = JSONUtils.duplicate(object);
301
- }
302
- await this.firestore.runTransaction(async (t) => {
303
- const docRef = this.getDocumentRef(uid);
304
- const doc = await t.get(docRef);
305
- if (!doc.exists) {
306
- throw new StoreNotFoundError(uid, this.getName());
307
- }
308
- this.checkCondition(uid, doc.data(), itemWriteConditionField, itemWriteCondition);
309
- t.set(docRef, update, {
310
- merge
311
- });
312
- });
313
- }
314
- /**
315
- * @override
316
- */
317
- async _patch(object, uid, itemWriteCondition, itemWriteConditionField) {
318
- await this._setDocument(true, object, uid, itemWriteCondition, itemWriteConditionField);
319
- }
320
- /**
321
- * @override
322
- */
323
- async _removeAttribute(uuid, attribute, itemWriteCondition, itemWriteConditionField) {
324
- await this.firestore.runTransaction(async (t) => {
325
- const docRef = this.getDocumentRef(uuid);
326
- const doc = await t.get(docRef);
327
- if (!doc.exists) {
328
- throw new StoreNotFoundError(uuid, this.getName());
329
- }
330
- this.checkCondition(uuid, doc.data(), itemWriteConditionField, itemWriteCondition);
331
- t.update(docRef, {
332
- [attribute]: FieldValue.delete()
333
- });
334
- });
335
- }
336
- /**
337
- * @override
338
- */
339
- async _save(object) {
340
- await this.getDocumentRef(object.getUuid()).set(object.toStoredJSON());
341
- return object;
342
- }
343
- /**
344
- * @override
345
- */
346
- async _incrementAttributes(uid, params, updateDate) {
347
- try {
348
- const args = {
349
- ["_lastUpdate"]: updateDate
350
- };
351
- params.forEach(p => {
352
- args[p.property] = FieldValue.increment(p.value);
353
- });
354
- await this.getDocumentRef(uid).update(args);
355
- }
356
- catch (err) {
357
- if (err.code === 5) {
358
- throw new StoreNotFoundError(uid, this.getName());
359
- }
360
- throw err;
361
- }
362
- }
363
- /**
364
- * @override
365
- */
366
- async _upsertItemToCollection(uid, prop, item, index, itemWriteCondition, itemWriteConditionField, updateDate) {
367
- if (index !== undefined) {
368
- await this.firestore.runTransaction(async (t) => {
369
- const docRef = this.getDocumentRef(uid);
370
- const doc = await t.get(docRef);
371
- if (!doc.exists) {
372
- throw new StoreNotFoundError(uid, this.getName());
373
- }
374
- const data = doc.data();
375
- this.checkCondition(uid, data[prop][index], itemWriteConditionField, itemWriteCondition);
376
- data[prop][index] = item;
377
- t.update(docRef, {
378
- [prop]: data[prop],
379
- ["_lastUpdate"]: updateDate
380
- });
381
- });
382
- }
383
- else {
384
- try {
385
- await this.getDocumentRef(uid).update({
386
- [prop]: FieldValue.arrayUnion(item)
387
- });
388
- }
389
- catch (err) {
390
- if (err.code === 5) {
391
- throw new StoreNotFoundError(uid, this.getName());
392
- }
393
- throw err;
394
- }
395
- }
396
- }
397
- /**
398
- * @override
399
- */
400
- async _deleteItemFromCollection(uid, prop, index, itemWriteCondition, itemWriteConditionField, updateDate) {
401
- await this.firestore.runTransaction(async (t) => {
402
- const docRef = this.getDocumentRef(uid);
403
- const doc = await t.get(docRef);
404
- if (!doc.exists) {
405
- throw new StoreNotFoundError(uid, this.getName());
406
- }
407
- const data = doc.data();
408
- this.checkCondition(uid, data[prop][index], itemWriteConditionField, itemWriteCondition);
409
- // Get item from doc?
410
- t.update(docRef, {
411
- [prop]: FieldValue.arrayRemove(data[prop][index]),
412
- ["_lastUpdate"]: updateDate
413
- });
414
- });
415
- }
416
- /**
417
- * @override
418
- */
419
- async __clean() {
420
- // Empty on purpose, unit test use custom collection each time
421
- }
422
- }
423
- export { FireStore };
424
- //# sourceMappingURL=firestore.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"firestore.js","sourceRoot":"","sources":["../../src/services/firestore.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};