@dereekb/firebase 1.2.0 → 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 (255) hide show
  1. package/CHANGELOG.md +45 -2
  2. package/README.md +1 -1
  3. package/package.json +18 -8
  4. package/src/index.js +2 -2
  5. package/src/index.js.map +1 -1
  6. package/src/lib/client/firestore/driver.accessor.batch.d.ts +31 -0
  7. package/src/lib/{firestore/accessor.batch.js → client/firestore/driver.accessor.batch.js} +22 -4
  8. package/src/lib/client/firestore/driver.accessor.batch.js.map +1 -0
  9. package/src/lib/client/firestore/driver.accessor.d.ts +2 -0
  10. package/src/lib/{firestore/accessor.default.d.ts → client/firestore/driver.accessor.default.d.ts} +4 -11
  11. package/src/lib/{firestore/accessor.default.js → client/firestore/driver.accessor.default.js} +17 -13
  12. package/src/lib/client/firestore/driver.accessor.default.js.map +1 -0
  13. package/src/lib/client/firestore/driver.accessor.js +23 -0
  14. package/src/lib/client/firestore/driver.accessor.js.map +1 -0
  15. package/src/lib/client/firestore/driver.accessor.transaction.d.ts +31 -0
  16. package/src/lib/{firestore/accessor.transaction.js → client/firestore/driver.accessor.transaction.js} +22 -4
  17. package/src/lib/client/firestore/driver.accessor.transaction.js.map +1 -0
  18. package/src/lib/client/firestore/driver.d.ts +4 -0
  19. package/src/lib/client/firestore/driver.js +15 -0
  20. package/src/lib/client/firestore/driver.js.map +1 -0
  21. package/src/lib/client/firestore/driver.query.d.ts +13 -0
  22. package/src/lib/client/firestore/driver.query.js +47 -0
  23. package/src/lib/client/firestore/driver.query.js.map +1 -0
  24. package/src/lib/client/firestore/firestore.d.ts +5 -0
  25. package/src/lib/client/firestore/firestore.js +10 -0
  26. package/src/lib/client/firestore/firestore.js.map +1 -0
  27. package/src/lib/client/firestore/index.d.ts +4 -0
  28. package/src/lib/client/firestore/index.js +8 -0
  29. package/src/lib/client/firestore/index.js.map +1 -0
  30. package/src/lib/client/function/function.d.ts +28 -0
  31. package/src/lib/client/function/function.factory.d.ts +40 -0
  32. package/src/lib/client/function/function.factory.js +36 -0
  33. package/src/lib/client/function/function.factory.js.map +1 -0
  34. package/src/lib/client/function/function.js +3 -0
  35. package/src/lib/client/function/function.js.map +1 -0
  36. package/src/lib/client/function/index.d.ts +2 -0
  37. package/src/lib/client/function/index.js +6 -0
  38. package/src/lib/client/function/index.js.map +1 -0
  39. package/src/lib/client/index.d.ts +2 -0
  40. package/src/lib/client/index.js +6 -0
  41. package/src/lib/client/index.js.map +1 -0
  42. package/src/lib/common/auth/auth.d.ts +4 -0
  43. package/src/lib/common/auth/auth.js +3 -0
  44. package/src/lib/common/auth/auth.js.map +1 -0
  45. package/src/lib/common/auth/index.d.ts +1 -0
  46. package/src/lib/common/auth/index.js +5 -0
  47. package/src/lib/common/auth/index.js.map +1 -0
  48. package/src/lib/common/firestore/accessor/accessor.batch.d.ts +3 -0
  49. package/src/lib/common/firestore/accessor/accessor.batch.js +3 -0
  50. package/src/lib/common/firestore/accessor/accessor.batch.js.map +1 -0
  51. package/src/lib/common/firestore/accessor/accessor.d.ts +87 -0
  52. package/src/lib/common/firestore/accessor/accessor.default.d.ts +2 -0
  53. package/src/lib/common/firestore/accessor/accessor.default.js +3 -0
  54. package/src/lib/common/firestore/accessor/accessor.default.js.map +1 -0
  55. package/src/lib/{firestore → common/firestore/accessor}/accessor.js +17 -1
  56. package/src/lib/common/firestore/accessor/accessor.js.map +1 -0
  57. package/src/lib/common/firestore/accessor/accessor.transaction.d.ts +3 -0
  58. package/src/lib/common/firestore/accessor/accessor.transaction.js +3 -0
  59. package/src/lib/common/firestore/accessor/accessor.transaction.js.map +1 -0
  60. package/src/lib/common/firestore/accessor/context.batch.d.ts +7 -0
  61. package/src/lib/common/firestore/accessor/context.batch.js +3 -0
  62. package/src/lib/common/firestore/accessor/context.batch.js.map +1 -0
  63. package/src/lib/{firestore → common/firestore/accessor}/context.d.ts +0 -0
  64. package/src/lib/common/firestore/accessor/context.default.d.ts +5 -0
  65. package/src/lib/common/firestore/accessor/context.default.js +3 -0
  66. package/src/lib/common/firestore/accessor/context.default.js.map +1 -0
  67. package/src/lib/{firestore → common/firestore/accessor}/context.js +0 -0
  68. package/src/lib/common/firestore/accessor/context.js.map +1 -0
  69. package/src/lib/common/firestore/accessor/context.transaction.d.ts +7 -0
  70. package/src/lib/common/firestore/accessor/context.transaction.js +3 -0
  71. package/src/lib/common/firestore/accessor/context.transaction.js.map +1 -0
  72. package/src/lib/common/firestore/accessor/document.d.ts +121 -0
  73. package/src/lib/common/firestore/accessor/document.js +106 -0
  74. package/src/lib/common/firestore/accessor/document.js.map +1 -0
  75. package/src/lib/common/firestore/accessor/document.utility.d.ts +43 -0
  76. package/src/lib/common/firestore/accessor/document.utility.js +74 -0
  77. package/src/lib/common/firestore/accessor/document.utility.js.map +1 -0
  78. package/src/lib/{firestore → common/firestore/accessor}/index.d.ts +3 -5
  79. package/src/lib/common/firestore/accessor/index.js +14 -0
  80. package/src/lib/common/firestore/accessor/index.js.map +1 -0
  81. package/src/lib/common/firestore/collection/collection.d.ts +27 -0
  82. package/src/lib/common/firestore/collection/collection.js +26 -0
  83. package/src/lib/common/firestore/collection/collection.js.map +1 -0
  84. package/src/lib/common/firestore/collection/collection.query.d.ts +36 -0
  85. package/src/lib/common/firestore/collection/collection.query.js +27 -0
  86. package/src/lib/common/firestore/collection/collection.query.js.map +1 -0
  87. package/src/lib/common/firestore/collection/index.d.ts +3 -0
  88. package/src/lib/common/firestore/collection/index.js +7 -0
  89. package/src/lib/common/firestore/collection/index.js.map +1 -0
  90. package/src/lib/common/firestore/collection/subcollection.d.ts +25 -0
  91. package/src/lib/common/firestore/collection/subcollection.js +14 -0
  92. package/src/lib/common/firestore/collection/subcollection.js.map +1 -0
  93. package/src/lib/common/firestore/collection/subcollection.single.d.ts +12 -0
  94. package/src/lib/common/firestore/collection/subcollection.single.js +14 -0
  95. package/src/lib/common/firestore/collection/subcollection.single.js.map +1 -0
  96. package/src/lib/common/firestore/context.d.ts +36 -0
  97. package/src/lib/common/firestore/context.js +36 -0
  98. package/src/lib/common/firestore/context.js.map +1 -0
  99. package/src/lib/common/firestore/driver/accessor.d.ts +26 -0
  100. package/src/lib/common/firestore/driver/accessor.js +3 -0
  101. package/src/lib/common/firestore/driver/accessor.js.map +1 -0
  102. package/src/lib/common/firestore/driver/batch.d.ts +22 -0
  103. package/src/lib/common/firestore/driver/batch.js +3 -0
  104. package/src/lib/common/firestore/driver/batch.js.map +1 -0
  105. package/src/lib/common/firestore/driver/driver.d.ts +11 -0
  106. package/src/lib/common/firestore/driver/driver.js +3 -0
  107. package/src/lib/common/firestore/driver/driver.js.map +1 -0
  108. package/src/lib/common/firestore/driver/index.d.ts +6 -0
  109. package/src/lib/common/firestore/driver/index.js +10 -0
  110. package/src/lib/common/firestore/driver/index.js.map +1 -0
  111. package/src/lib/common/firestore/driver/query.d.ts +31 -0
  112. package/src/lib/common/firestore/driver/query.handler.d.ts +9 -0
  113. package/src/lib/common/firestore/driver/query.handler.js +26 -0
  114. package/src/lib/common/firestore/driver/query.handler.js.map +1 -0
  115. package/src/lib/common/firestore/driver/query.js +3 -0
  116. package/src/lib/common/firestore/driver/query.js.map +1 -0
  117. package/src/lib/common/firestore/driver/transaction.d.ts +23 -0
  118. package/src/lib/common/firestore/driver/transaction.js +3 -0
  119. package/src/lib/common/firestore/driver/transaction.js.map +1 -0
  120. package/src/lib/common/firestore/index.d.ts +8 -0
  121. package/src/lib/common/firestore/index.js +12 -0
  122. package/src/lib/common/firestore/index.js.map +1 -0
  123. package/src/lib/common/firestore/query/accumulator.d.ts +24 -0
  124. package/src/lib/common/firestore/query/accumulator.js +22 -0
  125. package/src/lib/common/firestore/query/accumulator.js.map +1 -0
  126. package/src/lib/common/firestore/query/constraint.d.ts +112 -0
  127. package/src/lib/common/firestore/query/constraint.js +133 -0
  128. package/src/lib/common/firestore/query/constraint.js.map +1 -0
  129. package/src/lib/common/firestore/query/index.d.ts +6 -0
  130. package/src/lib/common/firestore/query/index.js +10 -0
  131. package/src/lib/common/firestore/query/index.js.map +1 -0
  132. package/src/lib/{firestore → common/firestore/query}/iterator.d.ts +37 -11
  133. package/src/lib/common/firestore/query/iterator.js +108 -0
  134. package/src/lib/common/firestore/query/iterator.js.map +1 -0
  135. package/src/lib/common/firestore/query/query.d.ts +49 -0
  136. package/src/lib/common/firestore/query/query.js +37 -0
  137. package/src/lib/common/firestore/query/query.js.map +1 -0
  138. package/src/lib/common/firestore/query/query.util.d.ts +16 -0
  139. package/src/lib/common/firestore/query/query.util.js +27 -0
  140. package/src/lib/common/firestore/query/query.util.js.map +1 -0
  141. package/src/lib/common/firestore/query/watcher.d.ts +34 -0
  142. package/src/lib/common/firestore/query/watcher.js +58 -0
  143. package/src/lib/common/firestore/query/watcher.js.map +1 -0
  144. package/src/lib/common/firestore/reference.d.ts +20 -0
  145. package/src/lib/{firestore → common/firestore}/reference.js +0 -0
  146. package/src/lib/common/firestore/reference.js.map +1 -0
  147. package/src/lib/common/firestore/snapshot/index.d.ts +2 -0
  148. package/src/lib/common/firestore/snapshot/index.js +6 -0
  149. package/src/lib/common/firestore/snapshot/index.js.map +1 -0
  150. package/src/lib/common/firestore/snapshot/snapshot.d.ts +13 -0
  151. package/src/lib/common/firestore/snapshot/snapshot.field.d.ts +25 -0
  152. package/src/lib/common/firestore/snapshot/snapshot.field.js +57 -0
  153. package/src/lib/common/firestore/snapshot/snapshot.field.js.map +1 -0
  154. package/src/lib/common/firestore/snapshot/snapshot.js +35 -0
  155. package/src/lib/common/firestore/snapshot/snapshot.js.map +1 -0
  156. package/src/lib/common/firestore/types.d.ts +145 -0
  157. package/src/lib/common/firestore/types.js +23 -0
  158. package/src/lib/common/firestore/types.js.map +1 -0
  159. package/src/lib/common/function/action.d.ts +3 -0
  160. package/src/lib/common/function/action.js +3 -0
  161. package/src/lib/common/function/action.js.map +1 -0
  162. package/src/lib/common/function/index.d.ts +1 -0
  163. package/src/lib/common/function/index.js +5 -0
  164. package/src/lib/common/function/index.js.map +1 -0
  165. package/src/lib/common/index.d.ts +3 -0
  166. package/src/lib/common/index.js +7 -0
  167. package/src/lib/common/index.js.map +1 -0
  168. package/src/lib/index.d.ts +3 -1
  169. package/src/lib/index.js +3 -1
  170. package/src/lib/index.js.map +1 -1
  171. package/src/lib/model/index.d.ts +1 -0
  172. package/src/lib/model/index.js +5 -0
  173. package/src/lib/model/index.js.map +1 -0
  174. package/src/lib/model/user.d.ts +12 -0
  175. package/src/lib/model/user.js +3 -0
  176. package/src/lib/model/user.js.map +1 -0
  177. package/src/test/client/firestore.authorized.d.ts +5 -0
  178. package/src/test/{firebase.context.js → client/firestore.authorized.js} +4 -4
  179. package/src/test/client/firestore.authorized.js.map +1 -0
  180. package/src/test/client/firestore.d.ts +39 -0
  181. package/src/test/client/firestore.js +91 -0
  182. package/src/test/client/firestore.js.map +1 -0
  183. package/src/test/client/firestore.mock.item.fixture.authorized.d.ts +6 -0
  184. package/src/test/client/firestore.mock.item.fixture.authorized.js +12 -0
  185. package/src/test/client/firestore.mock.item.fixture.authorized.js.map +1 -0
  186. package/src/test/client/index.d.ts +3 -0
  187. package/src/test/client/index.js +7 -0
  188. package/src/test/client/index.js.map +1 -0
  189. package/src/test/common/firestore.d.ts +35 -0
  190. package/src/test/common/firestore.js +50 -0
  191. package/src/test/common/firestore.js.map +1 -0
  192. package/src/test/common/firestore.mock.d.ts +14 -0
  193. package/src/test/common/firestore.mock.item.d.ts +95 -0
  194. package/src/test/common/firestore.mock.item.fixture.d.ts +21 -0
  195. package/src/test/common/firestore.mock.item.fixture.js +43 -0
  196. package/src/test/common/firestore.mock.item.fixture.js.map +1 -0
  197. package/src/test/common/firestore.mock.item.js +138 -0
  198. package/src/test/common/firestore.mock.item.js.map +1 -0
  199. package/src/test/common/firestore.mock.item.query.d.ts +3 -0
  200. package/src/test/common/firestore.mock.item.query.js +13 -0
  201. package/src/test/common/firestore.mock.item.query.js.map +1 -0
  202. package/src/test/common/firestore.mock.js +29 -0
  203. package/src/test/common/firestore.mock.js.map +1 -0
  204. package/src/test/common/index.d.ts +8 -0
  205. package/src/test/common/index.js +12 -0
  206. package/src/test/common/index.js.map +1 -0
  207. package/src/test/common/test.driver.accessor.d.ts +20 -0
  208. package/src/test/common/test.driver.accessor.js +278 -0
  209. package/src/test/common/test.driver.accessor.js.map +1 -0
  210. package/src/test/common/test.driver.query.d.ts +7 -0
  211. package/src/test/common/test.driver.query.js +190 -0
  212. package/src/test/common/test.driver.query.js.map +1 -0
  213. package/src/test/common/test.iterator.d.ts +7 -0
  214. package/src/test/common/test.iterator.js +223 -0
  215. package/src/test/common/test.iterator.js.map +1 -0
  216. package/src/test/index.d.ts +2 -3
  217. package/src/test/index.js +2 -3
  218. package/src/test/index.js.map +1 -1
  219. package/src/lib/firestore/accessor.batch.d.ts +0 -23
  220. package/src/lib/firestore/accessor.batch.js.map +0 -1
  221. package/src/lib/firestore/accessor.d.ts +0 -62
  222. package/src/lib/firestore/accessor.default.js.map +0 -1
  223. package/src/lib/firestore/accessor.js.map +0 -1
  224. package/src/lib/firestore/accessor.transaction.d.ts +0 -23
  225. package/src/lib/firestore/accessor.transaction.js.map +0 -1
  226. package/src/lib/firestore/context.batch.d.ts +0 -9
  227. package/src/lib/firestore/context.batch.js +0 -19
  228. package/src/lib/firestore/context.batch.js.map +0 -1
  229. package/src/lib/firestore/context.default.d.ts +0 -2
  230. package/src/lib/firestore/context.default.js +0 -13
  231. package/src/lib/firestore/context.default.js.map +0 -1
  232. package/src/lib/firestore/context.js.map +0 -1
  233. package/src/lib/firestore/context.transaction.d.ts +0 -9
  234. package/src/lib/firestore/context.transaction.js +0 -19
  235. package/src/lib/firestore/context.transaction.js.map +0 -1
  236. package/src/lib/firestore/document.d.ts +0 -69
  237. package/src/lib/firestore/document.js +0 -49
  238. package/src/lib/firestore/document.js.map +0 -1
  239. package/src/lib/firestore/firestore.d.ts +0 -29
  240. package/src/lib/firestore/firestore.js +0 -37
  241. package/src/lib/firestore/firestore.js.map +0 -1
  242. package/src/lib/firestore/index.js +0 -16
  243. package/src/lib/firestore/index.js.map +0 -1
  244. package/src/lib/firestore/iterator.js +0 -91
  245. package/src/lib/firestore/iterator.js.map +0 -1
  246. package/src/lib/firestore/reference.d.ts +0 -13
  247. package/src/lib/firestore/reference.js.map +0 -1
  248. package/src/test/firebase.context.d.ts +0 -5
  249. package/src/test/firebase.context.item.d.ts +0 -41
  250. package/src/test/firebase.context.item.js +0 -75
  251. package/src/test/firebase.context.item.js.map +0 -1
  252. package/src/test/firebase.context.js.map +0 -1
  253. package/src/test/firebase.d.ts +0 -29
  254. package/src/test/firebase.js +0 -67
  255. package/src/test/firebase.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/driver/query.ts"],"names":[],"mappings":""}
