@dereekb/firebase-server 3.0.0

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 (138) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +7 -0
  3. package/package.json +34 -0
  4. package/src/index.d.ts +2 -0
  5. package/src/index.js +6 -0
  6. package/src/index.js.map +1 -0
  7. package/src/lib/auth/auth.nest.d.ts +28 -0
  8. package/src/lib/auth/auth.nest.js +56 -0
  9. package/src/lib/auth/auth.nest.js.map +1 -0
  10. package/src/lib/auth/auth.service.d.ts +161 -0
  11. package/src/lib/auth/auth.service.js +125 -0
  12. package/src/lib/auth/auth.service.js.map +1 -0
  13. package/src/lib/auth/auth.user.d.ts +0 -0
  14. package/src/lib/auth/auth.user.js +2 -0
  15. package/src/lib/auth/auth.user.js.map +1 -0
  16. package/src/lib/auth/index.d.ts +2 -0
  17. package/src/lib/auth/index.js +7 -0
  18. package/src/lib/auth/index.js.map +1 -0
  19. package/src/lib/firebase/firebase.nest.d.ts +7 -0
  20. package/src/lib/firebase/firebase.nest.js +17 -0
  21. package/src/lib/firebase/firebase.nest.js.map +1 -0
  22. package/src/lib/firebase/index.d.ts +1 -0
  23. package/src/lib/firebase/index.js +5 -0
  24. package/src/lib/firebase/index.js.map +1 -0
  25. package/src/lib/firestore/driver.accessor.batch.d.ts +31 -0
  26. package/src/lib/firestore/driver.accessor.batch.js +65 -0
  27. package/src/lib/firestore/driver.accessor.batch.js.map +1 -0
  28. package/src/lib/firestore/driver.accessor.d.ts +11 -0
  29. package/src/lib/firestore/driver.accessor.default.d.ts +15 -0
  30. package/src/lib/firestore/driver.accessor.default.js +45 -0
  31. package/src/lib/firestore/driver.accessor.default.js.map +1 -0
  32. package/src/lib/firestore/driver.accessor.js +53 -0
  33. package/src/lib/firestore/driver.accessor.js.map +1 -0
  34. package/src/lib/firestore/driver.accessor.transaction.d.ts +31 -0
  35. package/src/lib/firestore/driver.accessor.transaction.js +64 -0
  36. package/src/lib/firestore/driver.accessor.transaction.js.map +1 -0
  37. package/src/lib/firestore/driver.d.ts +4 -0
  38. package/src/lib/firestore/driver.js +15 -0
  39. package/src/lib/firestore/driver.js.map +1 -0
  40. package/src/lib/firestore/driver.query.d.ts +6 -0
  41. package/src/lib/firestore/driver.query.js +40 -0
  42. package/src/lib/firestore/driver.query.js.map +1 -0
  43. package/src/lib/firestore/firestore.d.ts +5 -0
  44. package/src/lib/firestore/firestore.js +10 -0
  45. package/src/lib/firestore/firestore.js.map +1 -0
  46. package/src/lib/firestore/firestore.nest.d.ts +44 -0
  47. package/src/lib/firestore/firestore.nest.js +81 -0
  48. package/src/lib/firestore/firestore.nest.js.map +1 -0
  49. package/src/lib/firestore/index.d.ts +5 -0
  50. package/src/lib/firestore/index.js +9 -0
  51. package/src/lib/firestore/index.js.map +1 -0
  52. package/src/lib/function/assert.d.ts +2 -0
  53. package/src/lib/function/assert.js +12 -0
  54. package/src/lib/function/assert.js.map +1 -0
  55. package/src/lib/function/context.d.ts +4 -0
  56. package/src/lib/function/context.js +16 -0
  57. package/src/lib/function/context.js.map +1 -0
  58. package/src/lib/function/error.d.ts +4 -0
  59. package/src/lib/function/error.js +17 -0
  60. package/src/lib/function/error.js.map +1 -0
  61. package/src/lib/function/index.d.ts +4 -0
  62. package/src/lib/function/index.js +8 -0
  63. package/src/lib/function/index.js.map +1 -0
  64. package/src/lib/function/type.d.ts +5 -0
  65. package/src/lib/function/type.js +3 -0
  66. package/src/lib/function/type.js.map +1 -0
  67. package/src/lib/index.d.ts +5 -0
  68. package/src/lib/index.js +9 -0
  69. package/src/lib/index.js.map +1 -0
  70. package/src/lib/nest/app.d.ts +36 -0
  71. package/src/lib/nest/app.js +71 -0
  72. package/src/lib/nest/app.js.map +1 -0
  73. package/src/lib/nest/function/context.d.ts +12 -0
  74. package/src/lib/nest/function/context.js +12 -0
  75. package/src/lib/nest/function/context.js.map +1 -0
  76. package/src/lib/nest/function/index.d.ts +4 -0
  77. package/src/lib/nest/function/index.js +8 -0
  78. package/src/lib/nest/function/index.js.map +1 -0
  79. package/src/lib/nest/function/nest.d.ts +91 -0
  80. package/src/lib/nest/function/nest.js +74 -0
  81. package/src/lib/nest/function/nest.js.map +1 -0
  82. package/src/lib/nest/function/nest.utility.d.ts +10 -0
  83. package/src/lib/nest/function/nest.utility.js +23 -0
  84. package/src/lib/nest/function/nest.utility.js.map +1 -0
  85. package/src/lib/nest/function/transform.d.ts +10 -0
  86. package/src/lib/nest/function/transform.js +27 -0
  87. package/src/lib/nest/function/transform.js.map +1 -0
  88. package/src/lib/nest/index.d.ts +2 -0
  89. package/src/lib/nest/index.js +6 -0
  90. package/src/lib/nest/index.js.map +1 -0
  91. package/src/test/firebase/firebase.admin.auth.d.ts +132 -0
  92. package/src/test/firebase/firebase.admin.auth.js +168 -0
  93. package/src/test/firebase/firebase.admin.auth.js.map +1 -0
  94. package/src/test/firebase/firebase.admin.collection.d.ts +57 -0
  95. package/src/test/firebase/firebase.admin.collection.js +61 -0
  96. package/src/test/firebase/firebase.admin.collection.js.map +1 -0
  97. package/src/test/firebase/firebase.admin.d.ts +73 -0
  98. package/src/test/firebase/firebase.admin.function.d.ts +46 -0
  99. package/src/test/firebase/firebase.admin.function.js +116 -0
  100. package/src/test/firebase/firebase.admin.function.js.map +1 -0
  101. package/src/test/firebase/firebase.admin.js +142 -0
  102. package/src/test/firebase/firebase.admin.js.map +1 -0
  103. package/src/test/firebase/firebase.admin.nest.d.ts +62 -0
  104. package/src/test/firebase/firebase.admin.nest.function.context.d.ts +22 -0
  105. package/src/test/firebase/firebase.admin.nest.function.context.js +35 -0
  106. package/src/test/firebase/firebase.admin.nest.function.context.js.map +1 -0
  107. package/src/test/firebase/firebase.admin.nest.function.d.ts +25 -0
  108. package/src/test/firebase/firebase.admin.nest.function.js +50 -0
  109. package/src/test/firebase/firebase.admin.nest.function.js.map +1 -0
  110. package/src/test/firebase/firebase.admin.nest.js +86 -0
  111. package/src/test/firebase/firebase.admin.nest.js.map +1 -0
  112. package/src/test/firebase/firebase.admin.test.server.d.ts +3 -0
  113. package/src/test/firebase/firebase.admin.test.server.js +39 -0
  114. package/src/test/firebase/firebase.admin.test.server.js.map +1 -0
  115. package/src/test/firebase/firebase.d.ts +30 -0
  116. package/src/test/firebase/firebase.js +76 -0
  117. package/src/test/firebase/firebase.js.map +1 -0
  118. package/src/test/firebase/index.d.ts +8 -0
  119. package/src/test/firebase/index.js +12 -0
  120. package/src/test/firebase/index.js.map +1 -0
  121. package/src/test/firestore/firestore.admin.d.ts +9 -0
  122. package/src/test/firestore/firestore.admin.js +14 -0
  123. package/src/test/firestore/firestore.admin.js.map +1 -0
  124. package/src/test/firestore/firestore.d.ts +22 -0
  125. package/src/test/firestore/firestore.fixture.admin.d.ts +6 -0
  126. package/src/test/firestore/firestore.fixture.admin.js +12 -0
  127. package/src/test/firestore/firestore.fixture.admin.js.map +1 -0
  128. package/src/test/firestore/firestore.js +57 -0
  129. package/src/test/firestore/firestore.js.map +1 -0
  130. package/src/test/firestore/index.d.ts +2 -0
  131. package/src/test/firestore/index.js +7 -0
  132. package/src/test/firestore/index.js.map +1 -0
  133. package/src/test/index.d.ts +2 -0
  134. package/src/test/index.js +6 -0
  135. package/src/test/index.js.map +1 -0
  136. package/test-setup.d.ts +0 -0
  137. package/test-setup.js +6 -0
  138. package/test-setup.js.map +1 -0
