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