@dereekb/firebase-server 8.14.0 → 8.15.2

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/CHANGELOG.md CHANGED
@@ -2,6 +2,23 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ ## [8.15.2](https://github.com/dereekb/dbx-components/compare/v8.15.1-dev...v8.15.2) (2022-08-11)
6
+
7
+
8
+
9
+ ## [8.15.1](https://github.com/dereekb/dbx-components/compare/v8.15.0-dev...v8.15.1) (2022-08-11)
10
+
11
+
12
+
13
+ # [8.15.0](https://github.com/dereekb/dbx-components/compare/v8.14.0-dev...v8.15.0) (2022-08-09)
14
+
15
+
16
+ ### Features
17
+
18
+ * added Firestore Increment support ([d4dc97b](https://github.com/dereekb/dbx-components/commit/d4dc97b92d4c592713019b1089a6ba8bacfc93be))
19
+
20
+
21
+
5
22
  # [8.14.0](https://github.com/dereekb/dbx-components/compare/v8.13.9-dev...v8.14.0) (2022-08-08)
6
23
 
7
24
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dereekb/firebase-server",
3
- "version": "8.14.0",
3
+ "version": "8.15.2",
4
4
  "devDependencies": {
5
5
  "firebase-functions-test": "2.0.2"
6
6
  },
@@ -20,26 +20,26 @@
20
20
  "typings": "./src/index.d.ts",
21
21
  "dependencies": {},
22
22
  "peerDependencies": {
23
- "@dereekb/firebase": "8.14.0",
24
- "@dereekb/util": "8.14.0",
23
+ "@dereekb/firebase": "8.15.2",
24
+ "@dereekb/util": "8.15.2",
25
25
  "make-error": "^1.3.0",
26
26
  "ts-essentials": "^9.1.2",
27
27
  "extra-set": "^2.2.11",
28
28
  "rxjs": "^7.0.0",
29
29
  "firebase": "^9.8.0",
30
- "@dereekb/rxjs": "8.14.0",
30
+ "@dereekb/rxjs": "8.15.2",
31
31
  "ms": "^3.0.0-canary.1",
32
- "@dereekb/model": "8.14.0",
32
+ "@dereekb/model": "8.15.2",
33
33
  "class-transformer": "^0.5.1",
34
34
  "class-validator": "^0.13.2",
35
- "@dereekb/date": "8.14.0",
35
+ "@dereekb/date": "8.15.2",
36
36
  "date-fns": "^2.29.0",
37
37
  "date-fns-tz": "^1.3.0",
38
38
  "rrule": "git+https://git@github.com/dereekb/rrule#2b13b1ea881059ba2ecfec380e12ef244ef54570",
39
39
  "firebase-functions": "^3.22.0",
40
40
  "firebase-admin": "^11.0.0",
41
41
  "@nestjs/common": "^8.4.0",
42
- "@dereekb/nestjs": "8.14.0",
42
+ "@dereekb/nestjs": "8.15.2",
43
43
  "@nestjs/config": "^2.0.1",
44
44
  "@google-cloud/firestore": "^5.0.2",
45
45
  "@nestjs/core": "^8.4.0",
@@ -1,6 +1,6 @@
1
1
  import { DocumentReference, WriteBatch as GoogleCloudWriteBatch, DocumentSnapshot } from '@google-cloud/firestore';
2
2
  import { Observable } from 'rxjs';
3
- import { WithFieldValue, FirestoreDocumentContext, FirestoreDocumentContextType, FirestoreDocumentDataAccessor, FirestoreDocumentDataAccessorFactory, FirestoreDocumentDeleteParams, FirestoreDocumentUpdateParams, UpdateData, DocumentData, FirestoreDataConverter } from '@dereekb/firebase';
3
+ import { WithFieldValue, FirestoreDocumentContext, FirestoreDocumentContextType, FirestoreDocumentDataAccessor, FirestoreDocumentDataAccessorFactory, FirestoreDocumentDeleteParams, FirestoreDocumentUpdateParams, UpdateData, DocumentData, FirestoreDataConverter, FirestoreAccessorIncrementUpdate } from '@dereekb/firebase';
4
4
  /**
5
5
  * FirestoreDocumentDataAccessor implementation for a batch.
6
6
  */
@@ -15,6 +15,7 @@ export declare class WriteBatchFirestoreDocumentDataAccessor<T> implements Fires
15
15
  getWithConverter<U = DocumentData>(converter: null | FirestoreDataConverter<U>): Promise<DocumentSnapshot<U>>;
16
16
  delete(params?: FirestoreDocumentDeleteParams): Promise<void>;
17
17
  set(data: WithFieldValue<T>): Promise<void>;
18
+ increment(data: FirestoreAccessorIncrementUpdate<T>, params?: FirestoreDocumentUpdateParams): Promise<void>;
18
19
  update(data: UpdateData<T>, params?: FirestoreDocumentUpdateParams): Promise<void>;
19
20
  }
20
21
  /**
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.writeBatchDocumentContext = exports.WriteBatchFirestoreDocumentContext = exports.writeBatchAccessorFactory = exports.WriteBatchFirestoreDocumentDataAccessor = void 0;
4
4
  const rxjs_1 = require("rxjs");
5
5
  const firebase_1 = require("@dereekb/firebase");
6
+ const increment_1 = require("./increment");
6
7
  // MARK: Accessor
7
8
  /**
8
9
  * FirestoreDocumentDataAccessor implementation for a batch.
@@ -36,6 +37,9 @@ class WriteBatchFirestoreDocumentDataAccessor {
36
37
  this.batch.set(this.documentRef, data);
37
38
  return Promise.resolve();
38
39
  }
40
+ increment(data, params) {
41
+ return this.update((0, increment_1.firestoreServerIncrementUpdateToUpdateData)(data), params);
42
+ }
39
43
  update(data, params) {
40
44
  if ((params === null || params === void 0 ? void 0 : params.precondition) != null) {
41
45
  this.batch.update(this.documentRef, data, params === null || params === void 0 ? void 0 : params.precondition);
@@ -1 +1 @@
1
- {"version":3,"file":"driver.accessor.batch.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/lib/firestore/driver.accessor.batch.ts"],"names":[],"mappings":";;;AACA,+BAAwC;AACxC,gDAAgS;AAEhS,iBAAiB;AACjB;;GAEG;AACH,MAAa,uCAAuC;IAClD,YAAqB,KAA4B,EAAW,WAAiC;QAAxE,UAAK,GAAL,KAAK,CAAuB;QAAW,gBAAW,GAAX,WAAW,CAAsB;IAAG,CAAC;IAEjG,MAAM;QACJ,OAAO,IAAA,WAAI,EAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO;IAClC,CAAC;IAED,MAAM,CAAC,IAAuB;QAC5B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAC1C,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,GAAG;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;IAChC,CAAC;IAED,gBAAgB,CAAmB,SAA2C;QAC5E,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAI,SAAsC,CAAC,CAAC,GAAG,EAAE,CAAC;IACzF,CAAC;IAED,MAAM,CAAC,MAAsC;QAC3C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,CAAC,CAAC;QAC1D,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,GAAG,CAAC,IAAuB;QACzB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACvC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,IAAmB,EAAE,MAAsC;QAChE,IAAI,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,KAAI,IAAI,EAAE;YAChC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,IAAuC,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,CAAC,CAAC;SACpG;aAAM;YACL,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,IAAuC,CAAC,CAAC;SAC9E;QAED,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF;AA3CD,0FA2CC;AAED;;;;;GAKG;AACH,SAAgB,yBAAyB,CAAI,UAAiC;IAC5E,OAAO;QACL,WAAW,EAAE,CAAC,GAAyB,EAAE,EAAE,CAAC,IAAI,uCAAuC,CAAC,UAAU,EAAE,GAAG,CAAC;KACzG,CAAC;AACJ,CAAC;AAJD,8DAIC;AAED,gBAAgB;AAChB,MAAa,kCAAkC;IAI7C,YAAqB,KAA4B;QAA5B,UAAK,GAAL,KAAK,CAAuB;QAHxC,gBAAW,GAAG,uCAA4B,CAAC,KAAK,CAAC;QACjD,oBAAe,GAAG,yBAAyB,CAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IAEhB,CAAC;CACtD;AALD,gFAKC;AAED,SAAgB,yBAAyB,CAAI,KAA4B;IACvE,OAAO,IAAI,kCAAkC,CAAI,KAAK,CAAC,CAAC;AAC1D,CAAC;AAFD,8DAEC"}
1
+ {"version":3,"file":"driver.accessor.batch.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/lib/firestore/driver.accessor.batch.ts"],"names":[],"mappings":";;;AACA,+BAAwC;AACxC,gDAAkU;AAClU,2CAAyE;AAEzE,iBAAiB;AACjB;;GAEG;AACH,MAAa,uCAAuC;IAClD,YAAqB,KAA4B,EAAW,WAAiC;QAAxE,UAAK,GAAL,KAAK,CAAuB;QAAW,gBAAW,GAAX,WAAW,CAAsB;IAAG,CAAC;IAEjG,MAAM;QACJ,OAAO,IAAA,WAAI,EAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO;IAClC,CAAC;IAED,MAAM,CAAC,IAAuB;QAC5B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAC1C,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,GAAG;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;IAChC,CAAC;IAED,gBAAgB,CAAmB,SAA2C;QAC5E,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAI,SAAsC,CAAC,CAAC,GAAG,EAAE,CAAC;IACzF,CAAC;IAED,MAAM,CAAC,MAAsC;QAC3C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,CAAC,CAAC;QAC1D,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,GAAG,CAAC,IAAuB;QACzB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACvC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,SAAS,CAAC,IAAyC,EAAE,MAAsC;QACzF,OAAO,IAAI,CAAC,MAAM,CAAC,IAAA,sDAA0C,EAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;IAC/E,CAAC;IAED,MAAM,CAAC,IAAmB,EAAE,MAAsC;QAChE,IAAI,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,KAAI,IAAI,EAAE;YAChC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,IAAuC,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,CAAC,CAAC;SACpG;aAAM;YACL,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,IAAuC,CAAC,CAAC;SAC9E;QAED,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF;AA/CD,0FA+CC;AAED;;;;;GAKG;AACH,SAAgB,yBAAyB,CAAI,UAAiC;IAC5E,OAAO;QACL,WAAW,EAAE,CAAC,GAAyB,EAAE,EAAE,CAAC,IAAI,uCAAuC,CAAC,UAAU,EAAE,GAAG,CAAC;KACzG,CAAC;AACJ,CAAC;AAJD,8DAIC;AAED,gBAAgB;AAChB,MAAa,kCAAkC;IAI7C,YAAqB,KAA4B;QAA5B,UAAK,GAAL,KAAK,CAAuB;QAHxC,gBAAW,GAAG,uCAA4B,CAAC,KAAK,CAAC;QACjD,oBAAe,GAAG,yBAAyB,CAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IAEhB,CAAC;CACtD;AALD,gFAKC;AAED,SAAgB,yBAAyB,CAAI,KAA4B;IACvE,OAAO,IAAI,kCAAkC,CAAI,KAAK,CAAC,CAAC;AAC1D,CAAC;AAFD,8DAEC"}
@@ -1,6 +1,6 @@
1
1
  import { DocumentReference, WriteResult as GoogleCloudWriteResult, DocumentSnapshot } from '@google-cloud/firestore';
2
2
  import { Observable } from 'rxjs';
3
- import { WithFieldValue, UpdateData, FirestoreDocumentContext, FirestoreDocumentDataAccessor, FirestoreDocumentDataAccessorFactory, FirestoreDocumentDeleteParams, FirestoreDocumentUpdateParams, SetOptions, FirestoreDataConverter, DocumentData } from '@dereekb/firebase';
3
+ import { WithFieldValue, UpdateData, FirestoreDocumentContext, FirestoreDocumentDataAccessor, FirestoreDocumentDataAccessorFactory, FirestoreDocumentDeleteParams, FirestoreDocumentUpdateParams, SetOptions, FirestoreDataConverter, DocumentData, FirestoreAccessorIncrementUpdate } from '@dereekb/firebase';
4
4
  export declare class DefaultFirestoreDocumentDataAccessor<T> implements FirestoreDocumentDataAccessor<T> {
5
5
  readonly documentRef: DocumentReference<T>;
6
6
  constructor(documentRef: DocumentReference<T>);
@@ -11,6 +11,7 @@ export declare class DefaultFirestoreDocumentDataAccessor<T> implements Firestor
11
11
  getWithConverter<U = DocumentData>(converter: null | FirestoreDataConverter<U>): Promise<DocumentSnapshot<U>>;
12
12
  delete(params: FirestoreDocumentDeleteParams): Promise<GoogleCloudWriteResult>;
13
13
  set(data: WithFieldValue<T>, options?: SetOptions): Promise<GoogleCloudWriteResult>;
14
+ increment(data: FirestoreAccessorIncrementUpdate<T>, params?: FirestoreDocumentUpdateParams): Promise<GoogleCloudWriteResult>;
14
15
  update(data: UpdateData<T>, params?: FirestoreDocumentUpdateParams): Promise<GoogleCloudWriteResult>;
15
16
  }
16
17
  export declare function defaultFirestoreAccessorFactory<T>(): FirestoreDocumentDataAccessorFactory<T>;
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.defaultFirestoreDocumentContext = exports.defaultFirestoreAccessorFactory = exports.DefaultFirestoreDocumentDataAccessor = void 0;
4
4
  const firebase_1 = require("@dereekb/firebase");
5
+ const increment_1 = require("./increment");
5
6
  // MARK: Accessor
6
7
  class DefaultFirestoreDocumentDataAccessor {
7
8
  constructor(documentRef) {
@@ -28,6 +29,9 @@ class DefaultFirestoreDocumentDataAccessor {
28
29
  set(data, options) {
29
30
  return options ? this.documentRef.set(data, options) : this.documentRef.set(data);
30
31
  }
32
+ increment(data, params) {
33
+ return this.update((0, increment_1.firestoreServerIncrementUpdateToUpdateData)(data), params);
34
+ }
31
35
  update(data, params) {
32
36
  return (params === null || params === void 0 ? void 0 : params.precondition) ? this.documentRef.update(data, params.precondition) : this.documentRef.update(data);
33
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"driver.accessor.default.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/lib/firestore/driver.accessor.default.ts"],"names":[],"mappings":";;;AAEA,gDAAkU;AAElU,iBAAiB;AACjB,MAAa,oCAAoC;IAC/C,YAAqB,WAAiC;QAAjC,gBAAW,GAAX,WAAW,CAAsB;IAAG,CAAC;IAE1D,MAAM;QACJ,OAAO,IAAA,+BAAoB,EAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAC7F,CAAC;IAED,MAAM,CAAC,IAAO;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,GAAG;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;IAChC,CAAC;IAED,gBAAgB,CAAmB,SAA2C;QAC5E,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAI,SAAsC,CAAC,CAAC,GAAG,EAAE,CAAC;IACzF,CAAC;IAED,MAAM,CAAC,MAAqC;QAC1C,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,CAAC,CAAC;IACvD,CAAC;IAED,GAAG,CAAC,IAAuB,EAAE,OAAoB;QAC/C,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAkB,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAS,CAAC,CAAC;IACvG,CAAC;IAED,MAAM,CAAC,IAAmB,EAAE,MAAsC;QAChE,OAAO,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,EAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAuC,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAuC,CAAC,CAAC;IACzL,CAAC;CACF;AAlCD,oFAkCC;AAED,SAAgB,+BAA+B;IAC7C,OAAO;QACL,WAAW,EAAE,CAAC,GAAyB,EAAE,EAAE,CAAC,IAAI,oCAAoC,CAAC,GAAG,CAAC;KAC1F,CAAC;AACJ,CAAC;AAJD,0EAIC;AAED,gBAAgB;AAChB,SAAgB,+BAA+B;IAC7C,OAAO;QACL,WAAW,EAAE,uCAA4B,CAAC,IAAI;QAC9C,eAAe,EAAE,+BAA+B,EAAK;KACtD,CAAC;AACJ,CAAC;AALD,0EAKC"}
1
+ {"version":3,"file":"driver.accessor.default.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/lib/firestore/driver.accessor.default.ts"],"names":[],"mappings":";;;AAEA,gDAAoW;AACpW,2CAAyE;AAEzE,iBAAiB;AACjB,MAAa,oCAAoC;IAC/C,YAAqB,WAAiC;QAAjC,gBAAW,GAAX,WAAW,CAAsB;IAAG,CAAC;IAE1D,MAAM;QACJ,OAAO,IAAA,+BAAoB,EAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAC7F,CAAC;IAED,MAAM,CAAC,IAAO;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,GAAG;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;IAChC,CAAC;IAED,gBAAgB,CAAmB,SAA2C;QAC5E,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAI,SAAsC,CAAC,CAAC,GAAG,EAAE,CAAC;IACzF,CAAC;IAED,MAAM,CAAC,MAAqC;QAC1C,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,CAAC,CAAC;IACvD,CAAC;IAED,GAAG,CAAC,IAAuB,EAAE,OAAoB;QAC/C,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAkB,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAS,CAAC,CAAC;IACvG,CAAC;IAED,SAAS,CAAC,IAAyC,EAAE,MAAsC;QACzF,OAAO,IAAI,CAAC,MAAM,CAAC,IAAA,sDAA0C,EAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;IAC/E,CAAC;IAED,MAAM,CAAC,IAAmB,EAAE,MAAsC;QAChE,OAAO,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,EAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAuC,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAuC,CAAC,CAAC;IACzL,CAAC;CACF;AAtCD,oFAsCC;AAED,SAAgB,+BAA+B;IAC7C,OAAO;QACL,WAAW,EAAE,CAAC,GAAyB,EAAE,EAAE,CAAC,IAAI,oCAAoC,CAAC,GAAG,CAAC;KAC1F,CAAC;AACJ,CAAC;AAJD,0EAIC;AAED,gBAAgB;AAChB,SAAgB,+BAA+B;IAC7C,OAAO;QACL,WAAW,EAAE,uCAA4B,CAAC,IAAI;QAC9C,eAAe,EAAE,+BAA+B,EAAK;KACtD,CAAC;AACJ,CAAC;AALD,0EAKC"}
@@ -1,6 +1,6 @@
1
1
  import { DocumentReference, DocumentSnapshot, Transaction as GoogleCloudTransaction, SetOptions } from '@google-cloud/firestore';
2
2
  import { Observable } from 'rxjs';
3
- import { WithFieldValue, UpdateData, FirestoreDocumentDataAccessor, FirestoreDocumentDataAccessorFactory, FirestoreDocumentContext, FirestoreDocumentContextType, FirestoreDocumentUpdateParams, FirestoreDataConverter, DocumentData } from '@dereekb/firebase';
3
+ import { WithFieldValue, UpdateData, FirestoreDocumentDataAccessor, FirestoreDocumentDataAccessorFactory, FirestoreDocumentContext, FirestoreDocumentContextType, FirestoreDocumentUpdateParams, FirestoreDataConverter, DocumentData, FirestoreAccessorIncrementUpdate } from '@dereekb/firebase';
4
4
  /**
5
5
  * FirestoreDocumentDataAccessor implementation for a transaction.
6
6
  */
@@ -15,6 +15,7 @@ export declare class TransactionFirestoreDocumentDataAccessor<T> implements Fire
15
15
  getWithConverter<U = DocumentData>(converter: null | FirestoreDataConverter<U>): Promise<DocumentSnapshot<U>>;
16
16
  delete(): Promise<void>;
17
17
  set(data: WithFieldValue<T>, options?: SetOptions): Promise<void>;
18
+ increment(data: FirestoreAccessorIncrementUpdate<T>, params?: FirestoreDocumentUpdateParams): Promise<void>;
18
19
  update(data: UpdateData<T>, params?: FirestoreDocumentUpdateParams): Promise<void>;
19
20
  }
20
21
  /**
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.transactionDocumentContext = exports.TransactionFirestoreDocumentContext = exports.transactionAccessorFactory = exports.TransactionFirestoreDocumentDataAccessor = void 0;
4
4
  const rxjs_1 = require("rxjs");
5
5
  const firebase_1 = require("@dereekb/firebase");
6
+ const increment_1 = require("./increment");
6
7
  // MARK: Accessor
7
8
  /**
8
9
  * FirestoreDocumentDataAccessor implementation for a transaction.
@@ -36,6 +37,9 @@ class TransactionFirestoreDocumentDataAccessor {
36
37
  this.transaction.set(this.documentRef, data, options);
37
38
  return Promise.resolve();
38
39
  }
40
+ increment(data, params) {
41
+ return this.update((0, increment_1.firestoreServerIncrementUpdateToUpdateData)(data), params);
42
+ }
39
43
  update(data, params) {
40
44
  if (params === null || params === void 0 ? void 0 : params.precondition) {
41
45
  this.transaction.update(this.documentRef, data, params === null || params === void 0 ? void 0 : params.precondition);
@@ -1 +1 @@
1
- {"version":3,"file":"driver.accessor.transaction.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/lib/firestore/driver.accessor.transaction.ts"],"names":[],"mappings":";;;AACA,+BAAwC;AACxC,gDAAiQ;AAEjQ,iBAAiB;AACjB;;GAEG;AACH,MAAa,wCAAwC;IACnD,YAAqB,WAAmC,EAAW,WAAiC;QAA/E,gBAAW,GAAX,WAAW,CAAwB;QAAW,gBAAW,GAAX,WAAW,CAAsB;IAAG,CAAC;IAExG,MAAM;QACJ,OAAO,IAAA,WAAI,EAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM,CAAC,IAAuB;QAC5B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAChD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,GAAG;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAChD,CAAC;IAED,gBAAgB,CAAmB,SAA2C;QAC5E,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAI,SAAsC,CAAC,CAAC,CAAC;IACzG,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1C,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,GAAG,CAAC,IAAuB,EAAE,OAAoB;QAC/C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,IAAkB,EAAE,OAAqB,CAAC,CAAC;QAClF,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,IAAmB,EAAE,MAAsC;QAChE,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,EAAE;YACxB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,IAAuC,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,CAAC,CAAC;SAC1G;aAAM;YACL,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,IAAuC,CAAC,CAAC;SACpF;QAED,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF;AA3CD,4FA2CC;AAED;;;;;GAKG;AACH,SAAgB,0BAA0B,CAAI,WAAmC;IAC/E,OAAO;QACL,WAAW,EAAE,CAAC,GAAyB,EAAE,EAAE,CAAC,IAAI,wCAAwC,CAAC,WAAW,EAAE,GAAG,CAAC;KAC3G,CAAC;AACJ,CAAC;AAJD,gEAIC;AAED,gBAAgB;AAChB,MAAa,mCAAmC;IAI9C,YAAqB,WAAmC;QAAnC,gBAAW,GAAX,WAAW,CAAwB;QAH/C,gBAAW,GAAG,uCAA4B,CAAC,WAAW,CAAC;QACvD,oBAAe,GAAG,0BAA0B,CAAI,IAAI,CAAC,WAAW,CAAC,CAAC;IAEhB,CAAC;CAC7D;AALD,kFAKC;AAED,SAAgB,0BAA0B,CAAI,WAAmC;IAC/E,OAAO,IAAI,mCAAmC,CAAI,WAAW,CAAC,CAAC;AACjE,CAAC;AAFD,gEAEC"}
1
+ {"version":3,"file":"driver.accessor.transaction.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/lib/firestore/driver.accessor.transaction.ts"],"names":[],"mappings":";;;AACA,+BAAwC;AACxC,gDAAmS;AACnS,2CAAyE;AAEzE,iBAAiB;AACjB;;GAEG;AACH,MAAa,wCAAwC;IACnD,YAAqB,WAAmC,EAAW,WAAiC;QAA/E,gBAAW,GAAX,WAAW,CAAwB;QAAW,gBAAW,GAAX,WAAW,CAAsB;IAAG,CAAC;IAExG,MAAM;QACJ,OAAO,IAAA,WAAI,EAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM,CAAC,IAAuB;QAC5B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAChD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,GAAG;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAChD,CAAC;IAED,gBAAgB,CAAmB,SAA2C;QAC5E,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAI,SAAsC,CAAC,CAAC,CAAC;IACzG,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1C,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,GAAG,CAAC,IAAuB,EAAE,OAAoB;QAC/C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,IAAkB,EAAE,OAAqB,CAAC,CAAC;QAClF,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,SAAS,CAAC,IAAyC,EAAE,MAAsC;QACzF,OAAO,IAAI,CAAC,MAAM,CAAC,IAAA,sDAA0C,EAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;IAC/E,CAAC;IAED,MAAM,CAAC,IAAmB,EAAE,MAAsC;QAChE,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,EAAE;YACxB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,IAAuC,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,CAAC,CAAC;SAC1G;aAAM;YACL,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,IAAuC,CAAC,CAAC;SACpF;QAED,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF;AA/CD,4FA+CC;AAED;;;;;GAKG;AACH,SAAgB,0BAA0B,CAAI,WAAmC;IAC/E,OAAO;QACL,WAAW,EAAE,CAAC,GAAyB,EAAE,EAAE,CAAC,IAAI,wCAAwC,CAAC,WAAW,EAAE,GAAG,CAAC;KAC3G,CAAC;AACJ,CAAC;AAJD,gEAIC;AAED,gBAAgB;AAChB,MAAa,mCAAmC;IAI9C,YAAqB,WAAmC;QAAnC,gBAAW,GAAX,WAAW,CAAwB;QAH/C,gBAAW,GAAG,uCAA4B,CAAC,WAAW,CAAC;QACvD,oBAAe,GAAG,0BAA0B,CAAI,IAAI,CAAC,WAAW,CAAC,CAAC;IAEhB,CAAC;CAC7D;AALD,kFAKC;AAED,SAAgB,0BAA0B,CAAI,WAAmC;IAC/E,OAAO,IAAI,mCAAmC,CAAI,WAAW,CAAC,CAAC;AACjE,CAAC;AAFD,gEAEC"}
@@ -0,0 +1,8 @@
1
+ import { UpdateData, FirestoreAccessorIncrementUpdate } from '@dereekb/firebase';
2
+ /**
3
+ * Creates UpdateData corresponding to the input increment update.
4
+ *
5
+ * @param input
6
+ * @returns
7
+ */
8
+ export declare function firestoreServerIncrementUpdateToUpdateData<T>(input: FirestoreAccessorIncrementUpdate<T>): UpdateData<T>;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.firestoreServerIncrementUpdateToUpdateData = void 0;
4
+ const util_1 = require("@dereekb/util");
5
+ const firestore_1 = require("@google-cloud/firestore");
6
+ /**
7
+ * Creates UpdateData corresponding to the input increment update.
8
+ *
9
+ * @param input
10
+ * @returns
11
+ */
12
+ function firestoreServerIncrementUpdateToUpdateData(input) {
13
+ return (0, util_1.mapObjectMap)(input, (incrementValue) => {
14
+ return firestore_1.FieldValue.increment(incrementValue !== null && incrementValue !== void 0 ? incrementValue : 0);
15
+ });
16
+ }
17
+ exports.firestoreServerIncrementUpdateToUpdateData = firestoreServerIncrementUpdateToUpdateData;
18
+ //# sourceMappingURL=increment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"increment.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/lib/firestore/increment.ts"],"names":[],"mappings":";;;AAAA,wCAA6C;AAC7C,uDAAqD;AAGrD;;;;;GAKG;AACH,SAAgB,0CAA0C,CAAI,KAA0C;IACtG,OAAO,IAAA,mBAAY,EAAC,KAAK,EAAE,CAAC,cAAc,EAAE,EAAE;QAC5C,OAAO,sBAAU,CAAC,SAAS,CAAC,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,CAAC,CAAC,CAAC;IACnD,CAAC,CAAkB,CAAC;AACtB,CAAC;AAJD,gGAIC"}
@@ -3,3 +3,4 @@ export * from './driver.accessor';
3
3
  export * from './driver.query';
4
4
  export * from './firestore';
5
5
  export * from './firestore.nest';
6
+ export * from './increment';
@@ -6,4 +6,5 @@ tslib_1.__exportStar(require("./driver.accessor"), exports);
6
6
  tslib_1.__exportStar(require("./driver.query"), exports);
7
7
  tslib_1.__exportStar(require("./firestore"), exports);
8
8
  tslib_1.__exportStar(require("./firestore.nest"), exports);
9
+ tslib_1.__exportStar(require("./increment"), exports);
9
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/lib/firestore/index.ts"],"names":[],"mappings":";;;AAAA,mDAAyB;AACzB,4DAAkC;AAClC,yDAA+B;AAC/B,sDAA4B;AAC5B,2DAAiC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/lib/firestore/index.ts"],"names":[],"mappings":";;;AAAA,mDAAyB;AACzB,4DAAkC;AAClC,yDAA+B;AAC/B,sDAA4B;AAC5B,2DAAiC;AACjC,sDAA4B"}
package/test/CHANGELOG.md CHANGED
@@ -2,6 +2,18 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ ## [8.15.2](https://github.com/dereekb/dbx-components/compare/v8.15.1-dev...v8.15.2) (2022-08-11)
6
+
7
+
8
+
9
+ ## [8.15.1](https://github.com/dereekb/dbx-components/compare/v8.15.0-dev...v8.15.1) (2022-08-11)
10
+
11
+
12
+
13
+ # [8.15.0](https://github.com/dereekb/dbx-components/compare/v8.14.0-dev...v8.15.0) (2022-08-09)
14
+
15
+
16
+
5
17
  # [8.14.0](https://github.com/dereekb/dbx-components/compare/v8.13.9-dev...v8.14.0) (2022-08-08)
6
18
 
7
19
 
package/test/package.json CHANGED
@@ -1,36 +1,36 @@
1
1
  {
2
2
  "name": "@dereekb/firebase-server/test",
3
- "version": "8.14.0",
3
+ "version": "8.15.2",
4
4
  "type": "commonjs",
5
5
  "main": "./src/index.js",
6
6
  "typings": "./src/index.d.ts",
7
7
  "dependencies": {},
8
8
  "peerDependencies": {
9
- "@dereekb/firebase": "8.14.0",
10
- "@dereekb/util": "8.14.0",
9
+ "@dereekb/firebase": "8.15.2",
10
+ "@dereekb/util": "8.15.2",
11
11
  "make-error": "^1.3.0",
12
12
  "ts-essentials": "^9.1.2",
13
13
  "extra-set": "^2.2.11",
14
14
  "rxjs": "^7.0.0",
15
15
  "firebase": "^9.8.0",
16
- "@dereekb/rxjs": "8.14.0",
16
+ "@dereekb/rxjs": "8.15.2",
17
17
  "ms": "^3.0.0-canary.1",
18
- "@dereekb/model": "8.14.0",
18
+ "@dereekb/model": "8.15.2",
19
19
  "class-transformer": "^0.5.1",
20
20
  "class-validator": "^0.13.2",
21
- "@dereekb/date": "8.14.0",
21
+ "@dereekb/date": "8.15.2",
22
22
  "date-fns": "^2.29.0",
23
23
  "date-fns-tz": "^1.3.0",
24
24
  "rrule": "git+https://git@github.com/dereekb/rrule#2b13b1ea881059ba2ecfec380e12ef244ef54570",
25
- "@dereekb/util/test": "8.14.0",
25
+ "@dereekb/util/test": "8.15.2",
26
26
  "firebase-admin": "^11.0.0",
27
27
  "jsonwebtoken": "^8.0.0",
28
28
  "firebase-functions": "^3.22.0",
29
29
  "@nestjs/common": "^8.4.0",
30
30
  "@google-cloud/firestore": "^5.0.2",
31
- "@dereekb/firebase/test": "8.14.0",
32
- "@dereekb/firebase-server": "8.14.0",
33
- "@dereekb/nestjs": "8.14.0",
31
+ "@dereekb/firebase/test": "8.15.2",
32
+ "@dereekb/firebase-server": "8.15.2",
33
+ "@dereekb/nestjs": "8.15.2",
34
34
  "@nestjs/config": "^2.0.1",
35
35
  "@nestjs/core": "^8.4.0",
36
36
  "@nestjs/platform-express": "^8.4.0",