@@ -0,0 +1,15 @@
1
+ import { DocumentReference, WriteResult as GoogleCloudWriteResult, DocumentSnapshot } from "@google-cloud/firestore";
2
+ import { Observable } from "rxjs";
3
+ import { WithFieldValue, UpdateData, FirestoreDocumentContext, FirestoreDocumentDataAccessor, FirestoreDocumentDataAccessorFactory, FirestoreDocumentDeleteParams, FirestoreDocumentUpdateParams, SetOptions } from "@dereekb/firebase";
4
+ export declare class DefaultFirestoreDocumentDataAccessor<T> implements FirestoreDocumentDataAccessor<T> {
5
+ readonly documentRef: DocumentReference<T>;
6
+ constructor(documentRef: DocumentReference<T>);
7
+ stream(): Observable<DocumentSnapshot<T>>;
8
+ exists(): Promise<boolean>;
9
+ get(): Promise<DocumentSnapshot<T>>;
10
+ delete(params: FirestoreDocumentDeleteParams): Promise<GoogleCloudWriteResult>;
11
+ set(data: WithFieldValue<T>, options?: SetOptions): Promise<GoogleCloudWriteResult>;
12
+ update(data: UpdateData<T>, params?: FirestoreDocumentUpdateParams): Promise<GoogleCloudWriteResult>;
13
+ }
14
+ export declare function defaultFirestoreAccessorFactory<T>(): FirestoreDocumentDataAccessorFactory<T>;
15
+ export declare function defaultFirestoreDocumentContext<T>(): FirestoreDocumentContext<T>;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defaultFirestoreDocumentContext = exports.defaultFirestoreAccessorFactory = exports.DefaultFirestoreDocumentDataAccessor = void 0;
4
+ const firebase_1 = require("@dereekb/firebase");
5
+ // MARK: Accessor
6
+ class DefaultFirestoreDocumentDataAccessor {
7
+ constructor(documentRef) {
8
+ this.documentRef = documentRef;
9
+ }
10
+ stream() {
11
+ return (0, firebase_1.streamFromOnSnapshot)(({ next, error }) => this.documentRef.onSnapshot(next, error));
12
+ }
13
+ exists() {
14
+ return this.get().then(x => x.exists);
15
+ }
16
+ get() {
17
+ return this.documentRef.get();
18
+ }
19
+ delete(params) {
20
+ return this.documentRef.delete(params === null || params === void 0 ? void 0 : params.precondition);
21
+ }
22
+ set(data, options) {
23
+ return (options) ? this.documentRef.set(data, options) : this.documentRef.set(data);
24
+ }
25
+ update(data, params) {
26
+ var _a;
27
+ return this.documentRef.update(data, (_a = params === null || params === void 0 ? void 0 : params.precondition) !== null && _a !== void 0 ? _a : {});
28
+ }
29
+ }
30
+ exports.DefaultFirestoreDocumentDataAccessor = DefaultFirestoreDocumentDataAccessor;
31
+ function defaultFirestoreAccessorFactory() {
32
+ return {
33
+ accessorFor: (ref) => new DefaultFirestoreDocumentDataAccessor(ref)
34
+ };
35
+ }
36
+ exports.defaultFirestoreAccessorFactory = defaultFirestoreAccessorFactory;
37
+ // MARK: Context
38
+ function defaultFirestoreDocumentContext() {
39
+ return {
40
+ contextType: firebase_1.FirestoreDocumentContextType.NONE,
41
+ accessorFactory: defaultFirestoreAccessorFactory()
42
+ };
43
+ }
44
+ exports.defaultFirestoreDocumentContext = defaultFirestoreDocumentContext;
45
+ //# sourceMappingURL=driver.accessor.default.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"driver.accessor.default.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/lib/firestore/driver.accessor.default.ts"],"names":[],"mappings":";;;AAEA,gDAAyS;AAEzS,iBAAiB;AACjB,MAAa,oCAAoC;IAE/C,YAAqB,WAAiC;QAAjC,gBAAW,GAAX,WAAW,CAAsB;IAAI,CAAC;IAE3D,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;QACJ,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,GAAG;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;IAChC,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,CAAC,OAAO,CAAC,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;IACzG,CAAC;IAED,MAAM,CAAC,IAAmB,EAAE,MAAsC;;QAChE,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAW,EAAE,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,mCAAI,EAAE,CAAC,CAAC;IAC1E,CAAC;CAEF;AA5BD,oFA4BC;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,CAAA;AACH,CAAC;AALD,0EAKC"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.firestoreClientAccessorDriver = exports.docRefForPath = exports.collectionRefForPath = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const util_1 = require("@dereekb/util");
6
+ const driver_accessor_batch_1 = require("./driver.accessor.batch");
7
+ const driver_accessor_default_1 = require("./driver.accessor.default");
8
+ const driver_accessor_transaction_1 = require("./driver.accessor.transaction");
9
+ ;
10
+ ;
11
+ ;
12
+ function collectionRefForPath(start, path, pathSegments) {
13
+ let ref = start.collection(path);
14
+ if (pathSegments === null || pathSegments === void 0 ? void 0 : pathSegments.length) {
15
+ if ((pathSegments === null || pathSegments === void 0 ? void 0 : pathSegments.length) % 2 !== 0) {
16
+ throw new Error(`Invalid number of path segments provided for collection. Path: "${path}" + "${pathSegments}"`);
17
+ }
18
+ const batches = (0, util_1.batch)(pathSegments, 2);
19
+ batches.forEach((x) => {
20
+ const [first, second] = x;
21
+ ref = ref.doc(first).collection(second);
22
+ });
23
+ }
24
+ return ref;
25
+ }
26
+ exports.collectionRefForPath = collectionRefForPath;
27
+ function docRefForPath(start, path, pathSegments) {
28
+ let doc = ((path) ? start.doc(path) : start.doc());
29
+ if (pathSegments === null || pathSegments === void 0 ? void 0 : pathSegments.length) {
30
+ const batches = (0, util_1.batch)(pathSegments, 2);
31
+ batches.forEach((x) => {
32
+ const [first, second] = x;
33
+ const collection = doc.collection(first);
34
+ doc = (second) ? collection.doc(second) : collection.doc();
35
+ });
36
+ }
37
+ return doc;
38
+ }
39
+ exports.docRefForPath = docRefForPath;
40
+ function firestoreClientAccessorDriver() {
41
+ return {
42
+ doc: (collection, path, ...pathSegments) => docRefForPath(collection, path, pathSegments),
43
+ collection: (firestore, path, ...pathSegments) => collectionRefForPath(firestore, path, pathSegments),
44
+ subcollection: (document, path, ...pathSegments) => collectionRefForPath(document, path, pathSegments),
45
+ transactionFactoryForFirestore: (firestore) => (fn) => tslib_1.__awaiter(this, void 0, void 0, function* () { return yield firestore.runTransaction(fn); }),
46
+ writeBatchFactoryForFirestore: (firestore) => () => firestore.batch(),
47
+ defaultContextFactory: driver_accessor_default_1.defaultFirestoreDocumentContext,
48
+ transactionContextFactory: driver_accessor_transaction_1.transactionDocumentContext,
49
+ writeBatchContextFactory: driver_accessor_batch_1.writeBatchDocumentContext
50
+ };
51
+ }
52
+ exports.firestoreClientAccessorDriver = firestoreClientAccessorDriver;
53
+ //# sourceMappingURL=driver.accessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"driver.accessor.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/lib/firestore/driver.accessor.ts"],"names":[],"mappings":";;;;AACA,wCAAsC;AAEtC,mEAAoE;AACpE,uEAA4E;AAC5E,+EAA2E;AAEF,CAAC;AACe,CAAC;AACO,CAAC;AAElG,SAAgB,oBAAoB,CAAI,KAAgC,EAAE,IAAY,EAAE,YAAuB;IAC7G,IAAI,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAEjC,IAAI,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,MAAM,EAAE;QACxB,IAAI,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,MAAM,IAAG,CAAC,KAAK,CAAC,EAAE;YAClC,MAAM,IAAI,KAAK,CAAC,mEAAmE,IAAI,QAAQ,YAAY,GAAG,CAAC,CAAC;SACjH;QAED,MAAM,OAAO,GAAG,IAAA,YAAK,EAAC,YAAY,EAAE,CAAC,CAAuB,CAAC;QAE7D,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACpB,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;YAC1B,GAAG,GAAI,GAA+B,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;KACJ;IAED,OAAO,GAA6B,CAAC;AACvC,CAAC;AAjBD,oDAiBC;AAED,SAAgB,aAAa,CAAI,KAAyB,EAAE,IAAa,EAAE,YAAuB;IAChG,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,KAAwC,CAAC,GAAG,EAAE,CAAiC,CAAC;IAEvH,IAAI,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,MAAM,EAAE;QACxB,MAAM,OAAO,GAAG,IAAA,YAAK,EAAC,YAAY,EAAE,CAAC,CAAuB,CAAC;QAE7D,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACpB,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;YAC1B,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACzC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;QAC7D,CAAC,CAAC,CAAC;KAEJ;IAED,OAAO,GAA2B,CAAC;AACrC,CAAC;AAfD,sCAeC;AAED,SAAgB,6BAA6B;IAC3C,OAAO;QACL,GAAG,EAAE,CAAI,UAAkC,EAAE,IAAa,EAAE,GAAG,YAAsB,EAAE,EAAE,CAAC,aAAa,CAAC,UAA4C,EAAE,IAAI,EAAE,YAAY,CAAyB;QACjM,UAAU,EAAE,CAAI,SAAoB,EAAE,IAAY,EAAE,GAAG,YAAsB,EAAE,EAAE,CAAC,oBAAoB,CAAE,SAAkC,EAAE,IAAI,EAAE,YAAY,CAA2B;QACzL,aAAa,EAAE,CAAI,QAA2B,EAAE,IAAY,EAAE,GAAG,YAAsB,EAAE,EAAE,CAAC,oBAAoB,CAAE,QAAyC,EAAE,IAAI,EAAE,YAAY,CAA2B;QAC1M,8BAA8B,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,CAAU,EAA0B,EAAE,EAAE,wDAAC,OAAA,MAAO,SAAkC,CAAC,cAAc,CAAC,EAAE,CAAC,CAAA,GAAA;QACpJ,6BAA6B,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,EAAE,CAAE,SAAkC,CAAC,KAAK,EAAE;QAC/F,qBAAqB,EAAE,yDAA+B;QACtD,yBAAyB,EAAE,wDAAiC;QAC5D,wBAAwB,EAAE,iDAAgC;KAC3D,CAAC;AACJ,CAAC;AAXD,sEAWC"}
@@ -0,0 +1,31 @@
1
+ import { DocumentReference, DocumentSnapshot, Transaction as GoogleCloudTransaction, SetOptions } from "@google-cloud/firestore";
2
+ import { Observable } from "rxjs";
3
+ import { WithFieldValue, UpdateData, FirestoreDocumentDataAccessor, FirestoreDocumentDataAccessorFactory, FirestoreDocumentContext, FirestoreDocumentContextType, FirestoreDocumentUpdateParams } from "@dereekb/firebase";
4
+ /**
5
+ * FirestoreDocumentDataAccessor implementation for a transaction.
6
+ */
7
+ export declare class TransactionFirestoreDocumentDataAccessor<T> implements FirestoreDocumentDataAccessor<T> {
8
+ readonly transaction: GoogleCloudTransaction;
9
+ readonly documentRef: DocumentReference<T>;
10
+ constructor(transaction: GoogleCloudTransaction, documentRef: DocumentReference<T>);
11
+ stream(): Observable<DocumentSnapshot<T>>;
12
+ exists(): Promise<boolean>;
13
+ get(): Promise<DocumentSnapshot<T>>;
14
+ delete(): Promise<void>;
15
+ set(data: WithFieldValue<T>, options?: SetOptions): Promise<void>;
16
+ update(data: UpdateData<T>, params?: FirestoreDocumentUpdateParams): Promise<void>;
17
+ }
18
+ /**
19
+ * Creates a new FirestoreDocumentDataAccessorFactory for a Transaction.
20
+ *
21
+ * @param transaction
22
+ * @returns
23
+ */
24
+ export declare function transactionAccessorFactory<T>(transaction: GoogleCloudTransaction): FirestoreDocumentDataAccessorFactory<T>;
25
+ export declare class TransactionFirestoreDocumentContext<T> implements FirestoreDocumentContext<T> {
26
+ readonly transaction: GoogleCloudTransaction;
27
+ readonly contextType = FirestoreDocumentContextType.TRANSACTION;
28
+ readonly accessorFactory: FirestoreDocumentDataAccessorFactory<T>;
29
+ constructor(transaction: GoogleCloudTransaction);
30
+ }
31
+ export declare function transactionDocumentContext<T>(transaction: GoogleCloudTransaction): TransactionFirestoreDocumentContext<T>;
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.transactionDocumentContext = exports.TransactionFirestoreDocumentContext = exports.transactionAccessorFactory = exports.TransactionFirestoreDocumentDataAccessor = void 0;
4
+ const rxjs_1 = require("rxjs");
5
+ const firebase_1 = require("@dereekb/firebase");
6
+ // MARK: Accessor
7
+ /**
8
+ * FirestoreDocumentDataAccessor implementation for a transaction.
9
+ */
10
+ class TransactionFirestoreDocumentDataAccessor {
11
+ constructor(transaction, documentRef) {
12
+ this.transaction = transaction;
13
+ this.documentRef = documentRef;
14
+ }
15
+ stream() {
16
+ return (0, rxjs_1.from)(this.get());
17
+ }
18
+ exists() {
19
+ return this.get().then(x => x.exists);
20
+ }
21
+ get() {
22
+ return this.transaction.get(this.documentRef);
23
+ }
24
+ delete() {
25
+ this.transaction.delete(this.documentRef);
26
+ return Promise.resolve();
27
+ }
28
+ set(data, options) {
29
+ this.transaction.set(this.documentRef, data, options);
30
+ return Promise.resolve();
31
+ }
32
+ update(data, params) {
33
+ var _a;
34
+ this.transaction.update(this.documentRef, data, (_a = params === null || params === void 0 ? void 0 : params.precondition) !== null && _a !== void 0 ? _a : {});
35
+ return Promise.resolve();
36
+ }
37
+ }
38
+ exports.TransactionFirestoreDocumentDataAccessor = TransactionFirestoreDocumentDataAccessor;
39
+ /**
40
+ * Creates a new FirestoreDocumentDataAccessorFactory for a Transaction.
41
+ *
42
+ * @param transaction
43
+ * @returns
44
+ */
45
+ function transactionAccessorFactory(transaction) {
46
+ return {
47
+ accessorFor: (ref) => new TransactionFirestoreDocumentDataAccessor(transaction, ref)
48
+ };
49
+ }
50
+ exports.transactionAccessorFactory = transactionAccessorFactory;
51
+ // MARK: Context
52
+ class TransactionFirestoreDocumentContext {
53
+ constructor(transaction) {
54
+ this.transaction = transaction;
55
+ this.contextType = firebase_1.FirestoreDocumentContextType.TRANSACTION;
56
+ this.accessorFactory = transactionAccessorFactory(this.transaction);
57
+ }
58
+ }
59
+ exports.TransactionFirestoreDocumentContext = TransactionFirestoreDocumentContext;
60
+ function transactionDocumentContext(transaction) {
61
+ return new TransactionFirestoreDocumentContext(transaction);
62
+ }
63
+ exports.transactionDocumentContext = transactionDocumentContext;
64
+ //# sourceMappingURL=driver.accessor.transaction.js.map
@@ -0,0 +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,gDAA2N;AAE3N,iBAAiB;AACjB;;GAEG;AACH,MAAa,wCAAwC;IAEnD,YAAqB,WAAmC,EAAW,WAAiC;QAA/E,gBAAW,GAAX,WAAW,CAAwB;QAAW,gBAAW,GAAX,WAAW,CAAsB;IAAI,CAAC;IAEzG,MAAM;QACJ,OAAO,IAAA,WAAI,EAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,GAAG;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAChD,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,IAAW,EAAE,OAAqB,CAAC,CAAC;QAC3E,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,IAAmB,EAAE,MAAsC;;QAChE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,IAAW,EAAE,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,mCAAI,EAAE,CAAC,CAAC;QACnF,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CAEF;AA/BD,4FA+BC;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;IAK9C,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;IAEf,CAAC;CAE9D;AAPD,kFAOC;AAED,SAAgB,0BAA0B,CAAI,WAAmC;IAC/E,OAAO,IAAI,mCAAmC,CAAI,WAAW,CAAC,CAAC;AACjE,CAAC;AAFD,gEAEC"}
@@ -0,0 +1,4 @@
1
+ import { FirestoreDrivers } from '@dereekb/firebase';
2
+ export interface GoogleCloudFirestoreDrivers extends FirestoreDrivers {
3
+ }
4
+ export declare function googleCloudFirestoreDrivers(): GoogleCloudFirestoreDrivers;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.googleCloudFirestoreDrivers = void 0;
4
+ const driver_accessor_1 = require("./driver.accessor");
5
+ const driver_query_1 = require("./driver.query");
6
+ function googleCloudFirestoreDrivers() {
7
+ return {
8
+ driverIdentifier: '@google-cloud/firestore',
9
+ driverType: 'production',
10
+ firestoreAccessorDriver: (0, driver_accessor_1.firestoreClientAccessorDriver)(),
11
+ firestoreQueryDriver: (0, driver_query_1.firestoreClientQueryDriver)()
12
+ };
13
+ }
14
+ exports.googleCloudFirestoreDrivers = googleCloudFirestoreDrivers;
15
+ //# sourceMappingURL=driver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"driver.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/lib/firestore/driver.ts"],"names":[],"mappings":";;;AACA,uDAAkE;AAClE,iDAA4D;AAI5D,SAAgB,2BAA2B;IACzC,OAAO;QACL,gBAAgB,EAAE,yBAAyB;QAC3C,UAAU,EAAE,YAAY;QACxB,uBAAuB,EAAE,IAAA,+CAA6B,GAAE;QACxD,oBAAoB,EAAE,IAAA,yCAA0B,GAAE;KACnD,CAAC;AACJ,CAAC;AAPD,kEAOC"}
@@ -0,0 +1,6 @@
1
+ import { Query as GoogleCloudQuery } from "@google-cloud/firestore";
2
+ import { FullFirestoreQueryConstraintHandlersMapping, FirestoreQueryConstraintFunctionsDriver, FirestoreQueryDriver } from "@dereekb/firebase";
3
+ export declare type FirestoreServerQueryBuilder<T = any> = GoogleCloudQuery<T>;
4
+ export declare const FIRESTORE_CLIENT_QUERY_CONSTRAINT_HANDLER_MAPPING: FullFirestoreQueryConstraintHandlersMapping<FirestoreServerQueryBuilder>;
5
+ export declare function firestoreClientQueryConstraintFunctionsDriver(): FirestoreQueryConstraintFunctionsDriver;
6
+ export declare function firestoreClientQueryDriver(): FirestoreQueryDriver;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.firestoreClientQueryDriver = exports.firestoreClientQueryConstraintFunctionsDriver = exports.FIRESTORE_CLIENT_QUERY_CONSTRAINT_HANDLER_MAPPING = void 0;
4
+ const firebase_1 = require("@dereekb/firebase");
5
+ exports.FIRESTORE_CLIENT_QUERY_CONSTRAINT_HANDLER_MAPPING = {
6
+ [firebase_1.FIRESTORE_LIMIT_QUERY_CONSTRAINT_TYPE]: (builder, data) => builder.limit(data.limit),
7
+ [firebase_1.FIRESTORE_LIMIT_TO_LAST_QUERY_CONSTRAINT_TYPE]: (builder, data) => builder.limitToLast(data.limit),
8
+ [firebase_1.FIRESTORE_ORDER_BY_QUERY_CONSTRAINT_TYPE]: (builder, data) => builder.orderBy(data.fieldPath, data.directionStr),
9
+ [firebase_1.FIRESTORE_WHERE_QUERY_CONSTRAINT_TYPE]: (builder, data) => builder.where(data.fieldPath, data.opStr, data.value),
10
+ [firebase_1.FIRESTORE_OFFSET_QUERY_CONSTRAINT_TYPE]: (builder, data) => builder.offset(data.offset),
11
+ [firebase_1.FIRESTORE_START_AT_QUERY_CONSTRAINT_TYPE]: (builder, data) => builder.startAt(data.snapshot),
12
+ [firebase_1.FIRESTORE_START_AFTER_QUERY_CONSTRAINT_TYPE]: (builder, data) => builder.startAfter(data.snapshot),
13
+ [firebase_1.FIRESTORE_END_AT_QUERY_CONSTRAINT_TYPE]: (builder, data) => builder.endAt(data.snapshot),
14
+ [firebase_1.FIRESTORE_END_BEFORE_QUERY_CONSTRAINT_TYPE]: (builder, data) => builder.endBefore(data.snapshot)
15
+ };
16
+ function firestoreClientQueryConstraintFunctionsDriver() {
17
+ return (0, firebase_1.makeFirestoreQueryConstraintFunctionsDriver)({
18
+ mapping: exports.FIRESTORE_CLIENT_QUERY_CONSTRAINT_HANDLER_MAPPING,
19
+ init: (query) => query,
20
+ build: (query) => query
21
+ });
22
+ }
23
+ exports.firestoreClientQueryConstraintFunctionsDriver = firestoreClientQueryConstraintFunctionsDriver;
24
+ function firestoreClientQueryDriver() {
25
+ return Object.assign(Object.assign({}, firestoreClientQueryConstraintFunctionsDriver()), { getDocs(query, transaction) {
26
+ let result;
27
+ if (transaction) {
28
+ result = transaction.get(query);
29
+ }
30
+ else {
31
+ result = query.get();
32
+ }
33
+ return result;
34
+ },
35
+ streamDocs(query) {
36
+ return (0, firebase_1.streamFromOnSnapshot)(({ next, error }) => query.onSnapshot(next, error));
37
+ } });
38
+ }
39
+ exports.firestoreClientQueryDriver = firestoreClientQueryDriver;
40
+ //# sourceMappingURL=driver.query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"driver.query.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/lib/firestore/driver.query.ts"],"names":[],"mappings":";;;AACA,gDAA+mB;AAIlmB,QAAA,iDAAiD,GAA6E;IACzI,CAAC,gDAAqC,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;IACrF,CAAC,wDAA6C,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;IACnG,CAAC,mDAAwC,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC;IACjH,CAAC,gDAAqC,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC;IACjH,CAAC,iDAAsC,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;IACxF,CAAC,mDAAwC,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAA4B,CAAC;IACjH,CAAC,sDAA2C,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,QAA4B,CAAC;IACvH,CAAC,iDAAsC,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,QAA4B,CAAC;IAC7G,CAAC,qDAA0C,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,QAA4B,CAAC;CACtH,CAAC;AAEF,SAAgB,6CAA6C;IAC3D,OAAO,IAAA,sDAA2C,EAA8B;QAC9E,OAAO,EAAE,yDAAiD;QAC1D,IAAI,EAAE,CAAI,KAAe,EAAE,EAAE,CAAC,KAAuC;QACrE,KAAK,EAAE,CAAI,KAAqC,EAAE,EAAE,CAAC,KAAK;KAC3D,CAAC,CAAC;AACL,CAAC;AAND,sGAMC;AAED,SAAgB,0BAA0B;IACxC,uCACK,6CAA6C,EAAE,KAClD,OAAO,CAAI,KAAe,EAAE,WAAyB;YACnD,IAAI,MAAiC,CAAC;YAEtC,IAAI,WAAW,EAAE;gBACf,MAAM,GAAI,WAAsC,CAAC,GAAG,CAAC,KAA4B,CAAC,CAAC;aACpF;iBAAM;gBACL,MAAM,GAAI,KAAwC,CAAC,GAAG,EAAE,CAAC;aAC1D;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,UAAU,CAAI,KAAe;YAC3B,OAAO,IAAA,+BAAoB,EAAmB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAE,KAAwC,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;QACvI,CAAC,IACD;AACJ,CAAC;AAlBD,gEAkBC"}
@@ -0,0 +1,5 @@
1
+ import { FirestoreContextFactory } from '@dereekb/firebase';
2
+ /**
3
+ * Creates a FirestoreContextFactory that uses the @firebase/firebase package.
4
+ */
5
+ export declare const googleCloudFirestoreContextFactory: FirestoreContextFactory;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.googleCloudFirestoreContextFactory = void 0;
4
+ const firebase_1 = require("@dereekb/firebase");
5
+ const driver_1 = require("./driver");
6
+ /**
7
+ * Creates a FirestoreContextFactory that uses the @firebase/firebase package.
8
+ */
9
+ exports.googleCloudFirestoreContextFactory = (0, firebase_1.firestoreContextFactory)((0, driver_1.googleCloudFirestoreDrivers)());
10
+ //# sourceMappingURL=firestore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"firestore.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/lib/firestore/firestore.ts"],"names":[],"mappings":";;;AAAA,gDAAqF;AACrF,qCAAuD;AAEvD;;GAEG;AACU,QAAA,kCAAkC,GAA4B,IAAA,kCAAuB,EAAC,IAAA,oCAA2B,GAAE,CAAC,CAAC"}
@@ -0,0 +1,44 @@
1
+ import { InjectionToken, ModuleMetadata, Provider } from "@nestjs/common";
2
+ import { FirestoreContext } from '@dereekb/firebase';
3
+ import { ClassLikeType } from '@dereekb/util';
4
+ /**
5
+ * Token to access the Firestore.
6
+ */
7
+ export declare const FIREBASE_FIRESTORE_TOKEN: InjectionToken;
8
+ /**
9
+ * Token to access the root FirestoreContext for a server.
10
+ */
11
+ export declare const FIREBASE_FIRESTORE_CONTEXT_TOKEN: InjectionToken;
12
+ /**
13
+ * Nest provider module for Firebase that provides a firestore, etc. from the firestore token.
14
+ */
15
+ export declare class FirebaseServerFirestoreModule {
16
+ }
17
+ /**
18
+ * Nest provider module for firebase that includes the FirebaseServerFirestoreModule and provides a value for FIRESTORE_CONTEXT_TOKEN using the googleCloudFirestoreContextFactory.
19
+ */
20
+ export declare class FirebaseServerFirestoreContextModule {
21
+ }
22
+ export declare type ProvideAppFirestoreCollectionsFactory<T> = (context: FirestoreContext) => T;
23
+ export interface ProvideAppFirestoreCollectionsConfig<T> {
24
+ provide: ClassLikeType<T>;
25
+ useFactory: ProvideAppFirestoreCollectionsFactory<T>;
26
+ }
27
+ /**
28
+ * Used to configure a Nestjs provider for a FirestoreCollections-type object that is initialized with a FirestoreContext.
29
+ *
30
+ * @param type
31
+ * @param useFactory
32
+ * @returns
33
+ */
34
+ export declare function provideAppFirestoreCollections<T>({ provide, useFactory }: ProvideAppFirestoreCollectionsConfig<T>): [Provider<T>];
35
+ export interface ProvideAppFirestoreModuleMetadataConfig<T> extends ProvideAppFirestoreCollectionsConfig<T>, Pick<ModuleMetadata, 'imports' | 'exports' | 'providers'> {
36
+ }
37
+ /**
38
+ * Convenience function used to generate ModuleMetadata for an app's Firestore related modules and an appFirestoreCollection
39
+ *
40
+ * @param provide
41
+ * @param useFactory
42
+ * @returns
43
+ */
44
+ export declare function appFirestoreModuleMetadata<T>(config: ProvideAppFirestoreModuleMetadataConfig<T>): ModuleMetadata;
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.appFirestoreModuleMetadata = exports.provideAppFirestoreCollections = exports.FirebaseServerFirestoreContextModule = exports.FirebaseServerFirestoreModule = exports.FIREBASE_FIRESTORE_CONTEXT_TOKEN = exports.FIREBASE_FIRESTORE_TOKEN = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ const firestore_1 = require("../firestore/firestore");
7
+ const firebase_nest_1 = require("../firebase/firebase.nest");
8
+ // MARK: Tokens
9
+ /**
10
+ * Token to access the Firestore.
11
+ */
12
+ exports.FIREBASE_FIRESTORE_TOKEN = 'FIREBASE_FIRESTORE_TOKEN';
13
+ /**
14
+ * Token to access the root FirestoreContext for a server.
15
+ */
16
+ exports.FIREBASE_FIRESTORE_CONTEXT_TOKEN = 'FIREBASE_FIRESTORE_CONTEXT_TOKEN';
17
+ /**
18
+ * Nest provider module for Firebase that provides a firestore, etc. from the firestore token.
19
+ */
20
+ let FirebaseServerFirestoreModule = class FirebaseServerFirestoreModule {
21
+ };
22
+ FirebaseServerFirestoreModule = tslib_1.__decorate([
23
+ (0, common_1.Module)({
24
+ providers: [{
25
+ provide: exports.FIREBASE_FIRESTORE_TOKEN,
26
+ useFactory: (app) => app.firestore(),
27
+ inject: [firebase_nest_1.FIREBASE_APP_TOKEN]
28
+ }],
29
+ exports: [exports.FIREBASE_FIRESTORE_TOKEN]
30
+ })
31
+ ], FirebaseServerFirestoreModule);
32
+ exports.FirebaseServerFirestoreModule = FirebaseServerFirestoreModule;
33
+ /**
34
+ * Nest provider module for firebase that includes the FirebaseServerFirestoreModule and provides a value for FIRESTORE_CONTEXT_TOKEN using the googleCloudFirestoreContextFactory.
35
+ */
36
+ let FirebaseServerFirestoreContextModule = class FirebaseServerFirestoreContextModule {
37
+ };
38
+ FirebaseServerFirestoreContextModule = tslib_1.__decorate([
39
+ (0, common_1.Module)({
40
+ imports: [FirebaseServerFirestoreModule],
41
+ providers: [{
42
+ provide: exports.FIREBASE_FIRESTORE_CONTEXT_TOKEN,
43
+ useFactory: firestore_1.googleCloudFirestoreContextFactory,
44
+ inject: [exports.FIREBASE_FIRESTORE_TOKEN]
45
+ }],
46
+ exports: [FirebaseServerFirestoreModule, exports.FIREBASE_FIRESTORE_CONTEXT_TOKEN]
47
+ })
48
+ ], FirebaseServerFirestoreContextModule);
49
+ exports.FirebaseServerFirestoreContextModule = FirebaseServerFirestoreContextModule;
50
+ /**
51
+ * Used to configure a Nestjs provider for a FirestoreCollections-type object that is initialized with a FirestoreContext.
52
+ *
53
+ * @param type
54
+ * @param useFactory
55
+ * @returns
56
+ */
57
+ function provideAppFirestoreCollections({ provide, useFactory }) {
58
+ return [{
59
+ provide,
60
+ useFactory,
61
+ inject: [exports.FIREBASE_FIRESTORE_CONTEXT_TOKEN]
62
+ }];
63
+ }
64
+ exports.provideAppFirestoreCollections = provideAppFirestoreCollections;
65
+ /**
66
+ * Convenience function used to generate ModuleMetadata for an app's Firestore related modules and an appFirestoreCollection
67
+ *
68
+ * @param provide
69
+ * @param useFactory
70
+ * @returns
71
+ */
72
+ function appFirestoreModuleMetadata(config) {
73
+ var _a, _b, _c;
74
+ return {
75
+ imports: [FirebaseServerFirestoreContextModule, ...((_a = config.imports) !== null && _a !== void 0 ? _a : [])],
76
+ exports: [FirebaseServerFirestoreContextModule, config.provide, ...((_b = config.exports) !== null && _b !== void 0 ? _b : [])],
77
+ providers: [...provideAppFirestoreCollections(config), ...((_c = config.providers) !== null && _c !== void 0 ? _c : [])]
78
+ };
79
+ }
80
+ exports.appFirestoreModuleMetadata = appFirestoreModuleMetadata;
81
+ //# sourceMappingURL=firestore.nest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"firestore.nest.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/lib/firestore/firestore.nest.ts"],"names":[],"mappings":";;;;AACA,2CAAkF;AAGlF,sDAA4E;AAC5E,6DAA+D;AAE/D,eAAe;AACf;;GAEG;AACU,QAAA,wBAAwB,GAAmB,0BAA0B,CAAC;AAEnF;;GAEG;AACU,QAAA,gCAAgC,GAAmB,kCAAkC,CAAC;AAEnG;;GAEG;AASH,IAAa,6BAA6B,GAA1C,MAAa,6BAA6B;CAAI,CAAA;AAAjC,6BAA6B;IARzC,IAAA,eAAM,EAAC;QACN,SAAS,EAAE,CAAC;gBACV,OAAO,EAAE,gCAAwB;gBACjC,UAAU,EAAE,CAAC,GAAkB,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE;gBACnD,MAAM,EAAE,CAAC,kCAAkB,CAAC;aAC7B,CAAC;QACF,OAAO,EAAE,CAAC,gCAAwB,CAAC;KACpC,CAAC;GACW,6BAA6B,CAAI;AAAjC,sEAA6B;AAE1C;;GAEG;AAUH,IAAa,oCAAoC,GAAjD,MAAa,oCAAoC;CAAI,CAAA;AAAxC,oCAAoC;IAThD,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,6BAA6B,CAAC;QACxC,SAAS,EAAE,CAAC;gBACV,OAAO,EAAE,wCAAgC;gBACzC,UAAU,EAAE,8CAAkC;gBAC9C,MAAM,EAAE,CAAC,gCAAwB,CAAC;aACnC,CAAC;QACF,OAAO,EAAE,CAAC,6BAA6B,EAAE,wCAAgC,CAAC;KAC3E,CAAC;GACW,oCAAoC,CAAI;AAAxC,oFAAoC;AAUjD;;;;;;GAMG;AACH,SAAgB,8BAA8B,CAAI,EAAE,OAAO,EAAE,UAAU,EAA2C;IAChH,OAAO,CAAC;YACN,OAAO;YACP,UAAU;YACV,MAAM,EAAE,CAAC,wCAAgC,CAAC;SAC3C,CAAC,CAAC;AACL,CAAC;AAND,wEAMC;AAKD;;;;;;GAMG;AACH,SAAgB,0BAA0B,CAAI,MAAkD;;IAC9F,OAAO;QACL,OAAO,EAAE,CAAC,oCAAoC,EAAE,GAAG,CAAC,MAAA,MAAM,CAAC,OAAO,mCAAI,EAAE,CAAC,CAAC;QAC1E,OAAO,EAAE,CAAC,oCAAoC,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,MAAA,MAAM,CAAC,OAAO,mCAAI,EAAE,CAAC,CAAC;QAC1F,SAAS,EAAE,CAAC,GAAG,8BAA8B,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,MAAA,MAAM,CAAC,SAAS,mCAAI,EAAE,CAAC,CAAC;KACpF,CAAC;AACJ,CAAC;AAND,gEAMC"}
@@ -0,0 +1,5 @@
1
+ export * from './driver';
2
+ export * from './driver.accessor';
3
+ export * from './driver.query';
4
+ export * from './firestore';
5
+ export * from './firestore.nest';
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./driver"), exports);
5
+ tslib_1.__exportStar(require("./driver.accessor"), exports);
6
+ tslib_1.__exportStar(require("./driver.query"), exports);
7
+ tslib_1.__exportStar(require("./firestore"), exports);
8
+ tslib_1.__exportStar(require("./firestore.nest"), exports);
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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"}
@@ -0,0 +1,2 @@
1
+ import * as functions from 'firebase-functions';
2
+ export declare function assertContextHasAuth(context: functions.https.CallableContext): void;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assertContextHasAuth = void 0;
4
+ const context_1 = require("./context");
5
+ const error_1 = require("./error");
6
+ function assertContextHasAuth(context) {
7
+ if (!(0, context_1.isContextWithAuthData)(context)) {
8
+ throw (0, error_1.unauthenticatedContextHasNoUidError)();
9
+ }
10
+ }
11
+ exports.assertContextHasAuth = assertContextHasAuth;
12
+ //# sourceMappingURL=assert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assert.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/lib/function/assert.ts"],"names":[],"mappings":";;;AACA,uCAAkD;AAClD,mCAA8D;AAE9D,SAAgB,oBAAoB,CAAC,OAAwC;IAC3E,IAAI,CAAC,IAAA,+BAAqB,EAAC,OAAO,CAAC,EAAE;QACnC,MAAM,IAAA,2CAAmC,GAAE,CAAC;KAC7C;AACH,CAAC;AAJD,oDAIC"}
@@ -0,0 +1,4 @@
1
+ import * as functions from 'firebase-functions';
2
+ export declare type CallableContextWithAuthData = Omit<functions.https.CallableContext, 'auth'> & Required<Pick<functions.https.CallableContext, 'auth'>>;
3
+ export declare function isContextWithAuthData(context: functions.https.CallableContext): context is CallableContextWithAuthData;
4
+ export declare function assertIsContextWithAuthData(context: functions.https.CallableContext): asserts context is CallableContextWithAuthData;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assertIsContextWithAuthData = exports.isContextWithAuthData = void 0;
4
+ const error_1 = require("./error");
5
+ function isContextWithAuthData(context) {
6
+ var _a;
7
+ return Boolean((context.auth) !== null && ((_a = context.auth) === null || _a === void 0 ? void 0 : _a.uid));
8
+ }
9
+ exports.isContextWithAuthData = isContextWithAuthData;
10
+ function assertIsContextWithAuthData(context) {
11
+ if (!isContextWithAuthData(context)) {
12
+ throw (0, error_1.unauthenticatedContextHasNoAuthData)();
13
+ }
14
+ }
15
+ exports.assertIsContextWithAuthData = assertIsContextWithAuthData;
16
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/lib/function/context.ts"],"names":[],"mappings":";;;AACA,mCAA8D;AAI9D,SAAgB,qBAAqB,CAAC,OAAwC;;IAC5E,OAAO,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,KAAI,MAAA,OAAO,CAAC,IAAI,0CAAE,GAAG,CAAA,CAAC,CAAC;AAC/D,CAAC;AAFD,sDAEC;AAED,SAAgB,2BAA2B,CAAC,OAAwC;IAClF,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE;QACnC,MAAM,IAAA,2CAAmC,GAAE,CAAC;KAC7C;AACH,CAAC;AAJD,kEAIC"}
@@ -0,0 +1,4 @@
1
+ import * as functions from 'firebase-functions';
2
+ export declare function unauthenticatedContextHasNoAuthData(): functions.auth.HttpsError;
3
+ export declare function unauthenticatedContextHasNoUidError(): functions.auth.HttpsError;
4
+ export declare function preconditionConflictError(message: string): functions.auth.HttpsError;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.preconditionConflictError = exports.unauthenticatedContextHasNoUidError = exports.unauthenticatedContextHasNoAuthData = void 0;
4
+ const functions = require("firebase-functions");
5
+ function unauthenticatedContextHasNoAuthData() {
6
+ return new functions.https.HttpsError('unauthenticated', 'expected authentication');
7
+ }
8
+ exports.unauthenticatedContextHasNoAuthData = unauthenticatedContextHasNoAuthData;
9
+ function unauthenticatedContextHasNoUidError() {
10
+ return new functions.https.HttpsError('unauthenticated', 'User has no uid.');
11
+ }
12
+ exports.unauthenticatedContextHasNoUidError = unauthenticatedContextHasNoUidError;
13
+ function preconditionConflictError(message) {
14
+ return new functions.https.HttpsError('failed-precondition', message);
15
+ }
16
+ exports.preconditionConflictError = preconditionConflictError;
17
+ //# sourceMappingURL=error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/lib/function/error.ts"],"names":[],"mappings":";;;AAAA,gDAAgD;AAEhD,SAAgB,mCAAmC;IACjD,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,iBAAiB,EAAE,yBAAyB,CAAC,CAAC;AACtF,CAAC;AAFD,kFAEC;AAED,SAAgB,mCAAmC;IACjD,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,CAAC;AAC/E,CAAC;AAFD,kFAEC;AAED,SAAgB,yBAAyB,CAAC,OAAe;IACvD,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;AACxE,CAAC;AAFD,8DAEC"}
@@ -0,0 +1,4 @@
1
+ export * from './context';
2
+ export * from './assert';
3
+ export * from './error';
4
+ export * from './type';
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./context"), exports);
5
+ tslib_1.__exportStar(require("./assert"), exports);
6
+ tslib_1.__exportStar(require("./error"), exports);
7
+ tslib_1.__exportStar(require("./type"), exports);
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/lib/function/index.ts"],"names":[],"mappings":";;;AAAA,oDAA0B;AAC1B,mDAAyB;AACzB,kDAAwB;AACxB,iDAAuB"}
@@ -0,0 +1,5 @@
1
+ import { HttpsFunction, Runnable } from "firebase-functions";
2
+ /**
3
+ * Union of firebase-functions HttpsFunction and Runnable
4
+ */
5
+ export declare type RunnableHttpFunction<I> = HttpsFunction & Runnable<I>;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.js","sourceRoot":"","sources":["../../../../../../packages/firebase-server/src/lib/function/type.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ export * from './auth';
2
+ export * from './firebase';
3
+ export * from './firestore';
4
+ export * from './function';
5
+ export * from './nest';
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./auth"), exports);
5
+ tslib_1.__exportStar(require("./firebase"), exports);
6
+ tslib_1.__exportStar(require("./firestore"), exports);
7
+ tslib_1.__exportStar(require("./function"), exports);
8
+ tslib_1.__exportStar(require("./nest"), exports);
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/firebase-server/src/lib/index.ts"],"names":[],"mappings":";;;AAAA,iDAAuB;AACvB,qDAA2B;AAC3B,sDAA4B;AAC5B,qDAA2B;AAC3B,iDAAuB"}