@@ -0,0 +1,23 @@
1
+ import { Firestore, Transaction, ReadOnlyTransactionOptions, ReadWriteTransactionOptions } from '../types';
2
+ /**
3
+ * Function that runs in a transaction context and returns a value.
4
+ */
5
+ export declare type TransactionFunction<T = any> = (transaction: Transaction) => Promise<T>;
6
+ /**
7
+ * Factory for running transactions. Creates a new Transaction, runs it with the input TransactionFunction, and returns the result.
8
+ */
9
+ export declare type RunTransaction = <T>(fn: TransactionFunction<T>, options?: RunTransactionParams) => Promise<T>;
10
+ export declare type RunTransactionParams = ReadOnlyTransactionOptions | ReadWriteTransactionOptions;
11
+ /**
12
+ * Factory for making a RunTransactionFunction for the input Firestore.
13
+ */
14
+ export declare type RunTransactionForFirestoreFactory = (firestore: Firestore) => RunTransaction;
15
+ export interface RunTransactionFactoryReference {
16
+ readonly runTransaction: RunTransaction;
17
+ }
18
+ /**
19
+ * Driver for prividing a RunTransactionForFirestoreFactory
20
+ */
21
+ export interface FirestoreTransactionFactoryDriver {
22
+ readonly transactionFactoryForFirestore: RunTransactionForFirestoreFactory;
23
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=transaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/driver/transaction.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ export * from './accessor';
2
+ export * from './snapshot';
3
+ export * from './query';
4
+ export * from './context';
5
+ export * from './driver';
6
+ export * from './collection';
7
+ export * from './types';
8
+ export * from './reference';
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./accessor"), exports);
5
+ tslib_1.__exportStar(require("./snapshot"), exports);
6
+ tslib_1.__exportStar(require("./query"), exports);
7
+ tslib_1.__exportStar(require("./context"), exports);
8
+ tslib_1.__exportStar(require("./driver"), exports);
9
+ tslib_1.__exportStar(require("./collection"), exports);
10
+ tslib_1.__exportStar(require("./types"), exports);
11
+ tslib_1.__exportStar(require("./reference"), exports);
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/src/lib/common/firestore/index.ts"],"names":[],"mappings":";;;AAAA,qDAA2B;AAC3B,qDAA2B;AAC3B,kDAAwB;AACxB,oDAA0B;AAC1B,mDAAyB;AACzB,uDAA6B;AAC7B,kDAAwB;AACxB,sDAA4B"}
@@ -0,0 +1,24 @@
1
+ import { ItemAccumulatorInstance, ItemAccumulatorMapFunction, PageItemIteration } from "@dereekb/rxjs";
2
+ import { MapFunction } from "@dereekb/util";
3
+ import { DocumentDataWithId, QueryDocumentSnapshotArray } from "../types";
4
+ import { FirestoreItemPageIterationInstance } from "./iterator";
5
+ export declare type MappedFirebaseQuerySnapshotAccumulator<O, T> = ItemAccumulatorInstance<O, QueryDocumentSnapshotArray<T>, PageItemIteration<QueryDocumentSnapshotArray<T>>>;
6
+ export declare type FirebaseQuerySnapshotAccumulator<T> = MappedFirebaseQuerySnapshotAccumulator<QueryDocumentSnapshotArray<T>, T>;
7
+ /**
8
+ * Mapped accumulator for QueryDocumentSnapshotArray values that returns the DocumentDataWithId values for the items returned in the query.
9
+ */
10
+ export declare type FirebaseQueryItemAccumulator<T> = MappedFirebaseQuerySnapshotAccumulator<DocumentDataWithId<T>[], T>;
11
+ /**
12
+ * Wrapper for itemAccumulator that has typings for a FirestoreItemPageIterationInstance. Can optionally map the snapshots to another type.
13
+ *
14
+ * @param iteration
15
+ */
16
+ export declare function firebaseQuerySnapshotAccumulator<O, T>(iteration: FirestoreItemPageIterationInstance<T>): FirebaseQuerySnapshotAccumulator<T>;
17
+ export declare function firebaseQuerySnapshotAccumulator<O, T>(iteration: FirestoreItemPageIterationInstance<T>, mapSnapshots?: ItemAccumulatorMapFunction<O, QueryDocumentSnapshotArray<T>>): MappedFirebaseQuerySnapshotAccumulator<O, T>;
18
+ /**
19
+ * Convenience function for creating a FirebaseQueryItemAccumulator
20
+ *
21
+ * @param iteration
22
+ */
23
+ export declare function firebaseQueryItemAccumulator<T>(iteration: FirestoreItemPageIterationInstance<T>): FirebaseQueryItemAccumulator<T>;
24
+ export declare function firebaseQueryItemAccumulator<U, T>(iteration: FirestoreItemPageIterationInstance<T>, mapItem?: MapFunction<DocumentDataWithId<T>, U>): MappedFirebaseQuerySnapshotAccumulator<U[], T>;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.firebaseQueryItemAccumulator = exports.firebaseQuerySnapshotAccumulator = void 0;
4
+ const rxjs_1 = require("@dereekb/rxjs");
5
+ function firebaseQuerySnapshotAccumulator(iteration, mapSnapshots) {
6
+ return (0, rxjs_1.itemAccumulator)(iteration, mapSnapshots);
7
+ }
8
+ exports.firebaseQuerySnapshotAccumulator = firebaseQuerySnapshotAccumulator;
9
+ function firebaseQueryItemAccumulator(iteration, mapItem) {
10
+ mapItem = mapItem !== null && mapItem !== void 0 ? mapItem : ((x) => x);
11
+ const mapFn = (x) => {
12
+ const result = x.map(y => {
13
+ const data = y.data();
14
+ data.id = y.id;
15
+ return mapItem(data);
16
+ });
17
+ return result;
18
+ };
19
+ return firebaseQuerySnapshotAccumulator(iteration, mapFn);
20
+ }
21
+ exports.firebaseQueryItemAccumulator = firebaseQueryItemAccumulator;
22
+ //# sourceMappingURL=accumulator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accumulator.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/query/accumulator.ts"],"names":[],"mappings":";;;AAAA,wCAAwH;AAoBxH,SAAgB,gCAAgC,CAAO,SAAgD,EAAE,YAA2E;IAClL,OAAO,IAAA,sBAAe,EAAqF,SAAS,EAAE,YAAY,CAAC,CAAC;AACtI,CAAC;AAFD,4EAEC;AASD,SAAgB,4BAA4B,CAAO,SAAgD,EAAE,OAA+C;IAClJ,OAAO,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAK,CAAC,CAAC,CAAwB,EAAE,EAAE,CAAC,CAAC,CAAsD,CAAC;IAE7G,MAAM,KAAK,GAAmE,CAAC,CAAgC,EAAE,EAAE;QACjH,MAAM,MAAM,GAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YAC5B,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,EAA2B,CAAC;YAC/C,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;YACf,OAAO,OAAQ,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,OAAO,gCAAgC,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AAC5D,CAAC;AAdD,oEAcC"}
@@ -0,0 +1,112 @@
1
+ import { ArrayOrValue, SeparateResult } from '@dereekb/util';
2
+ import { SortingOrder, Maybe, ObjectMap } from '@dereekb/util';
3
+ import { DocumentSnapshot, DocumentData, FieldPath } from '../types';
4
+ export declare type FirestoreQueryConstraintType = string;
5
+ /**
6
+ * A constraint. Used by drivers to apply native firebase query constraints.
7
+ */
8
+ export interface FirestoreQueryConstraint<T = any> {
9
+ type: FirestoreQueryConstraintType;
10
+ data: T;
11
+ }
12
+ export declare function firestoreQueryConstraint<T>(type: string, data: T): FirestoreQueryConstraint<T>;
13
+ export declare function firestoreQueryConstraintFactory(type: string): <T>(data: T) => FirestoreQueryConstraint<T>;
14
+ export declare const FIRESTORE_LIMIT_QUERY_CONSTRAINT_TYPE = "limit";
15
+ export interface LimitQueryConstraintData {
16
+ limit: number;
17
+ }
18
+ /**
19
+ * Limits the maximum number of documents to return.
20
+ *
21
+ * @param limit
22
+ * @returns
23
+ */
24
+ export declare function limit(limit: number): FirestoreQueryConstraint<LimitQueryConstraintData>;
25
+ export declare const FIRESTORE_LIMIT_TO_LAST_QUERY_CONSTRAINT_TYPE = "limit_to_last";
26
+ export interface LimitToLastQueryConstraintData {
27
+ limit: number;
28
+ }
29
+ /**
30
+ * Returns the last matching documents in the query, up to the limit.
31
+ *
32
+ * Does not work with queries with streamed results.
33
+ */
34
+ export declare function limitToLast(limit: number): FirestoreQueryConstraint<LimitToLastQueryConstraintData>;
35
+ export declare const FIRESTORE_OFFSET_QUERY_CONSTRAINT_TYPE = "offset";
36
+ export interface OffsetQueryConstraintData {
37
+ offset: number;
38
+ }
39
+ export declare function offset(offset: number): FirestoreQueryConstraint<OffsetQueryConstraintData>;
40
+ export declare const FIRESTORE_WHERE_QUERY_CONSTRAINT_TYPE = "where";
41
+ export declare type WhereFilterOp = '<' | '<=' | '==' | '!=' | '>=' | '>' | 'array-contains' | 'in' | 'array-contains-any' | 'not-in';
42
+ export interface WhereQueryConstraintData {
43
+ fieldPath: string | FieldPath;
44
+ opStr: WhereFilterOp;
45
+ value: unknown;
46
+ }
47
+ export declare function where<T>(fieldPath: keyof T, opStr: WhereFilterOp, value: unknown): FirestoreQueryConstraint<WhereQueryConstraintData>;
48
+ export declare function where(fieldPath: string | FieldPath, opStr: WhereFilterOp, value: unknown): FirestoreQueryConstraint<WhereQueryConstraintData>;
49
+ export declare const FIRESTORE_ORDER_BY_QUERY_CONSTRAINT_TYPE = "order_by";
50
+ export declare type OrderByDirection = SortingOrder;
51
+ export interface OrderByQueryConstraintData {
52
+ fieldPath: string | FieldPath;
53
+ directionStr?: OrderByDirection;
54
+ }
55
+ export declare function orderBy(fieldPath: string | FieldPath, directionStr?: OrderByDirection): FirestoreQueryConstraint<OrderByQueryConstraintData>;
56
+ export declare const FIRESTORE_START_AT_QUERY_CONSTRAINT_TYPE = "start_at";
57
+ export interface StartAtQueryConstraintData<T = DocumentData> {
58
+ snapshot: DocumentSnapshot<T>;
59
+ }
60
+ export declare function startAt<T = DocumentData>(snapshot: DocumentSnapshot<T>): FirestoreQueryConstraint<StartAtQueryConstraintData<T>>;
61
+ export declare const FIRESTORE_START_AFTER_QUERY_CONSTRAINT_TYPE = "start_after";
62
+ export interface StartAfterQueryConstraintData<T = DocumentData> {
63
+ snapshot: DocumentSnapshot<T>;
64
+ }
65
+ export declare function startAfter<T = DocumentData>(snapshot: DocumentSnapshot<T>): FirestoreQueryConstraint<StartAfterQueryConstraintData<T>>;
66
+ export declare const FIRESTORE_END_AT_QUERY_CONSTRAINT_TYPE = "end_at";
67
+ export interface EndAtQueryConstraintData<T = DocumentData> {
68
+ snapshot: DocumentSnapshot<T>;
69
+ }
70
+ /**
71
+ *
72
+ * @param snapshot
73
+ * @returns
74
+ */
75
+ export declare function endAt<T = DocumentData>(snapshot: DocumentSnapshot<T>): FirestoreQueryConstraint<EndAtQueryConstraintData<T>>;
76
+ export declare const FIRESTORE_END_BEFORE_QUERY_CONSTRAINT_TYPE = "end_before";
77
+ export interface EndBeforeQueryConstraintData<T = DocumentData> {
78
+ snapshot: DocumentSnapshot<T>;
79
+ }
80
+ /**
81
+ *
82
+ * @param snapshot
83
+ * @returns
84
+ */
85
+ export declare function endBefore<T = DocumentData>(snapshot: DocumentSnapshot<T>): FirestoreQueryConstraint<EndBeforeQueryConstraintData<T>>;
86
+ /**
87
+ * Updates the input builder with the passed constraint value.
88
+ */
89
+ export declare type FirestoreQueryConstraintHandlerFunction<B, D = any> = (builder: B, data: D, constraint: FirestoreQueryConstraint<D>) => B;
90
+ export declare type FirestoreQueryConstraintHandlerMap<B> = ObjectMap<Maybe<FirestoreQueryConstraintHandlerFunction<B>>>;
91
+ export declare type FullFirestoreQueryConstraintDataMapping = {
92
+ [FIRESTORE_LIMIT_QUERY_CONSTRAINT_TYPE]: LimitQueryConstraintData;
93
+ [FIRESTORE_LIMIT_TO_LAST_QUERY_CONSTRAINT_TYPE]: LimitToLastQueryConstraintData;
94
+ [FIRESTORE_WHERE_QUERY_CONSTRAINT_TYPE]: WhereQueryConstraintData;
95
+ [FIRESTORE_OFFSET_QUERY_CONSTRAINT_TYPE]: OffsetQueryConstraintData;
96
+ [FIRESTORE_ORDER_BY_QUERY_CONSTRAINT_TYPE]: OrderByQueryConstraintData;
97
+ [FIRESTORE_START_AT_QUERY_CONSTRAINT_TYPE]: StartAtQueryConstraintData;
98
+ [FIRESTORE_START_AFTER_QUERY_CONSTRAINT_TYPE]: StartAfterQueryConstraintData;
99
+ [FIRESTORE_END_AT_QUERY_CONSTRAINT_TYPE]: EndAtQueryConstraintData;
100
+ [FIRESTORE_END_BEFORE_QUERY_CONSTRAINT_TYPE]: EndBeforeQueryConstraintData;
101
+ };
102
+ export declare type FullFirestoreQueryConstraintMapping = {
103
+ [K in keyof FullFirestoreQueryConstraintDataMapping]: FirestoreQueryConstraint<FullFirestoreQueryConstraintDataMapping[K]>;
104
+ };
105
+ export declare type FullFirestoreQueryConstraintHandlersMapping<B> = {
106
+ [K in keyof FullFirestoreQueryConstraintMapping]: Maybe<FirestoreQueryConstraintHandlerFunction<B, FullFirestoreQueryConstraintDataMapping[K]>>;
107
+ };
108
+ export declare function addOrReplaceLimitInConstraints(limit: number, addedLimitType?: (typeof FIRESTORE_LIMIT_QUERY_CONSTRAINT_TYPE | typeof FIRESTORE_LIMIT_TO_LAST_QUERY_CONSTRAINT_TYPE)): (constraints: FirestoreQueryConstraint[]) => FirestoreQueryConstraint[];
109
+ export declare type FirestoreQueryConstraintMapFunction = (constraints: FirestoreQueryConstraint[]) => FirestoreQueryConstraint[];
110
+ export declare function filterConstraintsOfType(...types: FirestoreQueryConstraintType[]): FirestoreQueryConstraintMapFunction;
111
+ export declare function replaceConstraints(replaceFn: (constraints: FirestoreQueryConstraint[]) => Maybe<ArrayOrValue<FirestoreQueryConstraint>>, types: FirestoreQueryConstraintType[]): (constraints: FirestoreQueryConstraint[]) => FirestoreQueryConstraint[];
112
+ export declare function separateConstraints(...types: FirestoreQueryConstraintType[]): (constraints: FirestoreQueryConstraint[]) => SeparateResult<FirestoreQueryConstraint>;
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.separateConstraints = exports.replaceConstraints = exports.filterConstraintsOfType = exports.addOrReplaceLimitInConstraints = exports.endBefore = exports.FIRESTORE_END_BEFORE_QUERY_CONSTRAINT_TYPE = exports.endAt = exports.FIRESTORE_END_AT_QUERY_CONSTRAINT_TYPE = exports.startAfter = exports.FIRESTORE_START_AFTER_QUERY_CONSTRAINT_TYPE = exports.startAt = exports.FIRESTORE_START_AT_QUERY_CONSTRAINT_TYPE = exports.orderBy = exports.FIRESTORE_ORDER_BY_QUERY_CONSTRAINT_TYPE = exports.where = exports.FIRESTORE_WHERE_QUERY_CONSTRAINT_TYPE = exports.offset = exports.FIRESTORE_OFFSET_QUERY_CONSTRAINT_TYPE = exports.limitToLast = exports.FIRESTORE_LIMIT_TO_LAST_QUERY_CONSTRAINT_TYPE = exports.limit = exports.FIRESTORE_LIMIT_QUERY_CONSTRAINT_TYPE = exports.firestoreQueryConstraintFactory = exports.firestoreQueryConstraint = void 0;
4
+ const util_1 = require("@dereekb/util");
5
+ function firestoreQueryConstraint(type, data) {
6
+ return {
7
+ type,
8
+ data
9
+ };
10
+ }
11
+ exports.firestoreQueryConstraint = firestoreQueryConstraint;
12
+ function firestoreQueryConstraintFactory(type) {
13
+ return (data) => firestoreQueryConstraint(type, data);
14
+ }
15
+ exports.firestoreQueryConstraintFactory = firestoreQueryConstraintFactory;
16
+ // MARK: Limit
17
+ exports.FIRESTORE_LIMIT_QUERY_CONSTRAINT_TYPE = 'limit';
18
+ /**
19
+ * Limits the maximum number of documents to return.
20
+ *
21
+ * @param limit
22
+ * @returns
23
+ */
24
+ function limit(limit) {
25
+ return firestoreQueryConstraint(exports.FIRESTORE_LIMIT_QUERY_CONSTRAINT_TYPE, { limit });
26
+ }
27
+ exports.limit = limit;
28
+ // MARK: Limit To Last
29
+ exports.FIRESTORE_LIMIT_TO_LAST_QUERY_CONSTRAINT_TYPE = 'limit_to_last';
30
+ /**
31
+ * Returns the last matching documents in the query, up to the limit.
32
+ *
33
+ * Does not work with queries with streamed results.
34
+ */
35
+ function limitToLast(limit) {
36
+ return firestoreQueryConstraint(exports.FIRESTORE_LIMIT_TO_LAST_QUERY_CONSTRAINT_TYPE, { limit });
37
+ }
38
+ exports.limitToLast = limitToLast;
39
+ // MARK: Offset
40
+ exports.FIRESTORE_OFFSET_QUERY_CONSTRAINT_TYPE = 'offset';
41
+ function offset(offset) {
42
+ return firestoreQueryConstraint(exports.FIRESTORE_OFFSET_QUERY_CONSTRAINT_TYPE, { offset });
43
+ }
44
+ exports.offset = offset;
45
+ // MARK: Where
46
+ exports.FIRESTORE_WHERE_QUERY_CONSTRAINT_TYPE = 'where';
47
+ function where(fieldPath, opStr, value) {
48
+ return firestoreQueryConstraint(exports.FIRESTORE_WHERE_QUERY_CONSTRAINT_TYPE, { fieldPath, opStr, value });
49
+ }
50
+ exports.where = where;
51
+ // MARK: OrderBy
52
+ exports.FIRESTORE_ORDER_BY_QUERY_CONSTRAINT_TYPE = 'order_by';
53
+ function orderBy(fieldPath, directionStr) {
54
+ return firestoreQueryConstraint(exports.FIRESTORE_ORDER_BY_QUERY_CONSTRAINT_TYPE, { fieldPath, directionStr });
55
+ }
56
+ exports.orderBy = orderBy;
57
+ // MARK: Start At
58
+ exports.FIRESTORE_START_AT_QUERY_CONSTRAINT_TYPE = 'start_at';
59
+ function startAt(snapshot) {
60
+ return firestoreQueryConstraint(exports.FIRESTORE_START_AT_QUERY_CONSTRAINT_TYPE, { snapshot });
61
+ }
62
+ exports.startAt = startAt;
63
+ // MARK: Start After
64
+ exports.FIRESTORE_START_AFTER_QUERY_CONSTRAINT_TYPE = 'start_after';
65
+ function startAfter(snapshot) {
66
+ return firestoreQueryConstraint(exports.FIRESTORE_START_AFTER_QUERY_CONSTRAINT_TYPE, { snapshot });
67
+ }
68
+ exports.startAfter = startAfter;
69
+ // MARK: End At
70
+ exports.FIRESTORE_END_AT_QUERY_CONSTRAINT_TYPE = 'end_at';
71
+ /**
72
+ *
73
+ * @param snapshot
74
+ * @returns
75
+ */
76
+ function endAt(snapshot) {
77
+ return firestoreQueryConstraint(exports.FIRESTORE_END_AT_QUERY_CONSTRAINT_TYPE, { snapshot });
78
+ }
79
+ exports.endAt = endAt;
80
+ // MARK: End Before
81
+ exports.FIRESTORE_END_BEFORE_QUERY_CONSTRAINT_TYPE = 'end_before';
82
+ /**
83
+ *
84
+ * @param snapshot
85
+ * @returns
86
+ */
87
+ function endBefore(snapshot) {
88
+ return firestoreQueryConstraint(exports.FIRESTORE_END_BEFORE_QUERY_CONSTRAINT_TYPE, { snapshot });
89
+ }
90
+ exports.endBefore = endBefore;
91
+ // MARK: Utils
92
+ function addOrReplaceLimitInConstraints(limit, addedLimitType = exports.FIRESTORE_LIMIT_QUERY_CONSTRAINT_TYPE) {
93
+ const replace = replaceConstraints((constraints) => {
94
+ let type;
95
+ if (constraints.length) {
96
+ type = constraints[0].type;
97
+ }
98
+ else {
99
+ type = addedLimitType;
100
+ }
101
+ return {
102
+ type,
103
+ data: {
104
+ limit
105
+ }
106
+ };
107
+ }, [exports.FIRESTORE_LIMIT_QUERY_CONSTRAINT_TYPE, exports.FIRESTORE_LIMIT_TO_LAST_QUERY_CONSTRAINT_TYPE]);
108
+ return replace;
109
+ }
110
+ exports.addOrReplaceLimitInConstraints = addOrReplaceLimitInConstraints;
111
+ function filterConstraintsOfType(...types) {
112
+ const typesToFilterOut = new Set(types);
113
+ return (constraints) => constraints.filter(x => !typesToFilterOut.has(x.type));
114
+ }
115
+ exports.filterConstraintsOfType = filterConstraintsOfType;
116
+ function replaceConstraints(replaceFn, types) {
117
+ const separateFn = separateConstraints(...types);
118
+ return (constraints) => {
119
+ const separated = separateFn(constraints);
120
+ const replacements = (0, util_1.asArray)(replaceFn(separated.excluded));
121
+ return (replacements) ? (0, util_1.mergeArrayOrValueIntoArray)(separated.included, replacements) : separated.included;
122
+ };
123
+ }
124
+ exports.replaceConstraints = replaceConstraints;
125
+ function separateConstraints(...types) {
126
+ return (constraints) => {
127
+ const typesToFilterOut = new Set(types);
128
+ const separated = (0, util_1.separateValues)(constraints, (x) => !typesToFilterOut.has(x.type));
129
+ return separated;
130
+ };
131
+ }
132
+ exports.separateConstraints = separateConstraints;
133
+ //# sourceMappingURL=constraint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constraint.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/query/constraint.ts"],"names":[],"mappings":";;;AAAA,wCAA0J;AAc1J,SAAgB,wBAAwB,CAAI,IAAY,EAAE,IAAO;IAC/D,OAAO;QACL,IAAI;QACJ,IAAI;KACL,CAAC;AACJ,CAAC;AALD,4DAKC;AAED,SAAgB,+BAA+B,CAAC,IAAY;IAC1D,OAAO,CAAI,IAAO,EAAE,EAAE,CAAC,wBAAwB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC9D,CAAC;AAFD,0EAEC;AAED,cAAc;AACD,QAAA,qCAAqC,GAAG,OAAO,CAAC;AAM7D;;;;;GAKG;AACH,SAAgB,KAAK,CAAC,KAAa;IACjC,OAAO,wBAAwB,CAAC,6CAAqC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;AACpF,CAAC;AAFD,sBAEC;AAED,sBAAsB;AACT,QAAA,6CAA6C,GAAG,eAAe,CAAC;AAM7E;;;;GAIG;AACH,SAAgB,WAAW,CAAC,KAAa;IACvC,OAAO,wBAAwB,CAAC,qDAA6C,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;AAC5F,CAAC;AAFD,kCAEC;AAED,eAAe;AACF,QAAA,sCAAsC,GAAG,QAAQ,CAAC;AAM/D,SAAgB,MAAM,CAAC,MAAc;IACnC,OAAO,wBAAwB,CAAC,8CAAsC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AACtF,CAAC;AAFD,wBAEC;AAED,cAAc;AACD,QAAA,qCAAqC,GAAG,OAAO,CAAC;AAY7D,SAAgB,KAAK,CAAC,SAAc,EAAE,KAAoB,EAAE,KAAc;IACxE,OAAO,wBAAwB,CAAC,6CAAqC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AACtG,CAAC;AAFD,sBAEC;AAED,gBAAgB;AACH,QAAA,wCAAwC,GAAG,UAAU,CAAC;AASnE,SAAgB,OAAO,CAAC,SAA6B,EAAE,YAA+B;IACpF,OAAO,wBAAwB,CAAC,gDAAwC,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;AACzG,CAAC;AAFD,0BAEC;AAED,iBAAiB;AACJ,QAAA,wCAAwC,GAAG,UAAU,CAAC;AAMnE,SAAgB,OAAO,CAAmB,QAA6B;IACrE,OAAO,wBAAwB,CAAC,gDAAwC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC1F,CAAC;AAFD,0BAEC;AAGD,oBAAoB;AACP,QAAA,2CAA2C,GAAG,aAAa,CAAC;AAMzE,SAAgB,UAAU,CAAmB,QAA6B;IACxE,OAAO,wBAAwB,CAAC,mDAA2C,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC7F,CAAC;AAFD,gCAEC;AAED,eAAe;AACF,QAAA,sCAAsC,GAAG,QAAQ,CAAC;AAM/D;;;;GAIG;AACH,SAAgB,KAAK,CAAmB,QAA6B;IACnE,OAAO,wBAAwB,CAAC,8CAAsC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;AACxF,CAAC;AAFD,sBAEC;AAGD,mBAAmB;AACN,QAAA,0CAA0C,GAAG,YAAY,CAAC;AAMvE;;;;GAIG;AACH,SAAgB,SAAS,CAAmB,QAA6B;IACvE,OAAO,wBAAwB,CAAC,kDAA0C,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC5F,CAAC;AAFD,8BAEC;AA8BD,cAAc;AACd,SAAgB,8BAA8B,CAAC,KAAa,EAAE,iBAAwH,6CAAqC;IACzN,MAAM,OAAO,GAAG,kBAAkB,CAAC,CAAC,WAAW,EAAE,EAAE;QACjD,IAAI,IAAkC,CAAC;QAEvC,IAAI,WAAW,CAAC,MAAM,EAAE;YACtB,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;SAC5B;aAAM;YACL,IAAI,GAAG,cAAc,CAAC;SACvB;QAED,OAAO;YACL,IAAI;YACJ,IAAI,EAAE;gBACJ,KAAK;aACuD;SAC/D,CAAC;IACJ,CAAC,EAAE,CAAC,6CAAqC,EAAE,qDAA6C,CAAC,CAAC,CAAC;IAE3F,OAAO,OAAO,CAAC;AACjB,CAAC;AAnBD,wEAmBC;AAID,SAAgB,uBAAuB,CAAC,GAAG,KAAqC;IAC9E,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IACxC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACjF,CAAC;AAHD,0DAGC;AAED,SAAgB,kBAAkB,CAAC,SAAqG,EAAE,KAAqC;IAC7K,MAAM,UAAU,GAAG,mBAAmB,CAAC,GAAG,KAAK,CAAC,CAAC;IAEjD,OAAO,CAAC,WAAW,EAAE,EAAE;QACrB,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;QAC1C,MAAM,YAAY,GAAG,IAAA,cAAO,EAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC5D,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAA,iCAA0B,EAAC,SAAS,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC;IAC5G,CAAC,CAAC;AACJ,CAAC;AARD,gDAQC;AAED,SAAgB,mBAAmB,CAAC,GAAG,KAAqC;IAC1E,OAAO,CAAC,WAAW,EAAE,EAAE;QACrB,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,SAAS,GAAG,IAAA,qBAAc,EAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACpF,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;AACJ,CAAC;AAND,kDAMC"}
@@ -0,0 +1,6 @@
1
+ export * from './accumulator';
2
+ export * from './constraint';
3
+ export * from './iterator';
4
+ export * from './query';
5
+ export * from './query.util';
6
+ export * from './watcher';
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./accumulator"), exports);
5
+ tslib_1.__exportStar(require("./constraint"), exports);
6
+ tslib_1.__exportStar(require("./iterator"), exports);
7
+ tslib_1.__exportStar(require("./query"), exports);
8
+ tslib_1.__exportStar(require("./query.util"), exports);
9
+ tslib_1.__exportStar(require("./watcher"), exports);
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/query/index.ts"],"names":[],"mappings":";;;AAAA,wDAA8B;AAC9B,uDAA6B;AAC7B,qDAA2B;AAC3B,kDAAwB;AACxB,uDAA6B;AAC7B,oDAA0B"}
@@ -1,29 +1,55 @@
1
- import { PageLoadingState, ItemPageIterator, ItemPageIterationInstance, ItemPageIterationConfig, ItemPageIteratorDelegate, MappedPageItemIterationInstance } from '@dereekb/rxjs';
2
- import { QueryDocumentSnapshot, QueryConstraint, QuerySnapshot } from "@firebase/firestore";
3
- import { Maybe } from '@dereekb/util';
4
- import { FirestoreCollectionReference } from './reference';
5
- export interface FirestoreItemPageIteratorFilter {
6
- queryConstraints?: Maybe<QueryConstraint[]>;
1
+ import { PageLoadingState, ItemPageIterator, ItemPageIterationInstance, ItemPageIterationConfig, ItemPageIteratorDelegate, MappedPageItemIterationInstance, ItemPageLimit } from '@dereekb/rxjs';
2
+ import { QueryDocumentSnapshotArray, QuerySnapshot, SnapshotListenOptions } from "../types";
3
+ import { Maybe, ArrayOrValue } from '@dereekb/util';
4
+ import { Observable } from "rxjs";
5
+ import { CollectionReferenceRef } from '../reference';
6
+ import { FirestoreQueryDriverRef } from '../driver/query';
7
+ import { FirestoreQueryConstraint } from './constraint';
8
+ export interface FirestoreItemPageIteratorFilter extends ItemPageLimit {
9
+ /**
10
+ * Overrides the default limit, if applicable.
11
+ */
12
+ limit?: Maybe<number>;
13
+ /**
14
+ * Constraints to query on.
15
+ */
16
+ constraints?: Maybe<ArrayOrValue<FirestoreQueryConstraint>>;
7
17
  }
8
- export interface FirestoreItemPageIterationBaseConfig<T> extends FirestoreCollectionReference<T> {
18
+ export interface FirestoreItemPageIterationBaseConfig<T> extends CollectionReferenceRef<T>, FirestoreQueryDriverRef, ItemPageLimit {
9
19
  itemsPerPage: number;
10
20
  }
11
21
  export interface FirestoreItemPageIterationConfig<T> extends FirestoreItemPageIterationBaseConfig<T>, ItemPageIterationConfig<FirestoreItemPageIteratorFilter> {
12
22
  }
13
23
  export interface FirestoreItemPageQueryResult<T> {
24
+ /**
25
+ * Time the result was read at.
26
+ */
27
+ readonly time: Date;
14
28
  /**
15
29
  * The relevant docs for this page result. This value will omit the cursor.
16
30
  */
17
- docs: QueryDocumentSnapshot<T>[];
31
+ readonly docs: QueryDocumentSnapshotArray<T>;
18
32
  /**
19
33
  * The raw snapshot returned from the query.
20
34
  */
21
- snapshot: QuerySnapshot<T>;
35
+ readonly snapshot: QuerySnapshot<T>;
36
+ /**
37
+ * Reloads these results as a snapshot.
38
+ */
39
+ reload(): Promise<QuerySnapshot<T>>;
40
+ /**
41
+ * Streams these results.
42
+ */
43
+ stream(options?: FirestoreItemPageQueryResultStreamOptions<T>): Observable<QuerySnapshot<T>>;
44
+ }
45
+ export interface FirestoreItemPageQueryResultStreamOptions<T> {
46
+ options?: Maybe<SnapshotListenOptions>;
22
47
  }
23
48
  export declare type FirestoreItemPageIteratorDelegate<T> = ItemPageIteratorDelegate<FirestoreItemPageQueryResult<T>, FirestoreItemPageIteratorFilter, FirestoreItemPageIterationConfig<T>>;
24
49
  export declare type InternalFirestoreItemPageIterationInstance<T> = ItemPageIterationInstance<FirestoreItemPageQueryResult<T>, FirestoreItemPageIteratorFilter, FirestoreItemPageIterationConfig<T>>;
50
+ export declare function filterDisallowedFirestoreItemPageIteratorInputContraints(constraints: FirestoreQueryConstraint[]): FirestoreQueryConstraint[];
25
51
  export declare function makeFirestoreItemPageIteratorDelegate<T>(): FirestoreItemPageIteratorDelegate<T>;
26
- export declare class FirestoreItemPageIterationInstance<T> extends MappedPageItemIterationInstance<QueryDocumentSnapshot<T>[], FirestoreItemPageQueryResult<T>, PageLoadingState<QueryDocumentSnapshot<T>[]>, PageLoadingState<FirestoreItemPageQueryResult<T>>, InternalFirestoreItemPageIterationInstance<T>> {
52
+ export declare class FirestoreItemPageIterationInstance<T> extends MappedPageItemIterationInstance<QueryDocumentSnapshotArray<T>, FirestoreItemPageQueryResult<T>, PageLoadingState<QueryDocumentSnapshotArray<T>>, PageLoadingState<FirestoreItemPageQueryResult<T>>, InternalFirestoreItemPageIterationInstance<T>> {
27
53
  constructor(snapshotIteration: InternalFirestoreItemPageIterationInstance<T>);
28
54
  get snapshotIteration(): InternalFirestoreItemPageIterationInstance<T>;
29
55
  }
@@ -31,7 +57,7 @@ export declare class FirestoreItemPageIterationInstance<T> extends MappedPageIte
31
57
  * FirestoreItemPageIteration factory.
32
58
  */
33
59
  export interface FirestoreItemPageIterationFactory<T> {
34
- firestoreIteration(filter?: FirestoreItemPageIteratorFilter): FirestoreItemPageIterationInstance<T>;
60
+ readonly firestoreIteration: FirestoreItemPageIterationFactoryFunction<T>;
35
61
  }
36
62
  /**
37
63
  * Function that creates a FirestoreItemPageIterationInstance from the input filter.
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.firestoreItemPageIteration = exports.FIRESTORE_ITEM_PAGE_ITERATOR = exports.FIRESTORE_ITEM_PAGE_ITERATOR_DELEGATE = exports.firestoreItemPageIterationFactory = exports.FirestoreItemPageIterationInstance = exports.makeFirestoreItemPageIteratorDelegate = exports.filterDisallowedFirestoreItemPageIteratorInputContraints = void 0;
4
+ const rxjs_1 = require("@dereekb/rxjs");
5
+ const util_1 = require("@dereekb/util");
6
+ const rxjs_2 = require("rxjs");
7
+ const constraint_1 = require("./constraint");
8
+ function filterDisallowedFirestoreItemPageIteratorInputContraints(constraints) {
9
+ const isIllegal = new Set([constraint_1.FIRESTORE_LIMIT_QUERY_CONSTRAINT_TYPE]);
10
+ return constraints.filter(x => !isIllegal.has(x.type));
11
+ }
12
+ exports.filterDisallowedFirestoreItemPageIteratorInputContraints = filterDisallowedFirestoreItemPageIteratorInputContraints;
13
+ function makeFirestoreItemPageIteratorDelegate() {
14
+ return {
15
+ loadItemsForPage: (request) => {
16
+ const { page, iteratorConfig } = request;
17
+ const prevQueryResult$ = (page > 0) ? request.lastItem$ : (0, rxjs_2.of)(undefined);
18
+ const { collection, itemsPerPage, filter, firestoreQueryDriver: driver } = iteratorConfig;
19
+ const { limit: filterLimit, constraints: filterConstraints } = filter !== null && filter !== void 0 ? filter : {};
20
+ return prevQueryResult$.pipe((0, rxjs_2.exhaustMap)((prevResult) => {
21
+ if ((prevResult === null || prevResult === void 0 ? void 0 : prevResult.snapshot.empty) === true) { // TODO: Shouldn't happen. Remove this later.
22
+ return (0, rxjs_2.of)({ end: true });
23
+ }
24
+ else {
25
+ const constraints = [];
26
+ // Add filter constraints
27
+ if (filterConstraints != null) {
28
+ (0, util_1.mergeIntoArray)(constraints, filterDisallowedFirestoreItemPageIteratorInputContraints((0, util_1.asArray)(filterConstraints)));
29
+ }
30
+ // Add cursor
31
+ const cursorDocument = (prevResult) ? (0, util_1.lastValue)(prevResult.docs) : undefined;
32
+ const startAfterFilter = (cursorDocument) ? (0, constraint_1.startAfter)(cursorDocument) : undefined;
33
+ if (startAfterFilter) {
34
+ constraints.push(startAfterFilter);
35
+ }
36
+ // Add Limit
37
+ const limitCount = filterLimit !== null && filterLimit !== void 0 ? filterLimit : itemsPerPage + ((startAfterFilter) ? 1 : 0); // todo: may not be needed.
38
+ const limitConstraint = (0, constraint_1.limit)(limitCount);
39
+ const constraintsWithLimit = [...constraints, limitConstraint];
40
+ // make query
41
+ const batchQuery = driver.query(collection, ...constraintsWithLimit);
42
+ const resultPromise = driver.getDocs(batchQuery).then((snapshot) => {
43
+ const time = new Date();
44
+ const docs = snapshot.docs;
45
+ const result = {
46
+ value: {
47
+ time,
48
+ docs,
49
+ snapshot,
50
+ reload() {
51
+ return driver.getDocs(batchQuery);
52
+ },
53
+ stream(options) {
54
+ // todo: consider allowing limit to be changed here to stream a subset. This will be useful for detecting collection changes.
55
+ return driver.streamDocs(batchQuery, options === null || options === void 0 ? void 0 : options.options);
56
+ }
57
+ },
58
+ end: snapshot.empty
59
+ };
60
+ return result;
61
+ });
62
+ return (0, rxjs_2.from)(resultPromise);
63
+ }
64
+ }));
65
+ }
66
+ };
67
+ }
68
+ exports.makeFirestoreItemPageIteratorDelegate = makeFirestoreItemPageIteratorDelegate;
69
+ class FirestoreItemPageIterationInstance extends rxjs_1.MappedPageItemIterationInstance {
70
+ constructor(snapshotIteration) {
71
+ super(snapshotIteration, {
72
+ forwardDestroy: true,
73
+ mapValue: (x) => x.docs
74
+ });
75
+ }
76
+ get snapshotIteration() {
77
+ return this.itemIterator;
78
+ }
79
+ }
80
+ exports.FirestoreItemPageIterationInstance = FirestoreItemPageIterationInstance;
81
+ /**
82
+ * Creates a new factory function that can build FirestoreItemPageIterationInstance values from just the input filter.
83
+ *
84
+ * @param baseConfig
85
+ * @returns FirestoreItemPageIterationInstance
86
+ */
87
+ function firestoreItemPageIterationFactory(baseConfig) {
88
+ return (filter) => {
89
+ var _a;
90
+ const result = firestoreItemPageIteration({
91
+ collection: baseConfig.collection,
92
+ itemsPerPage: baseConfig.itemsPerPage,
93
+ firestoreQueryDriver: baseConfig.firestoreQueryDriver,
94
+ maxPageLoadLimit: (_a = filter === null || filter === void 0 ? void 0 : filter.maxPageLoadLimit) !== null && _a !== void 0 ? _a : baseConfig.maxPageLoadLimit,
95
+ filter
96
+ });
97
+ return result;
98
+ };
99
+ }
100
+ exports.firestoreItemPageIterationFactory = firestoreItemPageIterationFactory;
101
+ exports.FIRESTORE_ITEM_PAGE_ITERATOR_DELEGATE = makeFirestoreItemPageIteratorDelegate();
102
+ exports.FIRESTORE_ITEM_PAGE_ITERATOR = new rxjs_1.ItemPageIterator(exports.FIRESTORE_ITEM_PAGE_ITERATOR_DELEGATE);
103
+ function firestoreItemPageIteration(config) {
104
+ const iterator = exports.FIRESTORE_ITEM_PAGE_ITERATOR.instance(config);
105
+ return new FirestoreItemPageIterationInstance(iterator);
106
+ }
107
+ exports.firestoreItemPageIteration = firestoreItemPageIteration;
108
+ //# sourceMappingURL=iterator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iterator.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/query/iterator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import { Observable } from 'rxjs';
2
+ import { ArrayOrValue, Maybe } from "@dereekb/util";
3
+ import { CollectionReferenceRef } from "../reference";
4
+ import { Query, QueryDocumentSnapshot, QuerySnapshot, Transaction } from "../types";
5
+ import { FirestoreQueryConstraint } from "./constraint";
6
+ import { FirestoreQueryDriverRef } from '../driver/query';
7
+ export interface FirestoreExecutableQueryGetDocsContext {
8
+ readonly transaction?: Transaction;
9
+ }
10
+ /**
11
+ * Immutable wrapper of a query and a way to retrieve the docs.
12
+ */
13
+ export interface FirestoreExecutableQuery<T> {
14
+ readonly query: Query<T>;
15
+ /**
16
+ * Returns the first/single document.
17
+ */
18
+ getFirstDoc(transaction?: Transaction): Promise<Maybe<QueryDocumentSnapshot<T>>>;
19
+ /**
20
+ * Returns the results in a Promise.
21
+ */
22
+ getDocs(transaction?: Transaction): Promise<QuerySnapshot<T>>;
23
+ /**
24
+ * Streams the results as an Observable.
25
+ */
26
+ streamDocs(): Observable<QuerySnapshot<T>>;
27
+ /**
28
+ * Extend this query by adding additional filters.
29
+ *
30
+ * @param queryConstraints
31
+ */
32
+ filter(...queryConstraints: ArrayOrValue<FirestoreQueryConstraint>[]): FirestoreExecutableQuery<T>;
33
+ }
34
+ export declare type FirestoreQueryFactoryFunction<T> = (...queryConstraints: ArrayOrValue<FirestoreQueryConstraint>[]) => FirestoreExecutableQuery<T>;
35
+ export interface FirestoreQueryFactory<T> {
36
+ /**
37
+ * Creates a new FirestoreExecutableQuery from the input constraints.
38
+ */
39
+ readonly query: FirestoreQueryFactoryFunction<T>;
40
+ }
41
+ export interface FirestoreQueryConfig<T> extends FirestoreQueryDriverRef, CollectionReferenceRef<T> {
42
+ }
43
+ /**
44
+ * Creates a FirestoreCollectionQuery.
45
+ *
46
+ * @param config
47
+ * @returns
48
+ */
49
+ export declare function firestoreQueryFactory<T>(config: FirestoreQueryConfig<T>): FirestoreQueryFactory<T>;